动态扫描显示电路设计教材.docx

上传人:b****6 文档编号:7837361 上传时间:2023-01-26 格式:DOCX 页数:9 大小:834.48KB
下载 相关 举报
动态扫描显示电路设计教材.docx_第1页
第1页 / 共9页
动态扫描显示电路设计教材.docx_第2页
第2页 / 共9页
动态扫描显示电路设计教材.docx_第3页
第3页 / 共9页
动态扫描显示电路设计教材.docx_第4页
第4页 / 共9页
动态扫描显示电路设计教材.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

动态扫描显示电路设计教材.docx

《动态扫描显示电路设计教材.docx》由会员分享,可在线阅读,更多相关《动态扫描显示电路设计教材.docx(9页珍藏版)》请在冰豆网上搜索。

动态扫描显示电路设计教材.docx

动态扫描显示电路设计教材

动态扫描显示电路设计

摘要:

所谓动态扫描显示,就是让各位LED按照一定的顺序轮流地发光显示。

只要每秒扫描次数大于24次以上,就观察不到闪烁现象,人眼看起来很稳定。

静态扫描显示与动态显示相比,有显著降低LED功耗,大大减少LED的外部引线等优点。

目前动态扫描显示技术已经被广泛应用于新型数字仪表、智能仪器和智能显示屏中。

本次课程实践中运用QuartusII软件,采用VHDL文本设计和原理图相结合的层次化方式实现数码动态扫描显示电路设计。

首先,分别用VHDL语言编写8位数码扫描显示电路程序和分频器程序,作为底层文件;顶层文件用原理图的设计方法,调用底层文件生成的符号,从而实现动态扫描显示。

用VHDL设计一个8位数码扫描显示电路,利用QuartusII9.0进行编辑输入、编译及时序仿真。

其中,由于分频器的分频系数过大时,在仿真波形上很难看出波形的变化,如本设计是从100MHz分频到1KHz,分频系数为一万,所以可以通过改变减小分频系数,如改为10分频,就得到变化的波形,来验证数码动态扫描显示电路设计的正误。

关键字:

LED动态扫描显示电路QuartusII分频器层次化设计

一、工作原理:

1、动态扫描显示的工作原理:

8位数码扫描显示的电路符号如下图

(1)所示。

输入信号:

时钟信号CLK。

输出控制信号:

段控制信号SG[6..0];位控制控制信号BT[7..0]。

如图

(2)所示是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是位选控制信号,接图

(2)中的8个位选通信号:

k1、k2、…k8。

程序中CNT8是一个3位技术器,作扫描计数信号,有进程P2生成;进程P3是7断译码查表输出程序,进程P1是对8个数码管选通的扫描程序,例如当CNT8等于“001”时,K2对应的数码管被选通,同时,H被赋值3,再有进程P3译码输出“1001111”,显示在数码管上即为“3”;当CNT8扫变时将能在8个数码管上显示数据:

23689ABC。

 

(1)8位数码扫描电路的符号

(2)8位数码扫描电路

2、七段数码显示译码器的原理:

7段数码是纯组合电路。

通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的。

为了满足十六进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA/CPLD中来实现。

注意,这里没有考虑表示小数点的发光管,如果要考虑需要增加h段,并且段输出SG[6..0]改为SG[7..0]。

本实验采用共阳数码管,其电路图见下图

(1)。

译码真值表见表

(1)。

图(3)共阳数码管及其电路

(1)译码器的真值表

代表数据

输入码

输出码g~a

代表数据

输入码

输出码g~a

0

0000

1000000

8

1000

0000000

1

0001

1111001

9

1001

0010000

2

0010

0100100

A

1010

0001000

3

0011

0110000

B

1011

0000011

4

0100

0011001

C

1100

1000110

5

0101

0010010

D

1101

0100001

6

0110

0000010

E

1110

0000110

7

0111

1111000

F

1111

0001110

3、分频器的工作原理:

分频器的原理也就是计数器,对时钟进行偶数分频,使占空比为50%。

只要使用一个计数器,在计数器的前一半时间使输出为高电平,在计数器的后一半时间使输出为低电平,即可得到偶分频时钟。

4、LED显示模块原理:

LED有段码和位码之分,所谓段码就是让LED显示“8.”的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。

位码也就是LED的显示使能端,对于共阳极的LED而言,高电平使能。

要让8个LED同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应8位段码。

虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。

多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50HZ,将看不到闪烁现象。

本次试验不显示小数点,可把SG段控制信号向量变为8位(最高位代表小数点),并在最高位设置成恒0低电平。

