电子系统多路彩灯.docx

上传人:b****5 文档编号:4440883 上传时间:2022-12-01 格式:DOCX 页数:5 大小:126.84KB
下载 相关 举报
电子系统多路彩灯.docx_第1页
第1页 / 共5页
电子系统多路彩灯.docx_第2页
第2页 / 共5页
电子系统多路彩灯.docx_第3页
第3页 / 共5页
电子系统多路彩灯.docx_第4页
第4页 / 共5页
电子系统多路彩灯.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子系统多路彩灯.docx

《电子系统多路彩灯.docx》由会员分享,可在线阅读,更多相关《电子系统多路彩灯.docx(5页珍藏版)》请在冰豆网上搜索。

电子系统多路彩灯.docx

电子系统多路彩灯

1系统设计要求

需设计一个十六路彩灯控制器,6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。

2系统设计方案

根据系统设计要求可知,整个系统共有三个输入信号:

控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。

据此,我们可将整个彩灯控制器CDKZQ分为两大部分:

时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图1所示。

图1彩灯控制器组成原理图

3主要VHDL源程序

3.1时序控制电路的VHDL源程序

--SXKZ.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSXKZIS

PORT(CHOSE_KEY:

INSTD_LOGIC;

CLK_IN:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

CLK:

OUTSTD_LOGIC);

ENDENTITYSXKZ;

ARCHITECTUREARTOFSXKZIS

SIGNALCLLK:

STD_LOGIC;

BEGIN

PROCESS(CLK_IN,CLR,CHOSE_KEY)IS

VARIABLETEMP:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

IFCLR='1'THEN--当CLR='1'时清零,否则正常工作

CLLK<='0';TEMP:

="000";

ELSIFRISING_EDGE(CLK_IN)THEN

IFCHOSE_KEY='1'THEN

IFTEMP="011"THEN

TEMP:

="000";

CLLK<=NOTCLLK;

ELSE

TEMP:

=TEMP+'1';

ENDIF;

--当CHOSE_KEY='1'时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟

--频率的1/8的时钟信号

ELSE

IFTEMP="111"THEN

TEMP:

="000";

CLLK<=NOTCLLK;

ELSE

TEMP:

=TEMP+'1';

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

CLK<=CLLK;

ENDARCHITECTUREART;

3.2显示控制电路的VHDL源程序

--XSKZ.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYXSKZIS

PORT(CLK:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

LED:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

ENDENTITYXSKZ;

ARCHITECTUREARTOFXSKZIS

TYPESTATEIS(S0,S1,S2,S3,S4,S5,S6);

SIGNALCURRENT_STATE:

STATE;

SIGNALFLOWER:

STD_LOGIC_VECTOR(15DOWNTO0);

BEGIN

PROCESS(CLR,CLK)IS

CONSTANTF1:

STD_LOGIC_VECTOR(15DOWNTO0):

="0001000100010001";

CONSTANTF2:

STD_LOGIC_VECTOR(15DOWNTO0):

="1010101010101010";

CONSTANTF3:

STD_LOGIC_VECTOR(15DOWNTO0):

="0011001100110011";

CONSTANTF4:

STD_LOGIC_VECTOR(15DOWNTO0):

="0100100100100100";

CONSTANTF5:

STD_LOGIC_VECTOR(15DOWNTO0):

="1001010010100101";

CONSTANTF6:

STD_LOGIC_VECTOR(15DOWNTO0):

="1101101101100110";

--六种花型的定义

BEGIN

IFCLR='1'THEN

CURRENT_STATE<=S0;

ELSIFRISING_EDGE(CLK)THEN

CASECURRENT_STATEIS

WHENS0=>

FLOWER<="ZZZZZZZZZZZZZZZZ";

CURRENT_STATE<=S1;

WHENS1=>

FLOWER<=F1;

CURRENT_STATE<=S2;

WHENS2=>

FLOWER<=F2;

CURRENT_STATE<=S2;

WHENS3=>

FLOWER<=F2;

CURRENT_STATE<=S4;

WHENS4=>

FLOWER<=F4;

CURRENT_STATE<=S5;

WHENS5=>

FLOWER<=F5;

CURRENT_STATE<=S6;

WHENS6=>

FLOWER<=F6;

CURRENT_STATE<=S1;

ENDCASE;

ENDIF;

ENDPROCESS;

LED<=FLOWER;

ENDARCHITECTUREART;

分页

3.3整个电路系统的VHDL源程序

--CDKZQ.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCDKZQIS

PORT(CLK_IN:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

CHOSE_KEY:

INSTD_LOGIC;

LED:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

ENDENTITYCDKZQ;

ARCHITECTUREARTOFCDKZQIS

COMPONENTSXKZIS

PORT(CHOSE_KEY:

INSTD_LOGIC;

CLK_IN:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

CLK:

OUTSTD_LOGIC);

ENDCOMPONENTSXKZ;

COMPONENTXSKZIS

PORT(CLK:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

LED:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

ENDCOMPONENTXSKZ;

SIGNALS1:

STD_LOGIC;

BEGIN

U1:

SXKZPORTMAP(CHOSE_KEY,CLK_IN,CLR,S1);

U2:

XSKZPORTMAP(S1,CLR,LED);

ENDARCHITECTUREART;

4系统仿真/硬件验证

4.1系统的有关仿真

时序控制电路SXKZ、显示控制电路XSKZ及整个电路系统CDKZQ的仿真图分别如图2、图3和图4所示。

图2时序控制电路SXKZ仿真图

图3显示控制电路XSKZ仿真图

图4整个电路系统CDKZQ仿真图

4.2系统的硬件验证

系统通过仿真后,我们可根据自己所拥有的EDA实验开发系统进行编程下载和硬件验证。

考虑到一般EDA实验开发系统提供的输出显示资源有限,我们可将输出适当调整后进行硬件验证。

5设计技巧分析

(1)在时序控制电路SXKZ的设计中,利用计数器计数达到分频值时,对计数器进行清零,同时将输出信号反向,这就非常简洁地实现了对输入基准时钟信号的分频,并且分频信号的占空比为0.5。

(2)在显示控制电路XSKZ的设计中,利用状态机非常简洁地实现了六种花型的循环变化,同时利用六个十六位常数的设计,可非常方便地设置和修改六种花型。

(3)对于顶层程序的设计,因本系统模块较少,既可使用文本的程序设计方式,也可使用原理图的设计方式。

但对于模块较多的系统,最好使用文本的程序设计方式。

6系统扩展思路

(1)在彩灯的快慢节奏的控制上,若去掉快慢节奏控制开关,如何控制快慢节奏的交替变化。

(2)设计外围电路:

系统用方波信号源、直流工作电源、彩灯控制的驱动电路。

(3)若为课程设计,除要求设计调试程序、外围电路外,还可要求设计、制作整个系统,包括PCB的制作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1