单片机课程设计(论文)-可编程彩灯控制器.doc_第1页
单片机课程设计(论文)-可编程彩灯控制器.doc_第2页
单片机课程设计(论文)-可编程彩灯控制器.doc_第3页
单片机课程设计(论文)-可编程彩灯控制器.doc_第4页
单片机课程设计(论文)-可编程彩灯控制器.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1 前言近年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。然而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。led彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。所以利用单片机作led彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。本方案是一种基于at-89c51单片机的彩灯控制方案,实现对led彩灯的控制。主要以at-89c51单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。2 方案设计2.1设计任务(1)共有红、绿、黄3色彩灯各9个,要求安一定顺序和时间关系运行:红色发光二极管由弱到强绿色发光二极管由弱到强蓝色发光二极管由弱到强。(2) 利用三基色原理,控制每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现黄色,紫色,青色。(3)控制不同颜色发光二极管的数目,实现花样彩灯。(4)编写程序代码;5)程序分析与调试。2.2 工程方案按照设计任务要求,红,绿, 蓝光由弱到强,每个颜色用8个发光二极管,在程序控制下,先亮一个,再亮两个,再亮三个,慢慢的直到最后全亮,就能看到由弱到强的现象。如果同一颜色使用更多的发光二极管,显示效果会更柔和。要实现黄色,紫色,青色光,只能根据三基色原理进行合成。所谓三基色是指红,绿,蓝三色,人眼对红,绿,蓝最为敏感,大多数可以通过红,绿,蓝3种颜色按照不同的比例合成产生。同时,绝大多数单色光也可以分解成红绿蓝三种光。这是色度学的最基本原理,即三基色原理。根据三基色原理得到:红色+绿色=黄色 绿色+蓝色=青色 红色+蓝色=紫色对于彩灯的实现可以通过控制每次亮灯的数目,并调用延时程序,使其给人一种绚丽多彩的感觉。由于单片机是通过内部编程实现控制每个引脚,因此本设计就是通过编写程序来达到控制引脚的目的,让其引脚输出低电平则该灯亮,输出高电平则该灯灭。全部输出为高电平则全灭,全部输出低电平则全亮。在每步执行完都调用内部延时循环程序达到外部引脚亮灭延时的目的。最终实现设计要求所需循环彩灯控制电路。3 电路设计3.1 硬件电路原理图图3-1彩灯硬件原理图整个硬件原理电路主要以at-89c51单片机作为主控核心与发光二极管、晶振、复位、电源等组成。各个模块电路的工作原理:3.11主控模块电路采用at89c51单片机作为控制器的主模块,由单片机的引脚连接led发光二极管,利用p口输出控制信号实现彩灯的控制 ,即将不同颜色的led发光二极管接至p口。循环彩灯端口定义 :p1.0 p1.7 定义为蓝色发光二极管p2.0p2.7 定义为红色发光二极管p3.0p3.7 定义为绿色发光二极管运用系统编程对p2.0 p2.7脚红色发光二极管让其逐个引脚输出为低电平,可使相应的发红光二极管点亮,绿、黄色发光二极管一样。对p2.0 p2.7 脚通过编程全设为低电平使其点亮发红光,再以同样的方式设置黄、绿色发光二极管实现循环。由于本设计驱动led发光二极管的时候是共阳接法所以在at89c51输出为高电平时为灯灭状态,低电平时为灯亮状态。即:输出为1时灭为0时亮at89c51引脚分布图3-2: 图3-2 at89c51 3.1.2 供电电路随着半导体工艺的发展,稳压电路也采用集成电路器件来制成。可采用独立的稳压电源。这种供电方式的优点是稳压可靠,且有各种成熟电路可供选择。由于集成稳压器具有体积小,外界线路简单,使用方便,工作可靠等优点。因此,在各种电子设备中应用十分普遍,为了跟上时代的发展,可采用w7800系列三端稳压器,主要利用它的输出电压是固定的在使用中不能进行调整等优点。本次设计为了电源的简洁,采用了usb接口为循环彩灯系统电路提供稳定5v的工作电压这样能使整体电路更简洁,更节约成本,也在一定的程度上减少了硬件设计的复杂性。3.1.3 复位电路单片机在开机或工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使中央处理器cpu以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。at89c51单片机的复位是靠外部电路实现,信号由reset(rst)引脚输入,高电平有效,在振荡器工作时,只要保持rst引脚高电平两个机器周期,单片机即复位。复位方式一般有上电复位、手动复位和自动复位电路三种,在本设计中采用的是手动复位。电路如下图33所示。因at89c51单片机需高电平(3.75.5v)复位,且复位时流入单片机的电流不能超过10ma。具体参数:根据所需要的复位参数可得当按下sw键时出现两个机器周期的高电平在单片机rest端产生的压降等于:=图3-3 复位电路3.1.4晶振电路本设计采用的是内部时钟振荡方式。at89c51中有一个用于构成内部震荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激震荡器,震荡电路参见下图35。 外接石英晶体(或陶瓷谐震器)及电容c1、c2接在放大器的反馈回路中构成并联震荡电路。对外接电容c1、c2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程度及灯的稳定性。本设计采用的是石英晶体电容c1、c2用。图3-5时钟振荡方式此设计也可以采用外部时钟电路如图35外部时钟方式所示。这种情况下外部时钟脉冲接到xtal1端,即内部时钟发生器的输入端,xtal2则悬空。为at89c51提供基准频率、产生振荡电流、发出时钟信号。3.2 硬件电路设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。因此,本彩灯控制系统实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件电路如下图所示:图3-5硬件电路设计图总电路工作过程:按下电源开关系统开始工作,单片机把程序计数器(pc)中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对指令操作码进行译码,以产生一系列控制信号,从而完成指令的执行。通过控制对核心芯片at89c51内部系统编程,设想哪个引脚外发光二极管亮(除接晶振,电源,地的引脚外)则对其系统内部编程设为低电平,哪个引脚外发光二极管灭则相应的设为高电平。设想引脚外全部发光二极管亮对应的所有引脚则全设为低电平,设想引脚外相应的发光二极管全灭则引脚全设为高电平。晶振采用12mhz,可知输出延迟时间为100ms,再对内部编写循环程序以达到设计要求就可控制彩灯点亮时间。先红、绿、黄三组灯中的每个灯逐渐点亮,实现发光二极管由弱到强。然后控制红绿蓝灯点亮的数目,依次点亮红,绿,蓝,黄,紫,青颜色的彩灯,按下复位按钮系统恢复到初始状态并开始工作。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“彩灯”效果了。4 软件程序设计4.1 主程序设计调用彩灯显示子程序开始端口参数初始化调用红灯渐亮的子程序调用绿灯渐亮的子程序调用蓝灯渐亮的子程序调用组合显示子程序图4-1主程序流程图4.2系统流程图p2(3,1)=#0f8h点亮第三个红(绿,蓝),调用延时p2(3,1)=#0f0h点亮第四个红(绿,蓝,调用延时)p2(3,1)=#0e0h点亮第五个红(绿,蓝),调用延时p2(3,1)=#0c0h点亮第六个红(绿,蓝,调用延时)p2(3,1)=#0h点亮第个红(绿,蓝,调用延时)p2(3,1)=#0点亮第八个红(绿,蓝),调用延时返回p2(3,1)=#0fch点亮第二个红(绿,蓝),调用延时p2(3,1)=#0feh点亮第一个红(绿,蓝)灯,调用延时图4-2红(绿,蓝)灯由弱到强流程图p2=#0红色亮,调用延时p3#0绿色亮,调用延时p1=#0蓝色亮,调用延时p2=#0,p3=#0黄色亮,调用延时p2=#0,p3=#0紫色亮,调用延时p2=#0,p3=#0青色亮,调用延时返回图4-3色光控制图p2=#0feh点亮第一个红灯,调用延时p2=#0f2h点亮第三四个红灯,调用延时p2=#12h点亮第六七八个红灯,调用延时p3=#0f8h点亮第一二三个绿灯,调用延时p3=#8h点亮第五六七八个绿灯,调用延时p1=#0fch点亮第一二个蓝灯,调用延时p1=#0fh点亮第五六七八个蓝灯,调用延时返回 图4-4花样彩灯流程图可编程彩灯控制系统程序主要分为以下几个模块:初始化程序、主程序、红(绿,蓝)灯渐亮程序,色光控制程序,花样彩灯程序等。1、 初始化程序初始化程序主要完成对端口引脚控制信号的初始化。2、 主程序主程序主要负责总体程序管理控制功能,实现彩灯的循环控制。 3、红、红(绿,蓝)灯渐亮程序红、红(绿,蓝)灯渐亮程序主要实现红,绿, 蓝光由弱到强,先亮一个,再亮两个,再亮三个,慢慢的直到最后全亮,使其出现由弱到强的现象。 4、色光控制程序色光控制程序主要通过每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现实现黄色,紫色,青色灯得点亮。5、花样彩灯程序花样彩灯程序主要通过控制不同颜色发光二极管的数目,来实现实现花样彩灯。5 系统仿真51 系统仿真过程(1)红灯由弱到强逐渐点亮(2)绿灯由弱到强逐渐点亮(3)蓝灯由弱到强逐渐点亮(4)点亮黄灯(5)点亮青灯(6)点亮紫灯(7)实现花样彩灯52 仿真结果分析通过仿真运行及其结果可知,此次设计基本上实现了红色发光二极管由弱到强绿色发光二极管由弱到强蓝色发光二极管由弱到强,黄色,紫色,青色灯以及花样彩灯。上图5.1.(1)(2)(3)为彩灯控制系统红(绿,蓝)灯逐渐点亮的仿真结果图。利用三基色原理,控制每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现黄色,紫色,青色灯得点亮即仿真图5.1.(4) (5)(6)而彩灯的实现即仿真图5.1.(7)。按下复位键后彩灯控制系统自动循环点亮。6课程设计总结本次设计通过单片机系统内部编程和结合外围电路的设计完成了循环彩灯控制。本设计主要有六个部分:at89c51内部系统编程设计;晶振电路设计;供电电路设计;复位电路设计;普通io口限流设计。在整个设计中实现开始红、绿、黄三组发光二极管逐渐点亮,然后实现黄,紫,青灯得点亮,最后实现花样彩灯,并依此循环所设计的循环彩灯控制。结合上述几个部分来最终完成电路的设计画出总原理图。在调试的过程中遇到打开电源开关的瞬间一个红灯亮100ms然后所有灯全亮,通过运用检修方法查出是系统内部的问题,改正后恢复正常。所有灯有时正常有时又不工作,经仔细检查发现在电源处接触不良,改正后恢复正常。只有部分io口工作,查相应io口外围电路正常,再通过系统内部编程让其一直亮,测相应io口电压正常,判断at89c51芯片坏,换正常。 通过这次设计自己对单片机编程及at89c51芯片有了更进一步的掌握,对keil c51 uvision2软件编程调试和proteus仿真软件运用更熟练,对循环彩灯的设计有了系统的了解。但在设计的过程中由于参考书籍和时间的原因还存在不足:对循环彩灯的外观设计,灯的分布,线路的布局,电源的处理等等。但我仍然会在以后的工作中认真学习,对循环彩灯进行改进让其更加完美与人性化。在此感谢我们的xxx老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的顺利完成,离不开老师您的细心指导。老师,您辛苦了!同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。参考文献1 江世明,黄同成等单片机原理及应用实验教程m中国铁道出版社,20102 江世明等单片机原理及应用m 中国铁道出版社,20103杨光友.单片机微型计算机原理及接口技术m.北京:中国水利水电出版社,2002.4肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8 附录(源程序清单)org 0000hljmp startorg 0030hstart:mov p2,#0ffh ;p口初始化 mov p3,#0ffh mov p1,#0ffh lcall rshow ;调用红色渐亮的子程序 lcall delay lcall gshow ;调用绿色渐亮的子程序 lcall delay lcall bshow ;调用蓝色渐亮的子程序 lcall delay lcall showall ;调用组合显示子程序 lcall delay lcall showkind ;调用花样彩灯显示子程序 lcall delay ljmp start rshow:mov p2,#0feh ;红色渐亮 lcall delay mov p2,#0fch lcall delay mov p2,#0f8h lcall delay mov p2,#0f0h lcall delay mov p2,#0e0h lcall delay mov p2,#0c0h lcall delay mov p2,#80h lcall delay mov p2,#0 lcall delay lcall rt ;全部关闭 lcall delay retgshow:mov p3,#0feh ;绿色渐亮 lcall delay mov p3,#0fch lcall delay mov p3,#0f8h lcall delay mov p3,#0f0h lcall delay mov p3,#0e0h lcall delay mov p3,#0c0h lcall delay mov p3,#80h lcall delay mov p3,#0 lcall delay lcall rt ;全部关闭 lcall delay ret bshow:mov p1,#0feh ;蓝色渐亮 lcall delay mov p1,#0fch lcall delay mov p1,#0f8h lcall delay mov p1,#0f0h lcall delay mov p1,#0e0h lcall delay mov p1,#0c0h lcall delay mov p1,#80h lcall delay mov p1,#0 lcall delay lcall rt ;全部关闭 lcall delay ret showall:mov p2,#0 ;红色全亮 lcall delay mov p2,#0ffh lcall delay mov p3,#0 ; 绿色全亮 lcall delay mov p3,#0ffh lcall delay mov p1,#0 ;蓝色全亮 lcall delay mov p1,#0ffh lcall delay mov p2,#0 ;黄色(红+绿全亮) mov p3,#0 lcall delay lcal

温馨提示

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

评论

0/150

提交评论