多路彩灯控制器 22.docx

上传人:b****4 文档编号:24155743 上传时间:2023-05-24 格式:DOCX 页数:11 大小:140.96KB
下载 相关 举报
多路彩灯控制器 22.docx_第1页
第1页 / 共11页
多路彩灯控制器 22.docx_第2页
第2页 / 共11页
多路彩灯控制器 22.docx_第3页
第3页 / 共11页
多路彩灯控制器 22.docx_第4页
第4页 / 共11页
多路彩灯控制器 22.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

多路彩灯控制器 22.docx

《多路彩灯控制器 22.docx》由会员分享,可在线阅读,更多相关《多路彩灯控制器 22.docx(11页珍藏版)》请在冰豆网上搜索。

多路彩灯控制器 22.docx

多路彩灯控制器22

 

EDA技术课程大作业

 

设计题目:

多路彩灯控制器

院系:

电子信息与电器工程系

学生姓名:

学号:

200902070038

专业班

 

2010年12月10日

多路彩灯控制器

1.设计背景和设计方案

1.1设计背景

在大型的节日晚会,娱乐场所,橱窗装饰中,多路彩灯被广泛的应用,它通过多路彩灯控制器控制对应的开关按钮,能够控制多个彩灯的输出状态,组合多种变幻的灯光闪烁,营造出良好的氛围。

1.2设计方案

多路彩灯控制器,能循环变化花型,可清零,可选择花型变化节奏。

彩灯控制器有16路发光二极管构成,当控制器开关打开时,能够在6种不同的彩灯花型之间进行循环变化,控制器具备符文清零的功能,一旦复位信号有效,不论控制器花型变化处于何种状态,都会无条件即刻清零,恢复到初始状态;节拍选择按钮,按下此按钮,多路彩灯控制器的花型变化的节奏减缓,放开此按钮,则节奏变换相对加快。

整个系统共有三个输入信号,分别为控制器快慢节奏控制信号OPT,复位清零信号CLR和时钟脉冲信号CLK,输出信号则是16路彩灯的输出状态LED[15…0]。

多路彩灯控制器有两个主要的电路模块组成:

时序控制电路模块和显示控制电路模块,时序控制电路根据输入信号的设置得到相应的输出信号,并将此信号作为显示控制电路的时钟信号,显示控制电路根据输入时钟信号的周期,有规律的输出预先设定的6中彩灯花型,从而使得多路彩灯控制器在一定的输入条件下提供符合设计要求的有效输出。

2.方案实施

2.1时序控制电路

在时序控制电路的模块CLR为复位清零信号,高电平有效,但一旦该信号有效,电路无条件复位为初始状态OPT为快慢节奏选择信号,低电平时节奏快,高电平时节奏慢,CLKOUT为输出信号,CLR信号有效时,CLKOUT输出为0,否则CLKOUT的周期随OPT信号的改变而改变。

时序控制电路的VHDL源程序如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitymetronomeis

port(

clk:

instd_logic;

clr:

instd_logic;

opt:

instd_logic;

clkout:

outstd_logic

);

endmetronome;

architecturertlofmetronomeis

signalclk_tmp:

std_logic;

signalcounter:

std_logic_vector(1downto0);

begin

process(clk,clr,opt)

begin

ifclr='1'then

clk_tmp<='0';

counter<="00";

elsifclk'eventandclk='1'then

ifopt='0'then

ifcounter="01"then

counter<="00";

clk_tmp<=notclk_tmp;

else

counter<=counter+'1';

endif;

else

ifcounter="11"then

counter<="00";

clk_tmp<=notclk_tmp;

else

counter<=counter+'1';

endif;

endif;

endif;

endprocess;

clkout<=clk_tmp;

endrtl;

运行结果:

时序控制电路所产生的控制时钟信号的快慢两种节奏分别为输入时钟信号频率的1/4和1/8,输出时钟控制信号可以通过对输入时钟的计数来获得,当OPT为低电平是,输出每经过两个时钟周期进行翻转,实现四分频的快节奏,当OPT为高电平时,输出每经过四个时钟周期进行翻转,实现八分频的慢节奏。

波形图仿真

仿真结果:

当复位信号为高电平时,信号使能,使得电路不论处于何种状态或时钟周期的哪个位置,都即刻被复位清零。

图中,复位信号从时钟下降沿开始有效,输出信号不必等到时钟的上升沿就马上恢复为初始状态。

