标题:
单片机+lcd1602显示错误问题
[打印本页]
作者:
whb1997
时间:
2019-12-21 11:58
标题:
单片机+lcd1602显示错误问题
用超声波和lcd做了个测距,但是发现字符有的显示不正确,就写了个lcd单独显示的程序,发现和之前错误的是一样的。
搞不懂是什么原因导致的。
IMG_20191221_115535.jpg
(2.84 MB, 下载次数: 24)
下载附件
2019-12-21 12:00 上传
代码和显示图片如下:
#include <reg52.h>
sbit LCDEN=P3^4;
sbit LCDRS=P3^5;
sbit U1=P2^6;
sbit U2=P2^7;
unsigned char code table[]={"Distance:"};
void delayms(unsigned int);
void write_com(unsigned char com)
{
LCDRS=0;
P0=com;
delayms(10);
LCDEN=1;
delayms(10);
LCDEN=0;
}
void write_date(unsigned char date)
{
LCDRS=1;
P0=date;
delayms(10);
LCDEN=1;
delayms(10);
LCDEN=0;
}
void init()
{
U1=0;
U2=0;
LCDEN=0;
write_com(0x38);
write_com(0x0C);
write_com(0x06);
write_com(0x01);
}
void main()
{ unsigned char num;
init();
write_com(0x80);
for(num=0;num<=8;num++)
{
write_date(table[num]);
}
while(1);
}
void delayms(unsigned int ms)
{
unsigned int x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);}
[attach]213594[/attach]
作者:
杨雪飞
时间:
2019-12-21 17:04
unsigned char code table[]={"Distance:"};
table 改成 strins试试。
作者:
wulin
时间:
2019-12-21 19:18
本帖最后由 wulin 于 2019-12-21 21:21 编辑
代码没有任何问题,像是硬件问题引起的,楼主把P0插针上的杜邦线拔掉试试,有可能因此引入干扰导致数据错误。
作者:
萌萌哒啊
时间:
2019-12-21 21:57
把大括号去掉
作者:
诸天明月
时间:
2019-12-23 08:15
你要展示的内容是字符串,所以
unsigned char code table[]="Distance:"; //注意不可以大括号
void main()
{ unsigned char num;
init();
write_com(0x80);
for(i=0;table[i]!='\0';i++)
{
write_date(table[i]);
}
while(1);
}即可
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1