標題:
at89c51控制的lcd1602顯示
[打印本頁]
作者:
啊哈哈000
時間:
2017-5-2 22:31
標題:
at89c51控制的lcd1602顯示
自己學了很長時間,功夫不負有心人,終于懂點了。
0.png
(22.52 KB, 下載次數(shù): 111)
下載附件
2017-5-2 23:07 上傳
0.png
(49.33 KB, 下載次數(shù): 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)//寫數(shù)據(jù)
{
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); //連續(xù)3次,確保成功
delay(5);
write_com(0x0c);//設置開顯示,不顯示光標
delay(5);
write_com(0x06);//每次寫數(shù)據(jù)后地址指針加1
delay(5);
write_com(0x01);//清屏
delay(5);
}
void main()//主程序
{
uchar x,y;
init();
write_com(0x80);//第一行地址基數(shù)
for(x=0;x<10;x++)
{
write_date(table1[x]);
delay(5);
}
write_com(0xC0);//第二行地址基數(shù)
for(y=0;y<13;y++)
{
write_date(table2[y]);
delay(5);
}
while(1);
}
復制代碼
下載:
lcd1602.zip
(34.92 KB, 下載次數(shù): 44)
2017-5-2 22:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
ptlantu
時間:
2018-6-20 14:12
學習了,感謝分享
作者:
xiaofeiyang
時間:
2020-4-17 19:14
前輩可以留個聯(lián)系方式嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1