收藏 分享(赏)

北邮数电实验-数码管扫描显示控制器设计与实现.docx

上传人:fmgc7290 文档编号:4466224 上传时间:2018-12-29 格式:DOCX 页数:16 大小:516.05KB
下载 相关 举报
北邮数电实验-数码管扫描显示控制器设计与实现.docx_第1页
第1页 / 共16页
北邮数电实验-数码管扫描显示控制器设计与实现.docx_第2页
第2页 / 共16页
北邮数电实验-数码管扫描显示控制器设计与实现.docx_第3页
第3页 / 共16页
北邮数电实验-数码管扫描显示控制器设计与实现.docx_第4页
第4页 / 共16页
北邮数电实验-数码管扫描显示控制器设计与实现.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、北京邮电大学实 验 报 告实验名称:数码管扫描显示控制器设计与实现学 院:信息与通信工程学院班 级: 2011XXXXXX 姓 名: XXX 学 号: 日 期: 2013 年 5 月 数字电路与逻辑设计实验报告第 2 页一实验目的1. 掌握 VHDL 语言的语法规范,掌握时序电路描述方法2. 掌握多个数码管动态扫描显示的原理及设计方法二实验所用仪器及元器件1. 计算机2. 直流稳压电源3. 数字系统与逻辑设计实验开发板三实验任务要求1. 用 VHDL 语言设计并实现六个数码管串行扫描电路,要求同时显示0,1,2,3,4 ,5 这六个不同的数字图形到六个数码管上,仿真下载验证其功能。2. 用 V

2、HDL 语言设计并实现六个数码管滚动显示电路。(选作)I. 循环滚动,始终点亮 6 个数码管,左出右进。状态为:012345123450234501345012450123501234 012345II. 向左滚动,用全灭的数码管充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:01234512345X2345XX345XXX45XXXX 5XXXXXXXXXXXXXXXX0XXXX01XXX012 XX0123 X01234012345,其中X表示数码管不显示。四实验设计思路及过程1.实验原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。动态扫描显示需要由两组

3、信号来控制:一组是字段输出口输出的字形代码,用数字电路与逻辑设计实验报告第 3 页来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6 位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各

4、位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于 50Hz,将看不到闪烁现象。6 个数码管则需要 50*6=300Hz 以上才能看到持续稳定点亮的现象。2.设计思路设计时序电路,选用模值为 6 的计数器,通过一个 3 线至 6 线译码器,产生段码,依次控制

5、6 个 LED 的亮灭,使得某一时刻有且仅有一个 LED 点亮,同时产生对应的,将点亮的 LED 数码管赋值显示为相应的数码予以显示。由于扫描频率较高,6 位 LED 数码管序列将显示持续稳定的 0 至 5 的数码。3.VHDL 代码A.实验任务 1实现代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;数字电路与逻辑设计实验报告第 4 页USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GKY07P14 ISPORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)

6、;countout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END GKY07P14;ARCHITECTURE behave OF GKY07P14 ISSIGNAL q_temp:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL cnt:INTEGER RANGE 0 TO 5;BEGINp1:PROCESS(clk)BEGINIF(clkEVENT AND clk=1)THENIF(cnt=5)THEN cntcountcountcountcountcount

7、countq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempq_tempcountcountcountcountcountcountcountq_tempq_tempq_tempq_tempq_tempq_tempq_tempcountcountcountcountcountcountcount123450-234501-345012-450123-501234-012345 共六个状态.从图中可以清楚地看出这六个状态转移过程中, 发光二极管管脚的变化情况.输入时钟信号后,6个数码管的选通控制端在同一

8、时刻始终保持一个低电平其余高电平,在 0-5对应的数码管上输出实验设定的数字并且由地位向高位依次循环移动. 3.实验任务 2-II由波形图可以清楚地看到 12 个状态的波形,当时钟 clk 变化一些周期之后,波形就转到下一个状态. 如图所示.状态转移关系: 012345-12345X-数字电路与逻辑设计实验报告第 16 页2345XX-345XXX-45XXXX-5XXXXXX-XXXXXX-XXXXX0 -XXXX01-XXX012-XX0123-X01234-012345六故障及问题分析我在课前完成了代码的编写,刚开始时使用枚举法,虽然原理简单易于编写,但代码较为冗长。后来在一位同学的启发

9、下尝试用上述方法编写,代码大为简化。并且在课前仿真,波形都没有问题。但在课上下载时却遇见了问题。第一个没有问题,第二个出现的问题是:能够实现显示数字的左移,但无法同时显示所有的数据,只能显示当前状态下的数码管所显示的数据。出现这种现象,说明时钟频率的选择有问题,同时也解释了为什么仿真时没有问题。因为时钟频率选得太低,所以在人眼看来,数字无法全部显示。通过添加中间变量 cnt,最终解决了这个问题。七实验总结与结论经过逻辑分析,编写 VHDL 代码,然后调试,进行波形仿真,最后下载到实验板实现,一系列工序之后,成功实现了本实验。我深深的感受到进行数字电路实验,理论分析是十分重要的一环,只有逻辑分析

10、透彻无误了,才能用语言进行描述,进而用硬件实现。这次实验让我对 VHDL 这样一门硬件描述语言有了更加深刻的认识。语言是描述设计者逻辑思想的,有什么样的逻辑思维就会产生什么样的代码,换句话说,逻辑思维错误将直接导致描述错误,进而不能实现数字逻辑。应该着重优化逻辑思维,才能写出优秀的硬件代码。而硬件描述语言的学习,不同于一般编程语言的描述,它没有汇编那样深入硬件最底层,但从硬件抽象出来的逻辑却与硬件密不可分。编写硬件描述代码,不仅要符合基本编程语言的规范,更应该时时刻刻联系实现功能的硬件,理解时序和组合的关系,理解同步和异步的差异,理解进程和信号的流程等等,这样才能使写出的代码效率更高。这学期数字电路实验就这样结束了,我在实验操作能力有所提升的同时也更深的理解了数字电路与逻辑设计的理论知识,也体会到了数字电路的强大功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报