微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么LCD1602只显示一个8呢?求大神帮忙

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

时间:10-02 整理:3721RD 点击:
#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!='\0')
{
  w_dat(*p);
  p++;
}
}
void main()
{
chushihua();
w_cmd(0x80);
w_str(str1);
w_cmd(0xC0);
w_str(str2);
while(1);
}
结果只显示一个‘8’

不要乱遭函数。看看你的w_str(str1);多看看数据手册是怎建议的。建议看看郭天祥视频就十讲,包你明白。这个最好自己调试。不要有什么都问,,,既然都显示一个了害怕不显示其余的吗?自己调试出你会开心的。还有建议不要居于单片机,现在单片机弱爆了,除了工业控制现在应用比较低端。但是基础打好要,这个单片机血透了,计算机原理你就懂了80%懂了,再加上操作系统。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top