实验二动态扫描显示电路设计
实验二  动态扫描显示电路设计
一、  设计要求
1、设计要求
设计一个四位LED数码显示动态扫描控制电路,显示4位十进制数或4字母的单词,要求显示内容可以通过按键切换。
2、硬件环境
LP-2900开发装置的LED数码管为共阴显示器,六个显示器的七个段控制a~g及小数点dp分别对应相连,各显示器的共阴极分别由一个3线-8线译码器74138的输出Y0~Y5控制。译码器的3位输入码分别由FPGA的I/O端口DE3、DE2、DE1控制,如图1所示。
1  LP-2900开发装置FPGALED数码显示器的电路连接
3线-8线译码器的3位输入码DE3、DE2、DE1为“000”~“101”时,输出Y0~Y5中有一个为0,FPGA的a~g端口将控制共阴极为0的数码管显示。比如,当DE3、DE2、DE1为“011”时,Y3=0,数码管C4显示。
二、 设计原理分析
多位七段显示器的控制分为静态和动态扫描两种方法。静态驱动方法是将所有显示器的公共端都接有效电平,各位显示器的段控制信号互不相干,分别控制。这样,n位显示器需要7×n个控制信号(不包括小数点),即需要FPGA的56个I/O口对其进行控制。
动态扫描方法是将所有显示器的各个段控制端(a、b…、g、dp)一 一对应连接,而各显示器的公共端COM由位扫描信号分别控制。这样,n位显示器只需要8+n个控制信号(包括小数点)。比如,LP-2900开发装置上B区的6个共阴显示器采用了动态扫描驱动方式,6个共阴端C1~C6由通过一个3线-8线译码器分时控制,电路原理如图1所示。这样FPGA只需要11个I/O口,其中8个控制段信号、3个输出二进制码(“000”~“101”)控制C1~C6。
1.动态显示扫描控制
动态扫描驱动电路中所有的显示器由相同的段信号控制,公共端有效的显示器将显示相同的字符。所以,要使各显示器显示不同的内容,必须控制它们的公共端分时轮流有效。每个显示器只在其公共端为有效电平时根据段码信号显示相应的字符,公共端无效时灭显。
比如,若LP-2900上FPGA端口DE3、DE2、DE1按“000”→“001”→“010” →“011” →“100” →“101” →“000”循环输出二进制码,图1中的3线-8线译码器74138将输出顺序脉冲扫描控制6个共阴显示器的公共端C1~C6,信号波形如图3所示。每路脉冲信号的周期为6个时钟周期,只有1个时钟周期为低电平,且低电平时间依序错开。由于各显示器的阴极端分时轮流选通,任意瞬时只有一个显示器的公共段为有效(低)电平,所以虽然所有显示器的阳极端对应共接,但FPGA输出的段信号(a、b…、g、dp)只能使当前阴极为低电平的那个显示器显示字符,而其它显示器都由于阴极为高电平而呈灭显状态。显然,根据位扫描时序同步输出各位显示器对应的段控制信号N1~N6,就能使它们逐位顺序轮流显示。C1控制的LED显示N1、C2控制的LED显示N2,……,C6控制的LED显示N6
动态扫描显示电路每位显示的时间为一个CP周期,显示扫描周期T为时钟周期的n倍(n为
显示位数),每个显示器的显示时间为1/n。当扫描时钟CP较低时,因为轮流导通可能造成显示信息闪烁。但当扫描频率提高到使每个显示器每秒的导通次数多于50次(T < 20ms)时,由于人眼的视觉暂留效应,就不会感觉显示器闪烁。但扫描位数过多时,显示亮度将受到影响。
3  6位动态显示扫描信号时序
2.显示译码电路
在数字电路中,数符、文字信息一般用二进制编码表示,信息数量N和编码位数n满足N2n。比如,表示10个十进制数符0~9的二进制码有4位,称BCD码。LED七段显示器通过七个段形的发光二极管a~g显示数符或字母。因此,表示数符、文字信息的二进制编码需要通过显示译码器件译成段信号Ni(a~g)控制LED显示相应的字符。
七段共阴显示器的内部原理、外引线排列图                      5  7448逻辑符号
七段显示译码器件有多种型号,比如7447是输入BCD码、输出控制七段共阳显示器的译码驱动器件;而控制共阴七段显示器的相似类型器件是7448。7448的逻辑符号如图5所示,表1列出了其逻辑功能。
1  BCD–七段显示译码器7448功能表
十进制或功能
     
BIN
   
