圆融杯小蛮腰作品_第1页
圆融杯小蛮腰作品_第2页
圆融杯小蛮腰作品_第3页
圆融杯小蛮腰作品_第4页
圆融杯小蛮腰作品_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、编号2016年第八届“圆融杯”电子设计竞赛 参 赛 作 品作 品 名 称: 璀璨广州塔 团队负责人 : 李磊 沈弢 聂航 指 导 老 师: 刘 磊 填 表 日 期: 2016年11月9日 目 录摘要I1 绪论11.1 设计目的11.2 功能、性能要求说明11.3 设计总体方案介绍及工作原理说明12 硬件系统的设计22.1 系统功能模块划分22.2 设计硬件系统各模块功能介绍2 2.2.1 最小系统模块2 2.2.2 电源模块3 2.2.3 下载电路3 2.2.4 显示电路42.3 设计电路原理图、实物图52.4 设计元件清单83 软件系统的设计93.1 软件系统程序流程框图93.2 软件系统程

2、序清单94 操作使用说明、测试过程、误差分析104.1 操作使用说明104.2 测试过程104.3 误差分析115 程序流程框图126 设计总结137 结论14参考文献15附录一:程序16附录二:原理图29附录三:PCB 图30摘要LED作为新型环保的绿色光源被大量运用于建筑景观照明中,广州塔便是利用了LED光源体积小、颜色多、低能耗、寿命长等特点,既不破坏建筑的外观美感,又能带给大家魔幻般的艺术效果,节省了投资,降低了运营成本,实现了预期的灯光效果。本设计是基于51系列的单片机进行的广州塔设计,可以显示16*16组合的256个蓝色的LED灯。关键词:LED光源;建筑照明;广州塔;单片机1 绪

3、论1.1设计目的 广州塔”一词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。由此,也掀起了广州塔的设计与学习热潮,在原有的基础上不断增加难度,增加变换花样,吸引电子爱好者对其研究、创新。事实上,“广州塔”已经渗透到以下几个方面:照明类LED光效户外景观照明展开的视觉装饰活动;信息传播类LED光效各种类型的大屏幕点缀着人们的生活;广州塔制作所需材料较常见,成本低廉、性价比高等优点具有较高的研究价值。1.2功能、性能要求说明由256蓝色LED灯组合成动态的显示:从上往下流雨滴、对称流水灯移动、 逐渐旋转上升等,还可以外接了MP3音乐控制模块。1.3设计总体方案介绍及工作原理说明选择单片机AT

4、89S52作为主控制器;选择256个蓝色LED作为显示模块,此模块可以逐渐旋转上升、对称流水灯移动、雨滴从上往下流等等不同灯光效果显示。2 硬件系统的设计2.1系统功能模块划分根据系统功能要求,可大致画出系统所需硬件结构框图如图(1)所示:AT89C52LED显示供电电源震荡电路 驱动模块复位电路.S8550PNP 图(1)结构框图主控模块采用AT89S52单片机芯片,在其内部写好程序,可通过程序的运行控制单片机引脚的高低电平来进行2TY S8550PNP管三极管的导通和截止;从而实现LED多种动态显示。2.2 设计硬件系统各模块功能介绍2.2.1 最小系统模块AT89S52是一种低功耗、高性

5、能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz

6、 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图(2)最小系统模块 2.2.2 电源模块电源采用的UBS插口5V供电,通过六角开关控制系统的供电。 图(3)电源模块2.2.3 下载电路 此下载电路只是通过PCB线将各个引脚引出到下载口上,再通过ISP USB转换进行程序自动下载。 图(4)下载电路 2.2.4 显示电路LED显示是由16个PNP三极管分别连接单片机引脚,通过三极管放大来使各个灯亮度均衡。图5和图6只是单个

