#include <REG52.H>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]="I Love MCU!";
uchar code table2[]="www.TXMCU.com";
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
char num;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com)
{
lcden=0;//開始時使能端為低電平
lcdrs=0;//數據H/指令L選擇端
P0=com;//(數據或指令碼)顯示模式設置
delay(5);//為使液晶顯示穩定稍微延遲
lcden=1;//高脈沖信號
delay(5);//
lcden=0;//
}
void write_data(uchar date)
{
lcden=0;
lcdrs=1;//寫數據
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void main()
{
dula=0;
wela=0;//為了防止數碼管顯示錯誤
//初始化設置(即,寫指令操作時序設置)
write_com(0x38);
write_com(0x0f);
write_com(0x06);
write_com(0x01);
//第一行數據指針位置設置
write_com(0x80+0x10);//定位數據指針,在非顯示區域地址處
for(num=0;num<11;num++)
{
write_data(table1[num]);
delay(5);//為了各個字符的有序顯示
}
//第二行指針位置設置
write_com(0x80+0x50);//定位數據指針,在非顯示區域地址處
for(num=0;num<13;num++)
{
write_data(table2[num]);
delay(5);
}
for(num=0;num<16;num++)
{
write_com(0x18);
delay(200);
}
//輸入結束后不再顯示光標
write_com(0x0c);
while(1);
}
|