文档详情

eda实验1七段数码显示译码器设计.doc

发布:2017-07-12约2.47千字共5页下载文档
文本预览下载声明
七段数码显示译码器设计 1.实验目的: 学习7段数码显示译码器设计,学习VHDL的多层次设计方法。 2. 实验原理: 七段数码管由8个(a,b,c,d,e,f,g,dp) 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SMG IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END; ARCHITECTURE ONE OF SMG IS BEGIN PROCESS(A) BEGIN CASE A IS WHEN0000=LED7S=0111111; WHEN0001=LED7S=0000110; WHEN0010=LED7S=1011011; WHEN0011=LED7S=1001111; WHEN0100=LED7S=1100110; WHEN0101=LED7S=1101101; WHEN0110=LED7S=1111101; WHEN0111=LED7S=0000111; WHEN1000=LED7S=1111111; WHEN1001=LED7S=1101111; WHEN1010=LED7S=1110111; WHEN1011=LED7S=1111100; WHEN1100=LED7S=0111001; WHEN1101=LED7S=1011110; WHEN1110=LED7S=1111001; WHEN1111=LED7S=1110001; WHEN OTHERS=NULL; END CASE; 仿真波形: 数码管显示电路设计 利用以上设计的译码器模块,设计一个8位的显示电路。 利用时分复用的方式快速轮流点亮8个数码管,在视觉上形成8个数码管同时显示的效果(尽管实际上同一时间只有一个数码管被点亮)。 要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管。 备注:在新试验箱中可酌情减少位数实现,新试验箱中管脚查阅教材中附录。 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY VHDL42 IS PORT(CLK:IN STD_LOGIC; S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END VHDL42; ARCHITECTURE ONE OF VHDL42 IS SIGNAL C:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN P1:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1THEN IF C111THEN C=C+1;ELSE C=000; END IF; END IF; S=C; END PROCESS P1; P2:PROCESS(D) BEGIN CASE D IS WHEN 0000= A=0111111;WHEN 0001= A=0000110; WHEN 0010= A=1011011;WHEN 0011= A=1001111; WHEN 0100= A=1100110;WHEN 0101= A=1101101; WHEN 0110= A=1111101;WHEN 0111= A=0000111; WHEN 1000= A=1111111;WHEN 1001= A=1101111; WHEN 1010= A=1110111;WHEN 1011= A=1111100; WHEN 1100= A=0111001;WHEN 1101= A=1011110; WHEN 1110= A=1111001;WHEN 1111= A=1110001; WHEN OTHERS= NULL; END CASE; END PROCESS P2; END; 仿真波形: 管脚锁定: 信号 旧试验箱 新试验箱No.2 管脚号 连接的器件 管脚号 连接的器件 clk 43 Clk1 153 CLK2 rst 35 开关2 234 键2 ena 30 开关1 233 键1 A(6) 11 SEG g 167 SEG g A(5) 10 SEG f 166 SEG f A(4) 9 SEG e 165 SEG e A(3) 8 SEG d 164 SEG d A(2) 7 SEG c
显示全部
相似文档