7、电路。 图(5)LED阳极显示图(6)LED阳极显示2.3 设计电路原理图、实物图图(7)广州塔原理图图(8)单片机52控制板 图(9)控制板与塔身2.4 设计元件清单表1 原件清单原件名称数量备注 89C52RC单片机140PID集成座10805 1K电阻322TY S8550PNP管 320805 22R电阻 10805 10K电阻 10805 33pF电容 21206 10UF坦电容 112M晶振 1USB接口 1六角开关1排针40P23mm雾状长脚有边奶头灯270网 线若干3、 软件系统的设计3.1 软件系统程序流程框图程序主函数运行流程框图如图10。 图(10)流程框图首先,将系统所

8、需要的文件的宏定义文件包含进来。定义:P0和P2口控制的256个灯的共阳极;而初P1和P3口控制的256个灯的共阴极,利用扫描形式使广州塔的LED灯逐个点亮形成动画。3.2 软件系统程序清单程序在附录一。4 操作使用说明、测试过程、误差分析4.1 操作使用说明按下电源键,自动开始循环运行动态。4.2 测试过程由于用到较多的LED灯,对于焊接和调试造成一定的难度,256个灯中只要有一个出问题替换工作将是非常的麻烦,必须把八层的LED拆开再取出坏的LED重新焊接。在对电路检查时由于本设计电路版面较大,检查起来并非易事。在设计过程中发现了一些问题。以下为主要的问题及解决方案:1、本系统由于程序量要求

9、大,256个LED灯需要较高的驱动电流和较大工作量的编程,传统的4K 89c51单片机将导致程序溢出无法编译。解决方法:采用单片机AT89S52单片机,对广州塔功能拓展提供了更宽广的平台。 2、 本系统在硬件测试时发现广州塔的LED灯普遍偏暗,电流较低,无法达到预期的效果。解决方法:首先先进行电路的检测,测试是否存在短路、短路情况。发现没有问题,接着在io口上接了上拉电阻,问题得以解决。3、在调试过程中发现插上已烧入程序的单片机后对光立方主体起不到控制的作用。解决方法:根据经验猜测是单片机引脚没起作用造成的。后来换了块单片机发现动画出来了,由此判断是单片机烧坏造成。4、由于电烙铁工作时会有较小

10、的静电产生,很容易烧坏LED灯。解决问题:问题可能处在电烙铁在工作过程中产生的静电上,以下为减少静电影响的方法:1.将烙铁头跟接地线相连,以泄放产生的静电。2.如果烙铁没有接地线那就光脚才在地上也会降低静电的影响。把16个灯归为一组,焊完组个检查,焊完2层整排再进行检查,把LED坏的概率降到最低。4.3 误差分析广州塔主要是通过程序来控制灯从而达到多种动画变化的效果。由于要形成多样的动画,在变成过程中也出现了不少的问题。最后经过多次的细心修改,顺利的完成了编程工作。主要问题有:1、烧入程序后,不能显示完整的动画。 解决方法:重新检查程序,检查对应的引脚定义有没错。再者检查延时是否过快导致动画不

11、明显。2、在调试过程中发现插上已烧入程序的单片机后对广州塔体起不到控制的作用。解决方法:根据经验猜测是单片机引脚没起作用造成的。后来换了块单片机发现动画出来了,由此判断是单片机烧坏造成。3、调试过程中烧入全亮程序发现有一层16个灯同时不亮。解决方法:通过观察,其它的灯都亮,这说明阳极是导通的,而阴极控制线路有故障或者短路,用万用表的蜂鸣档测试发现连接三极管与单片机的线路出现断路,用导线连接恢复正常。5 程序流程框图程序主函数运行流程框图如图11。 图(11)运行流程框图6 设计总结与导师商讨后定下了设计的题目:基于51单片机的广州塔,取名璀璨广州塔。本设计采用AT89S52单片机作为主控芯片,

