#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);
}
|