《实验十 彩灯控制器设计与实现.docx》由会员分享,可在线阅读,更多相关《实验十 彩灯控制器设计与实现.docx(19页珍藏版)》请在三一办公上搜索。
1、实验十彩灯控制器设计与实现报告一、实验目的1、进一步掌握VHDL语言的基本结构及设计的输入方法。2、掌握VHDL语言中状态机的设计与实现。3、掌握层次化设计混合编程方法和元件例化语句的使用方法。二、实验原理及内容1、设计并实现一彩灯控制器,要有多种花型变化(至少设计4 种);多种花型可以自动变换,循环往复;彩灯变换的快慢节拍可以 选择;彩灯控制器具有清零开关。2、根据系统设计要求,现设计一个具有6种花型循环变化的彩 灯控制器。系统设计采用自顶向下的设计方法,系统的整体组装设计 原理图如图所示,它由时序控制模块和显示控制模块两部分组成。整 个系统有3个输入信号:系统时钟信号CLK,系统清零信号C
2、LR和 控制彩灯节奏快慢的选择开关SPEEDo 9个输出信号LED8.0,分 别用于模拟彩灯。系统整体设计原理图如下图所示,请编写SX、XS程序代码,分 析彩灯控制器实现过程,结合现已设计底层文件实现顶层元器件(采 用混合编程或VHDL文本编辑输入法)系统的设计,使之组成一个 完整系统。泌)而CLR5FEEDxsoNNTCLK CLK1CLRCLHl LE皿.D罗上匚叫叫CLR图2.1系统整体组装设计原理图3. 模块设计1)集成分频器模块设计要求显示不同的彩灯的时候要伴随不同的音乐,所以设计分 频器来用不同的频率控制不同的音乐输出。模块说明:Rst:输入信号复位信号用来复位集成分频器的输出使输
3、出为“0”, 及没有音乐输出。此输入信号模块的功能即为分频输入的频率信号。Clk_4、clk_6、clk_8、clk_10:输出信号 即为分频模块对输入信号 clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10 分频输出。2)32进制计数器模块32进制模块用来控制彩灯输出模块,即确定彩灯控制器的不同的 输出。Rst:输入信号复位信号用来复位32进制使其输出为“00000”。Clk:输入信号用来给模块提供工作频率。Count_out4.0:输出信号 即为32进制计数器的输出。COLINTEFg 3;GI_K GOUNT_OUTEfl. . O 8:RET A图2.3进制计
4、数器3)彩灯控制模块彩灯控制模块用来直接控制彩灯的输出,使彩灯表现出不同的花 样。Rst:输入信号使彩灯控制模块的输出为“00000000”,即让彩灯无 输出。Input4.0:输入信号 不同的输入使彩灯控制模块有不同的输出即彩 灯显示出不同的花样。Output7.0:输出信号直接与彩灯相连来控制彩灯。CAIDENGI NPUT A. 0 OUTPUT 7 . fi5TM 6 . . O1图2.4彩灯控制模块4) 4选1选择器模块Rst:输入信号 复位信号 使选择器的输出为“0”。In1、in2、in3、诅4:输入信号 接分频器的输出。Inp1.0:输入信号 接4进制计数器的输出用来控制选择器
5、的选择不 同的输入选择不同的输出。Output:输出信号 直接接扬声器即输出的是不同的频率来控制扬声 器播放音乐。XZQ4-1RSTI HP _ OI HIQUTPUTIN2I NmI H勺16图2.5选1选择器5)4进制计数器模块4进制计数器作为选择器的输入来控制选择器选择不同的频率作为输出控制扬声器工作。Clk:输入信号来为计数器提供工作频率。Rst:输入信号复位信号使计数器的输出为“00”。 1 1 1 I 1 1 I I 1 1 I 1COUNTER_4ci K COUNVOIJVCX. . Q,RST图2.6进制计数器三、程序代码:LIBRARY ieee;USE ieee.std_
6、logic_1164.all;ENTITY fenpinqi ISPORT(clk,rst : IN std_logic;clk_10,clk_4,clk_6,clk_8 : OUT std_logic );END fenpinqi;ARCHITECTURE cd OF fenpinqi ISbeginp1:process(clk,rst)variable a:integer range 0 to 20;beginif rst=1 thenclk_4=3 thena:=0;clk_4=1;elsea:=a+1;clk_4=0;end if;end if;end if;end process p
7、l;p2:process(clk,rst)variable b:integer range 0 to 20;beginif rst=1 thenclk_6=5 thenb:=0;clk_6=1;elseb:=b+1;clk_6=0;end if;end if;end if;end process p2;p3:process(clk,rst)variable c:integer range 0 to 20;beginif rst=T thenclk_8=7 thenc:=0;clk_8=T;elsec:=c+1;clk_8=0;end if;end if;end if;end process p
8、3;p4:process(clk,rst)variable d:integer range 0 to 20;beginif rst=1 thenclk_10=9 thend:=0;clk_10=1;elsed:=d+1;clk_10outputoutputoutputoutputnull;end case;end if;END PROCESS;END a;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY caideng ISPORT(input : IN INTEGER RANGE 0 TO 31;rst:in std_logic;output :
9、 OUT std_logic_vector(7 downto 0);sm :out std_logic_vector(6 downto 0);END caideng;ARCHITECTURE a OF caideng ISBEGINPROCESS (input)BEGINif rst=1 then output=00000000;smoutput=10000000;smoutput=01000000;smoutput=00100000;smoutput=00010000;smoutput=00001000;smoutput=00000100;smoutput=00000010;smoutput
10、=00000001;smoutput=00010000;smoutput=00110000;smoutput=00111000;smoutput=01111000;smoutput=01 111 100;smoutput=01111110;smoutput= 11111110;smoutput= 11111111 ;smoutput= 10000001;smoutput= 1100000 l;smoutput= 11000011 ;smoutput= 11100011 ;smoutput= 111001H;smoutput= 111101H;smoutput= 11111111 ;smoutp
11、ut=00001000;smoutput=00000001;smoutput=00000010;smoutput=00000100;smoutput=00001000;smoutput=00010000;smoutput=00100000;smoutput=01000000;smoutput= 10000000;smnull;end case;end if;end process;end a;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY counter_32 ISPORT(clk,rst : IN std_logic;count_out : O
12、UT integer range 0 to 31 );END counter_32;ARCHITECTURE a OF counter_32 ISBEGINPROCESS (rst,clk)variable temp:integer range 0 to 32;BEGINIF rst=1 THENtemp:=0;ELSIF (clkevent and clk=1) THENtemp:=temp+1;if(temp=32) thentemp:=0;end if;END IF;count_out=temp;END PROCESS;END a;LIBRARY ieee;USE ieee.std_lo
13、gic_1164.all;ENTITY counter_4 ISPORT(clk,rst : IN std_logic;count_out : OUT integer range 0 to 3);END counter_4;ARCHITECTURE a OF counter_4 ISBEGINPROCESS (rst,clk)variable temp:integer range 0 to 32;BEGINIF rst=1 THENtemp:=0;ELSIF (clkevent and clk=1) THENtemp:=temp+1;if(temp=4) thentemp:=0;end if;END IF;count_out-XAM,.号-n4*Ivdc AS lUBivuKW图4.14.2分频器的信号图岫0 qi初 0帼所】 i祥卜m u祖网】图4.3counter_4:3ltemp.Q 端口输出图4.4counter_32:1ltemp.Q图4.5Caideng0-7 端口输出图4.6xs6.0 端口输出图4.7四、实验心得本次实验是彩灯控制器的设计,实验通过分频器,32位计数器,4选1选择器,4位计数器,彩灯控制器来实现四种花色,在扬声器 中以不同频率发出不同的声响。实验模块比较多,各部分分开实现比 较简单。在最后的总的系统原理图连接上,须认真仔细,以达到实验 的目的。
链接地址:https://www.31ppt.com/p-5175263.html