51单片机 LCD1602只亮不显示东西

麻烦大神帮忙看一下!!有丶急

void lcdwrite_data(uchar dataa) //写数据函数
{
lcdrs=1;
P0=dataa;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init_LCD() //LCD初始化函数
{
lcden=0;
lcdwrite_com(0x38);
lcdwrite_com(0x0c);
lcdwrite_com(0x06);
lcdwrite_com(0x01);
lcdwrite_com(0x80);
}
void lcd_set_xy(uchar x,uchar y) //字符显示初始地址设置
{
uchar address;
if(y==0)
{
address=0x80+x;
}
else
address=0x40+x;
lcdwrite_com(address);

}
void lcdwrite_str(uchar x,uchar y,uchar *s) //显示字符串
{
lcd_set_xy(x,y);
while(*s)
{
lcdwrite_data(*s);
s++;
}
}
void lcdwrite_int(uchar x,uchar y,uint intdata) //显示无字符整数
{
uchar i=0,temp[5];
while(intdata/10||intdata%10)
{
temp[i]=intdata%10;
intdata/=10;
i++;
}
lcd_set_xy(x,y);
while(i)
{
i--;
lcdwrite_data(temp[i]+0x30);
}
}
void lcdclear(void) //lcd清屏函数
{
lcdwrite_com(0x01);
delay(5);
}

对于LCD1602不显示字符,一是先检查仿真电路对不对,再检查程序中定义的控制引脚与仿真图是否相符。因很多人都是从网上找的程序,与自己的仿真图并不相符,需要改程序的引脚定义,但没有改。二就是检查程序是不是写错了,虽然引脚定义对,但显示字符的程序不对。你没有发仿真图,所以,看程序是找不到原因的。追问

我是初学者 请问仿真图在那里看

追答

那你提问的,只亮不显示东西在那里看的?还是你自己猜的?

追问

我有实物板子 已经连好了 但是插上去过后只亮没显示

追答

有实物板子,更应该核对核子上1602的控制引脚与程序是否相同。你这个程序是买板子时店家给的,还是从网上找的?网上的程序与你的板子肯定是不符的,就不显示东西。

还有更重要的是,这个程序要用keil编译出HEX代码,再把HEX代码烧录到单片机里。不会是这些你没做吧,只是在电脑打完这个程序,就以为1602能显示东西了?

追问

这些我都做了 也把hex文件写进去了 没显示

追答

那程序是哪来的。还有,你的同学都统一焊接的,别人显示出字符了吗?如果别人都正常,只是你的板子不行,那是你的板子焊接有问题。

既然是老师给统一定做的,他应该有调试好的程序呀。难道他也不会,让你们自己写?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-23
如果仿真的话,看那仿真图和代码控制引脚匹配不。有物理开发板的话,先看看排针插反没。没得话把你原理图(也就是那电路图发给我)。还有1602(我现在忘了,我记得当时显示芯片有两种协议,一种是moto,一个是inter的(好像玩的是彩屏,不确定了))追问

可以给一个QQ吗 我不知道仿真图在哪看 我是有实物板

追答

你着急吗?明天能行吗?

给发电路图就行

哪家的开发板,云盘给个链接也行

实物确定排针没有插反对吗?

追问

明天可以 加个企鹅方便说一些 开发板是老师统一找商家做的 我们是自己焊上去的 排针是在LCD上面的 板子上是焊的排座 排针应该没有插反

追答

不想加,加上一堆事。所以给电路图就行了。你们老师可真负责

针脚对上,另外代码里面相关针脚也没弄错,对吗?

2738534500

小号

仿真图是指proteus仿真。

电路图一般是一个工程图纸,上面画的很多引脚,跳线。或pcb图,dsp图。让我知道哪些引脚接的那个

相似回答