标题: lcd1602显示问题 只显示一行黑色的方格? [打印本页]

作者: 布宜诺斯艾利斯    时间: 2017-11-30 16:42
标题: lcd1602显示问题 只显示一行黑色的方格?
为什么我用lcd1602做万年历,当我给板子上电后,无论放不放单片机都只显示一行黑色的方格?有哪位做过lcd1602的朋友知道是怎么回事吗,该怎么解决?

作者: gaozhaohong    时间: 2017-11-30 18:51
调整一下背光看看。
作者: 不倒翁.WZT    时间: 2017-11-30 19:39
标题: RE: lcd1602显示问题
一、检查1302和1602时序延时是否合乎要求。时钟信号是否按1602的要求输入。等等。
作者: 不倒翁.WZT    时间: 2017-11-30 19:41
标题: RE: lcd1602显示问题
最好将程序贴出来。
作者: wulin    时间: 2017-11-30 21:16
有一行黑色的方格可以认为此屏基本正常,多数是驱动程序不正常。
作者: le51    时间: 2017-11-30 21:52
调节一下对比度,不行的话就检查驱动程序是否有错,可以先用简单的显示程序测试调节
作者: 布宜诺斯艾利斯    时间: 2017-12-1 19:31
不倒翁.WZT 发表于 2017-11-30 19:41
最好将程序贴出来。
  1. void delay(unsigned int xms) // 延时x ms
  2. {
  3. unsigned int x,y;
  4. for(x=xms;x>0;x--)
  5. for(y=110;y>0;y--);
  6. }
  7. void in1602(unsigned char x)//向1602写入一个控制字
  8. {
  9.         unsigned char t;
  10.         RW=0;
  11.         P0=x;
  12.         for(t=0;t<10;t++);//延时
  13.         E=1;
  14.         for(t=0;t<10;t++);//延时
  15.         E=0;
  16. }
  17. void init1602()//初始化1602
  18. {
  19.         delay(15);
  20.         RS=0;//写指令寄存器
  21.         in1602(0x38);//显示模式
  22.         delay(5);
  23.         in1602(0x38);
  24.         delay(5);
  25.         in1602(0x38);
  26.         delay(5);
  27.         in1602(0x06);//输入模式
  28.         in1602(0x0c);//显示开
  29.         in1602(0x01);//清屏
  30. }
  31. void wr1602(unsigned char d[],a)//向1602写入数据
  32. {
  33.         unsigned char i;
  34.         unsigned int t;
  35.         RS=0;
  36.         in1602(a);//输入显示地址
  37.         for(t=0;t<300;t++);//延时约1.6ms
  38.         RS=1;//允许写
  39.         for(i=0;i<16;i++)
  40.         {
  41.                 in1602(d[i]);//依次输入存放在d[]中的16进制数据
  42.                 for(t=0;t<300;t++);延时约1.6秒
  43.         }
  44. }
复制代码

和lcd1602有关的几个函数都在这里了,帮忙看一下有没有什么问题呗
作者: LGH850    时间: 2017-12-1 20:10
我之前也有碰到过,我那是程序没完全烧进去,还是接线没接对或脚位短路都会引起这个症状!
作者: 无量寿经    时间: 2017-12-1 21:01
单片机没向1602发数据就是这个结果,建议阅读《51单片机轻松入门 基于STC15W4K系列》第13章。附件为程序源码。 第13章 1602液晶.rar (147.98 KB, 下载次数: 40)









作者: ztf218    时间: 2017-12-1 21:04
布宜诺斯艾利斯 发表于 2017-12-1 19:31
和lcd1602有关的几个函数都在这里了,帮忙看一下有没有什么问题呗

也许是硬件问题   以前我晶振电容选错了,就出现过这种情况
作者: ztf218    时间: 2017-12-1 21:06
也许是硬件电路的问题,之前我晶振电路电容选择错了,就出现过这种情况,换了一个电容接着就好了
作者: 布宜诺斯艾利斯    时间: 2017-12-1 21:14
LGH850 发表于 2017-12-1 20:10
我之前也有碰到过,我那是程序没完全烧进去,还是接线没接对或脚位短路都会引起这个症状!

你的LCD1602第三引脚(vo)是直接接地还是加了电阻或电位器?我是直接接地的
作者: nls    时间: 2020-3-25 17:33
兄弟,你当初的问题解决了么,我现在也是把单片机拔掉,也是只显示一行的黑色方块,是第三引脚的问题么,我电位器还有两三天才到
作者: xianming    时间: 2020-3-25 18:20
nls 发表于 2020-3-25 17:33
兄弟,你当初的问题解决了么,我现在也是把单片机拔掉,也是只显示一行的黑色方块,是第三引脚的问题么,我 ...

把单片机拔掉,1602没有初始化,只显示方格很正常。
还有,尽量不要挖坟。
作者: nls    时间: 2020-3-26 15:36
xianming 发表于 2020-3-25 18:20
把单片机拔掉,1602没有初始化,只显示方格很正常。
还有,尽量不要挖坟。

但是不拔掉也是一样的结果啊
作者: down1    时间: 2020-3-26 19:57
调节背光
作者: 123min    时间: 2020-3-28 21:05
我也遇到这个问题了 然后我拔掉单片机 测了一下D0~D7的电压 只有只有D6是0 请问是因为这个原因吗?
作者: nls    时间: 2020-3-29 18:51
nls 发表于 2020-3-26 15:36
但是不拔掉也是一样的结果啊

我的问题解决了,我单片机当初是用的USB供电,然后1602用的是面包板电源,这两者的电压应该有偏差,所以一直不显示,然后我用面包板电源给单片机供电之后问题就解决了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1