串行扫描显示电路设计
时间:2025-07-09
时间:2025-07-09
实验六串行扫描显示电路设计
一、实验目的
1.通过用AHDL语言设计串形扫描显示电路进一步掌握使用AHDL方法。2.通过用VHDL语言设计串形扫描显示电路进一步掌握使用VHDL方法。 3.熟悉使用CPLD/FPGA实验箱的数码管进行显示。
二.实验仪器
1.PC机一台
2. KHF-1/KHF-2/KHF-3/KHF-4/KHF-5 CPLD/FPGA实验开发系统一套。
三、实验要求
1.预习串行扫描显示的原理
2.复习教材相关内容。
3.用硬件描述语言进行电路设计。
四、实验内容及实验步骤
1.串形扫描显示电路设计
(1)AHDL设计输入。参考程序如下:
Subdesign cxsm
(inclk :INPUT; ----定义输入输出
out[7..0],b[3..0] :OUTPUT;
)
VARIABLE -----定义变量
d[3..0],js[21..0] ,f :DFF;
BEGIN
(js[ ],f).clk=inclk;
if js[ ]==999999 then -----分频模块
js[ ]=0;f=!f;
else js[ ]=js[ ]+1;f=f;
end if;
(d[ ].prn,d[ ].clrn)=VCC; -----扫描输出
d[ ].clk=f;
d[ ]=d[ ]+1;
TABLE -----段码转换模块 d[ ].q=>out0,out1,out2,out3,out4,out5,out6,b[ ];
H"0"=>1,1,1,1,1,1,0,1; -----0
H"1"=>0,1,1,0,0,0,0,2; -----1
H"2"=>1,1,0,1,1,0,1,4; -----2
H"3"=>1,1,1,1,0,0,1,8; -----3
H"4"=>0,1,1,0,0,1,1,1; -----4
H"5"=>1,0,1,1,0,1,1,2; -----5
H"6"=>1,0,1,1,1,1,1,4; -----6
H"7"=>1,1,1,0,0,0,0,8; -----7
H"8"=>1,1,1,1,1,1,1,1; -----8
H"9"=>1,1,1,1,0,1,1,2; -----9
H"a"=>1,1,1,0,1,1,1,4; -----a
H"b"=>0,0,1,1,1,1,1,8; -----b
H"c"=>1,0,0,1,1,1,0,1; ------c
H"d"=>0,1,1,1,1,0,1,2; ------d
H"e"=>1,0,0,1,1,1,1,4; ------e
H"f"=>1,0,0,0,1,1,1,8; -------f
END TABLE;
out7=VCC;
END;
(2)用VHDL设计,示例如下:
library ieee; -------调用库
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity tcx is -------实体说明port( inclk:in std_logic; -------输入输出定义 outa:out std_logic_vector(6 downto 0);
outb:out std_logic_vector(3 downto 0));
end tcx;
architecture arth_tcx of tcx is --------结构体定义 signal ma:std_logic_vector(1 downto 0);
signal mb:std_logic_vector(3 downto 0);
signal fp:std_logic_vector(23 downto 0);
signal f:std_logic;
begin
process(inclk) ---------进程说明 begin
if (inclk'event and inclk='1') then ---------分频模块
if fp=4999999 then
fp<="000000000000000000000000";
f<=not f;
else
fp<=fp+1;
end if;
end if;
end process;
process(f) ---------扫描输出模块
begin
if (f'event and f='1') then
ma<=ma+1;
mb<=mb+1;
end if;
end process;
with ma select
outb<="0001" when "00",
"0010" when "01",
"0100" when "10",
"1000" when others;
with mb select ---------段码转换模块outa<= "0110000" when "0001", --1
"1101101" when "0010", --2
"1111001" when "0011", --3
"0110011" when "0100", --4
"1011011" when "0101", --5
"1011111" when "0110", --6
"1110000" when "0111", --7
"1111111" when "1000", --8
"1111011" when "1001", --9
"1110111" when "1010", --A
"0011111" when "1011", --b
"1001110" when "1100", --C
"0111101" when "1101", --d
"1001111" when "1110", --E
"1000111" when "1111", --F
"1111110" when others; --0 end arth_tcx;
(3)编译。
(4)分配管脚。
(5)后编译。
(6)启动CPLDDN下载软件进行下载。五.实验报告
1.总结模块化设计程序的方法。
2.总结串行扫描显示方式进行显示的方法。3.写出实验总结报告
…… 此处隐藏:421字,全部文档内容请下载后查看。喜欢就下载吧 ……