EDA技术实验彩灯控制器设计与实现.ppt
《EDA技术实验彩灯控制器设计与实现.ppt》由会员分享,可在线阅读,更多相关《EDA技术实验彩灯控制器设计与实现.ppt(20页珍藏版)》请在冰点文库上搜索。
1,彩灯控制器设计与实现,1.项目分析2.设计方案3.任务分配4.实施计划5.预期效果,学生讲演,2,周四实验:
彩灯控制器设计与实现,基本任务与要求:
功能与要求:
设计并实现一彩灯控制器,要有多种花型变化(至少设计4种);多种花型可以自动变换,循环往复;彩灯变换的快慢节拍可以选择;彩灯控制器具有清零开关。
4种花色(4种花样可分别为:
彩灯从右到左,然后从左到右逐次闪烁。
彩灯从右到左点亮,然后从左到右逐次依次熄灭,全亮全灭。
彩灯两边同时亮1个逐次向中间移动再散开。
彩灯两边同时亮2个,2亮2灭)的彩灯控制系统。
3,设计分析,实用彩灯控制系统设计,可分成两个设计:
一是1种频率,1种花色;二是4种频率,4种花色。
4,1种频率,1种花色,如何实现?
做一个计数器,当每计一个数,使输出变换一下。
花色要求:
彩灯OUT1OUT8,8个LED从右到左,然后从左到右逐次点亮。
因此,只要每计一个数,就点亮一个灯就可以实现。
5,4种频率,4种花色。
4种花色如何实现?
4种花色(4种花样可分别为:
彩灯从右到左,然后从左到右逐次闪烁。
彩灯从右到左点亮,然后从左到右逐次依次熄灭,全亮全灭。
彩灯两边同时亮1个逐次向中间移动再散开。
彩灯两边同时亮2个,2亮2灭。
花色控制还是可以通过计数器来实现。
4种频率如何实现?
可以通过分频器电路+动态扫描电路来实现。
6,简单举例,设计一个彩灯控制器,使彩灯(LED管)能连续发出四种以上不同的显示形式,随着彩灯显示图案的变化,发出不同的音响。
彩灯的设计采用分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。
其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。
7,顶层设计,8,9,-分频器模块-MAX+plusIIVHDLTemplate-ClearableloadableenablablecounterLIBRARYieee;USEieee.std_logic_1164.all;ENTITYfenpinqiISPORT(clk,rst:
INstd_logic;clk_10,clk_4,clk_6,clk_8:
OUTstd_logic);ENDfenpinqi;ARCHITECTUREcdOFfenpinqiISbeginp1:
process(clk,rst)variablea:
integerrange0to20;begin,附录-VHDL程序,10,ifrst=1thenclk_4=3thena:
=0;clk_4=1;elsea:
=a+1;clk_4=0;endif;endif;endif;endprocessp1;p2:
process(clk,rst)variableb:
integerrange0to20;begin,11,ifrst=1thenclk_6=5thenb:
=0;clk_6=1;elseb:
=b+1;clk_6=0;endif;endif;endif;endprocessp2;p3:
process(clk,rst)variablec:
integerrange0to20;begin,12,ifrst=1thenclk_8=7thenc:
=0;clk_8=1;elsec:
=c+1;clk_8=0;endif;endif;endif;endprocessp3;p4:
process(clk,rst)variabled:
integerrange0to20;begin,13,ifrst=1thenclk_10=9thend:
=0;clk_10=1;elsed:
=d+1;clk_10=0;endif;endif;endif;endprocessp4;endcd;,14,-4选1选择器-LIBRARYieee;USEieee.std_logic_1164.all;ENTITYxzq4_1ISPORT(rst:
instd_logic;inp:
inintegerrange0to3;in1,in2,in3,in4:
Instd_logic;output:
OUTstd_logic);ENDxzq4_1;ARCHITECTUREaOFxzq4_1ISBEGINPROCESS(rst,inp)BEGINif(rst=1)thenoutputoutputoutputoutputoutputnull;endcase;endif;ENDPROCESS;ENDa;,15,-彩灯控制模块-LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcaidengISPORT(input:
ININTEGERRANGE0TO31;rst:
instd_logic;output:
OUTstd_logic_vector(7downto0);sm:
outstd_logic_vector(6downto0);ENDcaideng;ARCHITECTUREaOFcaidengISBEGINPROCESS(input)BEGINifrst=1thenoutput=00000000;sm=0000000;elsecaseinputis,16,when0=outputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutput=11111111;sm=0011011;,17,when16=outputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputoutputnull;endcase;endif;endprocess;enda;,18,-32进制计数器模块-LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcounter_32ISPORT(clk,rst:
INstd_logic;count_out:
OUTintegerrange0to31);ENDcounter_32;ARCHITECTUREaOFcounter_32ISBEGINPROCESS(rst,clk)variabletemp:
integerrange0to32;BEGINIFrst=1THENtemp:
=0;ELSIF(clkeventandclk=1)THENtemp:
=temp+1;if(temp=32)thentemp:
=0;endif;ENDIF;count_out=temp;ENDPROCESS;ENDa;,19,-4进制计数器模块-LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcounter_4ISPORT(clk,rst:
INstd_logic;count_out:
OUTintegerrange0to3);ENDcounter_4;ARCHITECTUREaOFcounter_4ISBEGINPROCESS(rst,clk)variabletemp:
integerrange0to32;BEGINIFrst=1THENtemp:
=0;ELSIF(clkeventandclk=1)THENtemp:
=temp+1;if(temp=4)thentemp:
=0;endif;ENDIF;count_out=temp;ENDPROCESS;ENDa;,20,扩展的任务与要求:
设计一个具有6种花型循环变化的彩灯控制器。
系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图所示,它由时序控制模块和显示控制模块两部分组成。
整个系统有3个输入信号:
系统时钟信号CLK,系统清零信号CLR和控制彩灯节奏快慢的选择开关SPEED。
9个输出信号LED8.0,分别用于模拟彩灯。