第一种原因:初始化不成功 第二种原因:lcd正对着从左往右数第三个引脚直接接地了,应该加个10k或者可调电阻,用来调对比度 |
已解决, 貌似是没调晶振频率,还是谢谢大家了 |
lzt456 发表于 2021-7-23 10:48 1602的代码是通用的。不同的单片机可能要做一些延时上的调整,我用过5、6种1602,都可以直接用的。不用更改代码 |
调对比度 |
杨雪飞 发表于 2021-7-23 09:51 这个是我在网上买的 |
名字不是重点 发表于 2021-7-23 10:27 嗯,我去试试 |
yzwzfyz 发表于 2021-7-23 10:05 我是想用书上这种方式,把lcd点亮 |
Y_G_G 发表于 2021-7-23 06:39 这个我是知道的,我是感觉普中和这个书上的逻辑都没毛病,我把书上用作字符串做循环的放松也行,只是他自己这个程序有点问题,我是两个程序,一点一点试,发现其实原理都没问题,但是就书上这个有点毛病,但又说不出哪有点问题,但肯定是写入数据部分(数据手册看过的,基本原理大概清楚) |
看图说话:
![]() |
这种图形出现的原因就是初始化不成功。 分析你是用开发板所以不存在数据口没上拉的可能。认真读一下1602的时序图,发现代码有一个问题(不够强壮----逻辑不够严谨): 应该 是: lcd1602_e=1; lcd1602_db=data; lcd1602_e=0; 你可以再试一下。 |
未弄清显示原理,即使成功了,意义也不大。 未带你需要用到LCD时,自己还能整出来吗? 所以必须弄清楚原理。 |
普中家的程序只适用于普中家的1602,跟其他的不兼容。12864也是7920带字库的。试试其他的程序吧,具体哪里的问题没有细研究,反正手里的一块普中68000的就是这个问题,这也是我一直反对新手使用开发板学习的问题。1602还是非常好驱动的,程序也是大把的,只是普中的不知道出于什么目的,用了一块特殊的1602。另外你这个首先看下开发板跟1602DB连接的是不是P0口,P0口有没有上拉电阻,没有的话是万万不能显示的。还有那EN RS RW引脚对应了没有。 |
这个是对比度没调好吧。。。 |
我觉得"复制粘贴,试一下",这是学单片机最没效率的,个人看法 首先,数据手册一定要先看明白,知道它是怎么操作的,哪个指令是干嘛的,要不要上拉电阻,工作电压,延时要求 然后,可以上网找别人的代码,然后自己写(这个很重要),自己写完代码然后加上注释,比如它这个为什么0xff,数据手册里面哪个位是干嘛的 再然后,想办法显示一个点,或者一个字母"A"什么,不要一上来就写完整个程序,几百上千行代码,然后烧录一看..... 你只要能在LCD上面显示一个你想要显示的符号,基本上后面的事就简单了 |
来看一下51hei论坛里面解决此问题的痛苦经历吧: 51hei搜索框输入"1602 方块"或者"1602 黑块"或者"1602 白块"或者"1602 格": 这个是io口设置问题,最终搞定了:http://www.51hei.com/bbs/dpj-199732-1.html http://www.51hei.com/bbs/dpj-168643-1.html http://www.51hei.com/bbs/dpj-208189-1.html 既有可能是软件问题也有硬件问题 http://www.51hei.com/bbs/dpj-187378-1.html http://www.51hei.com/bbs/dpj-160754-1.html |