12、通过程序来实现流动动画。设计的亮点是将原先平面的流水灯延伸到立体空间,使实现的动画更能冲击视觉效果,拥有更广阔的市场价值。刚确定这个设计题目时欣喜与茫然同在,对于网上各种各样的广州塔成品让人赞叹不已,也想能通过亲自来制作一个属于自己的广州塔。与此同时,广州塔毕竟是个新鲜产物,网上较多的是成品材料并没有太多的经验可以引以为鉴。在制作过程中遇到许多的困难,就比如说怎么把那256个LED怎样实现圆、半径多大、从线到面、从面到体就是必须要克服的难题。但是功夫不负有心人,经过指导老师的精心指导以及同学们的热心帮助,终于完成了硬件和软件的测试。那么成品有三大部分组成:1、控制部分采用8×8cm的

13、铜板制作而成。2、塔身由256个蓝色雾灯组成。3、塔顶放了一块孙中山150年纪念币。通过这次的作品设计,过程中很多我不懂的问题都会主动查阅资料来寻找答案,在此将大学所学的专业知识进行了重温并付付诸实践,从而使我的专业涵养得到了提高。由于此设计需要较高的焊接技巧,制作过程中也无形锻炼了自己的动手能力。这将对于毕业设计中将是一笔宝贵的财富。7 结论在整个设计过程中,发挥团队精神,分工合作,自主学习,通过对以前知识的补充和学习。较好的完成了作品,完成了本次课程设计的要求。在最初的设计中,对于52 单片机进行了充分的了解,并与51 相比较,了解了两种单片机的不同,并相互学习、相互讨论、最终决定使用AT

14、89S52 单片机制作。电路的布局在AD软件中进行了期间排布,使得期间在板子上尽可能合理分配。电路焊接时大量使用了插针,防止了在在焊接中导线的错误链接,减小电路工程量。达到事半功倍的效果。程序编写中,由于思路不清晰,开始时遇到了很多的问题,通过和同组员的讨论,以及对大量书籍资料和论坛中成功的品进行借鉴,明白了编程中的的主要算法和实现,从而解决的大部分问题。对于三极管,贴片的第一次接触,从烙铁头和管脚辨别,查看了大量的手册资料,在本次单片机课程设计中对于单片机功能及应用有了充分了认识。充分了解了单片机的应用。并对只是进行了补充学习在大量阅读文献资料后,感觉对单片机的了解还很少。以后将及时补充相关

15、知识,对单片机进行系统学习。 参考文献【1】李广弟,朱月秀,冷祖祁编单片机基础.北京航空航天大学出版社 2007.6【2】张俊谟.单片机中级教程.北京航空航天大学出版2006.03【3】余发山.单片机原理及及应用技术.中国矿业大学出版社2003.12【4】杨凌霄.微型计算机原理及应用.中国矿业大学出版社2004.08【5】郭天祥51单片机c语言教程.电子工业出版社2009.1【6】万光毅.单片机实验与实践教程.北京航空航天大学出版社2005.01【7】周航慈.单片机程序设计基础.北京航空航天大学出版社1991.11【8】黄遵熹.单片机原理接口与应用.西北工业大学出版社1997.05【9】杨振江

16、,杜铁军,李群.流行单片机实用子程序及应用实例M.西安:西 安电子科技大学出版社,2002【10】杨子文编单片机原理及应用西安电子科技大学出版社2006【11】王法能编单片机原理及应用科学出版社2004附录一:程序#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table0=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/从低位往高位移一个灯uchar code table1=0x7f,0

17、xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/从高位往低位移一个灯uchar code table2=0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00;/从低位到高位逐步全部点亮uchar code table3=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;/从高位到低位逐步全部点亮uchar code table4=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;/从低位到高位逐步全部熄灭uchar code table5=0x80,0xa0,0xe0,0xf0,0xf8

18、,0xfa,0xfe,0xff;/从高位到低位逐步全部熄灭uchar code table6=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/从低位到高位,灭一个灯移动uchar code table7=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/从高位到低位,灭一个灯移动uchar i;void delay(uint z) /延时函数uint x,y;for(x=z;x>0;x-)for(y=314;y>0;y-);void deng1234()/层灯移位 for(i=0;i<8;i+) P1=tabl

