北邮数电实验-数码管扫描显示控制器设计与实现Word格式文档下载.docx

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

北邮数电实验-数码管扫描显示控制器设计与实现Word格式文档下载.docx

《北邮数电实验-数码管扫描显示控制器设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《北邮数电实验-数码管扫描显示控制器设计与实现Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。

北邮数电实验-数码管扫描显示控制器设计与实现Word格式文档下载.docx

2.掌握多个数码管动态扫描显示的原理及设计方法

二.实验所用仪器及元器件

1.计算机

2.直流稳压电源

3.数字系统与逻辑设计实验开发板

三.实验任务要求

1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0,1,2,3,4,5这六个不同的数字图形到六个数码管上,仿真下载验证其功能。

2.用VHDL语言设计并实现六个数码管滚动显示电路。

(选作)

I.循环滚动,始终点亮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.设计思路

设计时序电路,选用模值为6的计数器,通过一个3线至6线译码器,产生段码,依次控制6个LED的亮灭,使得某一时刻有且仅有一个LED点亮,同时产生对应的,将点亮的LED数码管赋值显示为相应的数码予以显示。

由于扫描频率较高,6位LED数码管序列将显示持续稳定的0至5的数码。

3.VHDL代码

A.实验任务1

①实现代码

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYGKY07P14IS

PORT(clk,clear:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

countout:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDGKY07P14;

ARCHITECTUREbehaveOFGKY07P14IS

SIGNALq_temp:

STD_LOGIC_VECTOR(6DOWNTO0);

SIGNALcount:

STD_LOGIC_VECTOR(5DOWNTO0);

SIGNALcnt:

INTEGERRANGE0TO5;

BEGIN

p1:

PROCESS(clk)

BEGIN

IF(clk'

EVENTANDclk='

1'

)THEN

IF(cnt=5)THENcnt<

=0;

ELSE

cnt<

=cnt+1;

ENDIF;

ENDIF;

ENDPROCESS;

p2:

PROCESS(cnt)

IF(clear='

0'

)THENcount<

="

111111"

;

ELSE

CASEcntIS

WHEN1=>

count<

101111"

q_temp<

0110000"

WHEN2=>

110111"

1101101"

WHEN3=>

111011"

1111001"

WHEN4=>

111101"

0110011"

WHEN5=>

111110"

1011011"

WHEN0=>

011111"

1111110"

ENDCASE;

countout<

=count;

q<

=q_temp;

ENDbehave;

②代码说明

通过分频器输入产生选通脉冲,控制0至5号LED数码管依次亮灭,同时使用数码显示信号使得数码管显示相应数码。

实现时通过连接引入分频信号,通过数据选择器选择数码管。

计数器信号触发数据选择器,赋值给位码触发数码管显示数码。

最终实现动态扫描显示数字序列。

B.实验任务2-I

PORT(clk,clear:

q:

countout:

SIGNALcnt,cnt1:

SIGNALtmp:

INTEGERRANGE0TO15999;

signalclk1:

STD_LOGIC;

p0:

PROCESS(clk,clear)

IFclear='

THENtmp<

ELSIFclk'

THEN

IFtmp=15999THEN

tmp<

ELSE

=tmp+1;

ENDIF;

ENDPROCESSp0;

PROCESS(tmp)

IFclk'

IFtmp<

1000THEN

clk1<

='

ENDPROCESSp1;

ENDPROCESSp2;

p3:

PROCESS(clk1)

IF(clk1'

EVENTANDclk1='

IF(cnt1=5)THENcnt1<

cnt1<

=cnt1+1;

ENDPROCESSp3;

p4:

PROCESS(cnt,cnt1)

)THENq_temp<

0000000"

CASEcnt+cnt1IS

WHEN6=>

WHEN7=>

WHEN8=>

WHEN9=>

WHEN10=>

WHEN11=>

WHENOTHERS=>

ENDPROCESSp4;

p5:

PROCESS(cn

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

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1