数电实验四 数码管扫描显示控制器设计与实现

数电实验四 数码管扫描显示控制器设计与实现

ID:44715531

大小:19.92 KB

页数:6页

时间:2019-10-25

数电实验四 数码管扫描显示控制器设计与实现_第1页
数电实验四 数码管扫描显示控制器设计与实现_第2页
数电实验四 数码管扫描显示控制器设计与实现_第3页
数电实验四 数码管扫描显示控制器设计与实现_第4页
数电实验四 数码管扫描显示控制器设计与实现_第5页
资源描述:

《数电实验四 数码管扫描显示控制器设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一.课题名称:数码管扫描显示控制器设计与实现二.实验目的1.掌握VHDL语言的语法规范,掌握时序电路描述方法2.掌握多个数码管动态扫描显示的原理及设计方法三.实验所用仪器及元器件1.计算机2.直流稳压电源3.数字系统与逻辑设计实验开发板四.实验任务要求1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0,1,2,3,4,5这六个不同的数字图形到六个数码管上,仿真下载验证其功能,并下载到实验板上测试。2.用VHDL语言设计并实现六个数码管滚动显示电路。(选作)①循环左滚动,始终点亮6个数码管,左出右进。状态为:0123

2、45-123450-234501-345012-450123-501234-012345②向左滚动,用全灭的数码管充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:012345-12345X-2345XX-345XXX-45XXXX-5XXXXX-XXXXXX-XXXXX0-XXXX01-XXX012-XX0123-X01234-012345,其中’X’表示数码管不显示。五.实验设计思路及过程1.实验原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口

3、输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制每个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。扫描显示方式就是在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码

4、管显示出将要显示的字符。当闪烁显示的发光二级管闪烁频率较高时我们将看到持续点亮的现象。同理,当多个数码管一次显示,当切换速度足够快时,我们将看到所有的数码管都是同时在显示。一个数码管要稳定显示要求显示频率大于50Hz,那么6个数码管则需要50*6=300Hz以上才能看到持续稳定点亮的现象。2.设计思路数码管亮灭的控制:设计时序电路,产生数码管的选通控制信号,分别对应6个共阴极数码管的公共端,当cat=‘0’时,其对应的数码管被点亮,因此,通过控制cat1~cat6,就可以控制6个数码管循环依次点亮。要求任意时刻,最多只有一个cat

5、为‘0’,其余为‘1’。由于扫描信号大于300Hz,人眼将看到数码管持续稳定点亮。数码管显示字形的控制:定义七维数组num,分别控制数码管的abcdefg七段,高电平亮,低电平灭,故可以实现012345等数字。异步清零的控制:从外部输入信号clear,高电平时控制数码管正常显示,低电平时数码管全部熄灭。3.VHDL代码实验任务1:串行扫描电路--shumaguanlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_log

6、ic_arith.all;entityshumaguanis--定义数码管实体port(clear,clkin:instd_logic;num:outstd_logic_vector(6downto0);--控制字形的数码管段输入端信号cat:outstd_logic_vector(5downto0)--选通控制信号);endshumaguan;architecturebehaveofshumaguanis--数码管行为signalstate:integerrange0to6;--定义随机变量描述数码管状态beginprocess

7、(clear,clkin)beginifclear='0'thenstate<=0;--清零所有数码管灭灯elsif(clkin'eventandclkin='1')then--上升沿有效ifstate=6thenstate<=1;--状态在1~6之间循环elsestate<=state+1;endif;endif;endprocess;process(state)--输出状态,控制哪个数码管亮灯begincasestateiswhen1=>num<="1111110";cat<="011111";--第一个数码管显示0when2

8、=>num<="0110000";cat<="101111";--第二个数码管显示1when3=>num<="1101101";cat<="110111";--第三个数码管显示2when4=>num<="1111001";cat<="111011"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。