19、e0i;/从高到低 P3=table0i; delay(30); void deng123()/for(i=0;i<8;i+)P2=table1i;P0=table1i;delay(60);/*/void deng0()/所有灯亮一会儿P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(50);void deng0_1()/所有灯灭一会儿P0=0xff;P1=0xff;P2=0xff;P3=0xff;delay(150); void deng1()/两列灯顺时针旋转2遍,然后逐渐降低 uchar c; P1=0x00;P3=0x00; for(c=3;c>0

20、;c-) deng123(); P1=0x03;deng123();P1=0x0f;deng123();P1=0x3f;deng123();P1=0xff;deng123();P3=0x03;deng123();P3=0x0f;deng123();P3=0x3f;deng123();P3=0xff;deng123();P2=0xff;P0=0xff; void deng2()/四列灯顺时针旋转2遍 uchar a; uchar b; b=0x77; P2=b; P0=b; P1=0x00;P3=0x00;for(a=8;a>0;a-) for(i=0;i<8;i+)b=_cror_

21、(b,1);/循环左移delay(25);P2=b;P0=b; P2=0xff;P0=0xff;P1=0xff;P3=0xff; void deng3()/单层,向上升 P0=0x00;P2=0x00;for(i=0;i<8;i+) P3=table1i; delay(25); P3=0xff;/*-*/ for(i=0;i<8;i+) P1=table1i; delay(25); P1=0xff; void deng4()/单层,向下降 P2=0x00;P0=0x00; for(i=0;i<8;i+)P1=table0i;delay(25);P1=0xff;/*-*/for

22、(i=0;i<8;i+)P3=table0i;delay(25);P3=0xff;P1=0xff;P0=0xff;P2=0xff; void deng5()/从上到下,逐层全部点亮】 P0=0x00;P2=0x00;for(i=0;i<8;i+)P1=table2i;delay(25);for(i=0;i<8;i+)P3=table2i;delay(25);P0=0xff;P1=0xff;P2=0xff;P3=0xff; void deng6()/从上到下,逐层全部熄灭】 P0=0x00;P2=0x00;P1=0x00;P3=0x00;for(i=0;i<8;i+)P1

23、=table4i;delay(25);P1=0xff;for(i=0;i<8;i+)P3=table4i;delay(25);P3=0xff;P0=0xff;P2=0xff; void deng7()/四组灯,交替两次for(i=2;i>0;i-)P1=0x00;P2=0x00;/上左delay(25);P1=0xff;P2=0xff;delay(25);P3=0x00;P0=0x00;/下右delay(25);P3=0xff;P0=0xff;delay(25);/P3=0x00;P2=0x00;/下左delay(25);P3=0xff;P2=0xff;delay(25);/P1=

24、0x00;P0=0x00;/上右delay(25);P1=0xff;P0=0xff;delay(25); void deng8()/上半先逐步列点亮,然后再向下点点亮P0=0xff;P2=0xff;P3=0xff;P1=0x00;for(i=0;i<8;i+)P0=table3i; P2=table3i;delay(25); delay(70);P1=0x00;P2=0x00;P0=0x00;for(i=0;i<8;i+)P3=table2i;delay(25);void deng9()/从中间向上 下点亮,再熄灭P0=0x00;P2=0x00;for(i=0;i<8;i+)

25、P1=table3i;P3=table2i;delay(150);for(i=0;i<8;i+)P1=table4i;P3=table5i;delay(150);void deng10()/从中间向上 下熄灭P0=0x00;P2=0x00;for(i=0;i<8;i+)P1=table5i;P3=table4i;delay(25);P1=0xff;P3=0xff;void deng11()/逆时针逐列点亮所有灯P1=0x00;P3=0x00;P0=0xff;P2=0xff;for(i=0;i<8;i+)P0=table2i;delay(25);for(i=0;i<8;i

26、+)P2=table2i;delay(25);P0=0xff;P2=0xff;P3=0xff;P1=0xff;void deng12()/闪烁uchar i; uchar b; b=0xaa; P2=b; P0=b; P1=b; P3=b; for(i=0;i<8;i+)b=_cror_(b,1);/循环左移delay(100);P2=b;P0=b;P1=b;P3=b;P0=0xff;P1=0xff;P2=0xff;P3=0xff;void deng13()/两层灯,分别从中间向上 下移动P2=0x00;P0=0x00;for(i=0;i<8;i+)P1=table1i;P3=ta

