1602在proteus中仿真不出来,是不是我的程序出错了?

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit E = P3^6;
sbit RW=P3^5;
sbit RS=P3^4;
void delayms(uint i)
{
uint j,e;
for(e=i;e>0;e--)
for(j=110;j>0;j--);
}
void LCD1602Write_data(uchar i)
{
RS=0;
P0=i;
delayms(11);
E=1;
delayms(11);
E=0; //先写入,再开使能端
delayms(11);

}
void LCD1602Write_com(uchar i)
{
RS=1;
P0=i;
delayms(11);
E=1;
delayms(11);
E=0; //先写入,再开使能端
delayms(11);

}
void LCD1602Init()
{
RW=0;
RS=0;
LCD1602Write_com(0x01);
LCD1602Write_com(0x38);
LCD1602Write_com(0x0F);
LCD1602Write_com(0x06);
}
void main()
{
unsigned char Code1[]="I LOVE MCU!";
unsigned char m;
RW=0;
LCD1602Init();
LCD1602Write_com(0x80+0x01);
while(1)
{
for(m=0;m<11;m++)
{
LCD1602Write_data(Code1[m]);
delayms(11);
}

}
}

哥们 你的 时序看错了吧 那个写数据和命令的 R/S 你在函数中写反了 data函数中因为rs=1
com函数中 rs = 0追问

改了,还是在proteus中没显示

追答

我试过你程序可以啊 你把图和程序发到我邮箱吧 我看看 [email protected]

温馨提示:答案为网友推荐,仅供参考
相似回答