使用数字发现模拟HD44780显示器

HD44780兼容显示器用于各种设备。它们可以连接到系统,使用短至6个引脚并显示最多80个字母数字字符。最常见的版本使用2×16字符数组。可以使用诸如数字发现的逻辑分析仪调试显示操作。此演示模拟使用数字发现和运行Python脚本的计算机的实时操作。


库存

  • 一台有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草图中进行了描述。电路如下:

LCD RS引脚以数字引脚8 LCD启用引脚向数字引脚9 LCD D4引脚向数字引脚4 LCD D5引脚到数字引脚5 LCD D6引脚以数字引脚6 LCD D7引脚向数字引脚7背光控制到数字引脚10 LCD RCD控制/ W引脚接地10K电阻至+ 5V和地面擦拭器到LCD VO引脚(LCD引脚3)

3.如果使用不同的液晶显示器模块然后应根据需要在上传和连接之前根据需要调整Arduino代码。通过关联任何所需的库初始化库液晶显示器接口引脚与它连接的Arduino引脚编号。

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测试”消息。如果需要,应调整对比度。以下是如何将数字发现连接到HD44780液晶显示器

注意:在进行任何其他连接之前,应连接地面。

数字发现GND到LCD GND数字发现DIN0到LCD en Digital Discovery DIN1到LCD RS数字发现DIN2到LCD D4数字发现DIN3到LCD D5数字发现DIN4到LCD D6数字发现DIN5到LCD D7


步骤2:沟通

可以使用波形软件和逻辑分析仪器看到发送到HD44780兼容显示器的数据。在逻辑分析仪中,在EN信号的上升沿上添加一个时钟的总线。接下来,将RS信号作为单独的信号添加,并将触发模式设置为正常,在EN信号的上升沿触发。在设置此后,运行逻辑分析器并通过串行端口发送一个字母。这封信将出现在液晶显示器以及逻辑分析仪。在这一点上,你将能够看到四个4位的咬被传输,每个在EN线的上升边缘。咬被“分组”形成一个8位的数字。RS行状态决定了这个8位数字是命令RS低还是数据RS高。命令0x01(“clear display”)后面是数据0x50,即编码的字母“P”美国信息交换标准代码


步骤3:基于Python的HD44780仿真

中链接的Python源文件请下载库存本指南的章节。

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

  1. GUI线程或主线初始化设备并负责GUI操作。
  2. 获取线程收集实时数据表单数字发现,并将数据放入队列中。
  3. 原始数据处理线程从队列中读取数据。仅在EN的上升边锁存,并将数据放入另一个队列。
  4. 数据处理线程从第二个队列读取锁存的数据,并模拟HD44780显示器的行为。

数据处理算法有一些局限性:

  • 未实现原始控制器使用的完整完成状态机。使用简化的初始化过程。命令模式到数据模式转换,它是RS线上的上升沿用于确定何时液晶显示器初始化。用于设置4位模式以及其他参数的设置。
  • 一些命令实现,例如清除屏幕并设置设置光标位置的DDRAM地址。
  • 脚本未针对性能进行优化。

关于仿真函数如何在脚本中以注释的形式呈现的所有细节。


步骤4:运行示例

要测试这个示例,运行Python脚本。如果原始缓冲区或数据缓冲区填充非常快,采样率应降低。请注意,过低的采样率可能不能“捕获”所有EN脉冲,根据规范,EN脉冲可以短至450 ns。

#采样率=系统频率/分频器,100 MHz / 400 = 0.25 MHz dwf。FDwfDigitalInDividerSet (hdwf c_int (400))

建立与Arduino的串行连接。如果连接已经建立,您可能需要重置Arduino。

“Int”指示器显示脚本是否检测到初始化。值“2”表示初始化成功完成,值“0”或“1”表示进程未完成。如果在启动时显示已经初始化,脚本用户可以设置SI或重置CI初始化标志。“Nib”指示器表示是否接收到偶数次的咬咬。偶数用“0”表示,奇数用“1”表示。如果产生错误,用户还可以使用CN和SN按钮手动调整该标志。通过串口将一些数据发送到Arduino上,数据显示在液晶显示器以及由Python脚本创建的用户界面。


下一个步骤

这个例子演示了一个hd44780兼容的16×2显示器的简单模拟器。该软件还可以进一步开发。例如,实现完全兼容的初始化过程,检测显示电源周期和自动复位。数字发现能够将数字数据输入计算机,定制软件可用于非标准分析和调试。

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

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

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