资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,彩灯控制器设计与实现,2,周四实验:彩灯控制器设计与实现,基本任务与要求:,功能与要求: 设计并实现一彩灯控制器,要有多种花型变化(至少设计16种);多种花型可以自动变换,循环往复;彩灯变换的快慢节拍可以选择;彩灯控制器具有清零开关。 16种花色(四种亮灭方案:sel00表示全亮全灭交替;sel01表示从左到右逐次亮灯每次亮一个灯;sel10表示从左到右每次亮两个灯;sel11表示从左到右每次亮三个灯)的彩灯控制系统。,3,设计分析,实用彩灯控制系统设计,可分成四个设计: 一是1种频率,16种花色;,4,简单举例,设计一个彩灯控制器,使彩灯(LED管)能连续发出四种以上不同的显示形式,随着彩灯显示图案的变化,发出不同的音响。 彩灯的设计采用分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个二进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。,5,主控模块 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY color4 IS PORT(cLK,rst:IN std_LOGIC; sel:in std_LOGIC_VECTOR(1 DOWNTO 0); abcd:OUT std_LOGIC_VECTOR(16 DOWNTO 0) ); END color4;,VHDL程序,6,ARCHITECTURE color OF color4 IS TYPE state_1 IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); SIGNAL state_2:state_1; BEGIN pr_1:PROCESS (cLK,rst) BEGIN IF rst=1 THEN state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2 state_2=s0; END CASE; END IF; END PROCESS pr_1; pr_2:PROCESS(sel,state_2),7,BEGIN if sel=00 then CASE state_2 IS -彩灯全亮全灭交替 WHEN s0= abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd=11111111111111111; END CASE;,8,elsif sel=01 then -彩灯从左向右逐次点亮一个,且亮后熄灭 CASE state_2 IS WHEN s0= abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd=00000000000000010; END CASE;,9,elsif sel=10 then -彩灯从左向右同时亮两个 CASE state_2 IS WHEN s0= abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd=00000000000000011; END CASE;,10,elsif sel=11 then -彩灯从左向右同时亮3个 CASE state_2 IS WHEN s0= abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd=10000000000000011; END CASE; end if; END PROCESS pr_2; END color;,11,-彩灯控制模块- LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY caideng IS PORT ( input: ININTEGER RANGE 0 TO 31; rst:in std_logic; output: OUT std_logic_vector(7 downto 0); sm :out std_logic_vector(6 downto 0) ); END caideng; ARCHITECTURE a OF caideng IS BEGIN PROCESS (input) BEGIN if rst=1 then output=00000000;sm=0000000; else case input is,12,when 0=outputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutput=11111111;sm=0011011;,13,when 16=outputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputnull; end case; end if; end process; end a;,14,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY counter_32 IS PORT ( clk,rst: INstd_logic; count_out: OUT integer range 0 to 31); END counter_32; ARCHITECTURE a OF counter_32 IS BEGIN PROCESS (rst,clk) variable temp:integer range 0 to 32; BEGIN IF rst=1 THEN temp:=0; ELSIF (clkevent and clk=1) THEN temp:=temp+1; if(temp=32) then temp:=0; end if; END IF; count_out=temp; END PROCESS; END a;,15,LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY counter_4 IS PORT ( clk,rst: INstd_logic; count_out: OUT integer range 0 to 3); END counter_4; ARCHITECTURE a OF counter_4 IS BEGIN PROCESS (rst,clk) variable temp:integer range 0 to 32; BEGIN IF rst=1 THEN temp:=0; ELSIF (clkevent and clk=1) THEN temp:=temp+1; if(temp=4) then temp:=0; end if; END IF; count_out=temp; END PROCESS; END a;,16,实验截图,sel00模式下的截图,17,sel01模式下的截图,18,sel10模式下的截图,19,sel00模式下的截图,20,实验总结,通过本次试验,我对EDA电子工程设计有了进一步的了解,对自己所学的知识有了更深的了解,当然在这个过程我总会遇到一些问题,比如怎样实现灯的亮灭,然后按照不同的方式、,不过我们最终都一一克服了。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号