当快慢节奏选择信号OPT为低电平时,此时的时序控制电路起着四分频分频器的作用,每经过两个输入时钟周期,输出信号都进行翻转;当快慢节奏选择信号OPT为高电平时,时序控制控制电路类似于八分频分频器,每经过四个输入时钟周期,输出信号进行翻转;OPT信号取值不同时,对应的输出控制信号的周期也不相同,二者分别表现了两种频率不同的快慢周期信号。

2.2显示控制电路

显示控制电路的输入信号CLK和CLR的定义与是序控制电路一样,输出信号LED[15…0]能够循环输出16路彩灯6种不同状态的花型,对各种所对应的彩灯输出花型定义如下:

s0:

000000000000

s1:

010101010101

s2:

1010101010101010

s31000100010001000

s41100110011001100

s50011001100110011

s60001000100010001

当复位信号CLR有效时,彩灯恢复初始状态S0,否则,每个时钟周期,状态都将向下一个状态发生改变,并对应相应的输出花型,这里的时钟周期即时序控制电路模块产生的输出信号,它根据OPT信号的不同,取值得到两种快慢不同的时钟频率。

显示控制电路的VHDL源程序如下:

libraryieee;

useieee.std_logic_1164.all;

entityoutputis

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endoutput;

architecturertlofoutputis

typestatesis

(s0,s1,s2,s3,s4,s5,s6);

signalstate:

states;

begin

process(clk,clr)

begin

ifclr='1'then

state<=s0;

led<="0000000000000000";

elsifclk'eventandclk='1'then

casestateis

whens0=>

state<=s1;

whens1=>

state<=s2;

led<="0101010101010101";

whens2=>

state<=s3;

led<="1010101010101010";

whens3=>

state<=s4;

led<="1000100010001000";

whens4=>

state<=s5;

whens5=>

state<=s6;

led<="0011001100110011";

whens6=>

state<=s1;

led<="0001000100010001";

endcase;

endif;

endprocess;

运行结果:

当复位信号CLR有效时,彩灯恢复初始状态S0,否则,每个时钟周期,状态都将向下一个状态发生改变,并对应相应的输出花型,这里的时钟周期即时序控制电路模块产生的输出信号,它根据OPT信号的不同,取值得到两种快慢不同的时钟频率。

波形图仿真:

仿真结果:

当复位清零信号有效时,彩灯输出为初始状态,按照预先定义的全0;否则,显示控制电路在6种不同的状态之间循环变化。

2.3多路彩灯控制器:

通过使用时序控制电路和显示控制电路这两个例化元件,将时序控制电路的输出作为显示控制电路的输入时钟信号,即可实现多路彩灯控制器。

如图:

顶层模块的设计VHDL源程序如下:

libraryieee;

useieee.std_logic_1164.all;

entitycolorledis

port(

clk:

instd_logic;

clr:

instd_logic;

opt:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endcolorled;

architecturertlofcolorledis

componentmetronomeis

port(

clk:

instd_logic;

clr:

instd_logic;

opt:

instd_logic;

clkout:

outstd_logic

);

endcomponentmetronome;

componentoutputis

port(

clk:

instd_logic;

clr:

instd_logic;

led:

outstd_logic_vector(15downto0)

);

endcomponentoutput;

signalclk_tmp:

std_logic;

begin

u1:

metronomeportmap(clk,clr,opt,clk_tmp);

u2:

outputportmap(clk_tmp,clr,led);

endrtl;

波形图访真:

2.3多路彩灯控制器复位功能波形:

当复位信号CLR为高电平有效时,不论16路彩灯输出处于何种状态,也不论在输入时钟信号的哪个位置,所有的输出都被清零,恢复为初始状态。

2.4多路彩灯控制器快慢节奏输出:

多路彩灯控制器快节奏输出波形图

多路彩灯控制器慢节奏输出波形图

由快慢节奏输出波形图可以看出,慢节奏输出的循环形式和快节奏输出时完全相同,二者之间唯一的不同是16路彩灯控制器在慢节奏输出时,要经过8个输入时钟周期才改变一次输出状态。

3.结果和结论

本次作业设计了几个基本模块的原理及其方案,通过模块间的特定形式的组成,构建了一个完整的16路彩灯控制器。

通过学习,掌握了N分频分频器的设计方法,并能够将其作为基本电路原件在各类数字电路中的灵活使用,为以后的学习打下了良好的基础。

4.参考文献

[1]孙俊逸,刘江海.EDA技术课程设计.华中科技大学出版社,2008年12月

[2]刘欲晓,方强.电子工业出版社.2009年2月

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

当前位置:首页 > 成人教育 > 自考

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

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