自己學了很長時間,功夫不負有心人,終于懂點了!!
0.png (22.52 KB, 下載次數: 111)
下載附件
2017-5-2 23:07 上傳
0.png (49.33 KB, 下載次數: 77)
下載附件
2017-5-2 23:07 上傳
- #include <reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code table1[]="SMILE -_-!"; //第一行需要的字符
- uchar code table2[]="HI,HONEY!_HYC";//第二行需要的字符
- sbit RS=P2^0;
- sbit RW=P2^1;
- sbit E=P2^2;
- void delay(uint t)//延時程序
- {
- uint i,j;
- for(i=t;i>0;i--);
- for(j=110;j>0;j--);
- }
- void write_com(uchar com)//寫指令
- {
- RS=0;
- RW=0;
- P0=com;
- delay(5);//延時,給硬件反應時間
- E=1;
- delay(5);
- E=0;
- }
- void write_date(uchar date)//寫數據
- {
- RS=1;
- RW=0;
- P0=date;
- delay(5);
- E=1;
- delay(5);
- E=0;
- }
- void init()//LCD初始化
- {
- E=0;
- delay(15);
- write_com(0x38); //設置8位格式
- delay(5);
- write_com(0x38);
- delay(5);
- write_com(0x38); //連續3次,確保成功
- delay(5);
- write_com(0x0c);//設置開顯示,不顯示光標
- delay(5);
- write_com(0x06);//每次寫數據后地址指針加1
- delay(5);
- write_com(0x01);//清屏
- delay(5);
- }
- void main()//主程序
- {
- uchar x,y;
- init();
- write_com(0x80);//第一行地址基數
- for(x=0;x<10;x++)
- {
- write_date(table1[x]);
- delay(5);
- }
- write_com(0xC0);//第二行地址基數
- for(y=0;y<13;y++)
- {
- write_date(table2[y]);
- delay(5);
- }
- while(1);
- }
復制代碼
下載:
lcd1602.zip
(34.92 KB, 下載次數: 44)
2017-5-2 22:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|