yaboPP电子
项目

一个使用单一I/O的LCD微控制器

2015年9月17日通过查尔斯·r·汉普顿

LCD非常适合从您的微控制器上显示信息。串行适配器价格便宜,只使用一个I / O,易于连接和使用。

推荐的水平

初学者

液晶显示器-为什么你需要一个

液晶显示器(LCD)是微控制器显示可见信息的一种极好的方式。液晶显示器可以显示从自动记录仪上得到的时间、日期、温度等信息;它们还可以用来显示内存的内容,并帮助调试程序。

LCD有多种尺寸可用,两个最常见的配置中的两个字符在两个行中的每一个(16x2)中的每个行中有16个字符(20x4)。对于通用用途,20x4可以显示超过两倍的信息,作为16x2,少量资金。因此,20x4将在未来的项目和本作者上的技术文章中的选择显示。

还有各种液晶选择颜色,而红色和橙色有其位置,在长途运输中,蓝色和绿色等稳定颜色可能更容易。作者的20x4显示器的照片如下所示。注意显示的所有信息:日,时间,日期,当前温度,24小时高温,24小时低温,以及八个不同报警的状态。整个系统由Picaxe 20x2控制。

日立HD44780

LCD不仅仅是显示面板。大多数包括接受数据的复杂电子设备,并将数据转换为显示屏yabosports官网上显示的字母,数字和符号。对于所有显示器的输入到LCD的格式和协议对LCD的输入不相同,并且没有普遍接受的标准。然而,常用的一种方法是由HITACHI发起的,并且被称为HD44780格式。这是本作者选择的格式,强烈推荐。

HD44780兼容显示器通常有14或16个输入连接(取决于显示器是否包括一个背光),并接受数据的并行格式。一个典型的HD44780显示器的引脚表如下所示。

别针 指定 注释
1 V党卫军 地面
2 VDD + 5VDC
3. VO 对比度控制
4 RS 注册选择
5 R / W. 读/写
6 E 启用
7 D0 数据0
8 D1 数据1
9 D2 数据2
10 D3 数据3
11 D4 数据4
12 D5 数据5
13 D6 数据6
14 D7 数据7
15 一个 背光阳极LED
16 K 背光LED阴极

如您所见,有八个数据引线和HD44780显示器可以接受8位数据。除数据引线外,还需要启用(E)铅和寄存器选择(RS)引线。因此,10个I / O被占用在微控制器上,用于8位并行数据。HD44780还可以在4位数据上运行,这是一个帮助,但是对于两个控制引线的附件,仍然使用6个I / O.考虑到20引脚μC不能超过18个I / O,其中将10个或甚至6个甚至6个似乎过多。使用带有甚至更小的微控制器的LCD可能是不可能的,所以可以做些什么?

串行到并行LCD适配器

为了保护微控制器I / O,可以通过单个引脚以串行格式发送数据,但HD44780显示器无法接收串行数据。一种解决方案是使用具有专用代码的单独的专用微控制器来将串行数据转换为并联并将其馈送到LCD。这是选择在此处使用的方法。

再一次,串行到并行转换协议没有任何标准,并且有几种不同的方法常用。最佳节目之一是由Peter Anderson编写的,并在预先编程的照片中销售给成千上万的客户。安德森教授于2012年去世,忠于他的公平比赛,他规定了他的代码被投入公共领域。因此,如果您有能力编程PIC微控制器,您可以下载他的代码,将其加载到您的照片中,并加入一些组件,构建自己的串行到并行LCD适配器。安德森甚至留下了一个手绘示意图让你开始吧。对于那些无法编程PICs的人,预编程芯片仍然可以从两个不同的供应商获得:现代设备Wulfden

另一个方便的选择是简单地购买包括编程的PIC,定制印刷电路板的套件,以及构建串行转换器的所有其他部分所需的所有其他部件,可以连接到LCD的后部。现代化的设备和Wulfden两者都提供如此低的价格如此之低,DIY版本可能不值得努力。现在,现代设备通过开发SMD版本,使用已经在PCB上焊接的所有组件进行了开发SMD版本,将其“套件”带到了一个新的水平。唯一为最终用户留下的焊接是安装连接器以连接液晶显示器,而且套件价格是一个讨价还价。截至2015年9月14日,SMD套件和20x4显示屏可提供约23美元,包括美国大陆的运费。

PICAXE, PIC, Arduino,树莓派,和更多

大多数(如果不是全部)微控制器,一旦建立了适当的波特率,就可以使用串行到并行适配器。现代设备提供的选择是2400,9600和19200;Wulfden增加了4800个波特模型。波特率在适配器PIC中很难编码,因此可以确定选择微控制器支持的速率。作为一般规则,更低(较慢)波特率由更多μC支持。

连接,所需的所有内容是+ 5V和接地,可以为适配器和LCD电源,以及μC上的一个可用输出引脚。用户在他/她的代码中包括正确格式化的指令到串行适配器,它会对并行进行转换,并且消息在LCD上显示。你第一次看到它发生时,它看起来像魔法,但这只是好的代码和很多硬件做工作的结果。

您可能会问:“我如何知道如何编写代码,以便串行适配器能够理解我想要什么?”和往常一样,答案在手册中,而且Modern Device和Wulfden都提供了很好的文档。此外,您总是可以回头查阅最初的指令彼得·安德森写的。Anderson教授的网站是各种微控制器的信息宝库,值得仔细浏览。

最后……

通过使用字符显示器可以更轻松地了解您的μC内部的内容,LCD显示器是经济的,电源很少运行,并且很有趣。串行到并行适配器在微控制器上保存I / O,并方便将显示器从一个项目移动到另一个项目。

尤其鼓励Picaxe AfficionAdos获得20x4显示器和串行到使用Peter Anderson代码的并行适配器。需要这种组合来充分利用即将来自此作者的Picaxe项目和技术文章在此处。

8的评论
  • Z
    ZenMaster 2015年9月25日

    您好,是否可以使用Shift寄存器来实现相同的结果?

    喜欢。 回复
    • Prasant Bhatt 2017年6月26日
      是的,这当然是可能的。你可以使用串行并行输出移位寄存器如74HC595, 74HC184等。这里是一个例子的AVR/Arduino https://www.electronify.org/avr-projects/three-wire-lcd-display-interface-with-atmega32如果你想做这个项目与PIC这里是参考。https://www.electronify.org/pic-based-projects/how-to-make-own-serial-lcd-display-for-pic-microcontroller
      喜欢。 回复
  • W
    wwuepper 2015年9月25日

    你好,我之前看过Pic32项目中使用的LCD。我的问题不是专用于它的引脚的数量,而是LCD控制器没有一个引脚来中断Pic32。我要么必须轮询液晶控制器,看看它是否准备好了,要么设置某种定时回路。(好吧,有一些其他的编程方法来做我想要的,但更复杂),但对我来说最大的关闭是在LCD控制器上缺少一个引脚来中断Pic,这将使界面容易。(我的项目是一个时间敏感的中断驱动应用程序。)

    喜欢。 回复