欢迎来到天天文库
浏览记录
ID:61428977
大小:197.50 KB
页数:5页
时间:2021-01-29
《实验十四 多路彩灯控制器.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验十四多路彩灯控制器一、实验任务及要求设计一个十六路彩灯控制器,6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。二、设计说明与提示1、设计说明根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图2-4所示。2、提示(1)在时序控制电路SXKZ的设计中,利用计数器
2、计数达到分频值时,对计数器进行清零,同时将输出信号反向,这就非常简洁地实现了对输入基准时钟信号的分频,并且分频信号的占空比为0.5。(2)在显示控制电路XSKZ的设计中,利用状态机可以非常简洁地实现了六种花型的循环变化,同时利用六个十六位常数的设计,可非常方便地设置和修改六种花型。(3)对于顶层程序的设计,因本系统模块较少,既可使用文本的程序设计方式,也可使用原理图的设计方式。但对于模块较多的系统,最好使用文本的程序设计方式。图2-4彩灯控制器组成原理图三、实验报告要求1.画出顶层原理图。2.系统通过仿真后,根据EDA实验开发系统进行编程下载和硬件验
3、证。3.写出各功能模块的VHDL语言源文件。4.书写实验报告时应结构合理,层次分明,注意语言的流畅。四、主要VHDL源程序1、时序控制电路的VHDL源程序--SXKZ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSXKZISPORT(CHOSE_KEY:INSTD_LOGIC;CLK_IN:INSTD_LOGIC;CLR:INSTD_LOGIC;CLK:OUTSTD_LOGIC);ENDENTITYSXKZ;ARCHITECTUREART
4、OFSXKZISSIGNALCLLK:STD_LOGIC;BEGINPROCESS(CLK_IN,CLR,CHOSE_KEY)ISVARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIFCLR='1'THEN--当CLR='1'时清零,否则正常工作CLLK<='0';TEMP:="000";ELSIFRISING_EDGE(CLK_IN)THENIFCHOSE_KEY='1'THENIFTEMP="011"THENTEMP:="000";CLLK<=NOTCLLK;ELSETEMP:=TEMP+'1';ENDIF
5、;--当CHOSE_KEY='1'时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟--频率的1/8的时钟信号ELSEIFTEMP="111"THENTEMP:="000";CLLK<=NOTCLLK;ELSETEMP:=TEMP+’1';ENDIF;ENDIF;ENDIF;ENDPROCESS;CLK<=CLLK;ENDARCHITECTUREART;2、显示控制电路的VHDL源程序--XSKZ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYXSKZISPORT(CLK:INSTD_LOGIC;
6、CLR:INSTD_LOGIC;LED:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDENTITYXSKZ;ARCHITECTUREARTOFXSKZISTYPESTATEIS(S0,S1,S2,S3,S4,S5,S6);SIGNALCURRENT_STATE:STATE;SIGNALFLOWER:STD_LOGIC_VECTOR(15DOWNTO0);BEGINPROCESS(CLR,CLK)ISCONSTANTF1:STD_LOGIC_VECTOR(15DOWNTO0):="10001";CONSTANTF2:STD_LO
7、GIC_VECTOR(15DOWNTO0):="01010";CONSTANTF3:STD_LOGIC_VECTOR(15DOWNTO0):="10011";CONSTANTF4:STD_LOGIC_VECTOR(15DOWNTO0):="00100";CONSTANTF5:STD_LOGIC_VECTOR(15DOWNTO0):="00101";CONSTANTF6:STD_LOGIC_VECTOR(15DOWNTO0):="00110";--六种花型的定义BEGINIFCLR='1'THENCURRENT_STATE<=S0;ELSIFRISIN
8、G_EDGE(CLK)THENCASECURRENT_STATEISWHENS0=>FLOWER<="ZZZ
此文档下载收益归作者所有