使用 Shift Register 的 3 线串行 LCD
出处:维库电子市场网 发布于:2025-02-25 17:41:24 | 657 次阅读
关于 74HC595 74HC595 是一款高速 8 位串行输入、串行或并行输出移位寄存器,带有存储寄存器和 3 态输出。

在这个项目中,SH_CP 和 ST_CP 是捆绑在一起的。因此,如果我们想在 Q0-Q7 接收串行传输的 8 位到 parallel 形式,那么在发送第 8 位串行数据后需要一个额外的 clock pulse,因为 clocks 是绑定的,并且 storage register 比 shift register 晚 1 clock 。
基于 HD44780 字符 LCD 所有基于 HD44780 字符 LCD 显示器都使用 14 根线连接:8 根 (D0-D7)、3 根控制线(RS、E、R/W)和 3 根(Vdd、Vss、Vee)。某些 LCD 可能具有 背光,因此它们可能具有其他连接(通常两个:LED+ 和 LED-)。
第 1 部分:电路图
这个项目的硬件部分相当简单。具有挑战性的部分是编写驱动程序软件,该软件负责将字符数据和命令串行传输到 74HC595 串行输入并行输出移位寄存器所需的适当作序列。然后将移位寄存器并行输出连接到 LCD 数据线 (D4-D7) 和 RS 控制引脚。这种安排需要微控制器的 3 个引脚在并行 LCD 显示器上显示字符数据:2 个引脚用于为 74HC595 提供时钟和数据,1 个引脚用于 LCD 模块的启用控制 (E) 引脚。由于数据传输使用 4 位模式,因此任何 8 位命令或字符数据都分两步发送:先发送较高的半字节,然后发送较低的半字节。R/W 控制引脚接地,因此在这种情况下无法从 LCD 模块读取数据或状态。
焊接在通用原型板上的电路
软件首先,馈送到 74HC595的 DS pin 的一点数据在 2 个 clocks 后出现在 Q0 输出处(因为 SH_CP 和 ST_CP 是绑定的)。因此,发送 4 位数据 (D4-D7) 和 RS 信号需要 6 个时钟脉冲,直到它们分别出现在 Q0-Q4 输出端。当 LCD 模块打开时,它会以 8 位模式初始化。应发送许多初始化命令以在 4 位模式下作 LCD 模块。这里讨论的所有驱动程序例程都是用 mikroC 编译器编写的。它们仅适用于 16×2 LCD 模块。用户可以修改 Initialize_LCD() 例程中的初始化作,以考虑其他 LCD 配置。驱动程序例程及其功能如下所述。
Initialize_LCD() :它初始化 LCD 模块以 4 位模式运行,2 行显示,5×7 大小字符,显示开启,无光标。Write_LCD_Data() :发送要在当前光标位置显示的字符字节。Write_LCD_Cmd() :将命令字节写入 LCD 模块。Write_LCD_Nibble() :数据或命令字节以两个半字节的形式发送到 LCD 模块。所以这个 function routine 负责将 nibble 数据发送到 LCD module。Write_LCD_Text() :此例程用于发送要在当前光标位置显示的字符串。Position_LCD() :更改当前光标位置在程序开始时,您需要定义所选微控制器端口的 Data_Pin、Clk_Pin 和 Enable_Pin。我将在这里演示如何使用这些驱动程序例程在不同位置显示两个闪烁的字符串,即 Message1 和 Message2。我将使用 PIC12F683 微控制器测试我们的串行 LCD 模块。测试电路如下所示。
注意:我的 PIC12F683 设置
以 4 MHz 内部时钟运行,MCLR 禁用,WDT 关闭。
lock、Data 和 Enable 线路通过 GP1、GP5 和 GP2 端口提供服务。
Schematic_2
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//tgdrjb.cn,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。