彩灯控制器Word文档下载推荐.docx
- 文档编号:22250368
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:209.34KB
彩灯控制器Word文档下载推荐.docx
《彩灯控制器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《彩灯控制器Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
本文详细介绍了多模式流水灯的设计过程、仿真、调试结果,并总结出了我们的心得体会。
彩灯是一串按一定规律连续闪烁发光二极管,彩灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
彩灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的彩灯也是很普遍的。
关键字:
EDA技术;
多模式彩灯;
可编程控制器
目录
1设计目的1
2设计题目描述和要求1
3设计原理1
3.1方案论证1
3.2模块设计2
3.2.1集成分频器2
3.2.28进制计数器模块2
3.2.3彩灯控制模块3
3.2.46选1选择器模块3
3.2.56进制计数器模块4
3.3系统结构4
4总结5
5致谢6
参考文献7
附录一8
附录二15
附录三16
1设计目的
学习EDA开发软件和QuartusⅡ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。
2设计题目描述和要求
(1)设计一个彩灯控制器,能使8个彩灯(LED管)能连续发出六种以上不同的显示形式;
(2)随着彩灯显示图案的变化,发出不同的音响声。
3设计原理
3.1方案论证
这次的彩灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。
其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个48进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个6选一的选择器来控制。
基于上述的介绍本次的彩灯控制采用的模式6来进行显示。
图3.1模式6结构图
3.2模块设计
3.2.1集成分频器模块
设计要求显示不同的彩灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。
模块说明:
Rst:
输入信号复位信号用来复位集成分频器的输出使输出为“0”,及没有音乐输出。
Clk:
输入信号模块的功能即为分频输入的频率信号。
Clk_4、clk_6、clk_8、clk_10、clk_12、clk_14:
输出信号即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出、1/12分频输出、1/14分频输出。
图3.2集成分频器
3.2.28进制计数器模块
8进制模块用来控制彩灯输出模块,即确定彩灯控制器的不同的输出。
输入信号复位信号用来复位8进制使其输出为“000000”。
输入信号用来给模块提供工作频率。
Count_out[5..0]:
输出信号即为8进制计数器的输出。
图3.38进制计数器
3.2.3彩灯控制模块
彩灯控制模块用来直接控制彩灯的输出,使彩灯表现出不同的花样。
输入信号使彩灯控制模块的输出为“00000000”,即让彩灯无输出。
Input[5..0]:
输入信号不同的输入使彩灯控制模块有不同的输出即彩灯显示出不同的花样。
Output[7..0]:
输出信号直接与彩灯相连来控制彩灯。
图3.4彩灯控制模块
3.2.46选1选择器模块
输入信号复位信号使选择器的输出为“0”。
In1、in2、in3、in4:
输入信号接分频器的输出。
Inp[1..0]:
输入信号接4进制计数器的输出用来控制选择器的选择不同的输入选择不同的输出。
Output:
输出信号直接接扬声器即输出的是不同的频率来控制扬声器播放音乐。
图3.56选1选择器
3.2.56进制计数器模块
6进制计数器作为选择器的输入来控制选择器选择不同的频率作为输出控制扬声器工作。
输入信号来为计数器提供工作频率。
输入信号复位信号使计数器的输出为“00”。
图3.66进制计数器
3.3系统结构
整个系统就是各个分模块组成来实现最后的彩灯控制功能,系统又两个时钟来控制一个是控制8进制计数器即控制彩灯控制模块来实现彩灯的不同输出,另一个时钟为分频器的输入来进行分频处理,最后用来控制扬声器发出不同的音乐,具体分频处理的时钟的频率比实现彩灯控制的时钟频率要高。
图3.7系统功能模块
4.总结
这次的EDA课程设计有两周的时间,在这两周的时间里我们充分合理的安排了自己的时间来使本次的课程设计能够顺利的完成,当然我们在本次的设计中并不是一帆风顺的,我们遇到了一些的问题,例如我们开始时用的文本的方式用一个总的程序来完成,可以在设计的过程中我们发现程序编到后面变量越到很容易搞混淆同时各个进程间的联系也越来越模糊以至于后面我们自己都不知道程序的整体框图是什么,导致后面不能够继续下去,后面我们再一次对我们这次的设计题目进行了分析和整理,最后我和我的同伴决定采用分模块的方式来完成本次的课题设计,当然最重要的是分析各个模块间的关系。
最后我们采用上面分析的结构框图。
最后我们的设计很成功,仿真和硬件测试都是正确的,实现了我们的设计要求和目的。
在这次设计中我们收获了很多,首先最直接的收获就是我们巩固了这门课程所学过的知识,把它运用到了实践当中,并且学到了很多在书本撒和那个所没有学到的知识,通过查阅相关资料进一步加深了对EDA的了。
总的来说,通过这次课程设计不仅锻炼了我们的动手和动脑能力,也使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,要把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。
在我们的共同努力和指导老师的指引下我们圆满的完成了彩灯控制器的设计,实现了设计目的。
5.致谢
在本文的撰写过程中,老师作为我们的指导老师,他们治学严谨,学识渊博,视野广阔,为我营造了一种良好的学术氛围。
置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了明确的学术目标,领会了基本的思考方式,掌握了通用的研究方法,而且还明白了许多待人接物与为人处世的道理。
其严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力,与无微不至、感人至深的人文关怀,令人如沐春风,倍感温馨。
正是由于他们在百忙之中多次审阅全文,对细节进行修改,并为本文的撰写提供了许多中肯而且宝贵的意见,本文才得以成型。
在此特向老师致以衷心的谢意!
向他们无可挑剔的敬业精神、严谨认真的治学态度、深厚的专业修养和平易近人的待人方式表示深深的敬意!
参考文献
[1]赵伟军.Protel99se教程.北京:
人民邮电出版社,1996
[2]金西.VHDL与复杂数字系统设计.西安:
西安电子科技大学出版社,2003
[3]汉泽西.EDA技术及其应用.北京:
北京航空航天大学出版社,2004
[4]谭会生,张昌凡.EDA技术及应用(第二版).西安电子科技大学,2004
[5]潘松,黄继业.EDA技术使用教程.科学出版社,2001
附录一
源程序
----------------------------------------------分频器模块----------------------------------------
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYfenpinqiIS
PORT
(
clk,rst:
INstd_logic;
clk_4,clk_6,clk_8,clk_10,clk_12,clk_14:
OUTstd_logic
);
ENDfenpinqi;
ARCHITECTUREcdOFfenpinqiIS
begin
p1:
process(clk,rst)
variablea:
integerrange0to20;
begin
ifrst='
1'
then
clk_4<
='
0'
;
-----复位信号控制部分
else
ifclk'
eventandclk='
then
ifa>
=3then
a:
=0;
=a+1;
endif;
endprocessp1;
p2:
variableb:
clk_6<
ifb>
=5then
b:
=b+1;
endprocessp2;
p3:
variablec:
clk_8<
-----复位信号控制部分
ifc>
=7then
c:
=c+1;
endprocessp3;
p4:
variabled:
clk_10<
ifd>
=9then
d:
=d+1;
endprocessp4;
p5:
variablee:
clk_12<
ife>
=11then
e:
=e+1;
endprocessp5;
p6:
variablef:
clk_14<
iff>
=13then
f:
=f+1;
endprocessp6;
endcd;
----------------------------------------------6选1选择器---------------------------------------
ENTITYxzq6_1IS
(
rst:
instd_logic;
inp:
inintegerrange0to5;
in1,in2,in3,in4,in5,in6:
Instd_logic;
output:
ENDxzq6_1;
ARCHITECTUREaOFxzq6_1IS
BEGIN
PROCESS(rst,inp)
BEGIN
if(rst='
)thenoutput<
caseinpis
when0=>
output<
=in1;
when1=>
=in2;
when2=>
=in3;
when3=>
=in4;
when4=>
=in5;
when5=>
=in6;
whenothers=>
null;
endcase;
endif;
ENDPROCESS;
ENDa;
-------------------------------------------彩灯控制模块----------------------------------------
ENTITYcaidengIS
input:
ININTEGERRANGE0TO47;
output:
OUTstd_logic_vector(7downto0);
sm:
outstd_logic_vector(6downto0)
endcaideng;
ARCHITECTUREaOFcaidengIS
PROCESS(input)
thenoutput<
="
00000000"
sm<
0000000"
caseinputis
10000000"
0000110"
01000000"
00100000"
00010000"
00001000"
00000100"
when6=>
00000010"
when7=>
00000001"
when8=>
1011011"
when9=>
00110000"
when10=>
00111000"
when11=>
01111000"
when12=>
01111100"
when13=>
01111110"
when14=>
11111110"
when15=>
11111111"
when16=>
10000001"
1001111"
when17=>
11000001"
when18=>
11000011"
when19=>
11100011"
when20=>
11100111"
when21=>
11110111"
when22=>
when23=>
when24=>
1100110"
when25=>
when26=>
when27=>
when28=>
when29=>
when30=>
when31=>
when32=>
10101010"
1101101"
when33=>
01010101"
when34=>
when35=>
when36=>
when37=>
when38=>
when39=>
when40=>
11000000"
1111101"
when41=>
when42=>
00001100"
when43=>
00000011"
when44=>
when45=>
when46=>
when47=>
endprocess;
enda;
--------------------------------------------8进制计数器模块-----------------------------------
ENTITYcounter_48IS
count_out:
OUTintegerrange0to47);
endcounter_48;
ARCHITECTUREaOFcounter_48IS
PROCESS(rst,clk)
variabletemp:
integerrange0to48;
ifrst='
THEN
temp:
elseif(clk'
)then
temp:
=temp+1;
if(temp=48)then
count_out<
=temp;
endif;
endPROCESS;
enda;
-------------------------------------------6进制计数器模块----------------------------------
ENTITYcounter_6IS
OUTintegerrange0to5);
endcounter_6;
ARCHITECTUREaOFcounter_6IS
if(temp=6)then
附录二
编译
附录三
时序仿真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 彩灯 控制器