使用数字发现模拟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源文件存货本指南的一部分。

实时数据采集和分析可以分为步骤。多线程解决方案是一个不错的选择。演示有四个线程:

  1. 吉伊线程或主线初始化设备并负责吉伊手术。
  2. 采集线程从Digital Discovery中收集实时数据,并将数据放入队列中。
  3. 原始数据处理线程从队列中读取数据。仅在en的上升沿锁定并将数据放入另一个队列中。
  4. 数据处理线程从第二队列读取锁存数据,并模拟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脚本创建的用户界面中。


下一步

该示例说明了HD44780兼容的16×2显示器的简单仿真器。可以完成该软件的进一步发展。例如,实现初始化过程的完全兼容性,检测显示电源周期和自动复位。数字发现能够将数字数据馈送到自定义软件可用于非标准分析和调试的计算机。

有关如何使用数字发现的更多指南,返回设备资源中心

有关波形的更多信息,请访问波形参考手册

如需技术支持,请访问测试和测量Digilent论坛的一部分。