当前位置:文档之家› 单片机彩灯循环

单片机彩灯循环

《单片机原理及应用》课程设计报告题目:彩灯循环系统专业:电子信息工程班级:学号:姓名:指导教师:一.实验目的:《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。

其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。

二.实验内容:通过8051单片机实现彩灯循环三.实验过程:1.引言随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。

此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,。

本方案提出了一种基于8051单片机的彩灯控制方案,实现对LED彩灯的控制。

本方案以8051单片机作为主控核心,在主控模块上设有3个按键和8个码LED显示灯,根据需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为1 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。

与普通LED 彩灯相比,具有体积小、价格低、低能耗等优点。

2.8051单片机引脚功能介绍首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。

单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

⒈电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源。

① RST(Reset)功能:复位信号输入端。

② VPD功能:在Vcc掉电情况下,接备用电源。

⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。

① EA功能:内外ROM选择端。

② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

〈51单片机引脚图及引脚功能〉拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。

1、电源:这当然是必不可少的了。

单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。

2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。

只要买来晶体震荡器,电容,连上就能了,按图1接上即可。

3、复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。

4、 EA管脚:EA管脚接到正电源端。

至此,一个单片机就接好,通上电,单片机就开始工作了。

我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。

(见图1,其中R1是限流电阻)按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED 才发亮。

因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。

即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。

3系统功能LED彩灯用软件控制硬件的方式来是彩灯闪烁,即彩灯控制器和管内LED 板模块)。

彩灯采用8051提供+5V电压工作,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供+5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5 V工作电源。

整个系统工作由软件程序控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。

上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。

在设定模式状态下,可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间T1、频率F1参数,在工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。

整个3种亮灯模式时间可以看作一个大周期T,对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,在从右到左点亮LED,还有自己定义的LED点亮方式。

因此在LED彩灯上电工作后,可以方便地通过控模块上的显示器知道LED彩灯当前工作模式,工作时间Ti,频率Fi等实时参数。

若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。

此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,可以让程序循环硬件设计:LED彩灯系统包括,即LED彩灯控制器(8051主控模块)LED彩灯管在8051外部接一个震荡时钟频率。

用8051的控制模块,具有按键、显示等功能,并利用8051的P0口输出控制信号,利用P0口的8个输出端上面焊有8个LED彩灯,使得彩灯在软件的控制下工作。

主控模块电路设计主控模块电路如图1所示。

主控模块主要设计器件有80C51,8个 LED 显示器,3个开关按键,1个稳压器(5 V电压),1个外部晶振震荡器信号输出驱动,4个电阻。

通过软件设计,使单片机P0口作为三色LED驱动信号输出口及移位时钟CLOCK信号,8051的P0口为LED的输出口。

软件设计:LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。

系统中软件可以分为主程序和中断服务子程序。

上电后在按键控制灯的闪烁方式,通过软件来控制循环,以一个单位时间1 ms的T0定时为中断服务子程序。

在这个1 ms的T0定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯内点亮和熄灭各种状态LED灯等。

整个系统软件由程序)、各个模式子程序、1 ms中断服务子程序、调用循环程序组成。

利用T0定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。

除了T0定时中断之外,程序的大部份时间是在处理按键的查询和LED 显示的延时。

3个按键分别为:K1按键.从左到右点亮LED,K2按键.从右到左点亮LED,K3按键.用户自己定义方式点亮LED。

在每次的T0定时中断服务子程序里,需要对各个时间寄存器和模式寄存器进行加1或者清,为主程序查询作准备,同时查询是否已中断1ms,若1ms到了,则对按键一次,是否有按下并进行相应子程序处理。

主程序除了调用各种子模式子程序,调用LED显示子程序和延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。

程序流程如图2所示亮灯模式,只要控制好各色灯触发和熄灭时刻就可以组合成各种亮灯效果。

4.实验结构图仿真:5.实验软件程序:ORG 0000HLJMP STARTORG 0003HLJMP INTOORG 0100HSTART: MOV R2,#08H ;设置循环次数MOV A,#0FEH ;送显示模式字SETB P0.1CLR P0.0CLR P0.7CLR P0.2SETB EASETB IT0SETB EX0HERE: AJMP HEREINTO:MOV P0,A ;点亮二极管RL A ;左移一位,改变显示模式字RETIDELAY: MOV R5,#1DEL3: MOV R3,#0FFH ;延时子程序开始DEL2: MOV R4,#0FFHDEL1: NOPDJNZ R4,DEL1DJNZ R3,DEL2DJNZ R5,DEL3RETEND6.彩灯循环方式的修改:此程序里面涉及了主程序,延迟程序,主程序实现彩灯的循环控制,延迟程序实现彩灯的交替闪烁的时间,通过改变显示模式的显示字就可以实现不同的闪烁方法,比如,可以在下面再加一个RL A 就会隔一个闪了,要是开始两个都亮则可以把上面的MOV A,#0FEH ,改为MOV A,#0FDH ,等等四.实验心得:通过这几天的实训,我对单片机有了更深的体会。

了解和掌握了一些编程思想和对I/O口得使用。

本次做的控制循环彩灯控制系统的设计是以单片机8051为核心,结合相关的元器件(共阴极LED数码显示器、通用I/O接口芯片8155等),再配以相应的软件,达到实现LED二极管的发光功能,也具有改变彩灯的花样、彩灯的暂停、彩灯的加减速功能。

在软件调试的过程中,遇到很多困难,第一次实现了彩灯的花样变化,未能进行加减速的调整,后来经过调试后基本达到要求,但当减速见到一定程度后就不明显了,花形3全亮后左右最边亮灯没有灭,花形2时LED数码显示器上显示的不是“2”字,字码表上明明是“5BH”(共阴极)但是显示的“2”字多了一点。

尽管这次的单片机课程设计还存在一些瑕疵但经过自己的努力制作出了彩灯的循环控制,也让自己对单片机有了更大的兴趣。

通过这次的设计使我认识到我对单片机方面的知识学习得不够透彻,对书本上的很多知识还不能灵活的运用,有很多我们需要掌握的知识在等着我去学习,在以后的学习生活中弥补所缺失的知识。

这次实训使我对于软件的设计运用有了一定的了解,从程序设计到调试,再到装载到硬件电路中运行。

最重要的一点是自己的动手能力的提高。

作为一个高职学生动手能力差是不行的,相比本科理论知识有所欠缺,这样就不利于我们以后到社会中的工作。

提高动手能力,毕业后能够更快的适应工作。

相关主题