雷竞技注册
项目

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

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

液晶显示器是伟大的显示信息从你的微控制器。串行适配器很便宜,只使用一个I/O,并且很容易连接和使用。

推荐的水平

初学者

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

液晶显示器,通常称为LCD,是微控制器显示可见信息的一种极好的方式。lcd可以显示从µC输出的时间、日期和温度等;它们还可以用来显示内存内容,并帮助调试程序。

lcd有几种尺寸可供选择,两种最常见的配置是两行16个字符(16x2)和四行20个字符(20x4)。对于一般用途,20x4可以显示比16x2多出两倍的信息,而且只需要多花很少的钱。因此,20x4将是作者在未来关于AAC的项目和技术文章中选择的展示。

LCD也有多种颜色可供选择,虽然红色和橙色也有它们的一席之地,但从长远来看,蓝色和绿色等更稳重的颜色可能更适合眼睛。下面是作者的20x4显示器的照片。注意所有显示的信息:天、时间、日期、当前温度、24小时高温、24小时低温,以及8种不同的告警状态。整个系统由PICAXE 20X2控制。

日立HD44780

液晶显示器不仅仅是显示面板。大多数包括接受数据并将数据转换成字母、数字和显示在显示雷竞技最新app屏上的符号的复杂电子设备。LCD输入的格式和协议对所有显示器都不一样,也没有普遍接受的标准。然而,常用的一种方法是由日立公司发明的,称为HD44780格式。这是作者所选择的格式,强烈推荐。

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

指定 评论
1 V党卫军 地面
2 VDD + 5伏直流
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阴极

如你所见,有8个数据引线和HD44780显示器可以接受8位数据。除了数据引线外,还需要启用(E)引线和寄存器选择(RS)引线。因此,对于8位并行数据,在微控制器上占用10个I/ o。HD44780也可以操作4位数据,这是一个帮助,但与增加的两个控制导线,6 I/ o仍然使用。考虑到一个20引脚µC可以有不超过18个I/ o,奉献10甚至6个显示似乎过多。使用液晶显示器和一个更小的微控制器是不可能的,那么可以做什么呢?

串行到并行LCD适配器

为了保存微控制器I/ o,数据可以通过单个引脚以串行格式发送,但是HD44780显示器不能接收串行数据。一种解决方案是使用一个单独的,专用的微控制器与专门的代码转换串行数据为并行,并将其馈送给液晶显示器。这就是这里选择使用的方法。

同样,串行到并行转换协议没有标准,常用的方法有几种。其中最好的程序是由彼得安德森写的,并以预先编程的图片出售给成千上万满意的客户。安德森教授于2012年去世,出于对公平竞争的忠诚,他要求将自己的代码公开。因此,如果您有能力编程PIC微控制器,您可以下载他的代码,加载到您的PIC,并添加几个组件,构建自己的串行到并行LCD适配器。安德森甚至留下了手绘示意图让你开始。对于无法对图片进行编程的人士,两家不同的供应商仍可提供预编程芯片:现代设备Wulfden

另一个方便的选择是简单地购买一个套件,包括编程PIC,一个定制的印刷电路板,和所有其他部件需要构建一个连接到LCD背面的串行到并行转换器。Modern Device和Wulfden两家公司都提供这样一种工具,但价格很低,DIY的版本可能不值得一试。现代设备现在已经把他们的“套件”提升到一个新的水平,通过开发几乎所有组件已经焊接在PCB上的SMD版本。唯一剩下的焊接为终端用户是安装连接器连接LCD,和套件价格相当便宜。截至2015年9月14日,SMD套件和20x4显示器的售价约为23美元,包括在美国大陆的运费。

pic斧,PIC, Arduino,树莓派,等等

大多数(如果不是全部)微控制器可以使用串行到并行适配器一旦适当的波特率建立。现代设备的选择有2400、9600和19200;Wulfden增加了一个4800波特率的型号。波特率在适配器PIC中是硬编码的,所以一定要选择一个微控制器支持的速率。一般来说,更多µCs支持较低(较慢)的波特率。

连接方面,所有需要的是+5V和地电源适配器和LCD,和µC上的一个可用输出引脚。用户在他/她的代码中包括正确格式化的指令串行适配器,它执行转换为并行,并在LCD上显示消息。当你第一次看到它发生时,它看起来就像魔法一样,但它只是良好代码和大量硬件完成其工作的结果。

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

最后……

通过使用字符显示,您可以更容易地了解µC内部发生了什么,而且LCD显示很经济,耗电很少,而且使用起来很有趣。串行到并行适配器节省I/ o在您的微控制器,并使它方便移动显示从一个项目到另一个。

特别鼓励PICAXE爱好者购买20x4显示器和使用Peter Anderson代码的串行到并行适配器。为了充分利用即将到来的PICAXE项目和作者在AAC上发表的技术文章,这种组合是必需的。

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

    你好,是不是可以使用移位寄存器来实现相同的结果?

    喜欢的。 回复
    • 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日

    你好,我以前看过的LCD与Pic32项目使用。我的问题不是用于它的pin数,而是LCD控制器没有一个pin来中断Pic32。我要么不得不轮询LCD控制器,看看它是否准备好了,要么设置了某种定时循环。(好吧,有一些其他的编程手段来做我想要的,但更复杂),但对我来说,最大的缺点是没有一个pin在LCD控制器上中断Pic,这将使界面容易。(我的项目是一个时间敏感的中断驱动应用程序。)

    喜欢的。 回复