LTN RBIN  D  C  B  A
OA  OB  OC  OD  OE  OF  OG
0
H    H    L  L  L  L
H
H  H  H  H  H  H  L
1
H    ×  L  L  L  H
H
L  H  H  L  L  L  L
2
H    ×  L  L  H  L
H
H  H  L  H  H  L  H
3
H    ×  L  L  H  H
H
H  H  H  H  L  L  H
4
H    ×  L  H  L  L
H
L  H  H  L  L  H  H
5
H    ×  L  H  L  H
H
H  L  H  H  L  H  H
6
H    ×  L  H  H  L
H
L  L  H  H  H  H  H
7
H    ×  L  H  H  H
H
H  H  H  L  L  L  L
8
H    ×  H  L  L  L
H
H  H  H  H  H  H  H
9
H    ×  H  L  L  H
H
H  H  H  L  L  H  H
10
H    ×  H  L  H  L
H
L  L  L  H  H  L  H
11
H    ×  H  L  H  H
H
L  L  H  H  L  L  H
12
H    ×  H  H  L  L
H
L  H  L  L  L  H  H
13
H    ×  H  H  L  H
H
H  L  L  H  L  H  H
14
H    ×  H  H  H  L
H
L  L  L  H  H  H  H
15
H    ×  H  H  H  H
H
L  L  L  L  L  L  L
灭灯
×  ×  ×  ×  显示器闪烁×  ×
L
L  L  L  L  L  L  L
灭零
H    L    L  L  L  L
L
L  L  L  L  L  L  L
灯测试
L    ×  ×  ×  ×  ×
H
H  H  H  H  H  H  H
参考设计思路
根据设计原理分析,动态扫描显示控制的关键问题在于产生顺序脉冲分时选通各显示器的公共端,并同步输出其段控制信号。在数字电路中,类似图3的时序波形可以采用移位脉冲发生器产生,也可采用计数器控制二进制译码器产生。若采用LP-2900开发装置,由于已在FPGA外部设置了3线-8线译码器74138控制显示器的共阴极,因此只要采用计数器产生二进制计数信号控制译码器即能实现动态显示扫描。在LP-2900上实现四位动态扫描显示控制电路的参考设计方案原理框图如图6所示,图中虚线框内为开发装置上的固有器件,框外为FPGA中需要设计的部分。
动态扫描显示电路参考设计方案原理框图
本设计要求实现四位动态扫描显示,可以任选LP-2900六位显示中的前四位或后四位显示。若采用六进制计数器产生“000”~“101”六组码控制74138,全部显示的选通信号轮流有效,可以使N1、N2为全“0”灭显前两位显示器或使N5、N6为全零灭显后两位。如果采用四进制计数器的输出控制DE2、DE1,并使DE3始终为0(端口接GND),则74138输入码A以“000”、“001”、“010”、“011”循环变化,输出控制C1~C4轮流为低电平,C5、C6始终为高电平,后两位显示器灭显,不必输出N5、N6信号。
由于Ni必须在相应的Ci有效时同步输出,所以可采用控制产生Ci顺序脉冲的计数器同步控制ROM选择各位的显示码,经过显示译码输出七段控制信号Ni,同时选择该位的小数点控制信号控制显示器的dp端。比如,若需要显示四位十进制数字“42.75”,则ROM依次存放的各位显示码为:D1~A1、dp=“01000”;D2~A2、dp=“00101”;D3~A3、dp =“01110”; D4~A4、dp=“01010”;其中每个显示码前四位为8421BCD码,最后一位为小数点控制位。由于四个通道的显示码与四位显示器的扫描信号由计数器同时控制,所以当计数器输出DE2,DE1为“00”时,C1有效时,选择显示码D1C1B1A1和小数点dp1;若计数器输出为“01”,C2有效,选择显示码是D2~A2和dp2,如此一一对应。
四、参考设计步骤
1.新建设计项目project。
2.新建图形文件,设计扫描控制计数器。利用lpm_counter参数化计数器设计分频器,根据设计要求计算分频系数,选择计数器的位宽。
3.选择lpm_counter参数化计数器设计4进制计数器,用于控制LP-2900装置上3线-8线译码器的de2和de1,同时使上3线-8线译码器的de3接地。
4. 新建rom初始化文件(*.mif或*.hex),设置合理的存储单元(≥4)和数据位宽(5位),并输入待显示的数据。调用lpm_rom模块,设计存储器,关联刚刚建立的rom初始化文件。存储器的地址由4进制计数器的输出控制。5位输出数据高4位为8421BCD码,最低位为小数点dp.
5.调用7448七段显示译码器。DCBA输入端来自ROM输出的高四位,输出控制a~g七个段极信号。
6.分析与综合通过后分配FPGA端口引脚编号。编译通过后下载,观察显示内容是否正确。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。