二、源文件

1、8位数码扫描显示电路VHDL设计程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYsmsmdlIS

PORT(CLK:

INSTD_LOGIC;

SG:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

BT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

END;

ARCHITECTUREsoneOFsmsmdlIS

SIGNALCN:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALH:

INTEGERRANGE0TO15;

BEGIN

P1:

PROCESS(CN)

BEGIN

CASECNIS

WHEN"000"=>BT<="00000001";H<=2;

WHEN"001"=>BT<="00000010";H<=3;

WHEN"010"=>BT<="00000100";H<=6;

WHEN"011"=>BT<="00001000";H<=8;

WHEN"100"=>BT<="00010000";H<=9;

WHEN"101"=>BT<="00100000";H<=10;

WHEN"110"=>BT<="01000000";H<=11;

WHEN"111"=>BT<="10000000";H<=12;

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESSP1;

P2:

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THENCN<=CN+1;

ENDIF;

ENDPROCESSP2;

P3:

PROCESS(H)

BEGIN

CASEHIS

WHEN0=>SG<="0111111";WHEN1=>SG<="0000110";

WHEN2=>SG<="1011011";WHEN3=>SG<="1001111";

WHEN4=>SG<="1100110";WHEN5=>SG<="1101101";

WHEN6=>SG<="1111101";WHEN7=>SG<="0000111";

WHEN8=>SG<="1111111";WHEN9=>SG<="1101111";

WHEN10=>SG<="1110111";WHEN11=>SG<="1111100";

WHEN12=>SG<="0111001";WHEN13=>SG<="1011110";

WHEN14=>SG<="1111001";WHEN15=>SG<="1110001";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESSP3;

END;

2、分频器VHDL设计程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfenpinqIS

PORT(V:

INSTD_LOGIC;

X:

OUTSTD_LOGIC);

ENDfenpinq;

ARCHITECTUREoneOFfenpinqIS

SIGNALF:

STD_LOGIC:

='0';

SIGNALR:

STD_LOGIC_VECTOR(13DOWNTO0):

="00000000000000";

BEGIN

PROCESS(V)

BEGIN

IF(V'EVENTANDV='1')THEN

IF(R/=4999)THEN

R<=R+1;

ELSE

F<=NOTF;

R<=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDPROCESS;

X<=F;

ENDone;

 

原理图:

仿真结果

 

为了让结果可见,采用十分频:

(1)分频器波形:

(2)仿真波形

三、结论:

采用扫描方式实现LED数码管的动态显示是,控制好数码管之间的时间延时是很重要的,根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法分辨LED数码管短暂的不亮,认为一直点亮的。

动态扫描显示方式是利用人眼的视觉暂留效应,把8个数码管按一定顺序(从左至右或者从右至左)进行点亮。

然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示(点亮),与传统方式得到的视觉效果完全一样。

因此我们只要给数码管这样一个扫描频率,就可以实现两个以上的数码管同时点亮。

而这个频率我们可以通过一个计数器来产生,只要计数频率足够大,就可以实现我们的要求。

事实上,因为数码管点亮不是瞬间就可以的,它也需要一定的时间,该时间与数码管的选择有关系。

四、心得体会:

通过此次动态扫描电路的设计,我们进一步学习了VHDL基本逻辑电路的综合设计应用,掌握VHDL语言的语法规范,掌握时序电路描述方法,掌握多个数码管动态扫描显示的原理及设计方法。

同时也熟悉掌握了QuartusII的使用方法以及使用的各种流程。

明白了多个数码管动态扫描显示,是讲所有的数码管并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描频率大于50Hz,将看不到闪烁现象。

本次设计是培养了我们的综合能力,从理论到实践,我学到了很多东西,在设计过程中难免遇到很多问题,同时发现了自己的的不足之处,对以前的知识理解不够深刻,掌握不够牢固,还需要更努力的学习。

我还体会到,做任何事情都要有耐心,有团结合作的精神,要养成高度的责任心,这次课程设计为我以后的工作得到一定的磨练。

五、参考文献:

[1]潘松,黄继业.EDA技术实用教程——VHDL版(第四版).科学出版社,2010;

[3]包明.EDA技术与可编程器件的应用(第一版).北京:

航空航天大学出版社,2007.3;

[4]郑燕,赫建国.基于VHDL与QuartusII软件的可编程逻辑器件应用于开发.北京:

国防工业出版社,2011;

[5]阎石.数字电子技术基础(第五版).北京:

高等教育出版社,2006.5;

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

当前位置:首页 > 党团工作 > 党团建设

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

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