8位7段数码管动态刷新.docx

上传人:牧羊曲112 文档编号:3151076 上传时间:2023-03-11 格式:DOCX 页数:6 大小:39.21KB
返回 下载 相关 举报
8位7段数码管动态刷新.docx_第1页
第1页 / 共6页
8位7段数码管动态刷新.docx_第2页
第2页 / 共6页
8位7段数码管动态刷新.docx_第3页
第3页 / 共6页
8位7段数码管动态刷新.docx_第4页
第4页 / 共6页
8位7段数码管动态刷新.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《8位7段数码管动态刷新.docx》由会员分享,可在线阅读,更多相关《8位7段数码管动态刷新.docx(6页珍藏版)》请在三一办公上搜索。

1、8位7段数码管动态刷新实验四 七段数码管控制接口 一、实验目的 1、设计并实现一个七段数码管控制接口。 2、巩固使用ISE软件进行FPGA开发的过程以及实验箱的使用方法。 3、掌握原理图输入方法。 二、设计要求 设计一个共阴7段数码管控制接口,要求在时钟信号的控制下,使8位数码管动态刷新显示09。 三、实验原理 1、七段数码管发光原理。七段数码管一般由八个发光二极管组成,其中七个发光二极管排列成“8”字形,另一个位于小数点位置。根据连接形式的不同,数码管分为共阴极和共阳极两类。对于共阴极数码管,八个发光二极管的阴极连接在一起作为公共端,阳极作为段驱动端分别命名为a,b,c,d,e,f,g和dp

2、。当公共端为低电平时,段驱动端为高电平时,相应段的二极管点亮发光。共阳极数码管正好相反,其原理如图4-1所示。 图4-1七段数码管原理图 2、数码管动态扫描原理。显示控制器的引脚图如图4-2所示。图中:CLK为时钟输入端,RST为复位信号输入端,LEDOUT6.0为段驱动输出;SEL 7.0为位选信号输出;在实验仪器中,8位7段数码选用了共阴极类型,且驱动电路已经做好。 设计要求8位数码管是轮流点亮,可以通过控制SEL输出电平来实现。当SEL为10000000时,点亮第一位数码管,当SEL为01000000时,点亮第二位数码管,直到8位显示器全都显示完毕,等待进入下一个轮次的显示。 同时,还有

3、一个问题不可忽视,不是位扫描信号的频率至少需要多少以上,才能使显示器不闪烁?简单的说,只要单个扫描频率超过人的眼睛视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有8个同时显示的视觉效果,而且显示也不闪烁。 HEX0-3 LEDOUT6-0 CLK RST SEL7-0 图4-2 显示控制器的引脚图 表4-1 共阴极数码管BCD码-段码译码器真值表 四、实验步骤 1、启动ISE集成开发环境,创建工程并输入设计源文件。 2、利用原理图输入方法设计七段数码管控制接口电路。 3、锁定引脚,完成设计实现过程。并在实验箱上连线,利用iMPACT进行程序下载。 4、在实验箱上验证七段数码管控制接口的

4、功能。观察并记录实验结果。 五、实验报告 1、 写出共阴极段码显示BCD码的段码译码器的VHDL源程序。 共阴七段7段数码显示程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity display is port(RST:in std_logic; HEX:in std_logic_vector(3 downto 0); a,b,c,d,e,f,g:out std_logic); end display; archit

5、ecture Behavioral of display is signal LEDOUT:std_logic_vector(6 downto 0); begin process(HEX,RST) begin if RST=0 then LEDOUT0); else case HEX is when0000= LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT LEDOUT1); end case; end if; end process; a=LEDOUT(0); b=LEDOUT(1); c=LEDOU

6、T(2); d=LEDOUT(3); e=LEDOUT(4); f=LEDOUT(5); gy y y y y y y y y1); end case; else y1); end if; end process; end Behavioral; 计数器程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter is port(CLK,RST:in std_logic; COUNT:out std_logi

7、c_vector(2 downto 0); end counter; architecture Behavioral of counter is signal cnt:std_logic_vector(2 downto 0); begin process(CLK) begin if RST=1 then cnt0); elsif(CLKevent and CLK=1)then cnt=cnt+1; end if; end process; COUNT=cnt; end Behavioral; 2、 画出七段数码管控制接口原理图。 3、 设计记录表,记录引脚锁定与连线情况。 ISE软件 端口名称

8、 a b c CLK d e f g g1 g2a g2b HEX(0) HEX(1) HEX(2) HEX(3) RST y(0) y(1) y(2) y(3) y(4) y(5) y(6) y(7) 芯片引脚号 B4 A4 D5 A6 B6 E7 F7 D7 C7 F8 E8 F9 E9 D11 C11 F11 E11 E12 F12 A13 B13 A14 B14 C14 IO类型 O O O I O O O O I I I I I I I I O O O O O O O O 实验箱 编号 IO01 IO02 IO03 IO04 IO05 IO06 IO07 IO08 IO09 IO10

9、 IO11 IO12 IO13 IO14 IO15 IO16 IO17 IO18 IO19 IO20 IO21 IO22 IO23 IO24 4、 记录实验现象,分析实验结果。 实验过程中可看到8个数码管分别显示八个不同的数字。这是由于扫描频率超过人的眼睛视觉暂留频率24HZ以上就可以达到循环点亮单个数码管,却感觉8个数码管在同时显示的视觉效果,而且显示也不闪烁。 5、 说明实验中遇到的问题及解决方法,写出实验总结。 实验过程中,前期工作很顺利,很快就将三个源程序正确完成,开始进行原理图的创建,但当我进行count(2:0)和a,b,c连线时,总提示出错,原来需要先画一个总线,再用三个bust

10、ap引出,最后将三条引线分别命名为count(0)、count(1)、count(2),再分别与a,b,c相连才可以。还有,刚开始我将七段显示的源程序命名为display1,但我的预习程序中输入的实体名是display,刚开始进行检查都能顺利通过,但后来生成原理图后提示出错,后来我将源程序名和实体名改为一致,顺利通过了检查。通过这次实验,我更加理解了七段数码管的实现原理,更加巩固了用ISE软件进行FPGA开发的方法和实验箱的使用方法,掌握了原理图的输入方法,感觉收获颇丰。 六、思考题 如何在8位数码管上分别显示8个不同数?即有8个BCD码格式的数num0num7,要求第一位数码管显示num0,第二位显示num1,以此类推,第八位数码管显示num7。画出原理图并进行说明。 要使设计输入为BCD码,就要在数码管上显示数字,需要做一个译码器,将BCD码转换成显示相应数字的段码。若要循环点亮8位数码管,需要SEL输出为1000000,01000000,00000001。此功能可以通过将一个3位二进制数计数器输出接一个3-8译码器来实现。具体原理图如下图所示:

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号