搜索
bottom↓
回复: 5

关于 LCM 1602 在 4bit 4位 接线方式下的使用

[复制链接]

出0入0汤圆

发表于 2010-10-23 22:12:54 | 显示全部楼层 |阅读模式
前几天折腾路由器,改善散热的时候萌生了将手头闲置了快 10 年的 89C2051 (虽然电子是我的专业,但是我的工作和设计没关系。如果上天给我重来一次的机会,我会去走设计,技术管理的路线)来做一个 PWM 风扇控制的想法。想着如果可能,还可以把一些其他的控制功能加进去,比方说直接接路由器的 TTL 口,要刷机的时候,直接把对应的指令送进去,就不需要再接个 TTL 刷机线了。

这样的情况下,一个人机交互的显示就变得有必要了。于是就考虑用个最便宜的 LCM 1602 来试试。同样的,能用 4位数据线,我也不想用 8位数据线。实验的时候可以少插四根杜邦线啊。

参考了好多资料,真的都没有对 4位接线模式下的工作原理说得太清除去清楚。后来我通过实验,我也总结出来了一些规律。

1,在没有初始化之前, LCM 1602 默认是 8位操作模式的。所以,第一步送的设置命令 0x28。这个命令对应 4bit 模式和 2 行,5x7 点阵的模式。和网上部分文章说的不一样,不需要写 0x38 8bit 模式的初始化命令。当然,这个命令真正有效的是高4位的部分。也就是说,初始化的第一个指令,实际上可以是 0x2N(N可以是任意 hex数)就将 1602 设置为 4bit 模式了。这是唯一一个只需要写一次的命令。

2,接下来要继续写命令 0x28。是的,第一个 0x28 关于2 行,5x7 点阵的这两个设置实际上是被丢掉了。所以稍后在 Proteus 仿真里面可以看到第一条命令实际上初始化成了 4bit,1行 5x7 点阵,在我的实验电路上看到的是一开始,只有第一行处于显示状态(视觉上就是第一行有受 PWM 控制的对比度出现,第二行则没有任何变化)。所以我们需要重新按照完整的指令设置。从这个时候开始,已经是 4bit 模式了,所以每条命令或者数据都需要分高4位和低4位写两次,否则就会被错误地执行。

3,再接下来的使用,就是按照手册的命令格式来操作了,我没有什么特别好说的。至于读取 LCM 1602 内状态以及空闲位的部分,我没有去做,毕竟作为一个输出环节,这些是可有可无的功能。空闲标识位的作用,也可以用延时来代替。

附件是原理图(截自 proteus),对应的 proteus 模拟的 log 文件,C 语言源代码(我是用 SDCC + Eclipse 编译的),很多注释没有改成中文,各位将就这看吧。反正我写的 Chinglish 应该也比较好懂的。:P

想起来没有读取, RW 那个 pin 可以直接接地的。之前考虑了一下读取,所以连在了一个管脚上面。

