彩灯实验报告
- 格式:docx
- 大小:109.07 KB
- 文档页数:11
设计八彩灯控制器
要求:
1、设计一个彩灯控制器,使彩灯(LED管)能连续发出四种以上不同得显示形式:
2、随着彩灯显示形式得变化,发出不同得音响声。
设计提示:
1、彩灯显示得不同形式可由不同进制汁数器驱动LED显示完成;
2、音响由选择不同频率CP脉冲驱动扬声器形成:
3、彩灯显示形式由实验箱中拨码开关控制。
实验程序
LI BRARYieee:
USE i e e e、stdjogic_l 1 6 4、al 1 ;
USE IEEE、STD_LOGIC_UNSIGNED、ALL:
ENTITYcaiden g k o ngzhiqi IS
PORT
(
cl k 1 ,rst, c 1 k2。: IN std_ 1 ogic;
c a idcng^ : OUT。s t d_I o gic_v e c t o r (7 down t o 0);
c z : in std_ 1 og i c_vect o r (1
d ownto 0);
speake r : ou t s t d」o g i c );
EN D caide n g k o ng z hiqi:
ARC II 1 TEC TUR E one OF caiden g kong z hiq i I S。
PONENT counter_8
PORT
(
clkjs t : IN^stdJo g i c;
co u nt_ou t o : OU T 4nt e g e r r a n ge 0 to 7。
);
END PONENT;
PO NENTc a id e n g k ongz h i
PORT
(
I nsz:in std」o g ic_vector ( 1 downto 0 ):
Inpu t : I N INTEGER RANGE OTO 7;
R s t o : i n s t d_logic;
out p ub : OUT std_log i c_vecto r (7 d ownto 0 )); END PON ENT ;
PONENTfe n pin qi
PORT
clk,r st。號I N^st d _ 】o gic;
clk_l 0 , c lk_ 4 , clk_6, clk_8 OUT s t d_1 o g ic
E ND PONE N T ;
PONENT xz q 4 _ 1
PORT
(
Rst : in std_ 1 o gic;
I npxin std_logic_vector (1 dow n to 0 ); inL i n 2, in3jn4< In s t djogic;
outp u t : OU T st d Jogi c
);
END PONENT :
SIGNALS, g, m,n, k : s t djo g ic;
SIGNAL f: INTEG ER R ANGE 0 TO 3 1 :
SIGNAL w: i ntege r r ange 01 o 3;
BEGIN
u 1 : c oun ter_8port map ( c 1 k=> c 1 kl, rst=> rst, u2: ca i dengkongzh i po r t map (in s => cz, i npu t =>f, =>caideng);
u3: fenp i n q i por t m a p (clk=> c lk 2 , rst=> r st, c 1 k_
clk_6=>n, clk_8= > k):
u4: xzq4_l p o rt m a p ( i np= >cz
t
^ r st=> r st, i n 1 = 3=>n, i n4 =>kt o u t pu t=) spea k e r);
END one:
LIBRARY ieee;
USEicee、std_l o gic_1164. al 1 ;
ENTITY f e npinqi IS
)POR T
(
a c 1 k ,rsb: 1 N std」og i c:
。c 1 k _ 1 0 , c lk_4.cl k _ 6 ,clk_8^: OUT std Jog i c
。);
END fenp i nqi:
ARCH I TECTURE cd OFf e npinqi 1 S
b e g in
p 1 : process(clkt rs t )
variable a :in t e ge r ran g e 0 t o 2 0 :
b e g in
if r s t =' 1’ then
c I k_4 (=0\
a: = 0 ;
e 1 se
if elk' even t and c lk=‘ r t h e n
if a ) =3 then
a:= 0 :
else cou n t _o u t => f ):rst =>rst, ou t put
1 0 =>g9 c 1 k_4=> nit
)g, in2=) m, i n
clk_4 (=*0 \
end if:
en d if:
end if;
end p r oc e ss p 1 :
p2: proc e ss(c I k jst)
variable b: i ntege r rang e 0 t o 2 0 : begin
if rs t =T then
c I k_6 V = O‘:
b:=0:
el s e
i f clk'e vent and c lk=z l'tlie n
if b>=5 then
b:=0 ;
cl k_6v=,1 \
else
b:=b+l;
c I k_6<=,0,;
end if:
en d if;
end i f :
end p roces s p 2;
p3: proces s (elk,rst)
va r iab I e c :i n teger range 0 to 20;
b e g in
if rst=T the n
c 1 k_8 <=; 0\
c:=0:
el s e
if c 1 k*e v e nt a n d cl k =' l*th e n
if c>=7 the n
c:=0;
clk_8〈=T:
else
c: =c+l;
clk_8<=^ O r:
end i f;
end if;
end if:
end proce s sp3:
p4:p roc e s s ( c lk, rs t )
v a riable d: i nt e ge r range 0 to 2 0: be g in ifrst=z Fthen