#include<reg52.h>
#include<string.h>
sbit RS=P2^3;
sbit RW=P2^4;
sbit EN=P2^5;
#define uchar unsigned char
#define uint unsigned int
void init(void);
void write_com(uchar com);
void write_dat(uchar dat);
void delay_5ms(void);
void message(uchar *p);
void left(void);
uchar code table1[]=" FAIRNESS";
uchar code table2[]=" VIRTUOUS";
uchar code table3[]="ZHENGZHIMIN";
uchar code table4[]="I LOVE YOU!";
void main(void)
{
init();
message(table1);
write_com(0x80+0x42);
message(table2);
write_com(0x80+0x03+0x10);
message(table3);
write_com(0x80+0x43+0x10);
message(table4);
left();
while(1);
}
void left(void)
{
uchar j;
for(j=0;j<16;j++)
{
write_com(0x18);
delay_5ms();
}
}
void message(uchar *p)
{
uchar num,i;
num=strlen(p);
for(i=0;i<num;i++)
{
write_dat(p[i]);
delay_5ms();
}
}
void init(void)
{
RW=0;
EN=0;
write_com(0x38);
write_com(0x01);
write_com(0x0c);
write_com(0x06);
write_com(0x80+0x02);
}
void write_com(uchar com)
{
RS=0;
P0=com;
delay_5ms();
EN=1;
delay_5ms();
EN=0;
}
void write_dat(uchar dat)
{
RS=1;
P0=dat;
delay_5ms();
EN=1;
delay_5ms();
EN=0;
}
void delay_5ms(void) //误差 -0.000000000011us
{
unsigned char a,b,c;
for(c=3;c>0;c--)
for(b=44;b>0;b--)
for(a=173;a>0;a--);
}
这个你看看吧!是我原来做的简单的LCD1602程序,IO口不同而已。
|