数码管扫描显示控制器设计与实现实验报告.docx
实验报告
实验名称:数码管扫描显示控制器设计与实现
学院:信息与通信工程学院
班级:
姓名:
学号:
日期:2010年5月
索引
一.实验目的 3
二.实验所用仪器及元器件 3
三.实验任务要求 3
四.实验设计思路及过程 4
1.实验原理 4
2.设计思路 4
3.VHDL代码 5
A.实验任务1 5
B.实验任务2-1 8
C.实验任务2-11 11
五.仿真波形及分析 12
1.仿真波形 12
①实验任务1 12
②实验任务2-1 13
3.波形分析 17
①实验任务1 17
②实验任务2-1 17
六故障及问题分析 18
1.频率设置问题 18
2.触发问题 18
3.逻辑实现问题 18
七.本实验总结与结论 19
八.学期总结 19
九.参考文献 19
一.实验目的
1.掌握VHDL语言的语法规范,掌握时序电路描述方法
2.掌握多个数码管动态扫描显示的原理及设计方法
二.实验所用仪器及元器件
1.计算机
2.直流稳压电源
3.数字系统与逻辑设计实验开发板
三,实验任务要求
1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示
0,1,2,3,4,5这六个不同的数字图形到六个数码管上,仿真下载验证其功能。
2.用VHDL语言设计并实现六个数码管滚动显示电路。(选作)
1.循环滚动,始终点亮6个数码管,左出右进。状态为:
012345—123450-234501-345012-450123—501234—012345
II.向左滚动,用全灭的数码管充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:
012345-12345X—2345XX-345XXX-45XXXX—5XXXXX一XXXXXX—XXXXX0—
XXXX01—xXX012—XX0123—X01234-012345,其中’X表示数码管不显示。
四.实验设计思路及过程
1.实验原理
为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。
各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。6个数码管则需要50*6=300Hz以上才能看到持续稳定点亮的现象。
2.设计思路
设计时序电路,输入时钟经过一个分频器,产生2kHz的扫描信号作为时钟,驱动计数器工作。选用模值为6的计数器,通过一个3线至6线译码器,产生段码,依次控制6个LED的亮灭,使得某一时刻有且仅有一个LED点亮,同时产生对应的,将点亮的LED数码管赋值显示为相应的数码予以显示。由于扫描频率较高,6位LED数码管序列将显示持续稳定的0至5的数码。
3.VHDL代码
A.实验任务1
①实现代码
-2kHz分频器
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitydiv2kis
port(clk_in:instd_logic;
clk_out:outstd_logic);end;
architecture