32位爱心彩色流水灯.docx
《32位爱心彩色流水灯.docx》由会员分享,可在线阅读,更多相关《32位爱心彩色流水灯.docx(27页珍藏版)》请在冰豆网上搜索。
32位爱心彩色流水灯
湄洲湾职业技术学院
32位爱心彩色流水灯
系别:
自动化工程系
年级:
10级专业:
电气自动化技术
姓名:
小苏学号:
1001020227
导师姓名:
赵立琼职称:
讲师
2013年5月27日
目录
1.前言-1-
2.系统设计技术参数要求-2-
2.1设计要求-2-
3.系统设计-2-
3.1系统设计总框图-2-
3.2各模块原理说明-3-
3.3系统总原理图说明-3-
3.4系统印刷电路板的制作图-4-
3.5系统的操作说明-4-
3.6系统操作注意事项-5-
系统设计参考文献-6-
致谢词-7-
附录-8-
附录1.电路总原理图-8-
附录2.电路元件清单-9-
附录3.程序-9-
1.前言
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
城市夜景中,变幻多姿的霓虹灯历来是一道亮丽的风景。
利用单片机的自动控制功能,设计出相应不同的电路,可以实现彩灯不同模式的流水效果。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
本次毕业设计根据设计要求,基本达到预期的目的,本设计利用AT80C52单片机的自动控制功能,并结合其它电子元器件以及软件实现的爱心彩色花样流水灯,实现不同种类的闪烁循环。
该设计具有实际意义,可以在建筑家居、广告业、媒体宣传、装饰业等领域得到广泛应用。
2.系统设计技术参数要求
2.1设计要求
(1)本设计以AT89C52单片机为核心,采用常用电子器件设计。
单片机负责接收按键的输入,根据按键输入实现4种彩色LED灯的各种各样闪烁模式切换显示,并实现闪烁循环的停止和复位控制。
(2)共有两个按键,按键一控制流水灯电源开关;按键二控制流水灯复位;,实现流水灯切换各种闪烁模式。
(3)电路供电电源为5V。
3.系统设计
3.1系统设计总体框图
电路总框图
3.2各模块原理说明
1.电源模块:
给电路提供一个5V的电源。
2.按键模块:
按键一控制流水灯开关;按键二控制流水灯复位。
3.晶振模块:
用于产生单片机工作时所需要的时钟信号,在芯片的外部通过18脚和19脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。
电路的c1、c2取30pf,晶体振荡器的取值是12MHZ,晶体振荡器的频率越高,震荡频率就越高速度越快。
4.LED闪烁模块:
LED显示电路是由32个LED发光二极管组成,连接方式为4个排阻以共阳极来连接32盏灯,LED接到单片机的P0、P2口,若为低电平,可使LED亮起。
发光二极管的亮、灭由内部程序和按键控制。
5.AT89C52芯片:
AT89C52是整个循环系统的核心部件,其中内部由CPU来运行、控制。
有四个并行I\O口,分别是P0、P1、P2和P3,POM用来存放程序,通过RAM来存放中间结果,此外还有定时器\计数器,串行I/O口,中断系统以及一个内部的时钟电路。
P1接口(P1.0~P1.7):
8位准双向I/O接口,1~8脚。
准双向接口是指该接口内部有上拉电阻,能驱动4个LSTTL(低功耗肖脱晶体管逻辑电路)负载P1接口一般作通用I/O接口线使用。
P2接口(P2.0~P2.7):
8位准双向I/O接口,占21~28脚。
能驱动个LSTTL负载如果系统接有外存储器时,该口作高8位地址使用。
P3接口(P3.0~P3.7);8位准双向I/O接口,占10~17脚。
能驱使动4个LSTTL负载。
P3接口同时也是多功能接口,除可作通I/O接口线使用外,其每一引脚还有第二功能。
3.3系统总原理图说明
系统总工作原理:
本设计是一个有多种闪烁模式的爱心彩色流水灯,有各种各样不同的闪烁模式,以及复位功能。
闪烁模式都是由单片机内部的程序控制,将32个发光二极管分别接在P0和P2,通过程序控制这两个端口的电平高低,将32个发光二极管的正极接电源,负极接P0和P2口,即当P0和P2口的相应端口为高电平时,发光二极管的两端都为高电平,此时发光二极管不亮,当发光二极管的相应端口为低电平时则被点亮。
再通过程序循环让各个端口以不同的方式点亮来达到流水的效果。
按键一控制流水灯开关;按键二控制流水灯复位。
3.4系统印刷电路板的制作图
3.5系统的操作说明
1.接好电路中的电源供电线、驱动电路开关与负载供电线。
2.检查好电路板中没有短路现象、电源供电线、驱动电路开关与负载供电线、负载供电线都接好后通电实验使用。
3.电路安装好后,通电即可正常使用。
3.6系统操作注意事项
1.通电使用前先对照电路板与电路图是否有错焊、漏焊、短路、开路、元器件相碰等现象,有要处理好后再使用。
2.通电使用前先检查好电路板是否与电源供电线、驱动电路开关与负载供电线、负载供电线之间相互接反,不得在接错的情况下通电,要处理好后再使用。
3.通电使用时人体不得与电路板线路任何一个部位相碰,防止触电,注意安全。
4.应把电极片与电路板隔离,避免电极片与电路板上元器件相碰触发生短路现象。
5.通电时应把电路板放在绝缘物体上,避开其他导电物体避免发生短路现象。
6.使用时闻到烧焦味、发现元器件或集成块冒烟烧毁应立即断开电源,待电路板查明原因处理好后才可以继续通电使用。
7.调试电路时应小心操作,避免万用表笔或其它导电工具造成人为短路。
8.更换电路板元件、焊接时应断开电源后再操作避免造成元器件击穿或电路短路现象。
系统设计参考文献
[1]张靖武,周灵彬.单片机系统的Proteus设计与仿真[M].北京:
电子工业出版社,2007.
[2]王为青,程国钢.单片机KeilCX51应用开发技术[M].北京:
人民邮电出版社,2007.
[3]陈光东.单片机微型计算机原理与接口技术[M].武汉:
华中理工大学出版社,1998.
[4]何立明.单片机应用系统设计[M].北京:
北京航空航天大学出版社,1990.
[5]张毅刚.MCS-51单片机应用设计[M].哈尔宾:
哈尔宾工业大学出版社,1997.
[6]宋继玉.可编程序控制器原理及应用系统设计技术[M].北京:
冶金工业出版社,1999.
[7]柴敬镛,王照清编著.维修电工[M].北京:
中国劳动保障出版社,2003.
[8]韩全立,赵德申编著.微机控制技术[M].北京:
机械工业出版社,2002.
[9]潘立民,王燕芳.微型计算机控制技术[M].北京:
人民邮电出版社,1990.
[10]邵敏权,刘刚.单片机原理实验及应用[M].长春:
吉林科学技术出版社,1995.
[11]陈汝全.实用微机与单片机控制技术[M].北京:
电子科技大学出版社,1995.
致谢词
三年时间,不知不觉中就要过去了。
在此,我衷心感谢这三年来辛勤培育我的老师。
在以后的工作岗位上,我会不断努力,用自己的辛勤工作和不懈奋斗来回报学院和老师们!
感谢我的毕业设计指导老师——赵立琼老师的谆谆教诲,这一段日子以来的教导,您的不辞辛苦、悉心教诲。
没有你的指导,就没我所得到的结果,我在此表示深深的感谢!
感谢所有教过我的老师们,你们课堂上的指导和课外的交流,让我学习到很多知识和做人的道理。
你们的言传身教、你们的精彩授课、你们的严厉换了我们今后的成功。
你们就像那花园里的园丁,不辞辛苦、任劳任怨的培养我们,教导我们,为我们今后的人生点亮一盏灯,指明一条路。
衷心的感谢各位老师,你们就像我的父母亲,亲人一样。
谢谢!
感谢所有的同学,时间是飞快的,转眼间三年就这样过去了,但我们的友谊是一辈子的,脑海中还回映这课前前后的一幕幕,还有在篮球场场上欢声笑语,那份纯真的感情,深厚的友谊。
希望每个同学都能事业有成、前途似锦!
感谢所有的舍友,谢谢你们的鼓励和支持,没有你们,我不会过的那么好,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。
三年了,大学报名的第一天的情景还深印脑海,仿佛就在昨天,时间就这么快流逝了。
不过我很高兴能和你们成为舍友,我们的友谊会天长地久,很荣幸作为你们的舍长。
感谢学校、感谢系部为我们提供环境优雅、气氛和谐的学习场所和锻炼的舞台,还记得学生干部的那段生涯,这也是我一辈子的财富。
因为他见证了我的成长,也使我成长,我学到了很多,不管是做人做事还是交际,都让我往前大步的跨越。
学校、系部课余丰富多彩的活动,也让我充实了自己,锻炼了自己。
感谢学校、感谢系部。
感谢所有人和事,是你们,让我成长。
在设计即将完成之际,我的心情无法平静,从开始进入课题到设计的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
最后,最应该感谢的是我的父母,感谢他们对我无私的爱、对我的培养,使我衣食无忧度过这美好快乐的大学生活。
感谢含辛茹苦培养我长大的父母,谢谢你们!
附录
附录1.电路总原理图
附录2.电路元件清单
序号
元件名称
阻值
数量
位号
1
按钮
1
S
2
瓷片电容
30pf
2
C1、C2
3
电解电容
10uf
1
C3
4
石英晶体振荡器
12MHZ
1
Y1
5
电源
1
D33
6
发光二极管
16
D1、D2、D3、D4、D5、D6、D7、D8、D9、D10、D11、D12、D13、D14、D15、D16、D17、D18、D19、D20、D21、D22、D23、D24、D25
D26、D27、D28、D29、D30、D31、D32、
7
芯片
Stc89C52
1
U1
8
六脚开关
1
ZSKG
9
排阻
SIP9
4
J11、J12、J13、J14
10
电阻
10K
2
R1、R2
附录3.程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharcodeshu[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
ucharcodezhu[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
ucharcodezhu1[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xff};
chartemp,a,b,q,w;
voidys(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()
{
b=100;
while
(1)
{
for(a=8;a>=0;a--)
{
P0=shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=shu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=~zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=~zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=~zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=~zhu[a];
ys(b);
}
for(q=5;q>0;q--)
{
P0=0x55;
P1=0x55;
P2=0x55;
P3=0x55;
ys(500);
P0=~P0;
P1=~P1;
P2=~P2;
P3=~P3;
ys(500);
}
for(a=0;a<=7;a++)
{
P1=zhu[a];
P3=zhu[a];
P2=zhu[a];
P0=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=~zhu[a];
P3=~zhu[a];
P2=~zhu[a];
P0=~zhu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=zhu[a];
P2=zhu[a];
P3=zhu[a];
P1=zhu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=~zhu[a];
P2=~zhu[a];
P3=~zhu[a];
P1=~zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=P3=zhu[a];
P0=P2=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=P3=~zhu[a];
P2=P0=~zhu[a];
ys(b);
}
for(w=5;w>0;w--)
{
P0=0xf0;
P1=0xf0;
P2=0xf0;
P3=0xf0;
ys(500);
P0=~P0;
P1=~P1;
P2=~P2;
P3=~P3;
ys(500);
}
for(a=8;a>=0;a--)
{
P0=~shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=~shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=~shu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=~shu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=~zhu[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=~zhu[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P2=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P0=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P1=~zhu1[a];
ys(b);
}
for(a=8;a>=0;a--)
{
P3=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P3=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P1=zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P0=~zhu1[a];
ys(b);
}
for(a=0;a<=7;a++)
{
P2