《彩灯实验报告13327.pdf》由会员分享,可在线阅读,更多相关《彩灯实验报告13327.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-.-.可修编.设计八 彩灯控制器 要求:1、设计一个彩灯控制器,使彩灯(LED 管)能连续发出四种以上不同的显示形式;2、随着彩灯显示形式的变化,发出不同的音响声。设计提示:1、彩灯显示的不同形式可由不同进制计数器驱动 LED 显示完成;2、音响由选择不同频率 CP 脉冲驱动扬声器形成;3、彩灯显示形式由实验箱中拨码开关控制。实验程序 LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caidengkongzhiqi IS PORT(clk1,rst,clk2 :IN std_log
2、ic;caideng :OUT std_logic_vector(7 downto 0);cz:in std_logic_vector(1 downto 0);speaker:out std_logic);END caidengkongzhiqi;ARCHITECTURE one OF caidengkongzhiqi IS PONENT counter_8 PORT(clk,rst :IN std_logic;count_out:OUT integer range 0 to 7 );END PONENT;PONENT caidengkongzhi PORT(Ins :in std_logic
3、_vector(1 downto 0);Input :IN INTEGER RANGE 0 TO 7;Rst :in std_logic;output :OUT std_logic_vector(7 downto 0);END PONENT;-.-.可修编.PONENT fenpinqi PORT(clk,rst :IN std_logic;clk_10,clk_4,clk_6,clk_8 :OUT std_logic);END PONENT;PONENT xzq4_1 PORT(Rst :in std_logic;Inp :in std_logic_vector(1 downto 0);in
4、1,in2,in3,in4:In std_logic;output :OUT std_logic);END PONENT;SIGNAL s,g,m,n,k:std_logic;SIGNAL f:INTEGER RANGE 0 TO 31;SIGNAL w:integer range 0 to 3;BEGIN u1:counter_8 port map(clk=clk1,rst=rst,count_out=f);u2:caidengkongzhi port map(ins=cz,input=f,rst=rst,output=caideng);u3:fenpinqi port map(clk=cl
5、k2,rst=rst,clk_10=g,clk_4=m,clk_6=n,clk_8=k);u4:xzq4_1 port map(inp=cz,rst=rst,in1=g,in2=m,in3=n,in4=k,output=speaker);END one;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY fenpinqi IS PORT (clk,rst:IN std_logic;clk_10,clk_4,clk_6,clk_8 :OUT std_logic );END fenpinqi;ARCHITECTURE cd OF fenpinqi IS
6、begin p1:process(clk,rst)variable a:integer range 0 to 20;-.-.可修编.begin if rst=1 then clk_4=3 then a:=0;clk_4=1;else a:=a+1;clk_4=0;end if;end if;end if;end process p1;p2:process(clk,rst)variable b:integer range 0 to 20;begin if rst=1 then clk_6=5 then b:=0;clk_6=1;else b:=b+1;clk_6=0;end if;end if;
7、end if;end process p2;p3:process(clk,rst)variable c:integer range 0 to 20;begin if rst=1 then clk_8=7 then c:=0;clk_8=1;else c:=c+1;clk_8=0;end if;end if;end if;end process p3;p4:process(clk,rst)variable d:integer range 0 to 20;begin if rst=1 then clk_10=9 then d:=0;clk_10=1;else d:=d+1;clk_10=0;end
8、 if;end if;end if;end process p4;end cd;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY xzq4_1 IS PORT (rst:in std_logic;inp:in std_logic_vector(1 downto 0);in1,in2,in3,in4:In std_logic;-.-.可修编.output :OUT std_logic );END xzq4_1;ARCHITECTURE a OF xzq4_1 IS BEGIN PROCESS(rst,inp)BEGIN if(rst=1)then o
9、utputoutputoutputoutputoutputnull;end case;end if;END PROCESS;END a;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY counter_8 IS PORT (clk,rst :IN std_logic;count_out:OUT integer range 0 to 7 );END counter_8;ARCHITECTURE a OF counter_8 IS BEGIN PROCESS(rst,clk)variable temp:integer range 0 to 8;BEGI
10、N -.-.可修编.IF rst=1 THEN temp:=0;ELSIF(clkevent and clk=1)THEN temp:=temp+1;if(temp=8)then temp:=0;end if;END IF;count_out=temp;END PROCESS;END a;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY caidengkongzhi IS PORT(ins:in std_logic_vector(1 downto 0);input:IN INTEGER RANGE 0 TO 7;rst:in std_logic;o
11、utput :OUT std_logic_vector(7 downto 0);END caidengkongzhi;ARCHITECTURE a OF caidengkongzhi IS BEGIN PROCESS(input)BEGIN if rst=1 then outputoutputoutputoutputoutputoutputoutputoutputoutputnull;end case;Elsif(ins=01)then case input is when 0=outputoutputoutputoutputoutputoutputoutputoutputnull;end case;Elsif(ins=10)then case input is when 0=outputoutputoutputoutputoutputoutputoutputoutputnull;end case;Else case input is when 0=outputoutputoutputoutputoutputoutputoutputoutputnull;end case;end if;end if;end process;end a;-.-.可修编.原理图 管脚配置图 -.-.可修编.波形仿真图 四选一选择器 分频器 八进制计数器
限制150内