代码如下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;
sbit lcdrw=P2^1;
sbit e1=P2^2;
void delay(uchar i) //延时1ms函数
{
uchar x,y;
for(x=i;x>0;x--)
for(y=110;y>0;y--)
;
}
void write_com(uchar c) //写 命令
{
RS=0;
lcdrw=0;
delay(2);
P0=c;
delay(5);
e1=1;
delay(5);
}
void write_date(uchar d) //写数据
{
RS=1;
lcdrw=0;
// delay(2);
P0=d;
delay(5);
e1=1;
delay(1);
// e1=0;
}
void LcdInt(void) //初始化函数
{
delay(15); //延时15ms,首次写指令时应给LCD一段较长的反应时间
write_com(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口
delay(5); //延时5ms
write_com(0x38);
delay(5);
write_com(0x38); //3次写 设置模式
delay(5);
write_com(0x0F); //显示模式设置:显示开,有光标,光标闪烁
delay(5);
write_com(0x06); //显示模式设置:光标右移,字符不移
delay(5);
write_com(0x01); //清屏幕指令,将以前的显示内容清除
delay(5);
}
void main() //主函数
{uchar j;
e1=0;
LcdInt();
write_com(0x0f);
write_date('A');
}
我只要显示A,可是可是整个屏幕都是A呀!是怎么回事 |