LCD1602液晶显示屏没显示数据

2019-07-16 02:59发布

LCD1602.rar (44.21 KB, 下载次数: 45) 这个是ISIS图
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
//50US秒延时
sbit rs=P2^4;
sbit rw=P2^5;
sbit e=P2^6;
uchar table1[]="kkkk";
uchar table2[]="1234";

void delay_50us(x)//延时
{
uchar j;
for(;x>0;x--);
for(j=19;j>0;j--);
}
void xie_com(uchar com)//开启写
{
e=0;
rs=0;
rw=0;
P0=com;
delay_50us(10);
e=1;
delay_50us(20);
e=0;
}
void xie_data(uchar dat)//写数据
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_50us(10);
e=1;
delay_50us(20);
e=0;
}
void init(void)//初始化函数
{
delay_50us(300);
xie_com(0x38);
delay_50us(100);
xie_com(0x38);
delay_50us(100);
xie_com(0x38);
xie_com(0x38);
xie_com(0x08);
xie_com(0x01);
xie_com(0x06);
xie_com(0x0c);

}

main()
{
uchar j;
init();//初始化
xie_com(0x80);//第1行起始位子
for(j=0;j<16;j++)
{
  xie_data(table1[j]);
  delay_50us(10);
}
xie_com(0x80+0x40);//第2行起始位子
for(j=0;j<16;j++)
{
  xie_data(table2[j]);
  delay_50us(10);
}
while(1);
}
发现LCD1602没显示数据!
123.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
abc1323202239
2019-07-17 04:50
zhihuizhou 发表于 2012-12-28 15:23
不是说他简单没人回复,而是说这个程序没有一点注释  其实首先应该自己经过努力 然后将问题描述清楚, 这 ...

真抱歉。。。
忘了注释,不好意思
出现乱码,大概是因为循环第4次的时候就没了数据(就是读完四个k后 uchar table1[]="kkkk";)
解决方法就判断有没有结束符‘'就可以了。

一周热门 更多>