前幾天手機排線壞了,到配件市場買排線,發(fā)現(xiàn)還有3310的屏買,12一塊,想起來網(wǎng)上有過用單片機驅(qū)動3310的,就買了兩塊回來,今天終于把它弄好了,先上個圖片,以驗證真實性:



咱手機的攝像頭不好,大家將就著看吧,想看清晰的,自己做吧,我給大家提供電路和程序。

小弟的硬件電路就是參照這些東西,第一個圖是引腳線序,第二個圖就是看了個4.7uf的電容,資料上說是調(diào)對比度的。
但是這個屏是3.3v,所以電源不要直接用5v,你可以加一個ASM1117,把5v降到3.3v就ok了。
程序如下:
- /* 3310液晶顯示屏C51測試程序
- 2004/07/31/BD2YA
- 接腳資料:
- Pin Signal Description Port
- 1:VDD
- Power Input. Logic supply voltage range VDD to GND : 2.7 to 3.3 V
- 2:SCLK
- Serial clock. Input for the clock signal: 0.0 to 4.0 Mbits/s.
- 3:SDIN
- Serial data. Input for the data line.
- 4:D/C
- Mode Select. To select either command/address or data input.
- 5:SCE
- Chip enable input. The enable pin allows data to be clocked in. The signal is active LOW.
- 6:GND
- Ground
- 7:VOUT
- Ouptut voltage. Add external 1-10 uF electrolytic capacitor from VOUT to GND
- 8:RES
- External reset. This signal will reset the device and must be applied to properly
- initialize the chip. The signal is active LOW.
- 控制芯片:
- PCD8544 */
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit sdin=P2^1; //數(shù)據(jù)
- sbit sclk=P2^0;//時鐘
- sbit dc=P2^2;//1寫數(shù)據(jù),0寫指令
- sbit sce=P0^0;//片選
- sbit res=P0^1;//復位,0復位
- //---------------------超快,但多了135字-----------------------------
- unsigned char mask_table[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
- void write_byte(uchar dd,bit a)//寫一字節(jié)
- {
- char i;
- sce=0;
- dc=a;
- for(i=0;i<8;i++)
- {
- if(dd&mask_table[i])
- sdin=1;
- else
- sdin=0;
- sclk=0;
- sclk=1;
- }
- dc=1;
- sce=1;
- sdin=1;
- }
- void setadd(unsigned char a,unsigned char d)//設定地址
- {
- write_byte((d|0x40),0);
- write_byte((a|0x80),0);
- }
- void qp()//清屏
- {
- uchar t;
- uchar k;
- uint d;
- d=0;
- for(t=0;t<7;t++)
- {
- for(k=0;k<0x85;k++)
- {
- write_byte(0,1);
- d=d+1;
- }
- }
- }
- uchar code dal[]=
- {
- //------------------------------------------------------------------------------
- /*-- 調(diào)入了一幅圖像:C:\Documents and Settings\freelover\桌面\未標題-1.bmp --*/
- /*-- 寬度x高度=84x48 --*/
- 0xE0,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xE7,0xFB,0xBB,0xBB,0x5B,0xE7,0xFF,0xFF,0xE7,
- 0xFB,0xBB,0xBB,0x5B,0xE7,0xFF,0xFF,0xF7,0xF7,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,
- 0xF7,0xFB,0xFB,0xF7,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFB,
- 0xFB,0x03,0xFB,0xFB,0xF3,0xFF,0xFF,0x3F,0x5F,0x5F,0x5F,0x5F,0x3F,0xFF,0xFF,0x3F,
- 0xDF,0xDF,0xDF,0x9F,0xFF,0xFF,0xFF,0xDF,0xDF,0x07,0xDF,0xDF,0xFF,0xFF,0xFF,0xFF,
- 0xFE,0xFE,0xFE,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF7,0xF7,0xF7,0xF7,
- 0xF8,0xFF,0xFF,0xF9,0xF7,0xF7,0x37,0xF7,0xF8,0xFF,0xFF,0xF7,0xF7,0xF0,0xF7,0xF7,
- 0x7F,0x7F,0x7F,0x7C,0x7B,0x77,0x77,0x7B,0x7C,0x7F,0x7F,0x3F,0x7F,0xFF,0x7F,0x7F,
- 0x7F,0x7F,0x7F,0x7F,0x77,0xB0,0x77,0xFF,0xFF,0x3F,0xFF,0xF8,0xF7,0xF7,0xF7,0xF7,
- 0xFB,0xFF,0xFF,0xF3,0xF6,0xF6,0x36,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF7,0xF7,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xBD,0xBD,0xBD,0xBD,0x00,0xBD,0xBD,0xBD,0xBD,0x80,
- 0xFD,0xFF,0xFF,0xFF,0x00,0xFF,0xFD,0xED,0xED,0x01,0xED,0xCD,0xAD,0xFD,0xFF,0x00,
- 0xFF,0xFF,0xFF,0x00,0xDB,0xDB,0x00,0x7F,0x5B,0xDB,0xDA,0x03,0xDA,0xDB,0xDB,0xDB,
- 0xFF,0xF7,0x76,0xB6,0xC6,0xF6,0x36,0xF7,0xFB,0x7B,0x80,0xFB,0xFB,0x01,0xFB,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFB,0xFA,0xFA,0xFA,0xFA,0xFA,0xFA,
- 0xFA,0xFA,0xFA,0xF0,0xFF,0xDF,0x1D,0xFC,0xFE,0xFE,0xF0,0xFF,0xF7,0xFB,0xFC,0xFF,
- 0xFE,0xFD,0xF3,0xFB,0xFF,0xFE,0xFC,0xFE,0xFE,0xFE,0xF6,0xFA,0xFD,0xFE,0xFF,0xFB,
- 0xF7,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xDD,0xBE,0xBE,0xBE,0xDD,
- 0xFF,0xBE,0xBE,0x80,0xBD,0xBE,0xFE,0xFC,0xFF,0xFF,0xCD,0xB6,0xBA,0xBA,0x81,0xBF,
- 0xFF,0xFF,0x99,0xB6,0xB6,0xB6,0xCC,0xFF,0xFF,0xFF,0x80,0xBD,0xBE,0xBE,0xBE,0xC1,
- 0xFF,0xFE,0xFC,0xE2,0x1F,0xCF,0xF2,0xFC,0xFE,0xFF,0xE3,0xDD,0xBE,0xBE,0xDD,0xE3,
- 0xFF,0xFF,0xC1,0xBA,0xBA,0xBA,0xBA,0xD9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0x0F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x0F,
- };
- void xp()//寫一屏圖
- {
- uchar e;
- uchar t;
- uchar k;
- uint d;
- d=0;
-
- for(t=0;t<6;t++)
- { setadd(0,t);
- for(k=0;k<84;k++)
- {
- e=dal[d];
- write_byte(e,1);
- d=d+1;
- }
- }
- }
- uchar code dal1[][6]={//static const byte FontLookup [][6]
- {0x00,0x00,0x00,0x00,0x00,0x00}, // sp 0
- {0x00,0x00,0x2f,0x00,0x00,0x00}, // ! 1
- {0x00,0x07,0x00,0x07,0x00,0x00}, // " 2
- {0x14,0x7f,0x14,0x7f,0x14,0x00}, // # 3
- {0x24,0x2a,0x7f,0x2a,0x12,0x00}, // $ 4
- {0xc4,0xc8,0x10,0x26,0x46,0x00}, // % 5
- {0x36,0x49,0x55,0x22,0x50,0x00}, // & 6
- {0x00,0x05,0x03,0x00,0x00,0x00}, // ' 7
- {0x00,0x1c,0x22,0x41,0x00,0x00}, // ( 8
- {0x00,0x41,0x22,0x1c,0x00,0x00}, // ) 9
- {0x14,0x08,0x3E,0x08,0x14,0x00}, // * 10
- {0x08,0x08,0x3E,0x08,0x08,0x00}, // + 11
- {0x00,0x00,0x50,0x30,0x00,0x00}, // , 12
- {0x10,0x10,0x10,0x10,0x10,0x00}, // - 13
- {0x00,0x60,0x60,0x00,0x00,0x00}, // . 14
- {0x20,0x10,0x08,0x04,0x02,0x00}, // / 15
- {0x3E,0x51,0x49,0x45,0x3E,0x00}, // 0 16
- {0x00,0x42,0x7F,0x40,0x00,0x00}, // 1 17
- {0x42,0x61,0x51,0x49,0x46,0x00}, // 2 18
- {0x21,0x41,0x45,0x4B,0x31,0x00}, // 3 19
- {0x18,0x14,0x12,0x7F,0x10,0x00}, // 4 20
- {0x27,0x45,0x45,0x45,0x39,0x00}, // 5 21
- {0x3C,0x4A,0x49,0x49,0x30,0x00}, // 6 22
- {0x01,0x71,0x09,0x05,0x03,0x00}, // 7 23
- {0x36,0x49,0x49,0x49,0x36,0x00}, // 8 24
- {0x06,0x49,0x49,0x29,0x1E,0x00}, // 9 25
- {0x00,0x36,0x36,0x00,0x00,0x00}, // : 26
- {0x00,0x56,0x36,0x00,0x00,0x00}, // ; 27
- {0x08,0x14,0x22,0x41,0x00,0x00}, // < 28
- {0x14,0x14,0x14,0x14,0x14,0x00}, // = 29
- {0x00,0x41,0x22,0x14,0x08,0x00}, // > 30
- {0x02,0x01,0x51,0x09,0x06,0x00}, // ? 31
- {0x32,0x49,0x59,0x51,0x3E,0x00}, // @ 32
- {0x7E,0x11,0x11,0x11,0x7E,0x00}, // A 33
- {0x7F,0x49,0x49,0x49,0x36,0x00}, // B 34
- {0x3E,0x41,0x41,0x41,0x22,0x00}, // C 35
- {0x7F,0x41,0x41,0x22,0x1C,0x00}, // D 36
- {0x7F,0x49,0x49,0x49,0x41,0x00}, // E 37
- {0x7F,0x09,0x09,0x09,0x01,0x00}, // F 38
- {0x3E,0x41,0x49,0x49,0x7A,0x00}, // G 39
- {0x7F,0x08,0x08,0x08,0x7F,0x00}, // H 40
- {0x00,0x41,0x7F,0x41,0x00,0x00}, // I 41
- {0x20,0x40,0x41,0x3F,0x01,0x00}, // J 42
- {0x7F,0x08,0x14,0x22,0x41,0x00}, // K 43
- {0x7F,0x40,0x40,0x40,0x40,0x00}, // L 44
- {0x7F,0x02,0x0C,0x02,0x7F,0x00}, // M 45
- {0x7F,0x04,0x08,0x10,0x7F,0x00}, // N 46
- {0x3E,0x41,0x41,0x41,0x3E,0x00}, // O 47
- {0x7F,0x09,0x09,0x09,0x06,0x00}, // P 48
- {0x3E,0x41,0x51,0x21,0x5E,0x00}, // Q 49
- {0x7F,0x09,0x19,0x29,0x46,0x00}, // R 50
- {0x46,0x49,0x49,0x49,0x31,0x00}, // S 51
- {0x01,0x01,0x7F,0x01,0x01,0x00}, // T 52
- {0x3F,0x40,0x40,0x40,0x3F,0x00}, // U 53
- {0x1F,0x20,0x40,0x20,0x1F,0x00}, // V 54
- {0x3F,0x40,0x38,0x40,0x3F,0x00}, // W 55
- {0x63,0x14,0x08,0x14,0x63,0x00}, // X 56
- {0x07,0x08,0x70,0x08,0x07,0x00}, // Y 57
- {0x61,0x51,0x49,0x45,0x43,0x00}, // Z 58
- {0x00,0x7F,0x41,0x41,0x00,0x00}, // [ 59
- {0x55,0x2A,0x55,0x2A,0x55,0x00}, //55 60
- {0x00,0x41,0x41,0x7F,0x00,0x00}, // ] 61
- {0x04,0x02,0x01,0x02,0x04,0x00}, // ^ 62
- {0x40,0x40,0x40,0x40,0x40,0x00}, // _ 63
- {0x00,0x01,0x02,0x04,0x00,0x00}, // ' 64
- {0x20,0x54,0x54,0x54,0x78,0x00}, // a 65
- {0x7F,0x48,0x44,0x44,0x38,0x00}, // b 66
- {0x38,0x44,0x44,0x44,0x20,0x00}, // c 67
- {0x38,0x44,0x44,0x48,0x7F,0x00}, // d 68
- {0x38,0x54,0x54,0x54,0x18,0x00}, // e 69
- {0x08,0x7E,0x09,0x01,0x02,0x00}, // f 70
- {0x0C,0x52,0x52,0x52,0x3E,0x00}, // g 71
- {0x7F,0x08,0x04,0x04,0x78,0x00}, // h 72
- {0x00,0x44,0x7D,0x40,0x00,0x00}, // i 73
- {0x20,0x40,0x44,0x3D,0x00,0x00}, // j 74
- {0x7F,0x10,0x28,0x44,0x00,0x00}, // k 75
- {0x00,0x41,0x7F,0x40,0x00,0x00}, // l 76
- {0x7C,0x04,0x18,0x04,0x78,0x00}, // m 77
- {0x7C,0x08,0x04,0x04,0x78,0x00}, // n 78
- {0x38,0x44,0x44,0x44,0x38,0x00}, // o 79
- {0x7C,0x14,0x14,0x14,0x08,0x00}, // p 80
- {0x08,0x14,0x14,0x18,0x7C,0x00}, // q 81
- {0x7C,0x08,0x04,0x04,0x08,0x00}, // r 82
- {0x48,0x54,0x54,0x54,0x20,0x00}, // s 83
- {0x04,0x3F,0x44,0x40,0x20,0x00}, // t 84
- {0x3C,0x40,0x40,0x20,0x7C,0x00}, // u 85
- {0x1C,0x20,0x40,0x20,0x1C,0x00}, // v 86
- {0x3C,0x40,0x30,0x40,0x3C,0x00}, // w 87
- {0x44,0x28,0x10,0x28,0x44,0x00}, // x 88
- {0x0C,0x50,0x50,0x50,0x3C,0x00}, // y 89
- {0x44,0x64,0x54,0x4C,0x44,0x00}}; // z 90
- void main(void)//主程序
- {
- uint t;
- uchar k;
- uchar e;
- uchar x;
- uchar y;
- res=0;res=0;res=0;
- res=1;
- sce=1;
- sdin=1;
- sclk=1;
- write_byte(0x21,0);//初始化Lcd,功能設定使用擴充指令
- write_byte(0xd3,0);//設定液晶偏置電壓(高--低)
- write_byte(0x20,0);//使用基本指令
- write_byte(0x0C,0);//設定顯示模式,正常顯示
- while(1)
- {
- qp();//清屏
- for(t=0;t<40000;t++);//延時
- k=0;t=0;
- for(x=0;x<84;x++)
- {
- for(y=0;y<6;y++)
- {
- e=dal1[x][y];
- setadd(k,t);//寫地址
- write_byte(e,1);//寫數(shù)據(jù)
- k=k+1;
- if(k>83)t=t+1;
- if(k>83)k=0;
- if(t>6)t=0;
- }
- }
- for(t=0;t<40000;t++);//延時 */
- qp();//清屏
- xp();//寫一屏圖
- for(t=0;t<40000;t++);//延時
- }
- ;
- }
復制代碼 我只是參照了網(wǎng)上的程序,改過來的,直接用屏幕上亂七八糟的,新年的第一天,我可不想看到這些東西。不過程序還是最好修改一下,我就不弄了,本來就是拿來玩的。
|