|
兩個(gè)C51單片機(jī)的測(cè)試程序,一個(gè)是連接八條數(shù)據(jù)線的,另一個(gè)是連接四條數(shù)據(jù)線的。附件里有原程序和proteus仿真文件。
Snap3.jpg (68.49 KB, 下載次數(shù): 87)
下載附件
2019-6-27 15:50 上傳
Snap4.jpg (60.25 KB, 下載次數(shù): 83)
下載附件
2019-6-27 15:50 上傳
單片機(jī)源程序如下:
- /*=========================================================
- LCD2004模擬口線接線方式 連接線圖: =
- ---------------------------------------------------- =
- | LCM-----51 | LCM-----51 | LCM------51 | | =
- ---------------------------------------------------| =
- | | RS -------P3.5 | | =
- | | RW------- GND | | =
- | | E --------P3.4 | | =
- | | | | =
- | DB4-----P0.4 | | | =
- | DB5-----P0.5 | | | =
- | DB6-----P0.6 | | | =
- | DB7-----P0.7 | | | =
- ---------------------------------------------------- =
- [注:AT89S51 使用 11.0592M 晶體震蕩器] =
- =========================================================*/
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit LCM_RS=P3^5; //定義引腳
- sbit LCM_E =P3^4;
- sbit LED =P2^5;//LED 的輸出鎖存端
- sbit dula =P2^6;//數(shù)碼管的段鎖存端 74HC573
- sbit wela =P2^7;//數(shù)碼管的位鎖存端
- #define LCM_Data P0
- #define Busy 0x80 //用于檢測(cè) LCM 狀態(tài)字中的 Busy 標(biāo)識(shí)
- uchar num;
- uchar code table0[]="ABCDEFGHIJKLMNOPQRST";
- uchar code table1[]="01234567890123456789";
- uchar code table2[]="UVWXYZ!@#%&?+<[>]*-;";
- uchar code table3[]="abcdefghijklmnopqrst";
- void delay(uint z)//延時(shí)函數(shù)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- //寫(xiě)數(shù)據(jù) RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖
- void WriteDataLCM(uchar Data)
- {
- LCM_RS = 1;
- LCM_E = 0;
- LCM_Data =(Data & 0xF0);
- LCM_E = 1;
- delay(5);
- LCM_E = 0;
- LCM_Data =(Data & 0x0F)<<4;
- LCM_E = 1;
- delay(5);
- LCM_E = 0;
- }
- //寫(xiě)指令 RS=L,RW=L,D0~D7=指令碼,E=高脈沖
- void WriteCommandLCM(uchar Command)
- {
- delay(5); //短暫延時(shí),代替檢測(cè)忙狀態(tài)
- LCM_RS = 0;
- LCM_E = 0;
- LCM_Data =( Command & 0xF0);
- LCM_E = 1;
- delay(5);
- LCM_E = 0;
- LCM_Data =( Command & 0x0F )<<4;
- LCM_E = 1;
- delay(5);
- LCM_E = 0;
- }
- //讀數(shù)據(jù) RS=H,RW=H,E=H
- //讀狀態(tài) RS=L,RW=H,E=H
- //由于不要檢測(cè)忙,所以讀數(shù)據(jù)和讀狀態(tài)兩個(gè)函數(shù)省略
- void LCMInit(void) //LCM 初始化
- {
- WriteCommandLCM(0x03);
- delay(5);
- WriteCommandLCM(0x02);
- delay(5);
- WriteCommandLCM(0x28); //顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào)
- WriteCommandLCM(0x0C);
- WriteCommandLCM(0x06); // 顯示光標(biāo)移動(dòng)設(shè)置
- WriteCommandLCM(0x01);
- delay(5);
- }
- void main(void)
- {
- LED=0; //將LED的鎖存端關(guān)閉
- dula=0;//將數(shù)碼管的段鎖存端關(guān)閉
- wela=0;//將數(shù)碼管的位鎖存端關(guān)閉
- LCMInit(); //LCM 初始化
- //第一行顯示
- WriteCommandLCM(0x80+0x00);
- for(num=0;num<20;num++)
- {
- WriteDataLCM(table0[num]);
- delay(250);
- }
- //第二行顯示
- WriteCommandLCM(0x80+0x40);
- for(num=0;num<20;num++)
- {
- WriteDataLCM(table1[num]);
- delay(250);
- }
- //第三行顯示
- WriteCommandLCM(0x80+0x14);
- for(num=0;num<20;num++)
- {
- WriteDataLCM(table2[num]);
- delay(250);
- }
- //第四行顯示
- WriteCommandLCM(0x80+0x54);
- for(num=0;num<20;num++)
- -----限于篇幅余下內(nèi)容下載附件----------
復(fù)制代碼
所有資料51hei提供下載:
2004液晶測(cè)試程序.rar
(79.32 KB, 下載次數(shù): 49)
2019-6-27 15:50 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|