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中没显示

追答

我试过你程序可以啊 你把图和程序发到我邮箱吧 我看看 863600301@qq.com

温馨提示:内容为网友见解,仅供参考
无其他回答

proteus仿真1602无显示
原因就是把RS,RW,EN全接到P0就不行的,因P0口每个引脚都要加上拉电阻,而你没有加,所以,P0口就不能输出高电平,只有低电平,那个RS应该是高电平,为红点,可接到P0口是灰点,表示引脚处于悬空状态,因内部输出高电平,但实际上是悬空状态了。你的排电阻接到数据口P2上了,不用的,把排电阻...

新手!1602液晶在proteus上仿真的问题。我是参考郭天祥的教程写的程序...
与仿真图不一致呀。把仿真图按程序改一下就好了,或者按仿真图改一下程序。

求助,为什么这个闹钟程序在Proteus液晶屏幕不显示东西
如果是1602的话,实物能显示,仿真可能显示不了,因为时序不太一样 如果是12864的话,12864型号比较多种,但proteus当中是不带中文的,如果需要显示中文需要绘图,类似于点阵

proteus仿真是1602液晶不显示字符 求高人指点
绝b是程序的问题吧,程序发过来我看看,后者你先认真参考一下时序,单片机难就难在这个时序上面。电路图没错啊,我照你的画了,刚好我这里有以前做实验的程序,试了一下没问题,不过我的程序里面有关于中断的东东,电路有点不一样,但我是试了你的电路的,说明电路没问题。程序如下,你拷贝过去试试...

proteus仿真80c51测无极性电容时1602显示的数值一直为0。程序太长了...
看你的仿真图,被测电容和电感组成谐振电路,再用运放处理后送P3.5去计数,是这样吗。那你首先必须要保证运放有方波信号输出,才能用计数器计数。在运放的输出端接示波器,看看有方波信号吗。示波器如下图所示。

proteus仿真 为什么液晶1602不显示字符 求高人指点
P0口,需要外接上拉电阻,否则就不能形成高电平。你看,有几个引脚,都是灰色的。

LCD1602 proteus仿真 逻辑冲突 引脚间歇显示黄色
我在做1602仿真程序的时候,发现总是报黄色感叹号,但是可以正常显示。我也找到过好多例子,发现几乎每个人做的1602仿真都会出现报黄色感叹号的情况,提示。 所以应该是软件的问题

如何将proteus中的1602液晶屏放到proteus里面??
1、使用proteus打开一个工程,点击DEVICES的P,准备放置元件。2、在Pick Devices对话框中的“Category”列表找到“Optoelectronics”。在“Sub-category”列表中选择“Alphanumeric LCDs”。3、可以在右侧的Results中看到可以使用的LCD元件,其中Description列名了分辨率,16x2即为1602,确认后点击“OK”键,如下...

Proteus 中1602的一个问题
write_data(table3[num3]);delayms(5);} 1.那个0x10 是十进制 16, 你那条命令的意思是将光标移到地2行第16列, 那能对吗?16列已经超出屏幕了!2. 你那个、" Sun Runli"是10个字符,你循环却用16 这样会出现乱码 正确的该法是 write_com(0x80+0x40+0);for(num3=0;num3<10;num...

如何在proteus中找到1602显示屏
1、使用proteus打开一个工程,点击DEVICES的P,准备放置元件。2、在Pick Devices对话框中的“Category”列表找到“Optoelectronics”。在“Sub-category”列表中选择“Alphanumeric LCDs”。3、可以在右侧的Results中看到可以使用的LCD元件,其中Description列名了分辨率,16x2即为1602,确认后点击“OK”键,如下...

相似回答
大家正在搜