为什么LCD1602只显示一个8呢?求大神帮忙

2019-07-15 21:53发布

#include<reg52.h>
#include<intrins.h>
typedef unsigned char uchar;
uchar code str1[]={"861066456"};
uchar code str2[]={"number"};
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P2^5;

void delay()   //判断LCD是否繁忙
{
P0=0xff;
do
{
  RS=0;
  RW=1;
  EN=0;
  EN=1;
}while(P0^7==1);
EN=0;
}

void w_cmd(uchar mingling)
{
delay();
EN=0;
RS=0;
RW=0;
P0=mingling;
EN=1;
EN=0;
}

void w_dat(uchar shuju)
{
delay();
EN=0;
RS=1;
RW=0;
P0=shuju;
EN=1;
EN=0;
}



void chushihua()
{
w_cmd(0x38);
w_cmd(0x0c);
w_cmd(0x06);
w_cmd(0x01);
}

void w_str(uchar *p)
{
while(*p!='')
{
  w_dat(*p);
  p++;
}
}

void main()
{
chushihua();
w_cmd(0x80);
w_str(str1);
w_cmd(0xC0);
w_str(str2);
while(1);
}

结果只显示一个‘8’

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
fafactx
1楼-- · 2019-07-16 03:50
不要乱遭函数。看看你的w_str(str1);多看看数据手册是怎建议的。。建议看看郭天祥视频就十讲,包你明白。。。。这个最好自己调试。不要有什么都问,,,既然都显示一个了害怕不显示其余的吗?自己调试出你会开心的。。还有建议不要居于单片机,现在单片机弱爆了,除了工业控制现在应用比较低端。。。但是基础打好要,这个单片机血透了,计算机原理你就懂了80%懂了,再加上操作系统。。。。

一周热门 更多>