烧完程序上电后屏幕第二行出现16个5*7的白色方框,求大神指教。程序和电路都是按照郭天祥书上来的(LCDRW引脚已经接地),已经郁闷一天了。。。
#include<reg52.h>
#define uchar unsigned char
uchar code table[]="TRACY";
uchar code table1[]="KENNY";
uchar num;
sbit lcdrs=P2^5;
//sbit lcdrw=P2^6;
sbit lcden=P2^7;
void delay_ms(uchar x)
{
uchar i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void write_com(uchar com)
{
lcdrs=0;
//lcdrw=0;
P0=com;
delay_ms(5);
lcden=1;
delay_ms(5);
lcden=0;
}
void write_dat(uchar dat)
{
lcdrs=1;
//lcdrw=0;
P0=dat;
delay_ms(5);
lcden=1;
delay_ms(5);
lcden=0;
}
void init()
{
lcden=0;
//lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()
{
init();
write_com(0x80);
for(num=0;num<5;num++)
{
write_dat(table[num]);
delay_ms(5);
}
write_com(0x80+0x40);
for(num=0;num<5;num++)
{
write_dat(table1[num]);
delay_ms(5);
}
while(1);
}
#include<reg52.h>
#define uchar unsigned char
uchar code table[]="TRACY";
uchar code table1[]="KENNY";
uchar num;
sbit lcdrs=P2^5;
//sbit lcdrw=P2^6;
sbit lcden=P2^7;
void delay_ms(uchar x)
{
uchar i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void write_com(uchar com)
{
lcdrs=0;
//lcdrw=0;
P0=com;
delay_ms(5);
lcden=1;
delay_ms(5);
lcden=0;
}
void write_dat(uchar dat)
{
lcdrs=1;
//lcdrw=0;
P0=dat;
delay_ms(5);
lcden=1;
delay_ms(5);
lcden=0;
}
void init()
{
lcden=0;
//lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()
{
init();
write_com(0x80);
for(num=0;num<5;num++)
{
write_dat(table[num]);
delay_ms(5);
}
write_com(0x80+0x40);
for(num=0;num<5;num++)
{
write_dat(table1[num]);
delay_ms(5);
}
while(1);
}


