[精品资料]彩灯控制资料彩灯控制器资料_第1页
[精品资料]彩灯控制资料彩灯控制器资料_第2页
[精品资料]彩灯控制资料彩灯控制器资料_第3页
[精品资料]彩灯控制资料彩灯控制器资料_第4页
[精品资料]彩灯控制资料彩灯控制器资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

彩灯控制论文彩灯控制器论文基于VHDL的16路可调速彩灯控制器设计摘 要:彩灯作为一种常见的装饰,在生活中应用广泛。为了使彩灯变得更加绚丽多彩,这里在Quartus 开发环境下,用VHDL语言设计了一种可用于控制16路彩灯,具有4种彩灯变换模式,且变换速度可调的彩灯控制器。仿真结果表明,所设计的彩灯控制器成功地实现了4种变换模式的循环和各种变换速度的调节。最后,以ACEX1K系列EP1K30QC208芯片为硬件环境,验证了各项设计功能的正确性。 关键词:VHDL; 彩灯控制器; 变换模式; EP1K30QC208 Design of Adjustable Speed Sixteen Groups Illuminations Controller Based on VHDL ZHANG Xi-feng,QU Bao-peng (Electronics Engineer Department, Sh nxi Institute of Technology, Xian 710300,China) Abstract: The FPGA/CPLD is applied in digital system development extensively with the development of large scale integrated circuit. Illuminations which are common decorations have a broad application in daily life. In order to make the illuminations colorful, a switch speed adjustable controller which can control 16 groups of illuminations and has 4 switch patterns was designed with the language of VHDL in the environment of Quartus II. The simulation results indicate that the designed controller realized the cycle of 4 switch patterns and all sorts of speeds adjustable. The validity of whole designed functions is verified with the EP1K30QC208 chip of ACEX1K series. Keywords: VHDL; illuminations; controller; switch mode; EP1K30QC208 0 引 言 近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新1-3,使FPGA/CPLD成为当今硬件设计的重要途径,与传统电路设计方法相比,FPGA/CPLD具有功能强大、开发周期短、投资少,便于追踪市场变化及时修改产品设计以及开发工具智能化等特点4。在诸多FPGA/CPLD的设计语言中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,并在语言易读性和层次化、结构化设计方面,表现出了强大的生命力和应用潜力5-6。 Quartus 是Altera公司在21世纪初推出的FPGA/CPLD集成开发环境,是Altera公司前一代FPGA/CPLD集成开发环境Max+Plus的更新换代产品,其界面友好,使用便捷,功能强大,为设计者提供了一种与结构无关的设计环境,使设计者能方便的进行设计输入、快速处理和器件编程7-8。 本文在Quartus 开发环境下,用VHDL语言设计了一种可用于控制16路彩灯,具有4种彩灯变换模式,且变换速度可调的彩灯控制器。 1 16路可调速彩灯控制器设计思路 16路可调速彩灯控制器根据功能可分为3个部分,如图1所示。其中,8 Hz分频部分用于对频率为10 MHz的时钟信号进行分频,获得频率为8 Hz的时钟信号CLK8。CLK8作为速度控制部分的基准时钟,通过计数分频方式又可获得频率分别为4 Hz,2 Hz和1 Hz的时钟信号,然后由调速信号选择其中之一作为彩灯时钟信号CLKQ,CLKQ即为彩灯控制部分的基准时钟,用于决定彩灯变换的速度,由此实现调速信号SPD对彩灯变换速度的控制,使彩灯可调速。 图1 16路可调速彩灯原理图 彩灯控制部分通过输出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模式开始循环。 2 16路可调速彩灯控制器的实现 本文所设计的16路可调速彩灯控制器,其电路符号如图2所示,其中clk为10 MHz时钟信号输入端,rst为复位控制端,spd为调速信号输入端,q为彩灯控制信号输出端。 图2 16路可调速彩灯控制器的电路符号 本文所设计的16路可调速彩灯控制器的VHDL代码如下所示: LIBRARY IEEE; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY lights16 IS PORT(clk: in std_logic;-10MHz时钟输入信号 rst: in std_logic;-复位信号 spd: in std_logic_vector(1 downto 0); q: out std_logic_vector(15 downto 0); END lights16; ARCHITECTURE one OF lights16 IS type states is (s0,s1,s2,s3);-定义4种模式 signal present:states; signal clk8hz:std_logic; signal clkq:std_logic; signal q1:std_logic_vector(15 downto 0); signal cnt:std_logic_vector(3 downto 0); BEGIN process(clk)-8Hz分频 variable count:integer range 0 to 624999; begin if clkevent and clk=1 then if count=624999 then clk8hzclkqclkqclkqclkq=clk8Hz; end case; end process; -系统复位 process(clkq,rst) begin if rst=1 then present=s0;q10); elsif clkqevent and clkq=1 then case present is -s0模式:从左到右逐个点亮LED when s0= if q1=0000000000000000 then q1=1000000000000000; elsif cnt=1111 then cnt0); q1=0000000000000001; present=s1; else q1=q1(0)&q1(15 downto 1); cnt=cnt+1;present if cnt=1111 then cnt0); q1=1000000000000001; present=s2; else q1=q1(14 downto 0)&q1(15); cnt=cnt+1;present if cnt=1111 then cnt0); q1=0000000110000000; present=s3; else q1(15 downto 8)=q1(8)&q1(15 downto 9); q1(7 downto 0)=q1(6 downto 0)&q1(7); cnt=cnt+1;present if cnt=1111 then cnt0); q1=1000000000000000;present=s0; else q1(15 downto 8)=q1(14 downto 8)&q1(15); q1(7 downto 0)=q1(0)&q1(7 downto 1); cnt=cnt+1;present=s3; end if; end case; end if; end process; q=q1; END ARCHITECTURE one; 值得注意的是,本文设计的16路可调速彩灯控制器使用了数据循环算法,较以往的case when语句10,更加简洁,实现的功能更加强大,其具有如下特点: (1) 在硬件验证时,将速度控制端spd的pin脚接到拨码开关上,从而实现彩灯变换速度快慢的手动控制,在更进一步的设计中,也可以通过对spd信号的内部控制,实现各种变换速度的自动调整。 (2) 该设计采用数据移位的方式实现彩灯的变换,更有利于彩灯变换模式的扩展。该设计虽然只设计了4种变换模式,但可以根据需要轻松的扩展至68种模式,甚至更多。 (3) 8 Hz分频部分的分频比很大,不适于计算机仿真验证,在仿真时需要调小分频比,在硬件验证时再恢复较大的分频比。 3 仿真结果分析 本文设计的16路可调速彩灯控制器在Quartus 开发环境下进行了仿真验证,仿真波形如图3所示。仿真结果分析如下: (1) clk为时钟信号,由时钟信号的上升沿触发分频器计数; (2) rst为复位信号输入端,当其为高电平时,彩灯控制输出信号q清零,rst恢复为低电平后彩灯控制输出信号q从s0模式重新开始循环; (3) spd为调速信号输入端,对应于spd的“00”,“01”,“10”,“11”这4个数值,彩灯变换的速度分别为1 Hz,2 Hz,4 Hz,8 Hz; (4) q为彩灯控制信号输出端,由图3可知,该设计成功地实现了4种变换模式的循环和各种变换速度的调节。 图3 16路可调速彩灯控制器仿真波形 4 结 语 设计的16路可调速彩灯控制器在Quartus 开发环境下进行了仿真验证后,下载到湖北众友科技实业股份有限公司的ZY11EDA13BE实验箱中进行了硬件验证,该实验箱使用ACEX1K系列EP1K30QC208芯片作为核心芯片,实验证明设计正确,功能完整,运行稳定。另外,本文所设计的16路可调速彩灯控制器可根据需要增加更多的变换模式,使彩灯更加绚丽多姿。 参考文献 1潘松,黄继业.EDA技术实用教程M.北京:科学出版社,2004. 2康华光.电子技术基础(数字部分)M.北京:高等教育出版社,2004. 3马或,王丹利,王丽英.CPLD/FPGA可编程逻辑器件实用教程M.北京:机械工业出版社,2006. 4侯伯亨,顾新.VHDL硬件描述语言与数字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论