27、ble0i;delay(50);P2=0xff;P0=0xff;P1=0xff;P3=0xff;void deng16() /隔一层亮P0=0x00;P2=0x00;P3=0x55;P1=0x55;delay(500);void deng17() /1列灯 滴水uchar d; P2=0x7f;P0=0xff;for(d=1;d>0;d-) deng1234();void deng18() /1列滴水uchar f;P2=0xfe;P0=0xff;for(f=1;f>0;f-) deng1234();void deng19()/1列滴水uchar e;P2=0xef;P0=0xff

28、;for(e=1;e>0;e-) deng1234();void deng20() /一列滴水uchar j;P2=0xfd;P0=0xff;for(j=1;j>0;j-) deng1234();void deng01()/旋转往下for(i=0;i<8;i+) P1=table0i; P3=table0i; P0=table1i; P2=table1i; delay(50); void deng21() /列灯亮 uchar k; P1=0x00;P3=0x00;for(k=4;k>0;k-) P0=0x7f; delay(55); P2=0x7f; delay(55

29、); P0=0xef; delay(55); P2=0xef; delay(55); P0=0xfd; delay(55); P2=0xfd; delay(55); P0=0xdf; delay(55); P2=0xbf; delay(55); void deng22()/P0一列左移 uchar h; uchar l; l=0x7f; P0=l; P1=0x00;P3=0x00; for(h=8;h>0;h-) l=_crol_(l,1); delay(13); P0=l; void deng23()/P2一列左移 uchar p; uchar q; q=0x7f; P2=q; P1=

30、0x00;P3=0x00; for(p=8;p>0;p-) q=_crol_(q,1); delay(13); P2=q; void deng24()/隔一层闪 P0=0x00;P2=0x00;P3=0x55;P1=0x55;delay(100);P0=0x00;P2=0x00;P3=0xaa;P1=0xaa;delay(100);void deng14_1()/点满一圈的小函数 P2=0xff;P0=0xff;for(i=0;i<8;i+)P2=table2i;delay(15); for(i=0;i<8;i+)P0=table2i;delay(15); P2=0xff;P

31、0=0xff;void deng25()/从下开始,点满一圈后,灭,再上升点亮第二圈P1=0xff;P3=0x7f;/1层deng14_1();/点满一圈的小函数 P3=0xbf;/2层deng14_1();/点满一圈的小函数 P3=0xdf;/3层deng14_1();/点满一圈的小函数 P3=0xef;/4层deng14_1();/点满一圈的小函数 P3=0xf7;/5层deng14_1();/点满一圈的小函数 P3=0xfb;/6层deng14_1();/点满一圈的小函数 P3=0xfd;/7层deng14_1();/点满一圈的小函数 P3=0xfe;/8层deng14_1();/点满一

32、圈的小函数 P3=0xff;P1=0x7f;/1层deng14_1();/点满一圈的小函数 P1=0xbf;/2层deng14_1();/点满一圈的小函数 P1=0xdf;/3层deng14_1();/点满一圈的小函数 P1=0xef;/4层deng14_1();/点满一圈的小函数 P1=0xf7;/5层deng14_1();/点满一圈的小函数 P1=0xfb;/6层deng14_1();/点满一圈的小函数 P1=0xfd;/7层deng14_1();/点满一圈的小函数 P1=0xfe;/8层deng14_1();/点满一圈的小函数P1=0xff;/*=主函数=*/void main()while(1) deng0(); /所有灯亮deng0(); /同上deng01();/所以灯灭 deng16(); /隔一层亮deng22();/隔一层闪d

温馨提示

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

评论

0/150

提交评论