16路彩灯具有4种彩灯变换模式且变换速度可调的彩灯控制器。
116路可调速彩灯控制器设计思路
16路可调速彩灯控制器根据功能可分为3个部分如图1所示。其中8Hz分频部分用于对频率为10MHz的时钟信号进行分频获得频率为8Hz的时钟信号CLK8。CLK8作为速度控制部分的基准时钟通过计数分频方式又可获得频率分别为4Hz2Hz和1Hz的时钟信号然后由调速信号选择其中之一作为彩灯时钟信号CLKQCLKQ即为彩灯控制部分的基准时钟用于决定彩灯变换的速度由此实现调速信号SPD对彩灯变换速度的控制使彩灯可调速。
图116路可调速彩灯原理图
彩灯控制部分通过输出1个16位二进制数即彩灯输出信号Q来控制16个彩灯每一位二进制数对应1个彩灯的开关当该位数字为“1”时灯亮该位数字为“0”时灯灭。彩灯的变换共设置4种模式
s0模式只亮1个灯从最左端逐个移动到最右端即输出信号Q从第15位开始将1个“1”依次移动到第0位
s1模式只亮1个灯从最右端逐个移动到最左端即输出信号Q从第0位开始将1个“1”依次移动到第15位
s2模式亮2个灯同时从左右两端向中间移动即输出信号Q从第15位开始将1个“1”依次移动到第8位同时从第0位开始将1个“1”依次移动到第7位
s3模式亮2个灯同时从中间向左右两端移动即输出信号Q从第8位开始将1个“1”依次移动到第15位同时从第7位开始将1个“1”依次移动到第0位。
四种模式依次循环若复位信号RST输入为高电平则循环中断输出信号Q置零彩灯全灭RST恢复为低电平后再次从s0模式开始循环。
f龙源期刊网httpwwwqika
comc
216路可调速彩灯控制器的实现本文所设计的16路可调速彩灯控制器其电路符号如图2所示其中clk为10MHz时钟信号输入端rst为复位控制端spd为调速信号输入端q为彩灯控制信号输出端。图216路可调速彩灯控制器的电路符号本文所设计的16路可调速彩灯控制器的VHDL代码如下所示LIBRARYIEEEUSEieeestd_logic_1164ALLUSEieeestd_logic_u
sig
edALLENTITYlights16ISPORTclki
std_logic10MHz时钟输入信号rsti
std_logic复位信号spdi
std_logic_vector1dow
to0qoutstd_logic_vector15dow
to0ENDlights16ARCHITECTUREo
eOFlights16IStypestatesiss0s1s2s3定义4种模式sig
alprese
tstatessig
alclk8hzstd_logicsig
alclkqstd_logicsig
alq1std_logic_vector15dow
to0sig
alc
tstd_logic_vector3dow
to0BEGINprocessclk8Hz分频
fvariablecou
ti
tegerra
ge0to624999begi
ifclk′eve
ta
dclk′1′the
ifcou
t624999the
clk8hzelsecou
tcou
t1e
dife
dr