《基于单片机的光立方课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的光立方课程设计.docx(44页珍藏版)》请在优知文库上搜索。
1、单片机课程设计报告题目基于单片机的4*4*4光立方设计系别计算机科学系专业计算机科学与技术班级学号姓名指导教师I=I期【摘要】当今社会,随着电子行业的不断开展,单片机的应用从根本上改变了传统的控制系统设计思想和设计方法,己广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面.成为现代生产和生活中不可缺少的一局部。我们学习单片机也一个学期了,此次单片机课程设计,我采用的是STCl2C5A60S2系列的单片机,设计一个4*4*4模式的光立方。将LED灯分成4层,利用程序来编写各种不同的效果来控制LED的亮灭,最终使得整个立方体展现不同的变换,美轮美奂,绚丽多彩。【关健词】单
2、片机课程设计光立方1绪论1.l课题研究的背景光立方词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。所谓光立方:就是在平面LED根底上开展起来的新的显示技术,通过复杂的程序控制,在三维空间能够显示具有立体感的图形、动画等。由此,也掀起了光立方的设计与学习热潮,在原有的根底上不断增加难度,增加变换把戏,吸引电子爱好者对其研究、创新。光立方是由LED灯组成,由于发光二级管质量比拟稳定,使用寿命长,不用频繁地去更换,能减少本钱,更节能。光立方作为一种特殊的显示资源,已用于一些广告行业、家庭、娱乐厅、会议室、大型演唱会、城市地标广场等场所的布置和装饰,还可以用于更广泛方面,具有广阔的应用前景。1.
3、2课题研究的意义本次毕业设计一改传统的平面流水灯的凤格,而是从平面向立体开展,通过更宽广的三维空间呈现出更加狗丽的效果,直接冲击着人们审美视觉,不在停留在乏味的平面成像。光立方主体局部由64个LED灯组成,在制作过程中锻炼学习动手焊接能力,并以低本钱,智能化产品对实现经济利益、商业价值的形成具有积极的推动作用。光立方的研究极具创意和启发,而且可以低本钱、高效益的研究未来的3D技术。2总体设计2.1 设计目的1 .进一步掌握单片机的原理及其功能。学会利用单片机做一些课外电子设计与制作。2 .熟悉LED点亮条件及其工作原理。3 .熟悉光立方显示的原理及其相关的线路连接。4 .通过此次的电路焊接和调
4、试提高自己的动手及其分析问题的能力。2.2 工作原理光立方其功能相当于三维显示器,只不过光立方是由LED灯组成的三维的立方体。光立方显示的原理简单的说就是用单片机控制64个LED灯,在不同时刻点亮要显示图案位置所在的灯,利用人眼余辉效应,可以看到比拟完整的显示图案或动画了。其原理如下:光立方从下到上共4层,每一层16个LED的负极接到一起,第一层16个蓝色正极和16个红色正极分别单独引出,第二层的每个正极分别接到它对应第一层正极,第三层的正极接第二层的正极。就是竖着看是8个接到一个正极上。连在一起的是阴极,这样焊接起来。光立方引出4层引出线加上16个正极引出线。3系统硬件电路设计与实现3.1
5、元件清单PCB板*1,红蓝双色超高亮长脚LED*70,40P圆排母*4,5MMLED间隔柱*5,5MM七彩LED+5,15MM铜柱*5,DC005线*1,DC005座*1,25V47OUF电解电容*1,IK电阻*4,40P芯片底座*4,22P瓷片电容*1,STC12C5A60S2芯片*1,11.0592M晶振*1,单芯导线*13.2 硬件电路设计本电路是由单片机STCI2C5A60S2为控制核心,具有大容量程序存储器且是FLASH工艺的,具有串口烧写编程功能,低功耗;时钟源电路有很多种,比方阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通
6、晶体时钟源,其中晶体用H.0592M的石英晶振。显示部份由显示部份由64个LED灯组成来进行显示。3.3 单片机最小系统单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成局部,也可理解为是用最少的元件组成的单片机可以工作的系统。对89C51单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/输出设备等。单片机的最小系统如下列图所示:3.4 电路图设计通过电路图设计,方便搭建起光立方的架构。1 .电源设计电路图2 .时钟电路图3 .整体电路图3.4光立方搭建方法3. 4.1将LED从点到线的搭建首先接线下灯座的制作方法:把40P圆排母用水口钳或者斜口钳剪成单针如下列
7、图所示把其余元器件焊接好后图:4. 4.2将LED从线到面的搭建进行八次上诉焊接后接下来就是将4束的LED焊接起来。在从点到线时是将所有LED的阴极连在一起,而这次那么是将所有LED阳极弯折并依次连接,如下图。注意:由于焊接过程中将产生静电容易将LED烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具检测。同时检测灯与灯之间有没虚焊情况。5. 4.3将LED从面到体的搭建最后一个步骤是将已焊好的4个面进行焊接,其方法是将之前8个面上的阴极对应位置依次焊接,最后留出的4个阴极与输出端进行连接。实物图如下列图所示。6. 系统软件设计6.1 主程序设计程序主函数运行流程框图如下列图所
8、示。6.2 软件测试光立方主要是通过程序来控制光立方体从而到达多种动画变化的效果。由于要形成多样的3D动画,在变成过程中也出现了不少的问题。最后经过屡次的细心修改,顺利的完成了编程工作。6.3 结果分析本设计通过硬件设备和软件完美配合,总共呈现十一个连续的动画效果。经过屡次的反发测试与分析,所呈现的动画与程序中预期的效果吻合,符合设计要求。在软硬件测试过程中让我们对原先设计的电路的原理及功能进-步熟悉,并对各电路模块和相关的芯片联合工作更加了解。在这个调试的过程中虽然挺枯燥无味,但锻炼我们发现问题并解决问题的能力,对我们的专业知识起到了温故知新的作用。5课程设计心得体会此次为期两个礼拜的课程设
9、计,让我感受颇深。最终看到了绚丽多姿,变化多端的LED光立方的图案在中,在很大程度上培养了自己的独立思考及其动手能力。学会了自己独立的发现问超、分析问题。老师在实验室指导我们的设计,在查阅资料仍找不到但答案的还可以请教老师。尽管此次设计过程中遇到些问题,但最终还是-步一个脚印过来了。此次设计在丁老师的指导下完成的,老师扎实的专业知识,让我觉得自己还有好多的知识需要去学习。在这大学的时间,要好好的提升自己的相关技能。程序代码#include#include#defineuintunsignedint#defineucharunsignedchar#defineMAX_Delay8#defineM
10、IN_Delay1sbitS_1=Pl1;sbitS_2=P12;Unsignedintpwm;unsignedcharTimeDelay=10;unsignedcharMode=1;unsignedcharcodetabP2=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F);扫描uchars=0;voidDELAY_MS(uchari)/unsignedinti;/while(a!=0)/for(i=O;i600;i+);ucharxj;forO=0;ji;j+)for(x=0jx=148;x+);voidAdc_Delay(uinta)uinti;while
11、(-a!=0)for(i=0;i0;x)for(y=z;y0;y);voidtimerl_init()TMOD=0x10;THl=0;TLl=O;ETl=1;TRl=1;EA=1;*AD4函(*/*/unsignedcharRead(unsignedcharCHA)unsignedcharAD-FIN=O;/存储A/D转换标志CHA&=OxO7;/选择ADC的8个接口中的一个(OOoOOlu清0高5位)ADC_CONTR=OX00;/ADC转换的速度OXXO0000其中XX控制速度,请根据数据手册设置)_nop_();ADC_CONTRI=CHA;选择A/D当前通道_nop_();ADCCON
12、TRI=0x80;启动A/D电源Adc_Delay(l);使输入电压到达稳定(ImS即可)ADC_CONTRI=0x08;启动A/D转换00001000令ADCS=1)_nop_();_nop_Q;_nop_();_nop_Q;while(AD_FIN=0)等待A/D转换结束AD_FIN=(ADC_CONTR&0x10);/OOOl0000测试A/D转换结束否IADC_CONTR&=0xE7;/HllOlll清ADC_FLAG位,关闭A/D转换,return(ADC_RES);/返回A/D转换结果(8位)*ADLMCq虫才克j安i中金渺肝星/*/JR*#/bit1表示有感应物,O表示没有感应物
13、Sl/*:!:*:!;*/bitSl(void)unsignedcharR,mm=0,i,j,k;bitaa;j=O;k=O;for(i=0;i10;i+)一次采集数据的数量AdCDelay;R=Rcad(I);读对应的口,触发对应的触摸按键if(Rl&jl)(mm+;elsemm=O;if(mmO)aa=1;elseaa=O;return(aa);*S2*/bitS2(void)unsignedcharR,mm=0,i,j,k;bitaa;j=O;k=O;for(i=0;i10;i+)一次采集数据的数量AdJDClay(3);R=RCad;if(Rl&jl)mm+;elsemm=O;if(mmO)aa=1;elseaa=O;return(aa);结束呼吸灯专用uchar