三种图案霓虹灯控制器课程设计说明.docx
《三种图案霓虹灯控制器课程设计说明.docx》由会员分享,可在线阅读,更多相关《三种图案霓虹灯控制器课程设计说明.docx(21页珍藏版)》请在冰豆网上搜索。
三种图案霓虹灯控制器课程设计说明
三种图案霓虹灯控制器课程设计说明
学号:
0121111360727
课程设计
题目
三种图案霓虹灯控制器
学院
自动化
专业
自动化
班级
1104
姓名
傅晓通
指导教师
林伟杨莉
2013
年
7
月
5
日
课程设计任务书
学生姓名:
傅晓通专业班级:
1104
指导教师:
林伟杨莉工作单位:
自动化1104
题目:
三种图案霓虹灯控制器设计
初始条件:
1.运用所学的模拟电路和数字电路等知识;
2.用到的元件:
实验板、电源、连接导线、74系列芯片、555芯片等。
要求完成的主要任务:
1.现有4只彩灯,红-绿-蓝-黄,试设计控制器,要求彩灯能实现如下追逐图案,彩灯控制器的三种图案及其状态转换如下所示:
2.摇摆状态0101←→1010,重复6次。
3.暗点循环0111→1011→1101→1110→0111→这样重复循环3次。
4.逐个点亮,逐个熄灭,0000→1000→1100→1110→1111→0111→0011→0001→0000→这样重复循环2次。
5.霓虹灯控制工作状态按照上述2至4步自动重复循环。
时间间隔为1秒。
6.严格按照课程设计说明书要求撰写课程设计说明书。
时间安排:
第1天下达课程设计任务书,根据任务书查找资料;
第2~4天进行方案论证,软件模拟仿真并确定设计方案;
第5天提交电路图,经审查后领取元器件;
第6~8天组装电路并调试,检查错误并提出问题;
第9~11天结果分析整理,撰写课程设计报告,验收调试结果;
第12~14天补充完成课程设计报告和答辩。
指导教师签名:
2011年6月26日
系主任(或责任教师)签名:
2011年6月26日
引言……………………………………………………1
1.设计意义及要求…………………………………2
1.1设计意义……………………………………………………………………………………2
1.2设计要求…………………….…………………………………………………………..…2
2.方案设计……………………………………………3
2.1系统方案……………………………………………………………………………………3
2.11方案思路………………………………………………………………………….…..3
2.2具体方案…………………………………………………………………………………..4
2.21个人方案:
单片机编码法和移位法…………………………………………………4
2.22小组方案:
门电路法…………………………………………………………………5
2.3方案比较…………………………………………………………………………………….9
3.部分电路及程序设计………………………………9
3.1部分电路说明…………………………………………………………………………………..9
3.2部分程序设计………………………………………………………………………………10
3.2.1摇摆图案单元…………………………………………………………………….10
3.2.2暗点循环单元…………………………………………………………………….11
3.2.3逐个点亮逐个熄灭单元……………………………………………………………11
3.2.4时间间隔单元………………………………………………………………………12
4.调试与检测…………………………………………13
5.仿真操作步骤及使用说明…………………………14
结束语……………………………………………………15
参考文献…………………………………………………16
附录………………………………………………………17
本科生课程设计成绩评定表……………………………20
引言
电工电子课程设计是一项极为锻炼学生动手能力和课本知识迁移能力的学生自主设计实践活动。
课程设计为学生提供了设计命题,让学生以学过的知识为基础进行设计和仿真、答辩,最后形成设计成果。
在本次课程设计中,学生通过自由分组的方式,组成一个设计小组,并从提供的设计题目中选择其中之一或者发挥自己的创造力,自行拟定设计课题,个人思考设计,完成一套个人设计方案,并通过Protues完成仿真、调试,同时小组成员互相互学习,相互讨论,集思广益,形成并优化出一套小组方案,并通过Protues完成仿真,最后进行答辩、验收,形成最终的设计成果,意在过程中激发学生的设计创想,学会迁移课本知识,培养细致耐心谨慎的品质,学会团队合作与优化方案,巩固知识与能力,同时在创新和动手能力上力求达到一个新的高度。
1.设计意义及要求
1.1设计意义
本次设计旨在帮助学生进一步巩固书本所学的模拟电路和数字电路知识,促使其学会分析设计命题,自主思考,独立设计个人方案,并交流合作形成小组方案,以达到强化知识,训练思维,激发创造力,提高实践动手能力的目的。
三种图案霓虹灯控制器属于基础的一种自动控制电路组合,成型后将形成以三种图案循环变换的闪烁图案,可以广泛用于各种舞会装饰、商店装修以及活动现场装扮等场合,用途广泛,设计难度适中,具有较强的操作性。
1.2设计要求
1)用4只红-绿-蓝-黄的彩灯设计控制器,要求彩灯能实现如下追逐图案,彩灯控制器的三种图案及其状态转换如下所示:
1)摇摆状态0101←→1010,重复6次;
2)暗点循环0111→1011→1101→1110→0111→这样重复循环3次;
3)逐个点亮,逐个熄灭,0000→1000→1100→1110→1111→0111→0011→0001→0000→这样重复循环2次;
4)霓虹灯控制工作状态按照上述2至4步自动重复循环。
时间间隔为1秒。
2)自主设计,并进行方案论证和软件模拟仿真,并讨论形成小组方案;
3)提交电路图,经审查后领取元器件;
4)组装电路并调试,检查错误并提出问题;
5)进行结果分析和整理,严格按照课程设计说明书要求撰写课程设计报告,验收调试结果;
6)补充完成课程设计报告和答辩。
2.方案设计
2.1系统方案
2.11方案思路
系统框图如图2-11所示,本设计以控制电路为核心,以四个颜色分为红、黄、蓝、绿的LED灯作为工作部分,预期当输出为低电平0时使LED灯处于熄灭状态,当输出为高电平1时使LED灯为点亮状态,通过设置控制部分的电路,采取如单片机或者门电路、集成芯片等器件组成控制三种亮暗图案循环变换的控制电路,其控制方式以输出1010、0101或0001等电平组合的形式来实现。
设计的关键在于控制部分,具体电路由具体方案的选择决定,采用单片机控制则控制部分主要为单片机及其最小电路,若选用数电门电路,则控制部分主要有74系列集成芯片和555定时器芯片构成,其控制核心都在于构建控制电路,使得连接四个LED工作灯的输出端能够持续循环地按照要求输出0、1的高低电平,以实现设计要求中的三种图案显示。
考虑到个人方案设计中器件限制较少,加之为了简化电路,因此个人方案选用单片机控制电路来实现设计要求,采用51系列单片机及其最小应用系统组成其核心控制部分;而对于小组方案,则采用74LS90,74LS193,74LS154,74LS08,74L139集成芯片和逻辑门共同组成电路的控制部分。
2.2具体方案
2.21个人方案:
单片机编码法和移位法
1.原理说明:
分析设计命题中的三个要求:
1)摇摆状态0101←→1010,重复6次;
2)暗点循环0111→1011→1101→1110→0111→这样重复循环3次;
3)逐个点亮,逐个熄灭,0000→0001→0011→0111→1111→1110→1100→1000→0000这样重复循环2次;
4)霓虹灯控制工作状态按照上述2至4步自动重复循环。
时间间隔为1秒。
本设计中选用的微处理芯片是STC89C52它是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
51单片机P0口内部没有上拉电阻,为高阻态,所以不能正常地输出高/低电平,因此该组I/O口在使用时务必要外加上拉电阻。
从0和1表示的LED亮暗状态中我们可以发现第一个图案摇摆状态可以看作是0101和1010的重复转换,鉴于单片机P0口地址为8位,所以看做是00000101和00001010的转换,每次转换一次,整个状态重复六次;对于第二个状态,则看作是00000111,00001011,000001101,00001110的循环转换,每次装换一次,整个状态重复三次;第三个状态则看作00001111的循环左移,每次移动一位,整个状态重复两次。
对于各个图案的循环我们通过for(;;)循环控制,对于整个大循环则通过while
(1)循环实现。
针对每一步的延迟1秒,以及灯变化的人眼分辨时间则通过执行一个timems(int)来实现,编程过程中我们通过调试timems(int)部分的程序,以达到人眼能清楚分辨LED灯的明暗变化和各个图案转换之间的1秒间隔的要求。
编程后经检查无误,编译生成一个hex文件,导入到protues里的单片机进行仿真检验。
2.单片机设计电路原理图
图1单片机设计电路图
2.22小组方案:
门电路法
1.门电路法原理说明:
对于设计要求的图案,摇摆图案(0101←→1010)采用具有数据选择功能的74LS151芯片和双时钟4位二进制同步可逆计数器74LS193来实现;对于第二种暗点循环图案(0111→1011→1101→1110→0111),采用二进制译码器74LS139和双时钟4位二进制同步可逆计数器74LS193来实现;而对于第三种逐个点亮和逐个熄灭的图案(0000→1000→1100→1110→1111→0111→0011→0001→0000)则采用具有移位寄存功能的74LS199芯片来实现;对于循环次数的要求则是通过74LS193和74LS194芯片实现;而图案转换间的1秒间隔则采用555定时器构成的单稳态触发器来实现;整个系统使用的时钟脉冲则通过555定时器构成的多谐振荡器来实现。
2.门电路法电路原理图:
图2门电路法电路原理图
3.部分芯片原理图
74LS151为互补输出的8选1数据选择器,引脚排列如图所示:
图374LS151引脚图
选择控制端(地址端)为C~A,按二进制译码,从8个输入数据D0~D7中,选择一个需要的数据送到输出端Y,G为使能端,低电平有效。
(1)使能端G=1时,不论C~A状态如何,均无输出(Y=0,W=1),多路开关被禁止。
838电子
(2)使能端G=0时,多路开关正常工作,根据地址码C、B、A的状态选择D0~D7中某一个通道的数据输送到输出端Y。
如:
CBA=000,则选择D0数据到输出端,即Y=D0。
新艺图库
如:
CBA=001,则选择D1数据到输出端,即Y=D1,其余类推。
74LS151功能表:
表174LS151功能表
4LS139为两个2线-4线译码器,共有54/74S139和54/74LS139两种线路结构型式,当选通端(G1)为低电平,可将地址端(A、B)的二进制编码在一个对应的输出端以低电平译出。
若将选通端(G1)作为数据输入端时,139还可作数据分配器。
74LS139的逻辑功能表如表2所示,引脚图如图8所示:
表274LS139逻辑功能表
图374LS139引脚图及逻辑图
74LS199的逻辑功能表如下表所示:
表374LS199逻辑功能表
2.3方案比较
经过仿真验证,个人与小组两种方案都能很好的实现三种霓虹灯图案的控制,各有各的优缺点,对于个人方案即单片机控制的移位法和编码法,器件线路简单,连接方便,只需搭建单片机最小电路,编写控制程序并导入即可实现,调试与改善电路都较为方便,方法也更为智能化,但是考虑到若将此设计应用于批量生产与应用,则单片机成本较为昂贵,而且颇有大材小用的味道;而对于小组的门电路法,采用74LS系列集成芯片、555定时器和一些逻辑门电路搭建,成本较低,有利于设计的批量生产和应用推广,但是由于芯片较多,线路较为复杂,所以存在着连接、检查、调试与改善电路时较为繁琐的缺点,同时占用空间也较大,导致成品内部结构较为复杂。
3.部分电路及程序设计
3.1部分电路说明
1)按键复位
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
电路图如图2.1
图2.1按键复位电路
2)振荡电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
其电路原理图如2.2所示。
图2.2晶体振荡电路
3.2部分程序设计
3.2.1摇摆图案单元
为了实现摇摆图案(0101←→1010),且重复循环六次,作如下编程:
for(i=6;i>0;i--)//摇摆状态6次循环
{
P0=0x05;//P0口低四位按0101显示
delay(1000);//延时1s
P0=0x0a;//1010
delay(1000);//延时1s
}
其中for循环用以实现六次重复,每次循环编码输出改变,从00000101经过一秒变为00001010,LED得到高电平发光,从而实现摇摆图案。
3.2.2暗点循环单元
为了实现暗点循环图案(0111→1011→1101→1110→0111),作如下编程:
for(i=3;i>0;i--)
{
P0=0x07;//0111
delay(1000);
P0=0x0b;//1011
delay(1000);
P0=0x0d;//1101
delay(1000);
P0=0x0e;//1110
delay(1000);
}
其中for循环是用于实现三次图案的循环,四个赋值语句P0=0x07,P0=0x0b,P0=0x0d,P0=0x0e,以及dalay语句以实现暗点循环图案,而delay()程序则是为了产生人眼分辨灯工作状态变换的时间间隔。
3.2.3逐个点亮逐个熄灭单元
为了实现逐个点亮和逐个熄灭图案(0000→1000→1100→1110→1111→0111→0011→0001→0000)做如下编程:
for(i=2;i>0;i--)
{
for(j=8;j>0;j--)
{
P0=a;//令P0各I/O口为00001111初始状态
delay(1000);
a=_crol_(a,1);//每次循环左移一位
}
}
}同理的,赋值语句P0=a和_a=_crol_(a,1)语句用以实现00000000→00000001→00000011→00000111→00001111→00011110→00111100→01111000→11110000的数码循环,及所需要的图案,for循环同样用于实现图案的两次重复,delay()用于时间间隔。
3.2.4时间间隔单元
为了实现图案转换间的1秒时间间隔以及LED灯工作状态变换
的人眼识别时间编写如下的timems程序:
voiddelay(uintz)//延迟z毫秒
{
uinti,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
通过设置空执行的循环语句,以单片机自身运行时间为基础,编程调试出所需要的时间间隔。
4.调试与检测
调试中故障及解决办法
遇到的问题:
(1)在运行时发现图案的变换与所设想的完全相反;
(2)LED灯一直不亮;
解决的办法:
(1)正确连接高低位,红灯对应P0.3接口,绿灯对应P0.0接口;
(2)使用P0口输出时要外加上拉电阻,否则输出都为高阻态;
5.仿真操作步骤及使用说明
打开对应的protues文件,查看是否将先前编辑好的hex文件导入单片机中,并检查元件之间的关联路径是否正确,线路之间有没有短路点。
检查无误后,点击启动按钮进行仿真,可以观察到三种霓虹灯图案的变换。
摇摆状态0101←→1010,重复6次后,进行暗点循环0111→1011→1101→1110→0111,重复循环3次后,进行逐个点点亮和熄灭,00000000→00000001→00000011→00000111→00001111→00011110→00111100→01111000→11110000,这样循环2次后,再进行摇摆状态,达成设计目标。
结束语
单片机作为我们的主要专业课之一,虽然在大二学年我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。
这次单片机课程设计我们历时两个星期,在我们班里算是倒数几组完成的吧,但经过这两个星期的实践和体验下来,我们又怎么会去在乎那个先后问题呢,因为对我来说学到的不仅是那些知识,更多的是团队和合作。
现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
作为一名自动化专业的大二学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
参考文献
[1]郭天祥.51单片机C语言教程.电子工业出版社,2008
[2]AtmelMicrocontrillerHandbook,2006
[3]伍时和.数字电子技术基础.清华大学出版社,2008
[4]谭浩强,C语言设计(第四版),清华大学出版社,2010
附录
个人方案——移位法源程序:
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
voiddelay(uintz)//延迟z毫秒
{
uinti,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
intmain()
{
uinti,j,a=0xf0;
while
(1)
{//主循环
for(i=6;i>0;i--)//摇摆状态6次循环
{
P0=0x05;//P0口低四位按0101显示
delay(1000);//延时1s
P0=0x0a;//1010
delay(1000);//延时1s
}
for(i=3;i>0;i--)
{
P0=0x07;//0111
delay(1000);
P0=0x0b;//1011
delay(1000);
P0=0x0d;//1101
delay(1000);
P0=0x0e;//1110
delay(1000);
}
for(i=2;i>0;i--)
{
for(j=8;j>0;j--)
{
P0=a;//令P0各I/O口为00001111初始状态
delay(1000);
a=_crol_(a,1);//每次循环左移一位
}
}
}
}
个人方案电路图:
小组方案电路图: