EDA实验二 VHDL七段数码管显示译码_第1页
EDA实验二 VHDL七段数码管显示译码_第2页
EDA实验二 VHDL七段数码管显示译码_第3页
EDA实验二 VHDL七段数码管显示译码_第4页
EDA实验二 VHDL七段数码管显示译码_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA实验二 七段数码管显示译码的设计一、实验目的1、掌握七段数码管译码器的工作原理;2、学会运用波形仿真测试检验程序的正确性;3、学会运用波形仿真测试检验程序的正确性。二、实验设备 ZYE1502C型实验箱三、内容要求1、用拨位开关输入8421BCD码,七段数码管显示“0F”16个16进制的数字。2、观察字符亮度和显示刷新的效果:(1)在8个七段数码管上同时显示某一数字;(2)在8个七段数码管上动态显示某一数字。3、扩展内容:(1)动态显示时,能即时改变显示的顺序;(2)动态显示时,实现显示数字从0F的循环显示。四、实验步骤1、输入:设计部分采用VHDL语言完成;2、编译;3、仿真;4、下载

2、;5、连线。(1)四个拨位开关(在P1、P2处选择)连接D3、D2、D1、D0信号所对应的管脚。时钟CLK所对应的管脚同实验箱上的时钟源相连。(2)扫描片选信号DIG(0 TO 3)的管脚同七段数码管(共阴)相连;(3)七段数码管驱动信号A,B,C,D,E,F,G的管脚分别同扫描数码管的段输入PCLK处的连接线孔A,B,C,D,E,F,G相连。五、实验报告1、论述实验过程和步骤;2、填写正确的实验结果。(1)通过两种显示效果分析:字符显示亮度同扫描频率的关系,且让人眼感觉不出光闪烁现象的最低扫描频率是多少?答:扫描频率越高,显示亮度越低。人眼看是否闪烁与所用的时钟和分频方式有关,在频率稳定和分

3、频均匀的情况下,最低扫描频率为256Hz,若分频不均匀或频率不稳定,则需更高频率。(2)字形编码的种类,即一个7段数码管可产生多少种字符,产生所有字符需要多少根被译码信号线?答:一个7段数码管可产生27=128种字符,产生所有字符至少需要7根被译码信号线。但假如只编译0-F,16个字符,则至少只需要4根被译码信号线。六、实验小结。答:1、不同控制端需要预先分配控制优先级,否则编写的时候会出现很多问题。优先级分为普通和特殊,一般错误情况可以跨越权限显示出来。2、不同的错误需要不同的显示来区分。3、LOAD和CLR的优先级低于EN,在EN从无效到有效的过程中(01),显示会根据现态和MODE出现多

4、种情况:(0,次态,不定态,锁存值)等,所以一般在EN启动后,需要LOAD或者CLR来清空这些不确定因素。优先级设计:优先级控制端说明1topEN使能,低电平有效2mode(2,3)错误的11值,显示-或-3LOAD读取,高电平有效3CLR清零,高电平有效4mode(0)刷屏模式:0静态/1刷屏模式5mode(1)刷屏模式:0左->/1<-右4mode(2,3)显示数字:00不变/01顺数/10逆数控制端所有情况列表:控制内容DIG、DOUTDOUTDOUTDIG4/1DIG1DOUTDIG瞬时有效位显示内容ENLOADCLRmode(0)mode(1)mode(2,3)4静态显示

5、-1×××××4静态显示-000/01/100×111左->刷屏显示-000/01/100111<-右刷屏显示-000/01/1011110无任何显示011×××4静态显示锁存数字0000×004静态显示顺数数字0000×014静态显示逆数数字0000×101左->刷屏显示锁存数字00010001左->刷屏显示顺数数字00010011左->刷屏显示逆数数字00010101<-右刷屏显示锁存数字00011001<-右刷屏显示顺数数字00

6、011011<-右刷屏显示逆数数字00011104静态显示00000010×00/01/101左->刷屏显示00011000/01/101<-右刷屏显示00011100/01/104静态显示DIN数字0100×00/01/101左->刷屏显示DIN数字0101000/01/101<-右刷屏显示DIN数字0101100/01/10代码:LIBRARY IEEE;ENTITY segment ISPORT (CLK : IN STD_LOGIC; CP : Buffer STD_LOGIC; EN : IN STD_LOGIC; LOAD : IN

7、 STD_LOGIC; CLR : IN STD_LOGIC; MODE : IN STD_LOGIC_VECTOR(0 TO 3); DOUT : OUT STD_LOGIC_VECTOR(0 TO 6);-对应A,B,C,D,E,F,G,DP输出 DIN : IN STD_LOGIC_VECTOR(3 DOWNTO 0);-对应4321位数字 DIG : OUT STD_LOGIC_VECTOR(0 TO 3);-段显信息,one hotEND segment;ARCHITECTURE one OF segment ISBEGINPROCESS (EN,LOAD,CLR,MODE,DIN,

8、CLK,CP) VARIABLE Q : STD_LOGIC_VECTOR(1 DOWNTO 0);VARIABLE COUNT : STD_LOGIC_VECTOR(0 TO 3);VARIABLE P : STD_LOGIC_VECTOR(0 TO 21);BEGIN-使能IF EN='1' THEN DOUT(0 TO 6)<= "0000001"DIG(0 TO 3)<= "0000"ELSIF LOAD='1' AND CLR='1' THEN DOUT(0 TO 6)<= &q

9、uot;0000000"DIG(0 TO 3)<= "0000"ELSE-分频IF CLK'EVENT AND CLK='1' THENIF P<3999999 THEN P := P + 1;ELSE P := (OTHERS=>'0');END IF;END IF;IF P=1999999 THEN CP<='1'ELSE CP<='0'END IF;-刷屏模式:刷屏模式:0左->/1<-右mod(1)IF CP'EVENT AND CP=

10、'1' THENIF (MODE(1)='0') THENIF Q<3 THEN Q := Q + 1;ELSE Q := (OTHERS=>'0');END IF;ELSEIF Q>0 THEN Q := Q - 1;ELSE Q := "11"END IF;END IF;END IF;-刷屏模式:0静态/1刷屏模式mod(0)IF (MODE(0)='0') THEN DIG(0 TO 3)<= "0000"ELSE CASE Q ISWHEN "00&

11、quot; => DIG(0 TO 3)<= "0111"WHEN "01" => DIG(0 TO 3)<= "1011"WHEN "10" => DIG(0 TO 3)<= "1101"WHEN "11" => DIG(0 TO 3)<= "1110"WHEN OTHERS => NULL; END CASE;END IF;-显示数字:显示数字:00不变/01顺数/10逆数/11-mod(2,3)I

12、F LOAD='1' THEN COUNT(0 TO 3):=DIN(3 DOWNTO 0);ELSIF CLR='1' THEN COUNT := "0000"ELSEIF CP'EVENT AND CP='1' THENIF (MODE(2)='0')AND(MODE(3)='0') THENCOUNT := COUNT;ELSIF (MODE(2)='0')AND(MODE(3)='1') THENIF COUNT<15 THEN COUNT

13、:= COUNT + 1;ELSE COUNT := (OTHERS=>'0');END IF;ELSIF (MODE(2)='1')AND(MODE(3)='0') THENIF COUNT>0 THEN COUNT := COUNT - 1;ELSE COUNT := "1111"END IF;ELSIF (MODE(2)='1')AND(MODE(3)='1') THENNULL;END IF;END IF;END IF;-显示模式IF (MODE(2)='1'

14、)AND(MODE(3)='1') THEN DOUT(0 TO 6)<="0000001"ELSECASE COUNT ISWHEN "0000" => DOUT(0 TO 6)<= "1111110"WHEN "0001" => DOUT(0 TO 6)<= "0110000"WHEN "0010" => DOUT(0 TO 6)<= "1101101"WHEN "0011"

15、 => DOUT(0 TO 6)<= "1111001"WHEN "0100" => DOUT(0 TO 6)<= "0110011"WHEN "0101" => DOUT(0 TO 6)<= "1011011"WHEN "0110" => DOUT(0 TO 6)<= "1011111"WHEN "0111" => DOUT(0 TO 6)<= "1110010&q

16、uot;WHEN "1000" => DOUT(0 TO 6)<= "1111111"WHEN "1001" => DOUT(0 TO 6)<= "1111011"WHEN "1010" => DOUT(0 TO 6)<= "1110111"WHEN "1011" => DOUT(0 TO 6)<= "0011111"WHEN "1100" => DOUT(0 TO 6)<= "1001110&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论