单片机1602
代码能编译出来,但是1602只显示第一行的白块#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
#define write_date
uchar code table[]="I LOVE YOU!";
uchar code table1[]="WELCOME YOU !";
sbit lcden=P2^4;
sbit lcdrs=P2^5;
sbit lcdrw=P2^3;
uchar num;
void delay (uint xms)
{
uint i, j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
uchar busy()
{
uchar lcd_status;
lcdrs=0;lcdrw=1;
lcden=1;
delay(50);
lcd_status=P0;
lcden=0;
return lcd_status;
}
void write_com(uchar com)
{
while((busy()&0x80)==0x80);
lcdrw=0;lcdrs=0;
P0=com;
delay(50);
lcden=1;
delay(50);
lcden=0;
}
void write_data(uchar date)
{
while((busy()&0x80)==0x80);
lcdrw=0;lcdrs=1;
P0=date;
delay(50);
lcden=1;
delay(50);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()
{
init();
write_com(0x80);
for(num=0;num<11;num++)
{
write_date(table);
delay(50);
}
write_com(0x80+0x40);
for(num=0;num<13;num++)
{
write_date(table1);
delay(50);
}
while(1);
}
页:
[1]