基于移位寄存器的单端口数码管显示驱动电路

时间:2022-10-28 12:44:47

基于移位寄存器的单端口数码管显示驱动电路

【摘 要】根据移位寄存锁存器74595 的时序特点,定义一种新的编码方式,并为其设计解码电路,使串行数据传输时的时钟与数据信号线复用,从而设计出一种只需占用MCU一个IO口的数码管显示驱动电路。实验显示,该电路设计正确,配置方便。

【关键词】数码管;移位寄存器;单端口;编码方式。

引言数码管显示是一种常用显示方式,无论是静态显示,还是动态扫描显示,使用MCU 的IO 口直接控制数码管的数据端都将占用大量IO 口。为了节省MCU 在显示功能部分的IO 开销,在设计数码管显示的驱动电路时,通常会使用数码管驱动IC 和移位寄存器。

1、数码管显示根据数码管数据输入端口有效数据的持续时间,数码管的显示方式可以分为:静态显示和动态扫描显示两种。前者是在显示数据更新之前,上一个有效数据一直存在,即数码管一直保持显示状态。后者则是按照一定的频率轮流向各个数码管发送数据和相应的位选,利用数码管的余辉和人眼的“视觉暂留”效应,使人感觉各个数码管都在显示。相比动态扫描显示按照一定频率占用和释放数据信号线,静态显示方式则要一直占用数据信号线,这就意味着显示相同数量的字符,静态显示通常要比动态显示占用MCU 更多的IO 口。不过由于静态显示中的所有数码管一直占用数据信号线,其亮度会好一些;而动态扫描显示因频繁占用、释放数据信号线,将会增添了额外的时间开销,同时显示的稳定性也较静态显示差。

2、驱动设计

为了节省MCU 的时间开销,保证数码管显示的亮度和稳定性,使用了移位寄存锁存器驱动74595 数码管使数码管工作在静态显示状态下。为了尽可能的节省MCU 的IO 开销,本文设计使用单个IO 口就可以发送数码管显示字符的驱动电路。该电路设计分为时序设计和电路设计两部分。

2.1时序设计

图1 所示为74595 的管脚图,各管脚的功能如下:

VCC:电源;

GND:接地;

OE :使能输入端,低电平有效;

RCLK :存储寄存器时钟输入

端,上升沿有效;

SRCLR :移位寄存器异步复位

输入端,低电平有效;

SRCLK :移位寄存器时钟输入

端,上升沿有效;

SER :串行数据输入端;

QH~QA :并行数据输出端;

QH?:串行数据输出端。

由图2所示的74595正常工作的

时序图可知:SER 信号只使用信号线上的逻辑电平信号;移位寄存器时钟信号SRCLK 使用的是在SER 逻辑电平稳定时的上升沿;锁存器时钟信号RCLK使用的是在串行数据输入完毕之后的上升沿。基于此种考虑,可以设计一种编码协议使信号线上不仅携带数据信息SER,同时也提供移位寄存器时钟SRCLK,而RCLK 可以由SRCLK 计数得到,那么整个数码管的驱动电路只需

消耗MCU 的一个IO 口,比直接用MCU 的IO 口连接SER、SRCLK、RCLK 三个信号输入端节省了两个IO 口。为了使数据信号和时钟信号共用同一根信号线进行传输,定义图3 所示的编码方式,使用不同占空比的矩形波表示逻辑“0”和“1”。在每1bit数据的传输中,时钟区为SRCLK 信号提供上升沿;数据区为SER 信号提供逻辑电平;清空区对信号线上的既有数据清“0”,等待下1bit 数据的传输。由于编码方式寄生于硬件电路之上,所以编码中逻辑“0”和“1”的占空比需在硬件电路的设计指导下进行确定;而数据传输速率也由硬件电路决定,因此在具体应用中可以根据实际情况进行灵活调整和配置。

2.2电路设计

在设计了图3 所示的编码协议后,需考虑如何在数据接收端对MCU 发

送的数据进行解码。为此设计了图4 所示电路。

图4 中C1 的充放电回路因Q1、Q2 的开关作用而不同,调整R9、R10

可以分别改变C1 的充电时间和放电时间,由公式1 可以估算出[1]。

由于其它等效电阻都很小,所以充电回路中的等效电阻可以近似为R9

和Q1 的c-e 间的动态电阻ce r 之和;同理,放电回路中的电阻可等效为R10

'

ce r 之和。图4 中U1C、U1D 和R1、R2 组成了一个施密特触发器,由于其输入信

号Fset1 是电容C1 充放电过程中电容两端的电压,所以在施密特触发器输

出端的decod信号实际为DATA信号的上升沿和下降沿发生一定偏移后的信

号。其偏移量在C1 充放电回路确定后,可以根据需要进行调整,其调整原

则受公式2 和公式3 制约[3]。

为正向阈值电压;

T V -

为反向阈值电压;TH V 为反向器的阈值电压,为器件本身的固有参数。但多数情况下约等于反向器输出逻辑“1”时电压值的一半。对于从信号decod 到信号SRCLK 之间的电路网络,其功能与前述电路网络完全相同,在此不再累述。电路中对SRCLK信号的上升沿进行计数得到RCLK信号的上升沿,使用74161进行计数,每输出8 个SRCLK信号的上升沿得到1个RCLK信号的上升沿。需对它们的异步清零端进行上电复位设置,以保证上电时电路无异常。

3、实验结果和分析根据上述理论指导,对电路进行调整,得到适应于实际情况传输速率和编码方式的硬件电路,并进行测试。实验中使用单个共阳数码管a~g分别连接QA~QH,db连接QH,数码管显示正常。图5 为输入数据DATA为10011001 时各个测试点的波形图,由波形图可以看出每输入1bit 数据SRCLK给出一个上升沿,当输入8bit 数据时,RCLK给出一个上升沿进行锁存,此时输出信号由0x00 变为0x91,数码管由不亮变为显示字母“H”。实验中使用占空比30%的矩形波作为逻辑“0”,占空比60%的矩形波为逻辑“1”;采用74161 的计数结果作为转换结束信号,计数为8 的整数倍时输出一个上升沿RCLK;由于驱动数码管的74595 必须在锁存时钟上升沿达到时,才会将移位寄存器中的数据输出,所以在RCLK 上升沿到达前,

输出数据保持不变。本实验中只给出了单个数码管各测点的波形图,当需要多个数码管同时显示时,可以通过对移位寄存锁存器74595 的QH?输出端对移位寄存器进行扩展。同时还需对SRCLK 的脉冲计数部分进行相应设置,以得到适应相应个数的数码管的RCLK 信号,即每增加一个数码管,就要增加8 个SRCLK上升沿来得到1 个RCLK 上升沿才能保证输出结果正确。

4、结论

实验结果表明,本文提出的基于移位寄存器的单端口数码管显示驱动电路能够很好的驱动数码管显示,且对传输速率和编码方式的误差容限的要求十分宽松,可以根据需要很方便的对接口进行配置和调整。本驱动电路只需要一个IO 口就能驱动数码管,适合在IO 口紧张的情况下使用。

【参考文献】

[1]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2009:17-100.

[2]阎石.数字电子技术基础[M].北京:高等教育出版社,2008:300-302.

作者简介:刘延飞(1988.12-),男,河南开封人,硕士研究生,研究方向为测控技术。

袁燕妮(1983.08-),女,河南济源人,中级职称,研究方向为信息检索、数据挖掘。

刘国辉(1988.05-),男,河南驻马店人,设计员,研究方向为仿真技术。

上一篇:简析科普杂志价格变动成因 下一篇:英汉被动句的表达形式和语义功用的对比分析