8位十进制数码动态扫描电路设计报告
设设计计报报告告 课程名称课程名称电子技术基础电子技术基础 I I 任课教师任课教师 设计题目设计题目8 8 位十进制数动态扫描显示控制电路位十进制数动态扫描显示控制电路 班级班级 8 位十进制数数码动态扫描电路设计 简介:所谓动态扫描显示,就是让各位 LED 按照一定的顺序轮流地发光显示。只要每秒扫 描次数大于 24 次以上,就观察不到闪烁现象,人眼看起来很稳定。静态扫描显示与动态显 示相比,有显著降低 LED 功耗,大大减少 LED 的外部引线等优点。目前动态扫描显示技术已 经被广泛应用于新型数字仪表、智能仪器和智能显示屏中。 本次课程实践中运用 QuartusII 软件, 采用 VHDL 文本设计和原理图相结合的层次化方 式实现数码 8 位动态扫描显示电路设计。首先,分别用VHDL 语言编写 8 位数码扫描显示电 路程序和分频器程序,作为底层文件;顶层文件用原理图的设计方法, 调用底层文件生成的 符号, 从而实现动态扫描显示。 用 VHDL 设计一个 8 位数码扫描显示电路, 利用 QuartusII9.0 进行编辑输入、编译及时序仿真。其中, 由于分频器的分频系数过大时,在仿真波形上很难 看出波形的变化,如本设计是从100MHz 分频到 1KHz,分频系数为一万,所以可以通过改变 减小分频系数,如改为 10 分频,就得到变化的波形,来验证数码动态扫描显示电路设计的 正误。 一、工作原理一、工作原理 1、8 位动态扫描显示的工作原理: 输入信号:时钟信号CLK。输出控制信号:段控制信号SG[60];位控制控制信号 BT[70]。8 位数码管,其中每个数码管的8 个段 h、g、f、e、d、c、b、a(h 是小数点)都 分别连接在一起,8 个数码管分别由 8 个选通信号 k1~k8 来选择。被选通的数码管显示数 据,其余关闭。如在某一时刻,k3 为高电平,其余选通信号为低电平,这时仅为k3 对应的 数码管显示来自段信号端的数据, 而其他 7 个数码管呈现关闭状态。 根据这种电路状况, 如 果希望在 8 个数码管显示希望的数据,就必须使得8 个选通信号 k1~k8 分别被选通,与此 同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变, 就能实现扫描显示的目的。 扫描显示程序中 CLK 是扫描时钟;SG 为 7 段控制信号,由高到低为分别接g、f、e、d、 c、b、a7 个段;BT 是位选控制信号,接下图(1)中的 8 个位选通信号:k1、k2„k8。程序中 CNT8 是一个 3 位计数器,作扫描计数信号,有进程P2 生成;进程 P3 是 7 断译码查表输出 程序,进程P1 是对 8 个数码管选通的扫描程序,例如当CNT8 等于“010”时,K3 对应的数 码管被选通, 同时, H 被赋值 3, 再有进程 P3 译码输出 “1001111” , 显示在数码管上即为 “3” ; 当 CNT8 扫变时将能在 8 个数码管上显示数据:12345678。 图(1)8 位数码电路 2、七段数码显示译码器的原理: 7 段数码是纯组合电路。通常的小规模专用IC,如 74 或 4000 系列的器件只能作十进制 BCD 码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制 的。为了满足十六进制数的译码显示,最方便的方法就是利用 VHDL 译码程序在 FPGA/CPLD 中来实现。注意,这里没有考虑表示小数点的发光管,如果要考虑需要增加h 段,并且段输 出 SG[60]改为 SG[70]。本实验采用共阳数码管,其电路图见下图(2) 图(2) 共阴和共阳数码管及其电路 代表 数据 输入码输入码 g~a代表数据输入码输入码 g~a 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 1000000 1111001 0100100 0011000 0011001 0010010 0000010 1111000 8 9 A B C D E F 1000 1001 1010 1011 1100 1101 1110 1111 0000000 0010000 0001000 0000011 1000110 0000110 0000110 0001110 图(3)译码器真值表 3、分频器的工作原理: 分频器的原理也就是计数器,对时钟进行偶数分频,使占空比为50%。只要使用一个计 数器,在计数器的前一半时间使输出为高电平, 在计数器的后一半时间使输出为低电平, 即 可得到偶分频时钟。 二、功能模块二、功能模块 1. 8 位数码扫描电路模块: CLK 为时钟信号,SG 为段控制信号,BT 为位控制信号。功能是进行 8 位数码管的控制 和 7 段数码显示的控制。 smdl CLKSG[60] BT[70] inst2 2.分频器模块: CLKIN 时钟信号输入,CLKOUT 时钟信号输出。功能是对时钟信号进行分频。 f enping CLKINCLKOUT inst2 3.LED 显示模块原理: LED 有段码和位码之分,所谓段码就是让LED 显示“8.”的八位数据,一般情况下要通 过一个译码电路,将输入的 4 位 2 进制数转换为与 LED 显示对应的 8 位段码。位码也就是 LED 的显示使能端,对于共阳极的LED 而言,高电平使能。 要让 8 个 LED 同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每 一个 LED 的同时,输入所需显示的数据对应8 位段码。虽然 8 个 LED 是依次显示,但是受视 觉分辨率的影响,看到的现象是8 个 LED 同时工作。 多个数码管动态扫描显示, 是将所有数码管的相同段并联在一起, 通过选通信号分时控 制各个数码管的公共端, 循环点亮多个数码管,并利用人眼的视觉暂留现象, 只要扫描的频 率大于 50HZ,将看不到闪烁现象。 本次试验不显示小数点, 可把 SG 段控制信号向量变为8 位(最高位代表小数点) ,并在 最高位设置成恒 0 低电平。 三、总体设计三、总体设计 用 VHDL 语言编写 8 位数码扫描显示电路程序和分频器程序,作为底层文件;顶层文件 用原理图的设计方法,调用底层文件生成的符号,从而实现动态扫描显示。 模块设计图: 四、模块仿真四、模块仿真 1.8 位数码扫描电路模块仿真图 2. 分频器仿真图 五、总体仿真五、总体仿真 六、硬件实现六、硬件实现 1.引脚锁定 将设计编程下载进选定的目标器件中,如EP1C6,作进一步的硬件测试,查询实验指导 书可得 8 位十进制数数码动态扫描电路各引脚与目标器件中所对应的引脚: 将 CLK 与目标器 件 EP1C6 的第 28 脚相接, 将 m[60]的 m[0]~m[5]按顺序与目标器件 EP1C6 的第 164~169 脚 相 接 ,m[6] 接 引 脚 号 第173 。 n[70] 按 顺 序 与 目 标 器 件EP1C6的 第 162,161,160,159,158,141,140,139相接。 2.锁定好引脚后下载到实验箱并进行测试。 七、结论七、结论 采用扫描方式实现 LED 数码管的动态显示是,控制好