遵义市城镇职工基本医疗保险门诊慢特申请表
实 验 报 告
课程名称:
FPGA设计及应用
实验项目:
在8个数码管上显示数据:13579BDF
实验时间:
2012年4月15日
实验班级:
xxxxx
总 份 数:
1份
指导教师:
xxxxx
电子与信息 学院 工业中心 实验室
二〇一三 年 四月 十六 日
广东技术师范学院实验报告
学院
电子与信息学院
专业
电子信息工程
班级
xxxx
成绩
姓名
xxxxxx
学号
xxxxxxx
组别
组员
实验地...
实 验 报 告
课程名称:
FPGA
及应用
实验项目:
在8个数码管上显示数据:13579BDF
实验时间:
2012年4月15日
实验班级:
xxxxx
总 份 数:
1份
指导教师:
xxxxx
电子与信息 学院 工业中心 实验室
二〇一三 年 四月 十六 日
广东技术师范学院实验报告
学院
电子与信息学院
专业
电子信息工程
班级
xxxx
成绩
姓名
xxxxxx
学号
xxxxxxx
组别
组员
实验地点
工业中心
实验日期
2013年4月15日
指导教师签名
预习情况
操作情况
考勤情况
数据处理情况
实验 三 项目名称:在8个数码管上显示数据:13579BDF
一、实验名称
8位数码扫描显示电路设计
二、实验目的
学习硬件扫描显示电路的设计;
三、实验原理
七段译码器显示的真值
见表5-1。A,B,C,D 为四位二进制输入信号,a,b,c,d,e,f,g 为译码输出,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。
表5-1 译码器的真值表
数
值
输入
输出
A
B
C
D
a
b
c
d
e
f
g
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
2
0
0
1
0
1
1
0
1
1
0
1
3
0
0
1
1
1
1
1
1
0
0
1
4
0
1
0
0
0
1
1
0
0
1
1
5
0
1
0
1
1
0
1
1
0
1
1
6
0
1
1
0
1
0
1
1
1
1
1
7
0
1
1
1
1
1
1
0
0
0
0
8
1
0
0
0
1
1
1
1
1
1
1
9
1
0
0
1
1
1
1
1
0
1
1
A
1
0
1
0
1
1
1
0
1
1
1
B
1
0
1
1
0
0
1
1
1
1
1
C
1
1
0
0
1
0
0
1
1
1
0
D
1
1
0
1
0
1
1
1
1
0
1
E
1
1
1
0
1
0
0
1
1
1
1
F
1
1
1
1
1
0
0
0
1
1
1
实验箱上一共有8个数码管,如果按照传统的数码管驱动方式(静态扫描方式),则需要8 个七段译码器进行驱动,这样既浪费资源,有时电路工作也不可靠。所以现在最常见的数码管驱动电路已经不用上述的静态扫描方式了,而是采用动态扫描显示的方式,这种方式只需一个译码器就可以实现电路正常、可靠的工作,这样大大节省资源。
动态数码扫描显示方式是利用了人眼的视觉暂留效应,把八个数码管按一定顺序进行点亮,当点亮的频率不大时,我们看到的是数码管一个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示,与传统方式得到的视觉效果完全一样。因此我们只要给数码管这样一个扫描频率,那么就可以实现两个以上的数码管同时点亮。而这个频率我们可以通过一个计数器来产生,只要计数频率足够大,就可以实现我们的
。事实上,因为数码管点亮不是瞬间就可以的,它也需要一定的时间,该时间与数码管的选择有关系。为了折中这一对矛盾,实验中一般可将计数频率选择在100Hz左右。
图5-2 所示的是8 位数码扫描显示电路,其中每个数码管的8 个段:h、g、f、e、d、c、b、a(h 是小数点)都分别连在一起,8 个数码管分别由8 个选通信号k1、k2、… k8 来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3 为高电平,其余选通信号为低电平,这时仅k3 对应的数码管显示来自段信号端的数据,而其它7 个数码管呈现关闭状态。根据这种电路状况,如果希望在8 个数码管显示希望的数据,就必须使得8 个选通信号k1、k2、… k8 分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
实验参考扫描显示程序中clk 是扫描时钟;SG 为7 段控制信号,由高位至低位分别接g、f、e、d、c、b、a 7个段;BT 是位选控制信号,接图5-2 中的8 个选通信号:k1、k2、… k8 。程序中CNT8 是一个3 位计数器,作扫描计数信号,由进程P2 生成;进程P3 是7 段译码查表输出程序,进程P1 是对8 个数码管选通的扫描程序,例如当CNT8 等于"001" 时,K2 对应的数码管被选通,同时,A 被赋值3,再由进程P3 译码输出"1001111", 显示在数码管上即为“3”;当CNT8 扫变时,将能在8 个数码管上显示数据:13579BDF 。原理图如图5-2所示。
图5-2 八位数码管显示电路
四、实验步骤
1、建立一个工程项目,设置路径,项目名和顶层实体名一致;
2、设计一个动态扫描显示电路,在8 个数码管上显示数据:13579BDF;并进行编译仿真与下载测试。
五、实验程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SCAN_LED IS
PORT ( CLK : IN STD_LOGIC;
SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --段控制信号输出
BT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );--位控制信号输出
END;
ARCHITECTURE one OF SCAN_LED IS
SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL A : INTEGER RANGE 0 TO 15;
BEGIN
P1:PROCESS( CNT8 )
BEGIN
CASE CNT8 IS
WHEN "000" => BT <= "00000001" ; A <= 1 ;
WHEN "001" => BT <= "00000010" ; A <= 2 ;
WHEN "010" => BT <= "00000100" ; A <= 3 ;
WHEN "011" => BT <= "00001000" ; A <= 4 ;
WHEN "100" => BT <= "00010000" ; A <= 5 ;
WHEN "101" => BT <= "00100000" ; A <= 6 ;
WHEN "110" => BT <= "01000000" ; A <= 7 ;
WHEN "111" => BT <= "10000000" ; A <= 8 ;
WHEN OTHERS => NULL ;
END CASE ;
END PROCESS P1;
P2:PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK = '1' THEN CNT8 <= CNT8 + 1;
END IF;
END PROCESS P2 ;
P3:PROCESS( A )
BEGIN
CASE A IS
WHEN 0 => SG <= "0111111"; WHEN 1 => SG <= "0000110";
WHEN 2 => SG <= "1011011"; WHEN 3 => SG <= "1001111";
WHEN 4 => SG <= "1100110"; WHEN 5 => SG <= "1101101";
WHEN 6 => SG <= "1111101"; WHEN 7 => SG <= "0000111";
WHEN 8 => SG <= "1111111"; WHEN 9 => SG <= "1101111";
WHEN 10 => SG <= "1110111"; WHEN 11 => SG <= "1111100";
WHEN 12 => SG <= "0111001"; WHEN 13 => SG <= "1011110";
WHEN 14 => SG <= "1111001"; WHEN 15 => SG <= "1110001";
WHEN OTHERS => NULL ;
END CASE ;
END PROCESS P3;
END;
六、仿真结果
继续阅读
本文档为【遵义市城镇职工基本医疗保险门诊慢特申请表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。