单片机液晶屏显示编程_小制作 · 将1602液晶屏的信号线减至三根

956e488faa0aaf712d75c5be8bbbcd97.png

我承认,这个题目听起来挺无聊的——毕竟现在已经有了一大把能够将传统HD44780驱动的1602/0802显示屏转换为IIC两线接口的转接板,我们为什么还要用多一根线的方案呢?其实不然,因为我们今天所用的都是我们最熟悉的元器件:从学习开始就一直在接触的74HC595和1602液晶屏。

f79421e15bda28a2d0fa25d670d5420c.png

一种传统的、8根数据线式的接法

还记得单片机教程中对于74HC595的描述吗?它能够将串行输入的8位二进制位并行地输出并锁存在8个引脚上,从而达到扩充IO口的效果。使用它的时候,我们最少可以使用3根引线:数据线、串行数据时钟和锁存信号。而对于采用HD44780的1602来说,它的数据接口为8位,外加3个控制信号接口。不过它也可以采用4位数据线、传输两次的方式将数据线的使用减少到4根,这样一来4根数据线和3根控制线就能够连接在一片74HC595上了。背光、对比度是模拟量输入,与IO口没有关系,可以用电位器来调整。这样连接之后,3线的接口硬件部分便准备好了。

f48b1df46cf307017c7a760fd6677157.png

有利必有弊,在简化了硬件部分之后,软件部分便要费上一些功夫。我们不妨将74HC595的8个输出口当成是控制器上原生的IO口来考虑,对于它们来说,应该呈现出的就是1602液晶屏的控制时序:改变RW线电平、将数据放在4位的IO口上、改变时钟信号等等。这些都和正常的1602驱动没有区别,而另一方面,74HC595和单片机之间的数据交换则应遵循74HC595的操作方法:串行写入数据,锁存信号。在这个过程中,你少不了要用到变量之间的位运算——一个单片机新手学习过程中经常会出现的“拦路虎”。

4943c8cfd1bf120c80e678493f21afeb.png

使用IIC转接板驱动的1602 LCD

笔者一向认为,设计电路、编写程序的精髓就在于“让正确的数据在正确的时间到达正确的位置”。而至于如何达到这样的目标则是设计过程中的有趣之处。反映到具体问题中,为外设芯片设计驱动电路和程序时,虽然达到的最终效果是一样的,不过考虑到其他问题的制约,解决的方案也变得五花八门。题目的实用性虽然值得商榷,不过如果能够通过自己的双手将其实现,你在单片机的学习过程中一定能够更进一步了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值