7段数码管控制接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实验报告书
课
题
名
称
7段数码管控制接口
实验目的1.掌握7段共阴极数码管工作的基本原理;
2.掌握多个进程并发执行的工作原理;
3.掌握EDA-V型实验箱数码管显示模块的工作原理及控制方法;
4.进一步掌握VHDL语言的基本语句。
设计要求
设计一个数码管显示的控制电路,使其驱动EDA实验箱上数码管显示模块正常工作。具体要求如下:
1)在时钟信号的驱动下,八个数码管选通工作,显示0~F的数值。选通信号为sel0~sel2。
2)控制模块输出给显示模块a~g,从而控制显示模块的显示内容。
设计思路8位8字型数码管显示模块
数码管为共阴极数码管。本模块的输入口共有21个,为11个段信号输入口和3个位信号输入口,分别为A、B、C、D、E、F、G、DP、SEL0、SEL1、SEL2。其中SEL0、SEL1、SEL2位于16×16点阵模块区,它们经3-8译码器后送给数码管作位选信号,其对应关系如表1。
表1 LED数码管显示接口及对应的显示状态
接口序号数码管
SEL2 SEL1 SEL0 状态
1 1 1 第1位亮
1 1 0 第2位亮
1 0 1 第3位亮
1 0 0 第4位亮
0 1 1 第5位亮
0 1 0 第6位亮
0 0 1 第7位亮
0 0 0 第8位亮
注:最右边为第一位
设计原理图及源程序LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY six IS
PORT ( CLK :IN STD_LOGIC;
T:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
SG :OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END;
ARCHITECTURE BHV OF six IS
SIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
P1:PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK ='1' THEN CNT8 <= CNT8 + 1;
END IF;
END PROCESS P1;
SEL <= CNT8;
P2:PROCESS(T)
BEGIN
CASE T IS
WHEN "0000"=>SG<="0111111";
WHEN "0001"=>SG<="0000110";
WHEN "0010"=>SG<="1011011";
WHEN "0011"=>SG<="1001111";
WHEN "0100"=>SG<="1100110";
WHEN "0101"=>SG<="1101101";
WHEN "0110"=>SG<="1111101";
WHEN "0111"=>SG<="0000111";
WHEN "1000"=>SG<="1111111";
WHEN "1001"=>SG<="1101111";
WHEN "1010"=>SG<="1110111";
WHEN "1011"=>SG<="1111100";
WHEN "1100"=>SG<="0111001";
WHEN "1101"=>SG<="1011110";
WHEN "1110"=>SG<="1111001";
WHEN "1111"=>SG<="1110001";
WHEN OTHERS =>NULL;
END CASE;
END PROCESS P2;
END;
仿真波形图
实验结果
问题讨论1、本实验中,当时钟频率为多少时,我们可以观察到8个数码管同时工作且显示相同内容,这是因为什么?
答:当时钟频率最小为60HZ时,我们可以观察到8个数码管同时工作现实相同内容;程序中未设计数码管位选的程序,所以8个数码管显示相同内容。
2、如果本实验要求数码管按照时钟控制轮流显示0~F,应如何设计?
答:在程序中加入位选程序段:
process(count)
begin
case count is
when "000"=>data<=in1;
when "001"=>data<=in2;
when "010"=>data<=in3;
when "011"=>data<=in4;
when "100"=>data<=in5;
when "101"=>data<=in6;
when "110"=>data<=in7;
when others=>data<=in8;
end case;
end process;
加上程序段可以使数码管按照时钟控制轮流显示0~F。
教师
评分
教师签名
日期操作成绩报告成绩