這幾天在學液晶模塊的用法,寫了一個簡單的顯示程序。
P1口走數據,其他接口見程序注釋(晶振11.0592)
單片機源程序如下:
- #include <reg52.h> //此程序用于1602液晶從左側飛入顯示
- #define ui unsigned int
- #define uc unsigned char
- /*數據口是P1*/
- sbit rs=P2^3; //定義管腳
- sbit rw=P2^4;
- sbit e =P2^5;
- uc num;
- uc code t[]="Hello,";
- uc code t1[]="World!";
- void delay(ui x) //毫秒延時
- {
- ui i,j;
- for(i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
- void w_com(ui com) //寫命令
- {
- rs=0;
- rw=0;
- P0=com;
- delay(5);
- e=1;
- delay(5);
- e=0;
- }
- void w_data(ui dat) //寫數據
- {
- rs=1;
- rw=0;
- P0=dat;
- delay(5);
- e=1;
- delay(5);
- e=0;
- }
- void init() //初始化
- {
- w_com(0x38);
- w_com(0x0c);
- w_com(0x06);
- w_com(0x01);
- }
- void shan() //二極管閃爍
- {
- P1=0x00;
- delay(200);
- P1=0xff;
- delay(200);
- P1=0x00;
- delay(200);
- P1=0xff;
- }
- void main()
- {
- init();
- delay(5);
-
- w_com(0x80+0x10); //調數據指針
- num=0; //寫第一行
- while(num<6)
- {
- w_data(t[num]);
- delay(5);
- num++;
- }
- delay(5);
- w_com(0x80+0x50); //調數據指針
- num=0; //寫第二行
- while(num<6)
- {
- w_data(t1[num]);
- delay(5);
- num++;
- }
- delay(5);
-
- for(num=16;num>0;num--) //左移
- {
- w_com(0x18);
- delay(300);
- }
- shan();
- while(1);
- }
復制代碼
所有資料51hei提供下載:
cs1602.rar
(16.49 KB, 下載次數: 5)
2020-2-28 23:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|