使用数字发现模拟HD44780显示屏
HD44780兼容显示器被广泛用于各种设备。它们可以连接到一个系统,只需6个引脚,显示多达80个字母数字字符。最常见的版本使用2×16字符数组。显示操作可以使用逻辑分析仪如数字发现调试。这个演示在运行Python脚本时,使用Digital Discovery和计算机模拟显示的实时操作。
存货
-
带USB端口的计算机运行软件
-
Python 2.7软件使用Python 2.7翻译和Tkinter以及其依赖项
-
-
2×6个MTE电缆可用于硬件连接
-
-
ARDUINO™
-
在本例中,将使用Arduino™Uno™兼容设备,但可以使用任何其他能够驱动hd44780兼容显示器的Arduino™板
-
-
HD44780- 兼容2×16显示
-
在演示中液晶将使用Arduino的键盘盾牌
-
-
Python源代码下载到电脑
-
Arduino素描代码下载到电脑
第1步:硬件设置
1.确保下载链接的Arduino草图存货本指南的一部分。
2.打开草图并上传到Arduino UNO。草图将显示通过串口接收到的一些短内容液晶。然后是液晶应连接到Arduino模块。所有连接都是4位操作的标准,而不读取忙标志,并在示例Arduino草图中描述。电路如下:
液晶RS销到数字销8 LCD数字销使销9液晶D4销到数字销4液晶D5销到数字销5液晶D6销到数字数字销销6液晶D7销7背光控制数字销10液晶R / W销地面10 k电阻+ 5 v和地面雨刷液晶签证官销(LCD销3)
3.如果使用不同液晶模块,则Arduino代码应根据需要进行调整,然后上传和连接。通过关联任何需要的库来初始化库液晶接口引脚与其连接的Arduino PIN号码。
Const int Rs = 8,en = 9,d4 = 4,d5 = 5,d6 = 6,d7 = 7,bl = 10;液晶LCD(RS,EN,D4,D5,D6,D7);
4.重置设备后,显示屏上应该出现“LCD TEST”消息。如有需要,应调整对比度。下面以连接HD44780为例进行说明液晶:
笔记:在进行其他连接之前,应先连接好地面。
“数字发现”GND到LCD GND“数字发现”DIN0到LCD EN“数字发现”DIN1到LCD RS“数字发现”DIN2到LCD D4“数字发现”DIN3到LCD D5“数字发现”DIN4到LCD D6“数字发现”DIN5到LCD D7
第2步:通讯
数据发送到hd44780兼容显示器可以使用波形软件和逻辑分析仪仪器看到。在逻辑分析仪中,在EN信号上升沿增加一个带时钟的总线。接下来,添加RS信号作为一个单独的信号,并设置触发模式为正常,触发在EN信号的上升边缘。设置好后,运行逻辑分析仪并通过串口发送一个字母。这封信将出现在液晶在逻辑分析仪中。此时,您将能够看到在en线的上升沿传输的四个4位点心。nibbles是“被分组”以形成8位数。RS线的状态确定此8位数是否为命令Rs Rs低电平或数据Rs高。命令0x01(“清除显示”)后跟数据0x50,这是字母“P”编码ASCII.。
步骤3:基于python的HD44780仿真
确保下载链接的Python源文件存货本指南的一部分。
实时数据采集和分析可以分为步骤。多线程解决方案是一个不错的选择。演示有四个线程:
-
这吉伊线程或主线初始化设备并负责吉伊手术。
-
采集线程从Digital Discovery中收集实时数据,并将数据放入队列中。
-
原始数据处理线程从队列中读取数据。仅在en的上升沿锁定并将数据放入另一个队列中。
-
数据处理线程从第二队列读取锁存数据,并模拟HD44780显示的行为。
数据处理算法有一些限制:
-
原始控制器使用的完全完成状态机没有实现。使用了一个简化的初始化过程。命令模式到数据模式的转换,也就是在RS行上用上升沿来确定何时进行液晶初始化。这用于设置4位模式以及其他参数的设置。
-
一些命令被执行,如Clear Screen和Set DDRAM address,设置光标的位置。
-
该脚本没有进行性能优化。
关于仿真功能如何在脚本中呈现的所有详细信息。
第4步:运行该示例
要测试示例,请运行python脚本。如果原始缓冲区或数据缓冲器填充很快,则应减少采样率。请注意,由于规范,太低的采样率可能不会“捕获”所有ZHS脉冲,这可以短至450ns。
#采样率=系统频率/分频器,100 MHz / 400 = 0.25 MHz DWF.FDWFDIGIGITINDIMIDERSET(HDWF,C_INT(400))
与Arduino建立串行连接。如果已建立连接,您可能需要重置Arduino。
“int”指示灯显示脚本是否检测到初始化。“2”的值表示初始化成功完成,“0”或“1”的值表示不完整的过程。如果在启动时已经初始化显示,则脚本用户可以设置SI或重置CI初始化标志。如果已收到偶数数量的啃咬,则表示“NIB”指示符。甚至用“0”和奇数表示为“1”。如果生成错误,则用户还可以使用CN和SN按钮手动调整该标志。通过串行端口向Arduino发送一些数据后,数据显示在液晶在Python脚本创建的用户界面中。