1602 的操作范例(含原理图)ourdev_592268KC3V0L.rar(文件大小:235K) (原文件名:myLCM1602_pack.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-10-23 23:18:10 | 显示全部楼层
回复【楼主位】easywater  
-----------------------------------------------------------------------

刚才仔细读了millwood0 在另一个帖子(牛仔的人肉驱动)
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4292162&bbs_page_no=1&search_mode=1&search_text=1602&bbs_id=9999
里面提供的 HD44780 用户手册,在 P46 确实有关于 4bit 的初始化的明确要求。按照上面所说 ,需要按一定时序写 3次的 0x3N(N为任意值)的操作在某些情况下是必须的。从善如流,我还是把这些加进去吧,以确保各种场合,各种版本的 1602 都能跑起来。成功设置成 4bit 之后,就可以按照自己的要求设置了,应该不需要按部就班地抄手册了。

下面是器件用户手册里面的关于这部分初始化的说明:

If the power supply conditions for correctly operating the internal reset circuit are not met, initialization by
instructions becomes necessary.

就此看来只要LCM 1602 模块内部初始化正常,前面的发的程序还是可以用的。

更改后的源程序。ourdev_592283QOR72Y.rar(文件大小:3K) (原文件名:myLCM1602_pack_update.rar)

这个程序出了添加手册标准的初始化之外,还修改了 PWM 工作的频率,在我的硬件上看不到之前可以看到的轻微闪烁。一个 PWM 完整波形大概 1ms,即约 1KHz。 目前用的是 30% 占空比,感觉还不错。

出0入0汤圆

 楼主| 发表于 2010-10-25 22:22:33 | 显示全部楼层
回复【1楼】easywater  
-----------------------------------------------------------------------

抱歉,又发现自己在头文件里面定义的几个初始化指令有一些错误。汗,好在不太影响使用,我就不去重新传程序了,等下次有更大的改动的时候再传上来吧。

还有,PWM 控制对比度,容易对其他的信号造成干扰,用杜邦线跳实验板的时候,要注意和其他数据线保持距离。如果是 PCB,应该是要用地线给包起来。下一步我在想用背光应该也能用 PWM 来控制,这样一个 89c2051 配合 1602,就可以做成一个串口显示模块了。背光,对比度,显示内容啥的都从 UART 走过来。

顺便附上从 Truly 信利网站上找到的一个关于 4bit 模式初始化的文档,感觉这个文档是我看到的最直观和有效的了,不容易误解。只要按照文件流程上的顺序写入指令,就能达到正确初始化的效果。

信利 Truly 的 4bit 初始化样例ourdev_592792YS9UUQ.pdf(文件大小:50K) (原文件名:truly_4-bitexample.pdf)

参考网页:http://www.trulydisplays.com/character/index.html

出0入85汤圆

发表于 2010-10-26 08:56:37 | 显示全部楼层
为什么老是说4线接法没有资料呢?明明HD44780数据手册说得清清楚楚。

出0入85汤圆

发表于 2010-10-26 09:00:58 | 显示全部楼层

(原文件名:1.jpg)

点击此处下载 ourdev_592853ALDRGE.PDF(文件大小:315K) (原文件名:HD44780.PDF)

出0入0汤圆

 楼主| 发表于 2010-10-26 09:49:39 | 显示全部楼层
确实是我太业余。一开始就只顾着找 1602 的规格和例程,忽略了找控制芯片的 datasheet。

不过我在二楼已经说了我看了 millwood0 提到的 HD44780 手册。可能是之前受其他人的例程和描述影响太深,所以总是理解得不透彻。

手里除了 1602 之外,还有两块长得很像的 Truly MCG663 的模块,找这这个东东的资料的时候,看见 Truly 上面的初始化流程,和 HD44780 的手册能对应起来,而且我自己感觉更直观,才拿上来分享的。

从几个方面来说, Truly 提供的这个流程做得确实不错。

1,准确。符合 HD44780 的手册,这是最基本的。也没有引入一些其他的容易引起混淆的概念。
2,清晰。每个步骤的作用,需要的延时,每个指令位的含义都列出来了。
3,信息量。用我之前一个老板的话说就是“一览”,你可以在这一个页面中获得很多信息。有初始化指令序列,有显示控制指令的格式和定义,有写数据指令的介绍。

简而言之, 这个文档做得很类似一些 Quick Reference Card,我觉得很方便。至少对我而言,如果我更早地看到这个文件,我会少走很多弯路。所以我把下载这个文件的页面也贴上来了(虽然其他文件我并没有去看)。喜欢的朋友可以参考借鉴,不喜欢的也可以忽略,文档这种艺术,每个人都有不同的审美观。条条道路通罗马,只要路上没有坑就好。

我贴出我的程序和思路,其实也是自己对这次小实验获得的知识的一个总结。也是保持兴趣热度的一个方式。:) 欢迎指正。


贴图出来更直观。:P (原文件名:truly_4-bitexample.jpg)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 19:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表