实验2:动态扫描显示电路设计
一、实验目的及要求
设计一个能对4个数码管进行动态扫描显示的控制电路。
二、实验仪器设备及软件平台
台式电脑、QuartusII 8.0软件、康芯公司EDA/SOPC实验箱。
三、实验设计及调试
1、实验内容
设计一个能对4个数码管进行动态扫描显示的控制电路,在前端挂上计数器以后,观察计数结果是否正确。 2、实验设计
先设计动态扫描显示控制电路,然后挂上计数器,观察是否工作正常。 (1)动态扫描电路控制程序 library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dtsm_ymq is port(clk:in std_logic;
four,three,two,one:in std_logic_vector(3 downto 0); x:out std_logic_vector(6 downto 0);
led_select: out std_logic_vector(3 downto 0)); end;
architecture behave of dtsm_ymq is signal bcd_in:std_logic_vector(3 downto 0); signal cnt2: std_logic_vector(2 downto 0):=\begin p1:process(clk)
begin
if clk'event and clk='1' then
if cnt2>=\ cnt2<=\ else cnt2<=cnt2+'1'; end if; end if; end process; p2:process(cnt2) begin case cnt2 is
when \ when \ when \ when \ when \ when others=>led_select<=\ end case; end process;
p3:process(cnt2,four,three,two,one) begin case cnt2 is
when \ when \ when \ when \ when \ when others=>bcd_in<=\ end case; end process; p4:process(bcd_in)
begin case bcd_in is
when \ when \ when \ when \ when \ when \ when \ when \ when \ when \ when others=>x<=\ end case; end process; end behave;
其生成的模块符号如图1所示。
DTSM_YMQclkfour[0..3]three[0..3]two[0..3]one[0..3]instx[0..6]led_select[0..3] (2)在四个输入端挂上计数器或者给定数值,观察数码管显示是否正常。 3、实验步骤
①设计扫描电路控制程序; ②建立项目并编译项目; ③功能仿真;
⑥锁定引脚及二次编译:根据电路板的要求锁定引脚,再次进行全局编译; ⑦程序下载:用USB接口的JTAG下载器将程序下载到FPGA片内RAM中。 4、调试查错
程序下载完成后,测试能否正常实现显示功能。
四、实验总结
动态扫描电路最大限度节省口线资源,具有很高应用价值。