多路彩灯控制器.docx
《多路彩灯控制器.docx》由会员分享,可在线阅读,更多相关《多路彩灯控制器.docx(20页珍藏版)》请在冰豆网上搜索。
![多路彩灯控制器.docx](https://file1.bdocx.com/fileroot1/2023-2/6/10175743-8c5d-4928-bcec-19c886e0afe8/10175743-8c5d-4928-bcec-19c886e0afe81.gif)
多路彩灯控制器
前言---------------------------------------------------------------5
第1章方案论证-------------------------------------------------------6
1.1方案一------------------------------------------------------------6
1.2方案二------------------------------------------------------------6
1.3最佳方案选择------------------------------------------------------7
第2章模块设计及其功能----------------------------------------------8
2.1模块功能描述-----------------------------------------------------8
2.2时序控制模块-----------------------------------------------------8
2.3显示控制模块----------------------------------------------------10
第3章十六路彩灯控制器的实现---------------------------------------14
3.1整体功能描述----------------------------------------------------14
3.2设计原理--------------------------------------------------------14
3.3程序编译与仿真--------------------------------------------------16
3.4程序下载--------------------------------------------------------18
3.5硬件测试--------------------------------------------------------20
3.6本章小结--------------------------------------------------------20
第4章结论---------------------------------------------------------21
第5章总结---------------------------------------------------------22
致谢----------------------------------------------------------------23
参考文献------------------------------------------------------------24
附录----------------------------------------------------------------25
通信工程专业课程设计Ⅱ任务书
院(系)电信工程系专业班级通信工程专业xx班学生姓名xx
一、计算机综合课程设计题目多路彩灯控制器的设计
二、计算机综合课程设计工作自xxxx年x月x日起至xxxx年x月x日止
三、计算机综合课程设计进行地点:
电信工程系实验室
四、计算机综合课程设计的内容要求:
熟练掌握EDA技术利用计算机方面的课程解决专业课程方面的具体问题,通过分析问题、设计调试、最终达到解决问题,完成课程设计任务,达到培养实践的目的。
设计一个彩灯控制器,使彩灯(LED管)能连续发出6种以上不同的显示形式;具有6种花型循环变化。
整个系统共有三个输入信号:
控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。
⑴要有多种花型变化。
⑵多种花型可以自动变化,循环往复。
⑶彩灯变化的快慢节拍可以选择。
⑷具有清零开关。
指导教师xx系(教研室)通信工程教研室
接受任务开始执行日期xxxx年x月x日学生签名
多路彩灯控制器的设计
Xx
(xxxx大学电信工程系通信xx班,xx省xx市邮编)
指导教师:
xx
[摘要]:
当今时代科技发展日异月新,彩灯作为一种景观应用越来越多。
在电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段。
它的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。
本次设计是十六路彩灯控制器,现代生活中,彩灯已经成为必不可少的景观,本次设计本着与实际生活密切联系的原则,论述了使用VHDL设计十六路彩灯控制器的过程。
VHDL为设计提供了更大的灵活性,使程序具有更高的通用性。
同时也提高了设计的灵活性、可靠性和可扩展性,为大学生更好地认识社会提供了很好的机会。
[关键词]:
电子设计自动化(EDA);VHDL;彩灯控制器;
DesignofMulti-channelcoloredlanterncontroller
ChengJie
(Grade07,Class1,MajorofCommunicationEngineering,Dept.ofShaanxiUniversityofTechnology,Hanzhong723003China)
Tutor:
WeiRui
[Abstract]:
Thetimesondifferentscientificandtechnologicaldevelopmentonnew,lanternasanincreasingnumberoflandscapeapplications.Inthefieldofelectroniccircuitdesign,electronicdesignautomation(EDA)toolshavebecomeprimarydesigntool.Itsdevelopmenttothedesignofelectronicsystemshasbroughtarevolutionarychange,EDAsoftwaredesigntools,hardwaredescriptionlanguage,programmablelogicdevices(PLD)allowstheapplicationofEDAtechnologiestospread.Thisdesignis16LightControllers,modernlifehasbecomeanessentiallandscapelights,thisdesigncloselyinlinewiththeprinciplesofreallife,discussestheuseofVHDLdesign16Roadlanterncontrollerprocess.VHDLasthedesignprovidesgreaterflexibilitytoprocessahigherversatility.Alsoimprovedesignflexibility,reliabilityandscalabilityforabetterunderstandingofcommunitycollegestudentsagoodopportunity.
[Keywords]:
Electronicdesignautomation(EDA);VHDL;lanterncontroller;
前言
随着科学技术的发展以及人民生活水平的提高,在现代生活中,彩灯作为一种装饰既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽。
随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展,EDA(ElectronicDesignAutomatic)技术的应用引起电子产品及系统开发的革命性变革。
VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。
在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
作为一种工业标准硬件描述语言。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(ToptoDown)和基于库(LibraryBased)的设计的特点。
因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
用VHDL语言进行数字逻辑电路和数字系统的设计,是电子电路设计方法上的一次革命性变革。
与传统设计方法相比,VHDL描述电路行为的算法有很多优点:
(1)设计层次较高、用于较复杂的计算时,能尽早发现存在的问题,缩短设计周期;
(2)独立实现,修改方便,系统硬件描述能力强;
(3)可读性好,有利于交流,适合于文档保存;
(4)VHDL语言标准、规范、移植性强;
(5)VHDL类型众多而且支持用户自定义类型,支持自顶而下的设计方法和多种电路的设计。
第1章方案论证
1.1方案一
我们用VHDL语言设计了一个十六路彩灯控制器,六种花型循环变化,有清零开关,并且可以选择快慢两种节拍。
工作原理:
整个系统共有三个输入信号CP,S和K,十六路输出信号。
时钟信号CP由外部输入到节拍发生器,节拍选择信号S先输入到控制器.再由控制器输出选择控制信号Y到节拍发生器,随时控制快慢节拍的转换。
节拍发生器产生的节拍信号分别输出到控制器、编码电路和驱动电路。
编码电路输出反馈信号给控制器,控制器输出信号控制编码电路的各个子模块交替工作,产生六种花型,再由驱动电路将信号输出到彩灯。
K为清零信号,由外部输^到控制器.K0时,系统回到等待状态,彩灯全灭;KI时.系统工作。
我们采取自顶向下的设计方法,将电路分为控制器和受控制器,各部分电路的作用如下:
1.受控电路包括节拍发生器驱动电路和编码电路。
节拍发生器:
提供快、慢两种节拍。
驱动电路:
提供彩灯工作所需的电压及电流,隔离负载对编码电路的影响。
编码电路:
根据花型要求按节拍输出十六位状态编码信号.以控制彩灯接规律亮灭。
2.控制器:
为节拍发生器和编码电路提供控制信号,同步整个系统的工作控制器通过控制编码电路中各个模块的交替工作来实现各个花型的转换。
1.2方案二
同样我们用VHDL语言设计了一个十六路彩灯控制器,六种花型循环变化,有清零开关,并且可以选择快慢两种节拍。
本控制电路采用VHDL语言设计。
运用自顶而下的设计思想,按功能逐层分割实现层次化设计。
根据多路彩灯控制器的设计原理,将整个控制器分为两个部分,分别为时序控制模块和显示控制模块。
时序控制模块实现的功能是产生1\4和1\8的时钟信号。
显示控制模块中实现的六种花型分别为:
"00010001"
"0"
"00110011"
"0"
"1"
"0"
整个电路仅有时序控制和显示控制两个模块。
1.3最佳方案选择
方案一总体由受控电路和控制器组成,而受控电路又包括节拍发生器,驱动电路和编码电路。
它将花型控制与节拍控制两种功能融合在一起,是考虑到只要计数器就可以实现其全部功能,且原理相对简单。
如此设计,其优点在于:
设计思想比较简单,元件种类使用少,充分利用了各种元件,且因熟悉,比较易于组装电路;缺点则是:
中间单元电路连线过多,容易出错,且可能出现线与关系;分析电路时不易弄清楚,不易于电路的修改。
方案二由时序控制电路和显示控制电路组成,电路组成较方案一简单。
且检查电路时易于分析修改,虽然原理相对复杂,但单元电路模块少,而且方案二程序编写简单易懂,并能够灵活地添加或删减程序实现多种花型的变化,有很大的灵活性。
因此,我们选择了方案二进行进一步的设计。
第2章模块设计及其功能
本次设计分为两个子模块,即十六路彩灯时序控制模块和十六路彩灯显示控制模块。
2.1模块功能描述
时序控制模块的功能是产生输入脉冲的1\4分频脉冲信号和1\8分频脉冲信号,以此控制十六路彩灯的快慢节奏变化。
显示控制模块的功能是使电路产生六种花型并且循环显示,以此实现本次课程设计要求实现的多路彩灯控制器的花型循环显示功能。
模块的设计使得程序得以实现,对于程序的理解和对模块的设计紧密的联系起来利用EDA技术方便快捷的实现了设计。
用VHDL进行设计,首先应该理解,VHDL语言是一种全方位硬件描述语言,包括系统行为级,寄存器传输级和逻辑门级多个设计层次。
应充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,层次概念对于设计复杂的数字系统是非常有用的,它使得我们可以从简单的单元入手,逐渐构成庞大而复杂的系统。
2.2时序控制模块
时序控制模块是本程序的时钟信号选择模块,它的功能是产生输入脉冲的1\4分频脉冲信号和1\8分频脉冲信号,以此控制十六路彩灯的快慢节奏变化。
时序控制模块在本电路中起着至关重要的作用,它以彩灯闪动快慢节奏的变化实现了多路彩灯绚丽多彩的花型节奏变化。
时序控制电路是整个电路中一个分模块,它的设计对十六路彩灯控制器设计的顺利完成起着决定性的作用。
以下是时序控制电路编译与仿真:
1.时序控制模块VHDL文本输入截图:
有以下程序:
IFCHOSE_KEY='1'THEN
IFTEMP="011"THEN
TEMP:
="000";
CLLK<=NOTCLLK;
ELSE
TEMP:
=TEMP+'1';
ENDIF;
ELSE
IFTEMP="111"THEN
TEMP:
="000";
CLLK<=NOTCLLK;
ELSE
TEMP:
=TEMP+'1';
本段程序的作用是:
当CHOSE_KEY=’1’时产生基准时钟频率的1\4的时钟信号,否则产生基准时钟频率的1\8的时钟信号。
本段简短的程序很轻松地实现了时钟频率的选择与变换,要想改变彩灯节奏的快慢,只需利用CHOSE_KEY选择开关置1或置0即可轻松实现基准时钟频率的1\4的时钟信号和基准时钟频率的1\8的时钟信号的转换,简单并且容易修改,为十六路彩灯控制器的设计提供了更大的灵活性。
2.时序控制模块波形仿真截图:
2.3显示控制模块
显示控制模块是整个电路的显示控制模块。
它的主要功能是使电路产生六种花型并且循环显示,以此实现本次课程设计要求实现的多路彩灯控制器的花型循环显示功能。
显示控制模块应用VHDL语言设计了本次十六路彩灯的六种循环花型,显示控制电路是整个电路中另外一个分模块,它的出色设计直接决定着十六路彩灯控制器花型循环的花样和质量。
以下是显示控制电路编译与仿真:
1.时序控制模块VHDL文本输入截图:
有部分程序如下:
PROCESS(CLR,CLK)IS
CONSTANTF1:
STD_LOGIC_VECTOR(15DOWNTO0):
="00010001";
CONSTANTF2:
STD_LOGIC_VECTOR(15DOWNTO0):
="0";
CONSTANTF3:
STD_LOGIC_VECTOR(15DOWNTO0):
="00110011";
CONSTANTF4:
STD_LOGIC_VECTOR(15DOWNTO0):
="0";
CONSTANTF5:
STD_LOGIC_VECTOR(15DOWNTO0):
="1";
CONSTANTF6:
STD_LOGIC_VECTOR(15DOWNTO0):
="0";
本段程序的作用是定义六种花型,此六种花型可根据个人的喜好灵活进行调节和改变,这在很大程度上增加了程序本身的实用性,又由于是软件程序设计,下载到硬件上后LED灯的排列和摆设更不受程序的影响,可随意插放。
以下程序:
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<=S3;
WHENS3=>
FLOWER<=F3;
CURRENT_STATE<=S4;
WHENS4=>
FLOWER<=F4;
CURRENT_STATE<=S5;
WHENS5=>
FLOWER<=F5;
CURRENT_STATE<=S6;
WHENS6=>
FLOWER<=F6;
CURRENT_STATE<=S1;
其作用是:
如果CLR='1',则模块正常进行工作,并且以下六种花型"00010001""0""00110011""0""1""0"实现顺序循环显示。
如果想改变六种花型的循环顺序,只需修改部分状态即可,本程序有很大的灵活性。
2.时序控制模块波形仿真截图:
第3章 十六路彩灯控制系统的实现
3.1整体功能描述
1,在时序控制电路SXKZ的设计中,利用计数器计数达到分频值时,对计数器进行清零,同时将输出信号反向,这就非常简洁地实现了对输入基准信号的分频,并且分频信号的占空比为0.5。
2,在显示控制电路XSKZ的设计中,利用状态机非常简洁地实现了六种花型的循环变换,同时利用六个十六位常数的设计,可非常方便地设置和修改六种花型。
3,对于顶层程序的设计,若为模块较多的系统,最好使用文本的程序设计方式。
但因本系统模块较少,既可使用文本的程序设计方式,也可以使用原理图的设计方式。
彩灯显示控制电路是整个设计的核心,彩灯显示控制模块能进行彩灯的图案控制,它负责整个设计的输出效果即各种彩灯图案的样式变化。
在电路中以1代表灯亮,以0代表灯灭,由0,1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样功能显示。
该程序充分地说明了用VHDL设计电路的简单易修改,即可通过适当地改变程序中输出变量来改变彩灯的花型。
时序控制模块对灯闪的速度控制有两种速度:
一是1\4分频时钟脉冲,二是1\8分频时钟脉冲。
并且还可以通过改变CLKIN的时钟输入信号来产生更多的频率。
最后,当各个模块均完成上述操作之后,即可利用MAXPLUS2的原理图输入,调用各个元器件(底层文件),以原理图的形式形成最后的十六路彩灯显示系统(顶层文件),并且进行仿真。
仿真通过,即可下载到指定的CPLD芯片里面,并进行实际连线,进行最后的硬件测试。
当然,可以将各个模块所生成的元件符号存放在元件库中,用以被其它人或其它的设计所重复调用,以简化后面的设计。
3.2设计原理
用VHDL进行设计,首先应该了解,VHDL语言一种全方位硬件描述语言,包括系统行为级,寄存传输级和逻辑门级多个设计层次。
应充分利用VHDL“自顶向下”的设计优点以及层次化的设计概层次概念对于设计复杂的数字系统是非常有用它使得人们可以从简单的单元入手,逐渐构成庞大而复杂的系统。
根据系统设计要求可知,整个系统共有三个输入信号:
控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有十六个输出信号LED[15..0],分别用于控制十六路彩灯。
据此,我们可以将整个彩灯控制电路CDKZQ分为两大部分:
时序控制电路SXKZ和显示控制电路XSKZ。
系统的工作原理如下:
时序控制电路SXKZ根据输入信号CHOSE_KEY,CLR,CLK_IN产生的符合一定要求的、供显示控制电路XSKZ使用的控制时钟信号,而显示控制电路XSKZ则根据时序控制电路SXKZ输入的控制时钟信号,输出六种花型循环变化的、控制十六路彩灯工作的控制信号,这些控制信号加上驱动电路一起控制彩灯工作。
首先应进行系统模块的划分,规定每一模块的功能以及各个模块之间的接口。
最终设计方案由一个十六路彩灯花样循环显示控制器和一个时序控制分模块组成。
时序控制模块根据输入信号不同频率的选择不同的时钟信号输送到彩灯循环显示控制器,从而达到控制彩灯闪烁速度的快慢,整个十六路彩灯控制系统设计的模块图如图所示。
总体程序如下:
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:
STD_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);
3.3程序编译与仿真
VHDL程序输入截图:
对于顶层程序的设计,若为模块较多的系统,最好使用文本的程序设计方式。
但因本系统模块较少,既可使用文本的程序设计方式,也可以使用原理图的设计方式。
以上为文本程序设计的截图。
本段程序的作用是将时序控制电路模块和显示控制电路模块结合起来,实现十六路彩灯控制器的设计,又由于本次程序设计的分模块较少,因此,我们采用了文本设计和原理图设计两种方式。
程序波形仿真截图:
各模块VHDL程序经过编译优化后,选择合适的目标芯片进行综合、管脚配置。
本电路选用可编程逻辑芯片EPM7064LI84-15由MAX+PlusII进行仿真,从仿真波形可以看出,此程序可以实现六种不同花样彩灯的相互变换,每种花样彩灯可以循环变化。
但是如果系统的固有频率很大,彩灯的闪烁