因1602每個(gè)字符用5*8點(diǎn)陣所以只能顯示簡(jiǎn)單的字符,以下程序?yàn)榱撕?jiǎn)潔只顯示一個(gè)中文“年”
1 /*
2 RS =數(shù)據(jù)/命令選擇端(H/L)
3 R/W=讀/寫選擇端(H/L)因TX-1X開發(fā)板此腳接地所以只能寫不能讀取,故本程序不讀只寫
4 此試驗(yàn)板1602液晶接P0口故此數(shù)據(jù)通過P0傳送
5 lilongjiang@live.com 8/16/2010
6 */
7
8 #include
9 #define uchar unsigned char
10 #define uint unsigned int
11 sbit EN=P3^4;
12 sbit RS=P3^5;
13 sbit dula=P2^6; //斷選
14 sbit wela=P2^7; //位選 因這兩個(gè)芯片也接在P0口故使用液晶避免造成電壓低故關(guān)閉這兩個(gè)芯片
15 uchar code year[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02};
16 void delay(uint);
17 uchar i;
18 void write_com(uchar com) //寫命令
19 {
20 RS=0;
21 P0=com;
22 delay(1);
23 EN=1;
24 EN=0;
25 }
26 void write_data(uchar date) //寫數(shù)據(jù)
27 {
28 RS=1;
29 P0=date;
30 delay(1);
31 EN=1;
32 EN=0;
33 }
34 void init()
35 {
36 EN=0;
37 dula=0; //關(guān)閉斷選
38 wela=0; //關(guān)閉位選
39 write_com(0x38); //開顯示
40 write_com(0x0F); //光標(biāo)
41 write_com(0x06); //指針
42 }
43 void main()
44 {
45 init();
46 write_com(0x40); //將自定義字符寫入CGRAM
47 for(i=0;i<9;i++) //循環(huán)8次寫入
48 {
49 write_data(year[i]);
50 }
51 write_com(0x80); //寫入初始地址
52 write_data(0x00);
53 while(1);
54 }
55 void delay(uint x)
56 {
57 uint i;
58 while(x--)
59 for(i=0;i<110;i++);
60 }