海口经济学院信息工程学院海口经济学院信息工程学院通信工程专业毕业设计课题题目:彩灯控制设计姓名:武志军学号:5141306129年级专业:2014级信息通信学期:第七学期指导教师:李小军职称:副教授开题时间:2015年1月25日海口经济学院信息工程学院1一、方案论证..............................................2(一)方案比较.........................................2(二)总体设计方案.....................................2二、硬件电路设计..........................................3(一)单机片最小系统....................................3(二)按键控制电路.....................................4(三)中断电路.........................................5(四)LED显示电路.....................................5(五)总体电路.........................................6(六)单机片的介绍.....................................7三、软件设计..............................................9(一)软件设计思路.....................................9(二)软件设计流程....................................10(三)软件程序........................................11四、结论................................................18参考文献:..............................................19海口经济学院信息工程学院2摘要:本文介绍了一种由16个LED发光二极管组成多功能发光形式的简易彩灯控制系统的软硬件设计过程,方案以AT89C51单片机作为主控核心,且以复位电路、时钟电路、按键电路、中断电路以及彩灯显示电路组成,利用软件编程烧录程序到单片机来实现对LED彩灯进行多样控制。该控制电路能完成多种闪灯模式以及随意变换想要的闪烁方式和控制彩灯的闪烁频率等功能。该系统具有电路结构简单、易操作、硬件少、体积少、成本低、能耗低等优点,有一定的实用价值。关键词:8051单片机;LED彩灯;控制系统;闪烁方式一、方案论证(一)方案比较方案一:可用555产生脉冲加到计数器来完成,试验原理框图如下:方案二:也可用两非门与电阻与电容构成多谐振荡器加到计数器来完成。框图如下:方案三:通过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。P0,P1口接16个二极管,P3口接扩展板的数码显示接口。该方案简单,易于设计和控制,所以选择法案三。(二)总体设计方案设计思路:本方案这要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环振荡脉冲计数器LED灯计数器555多谐振荡器LED灯显示海口经济学院信息工程学院3系统的设计,来达到本设计的要求。本课题设计的总体框图如下图1-2所示图1-2系统总体设计框图系统设计如下:此设计方案中单片机的P1口接4路按键控制电路,实现彩灯闪烁方式的切换功能;单片机的P3.3引脚接上一个按键开关以实现对彩灯中断的控制;单片机上的P0和P2口接16路LED发光二极管组成彩灯显示电路,实现多种形式的闪烁功能。二、硬件电路设计(一)单机片最小系统要使单片机工作起来,最基本的电路构成由单片机、时钟电路、复位电路等组成。单片机最小系统由复位电路和时钟信号电路组成(如图2-1)。复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用上电自动复位。单片机最小系统还有一块模块叫时钟电路。时钟电路由一个晶振和两个小电容组成,用来产生时钟频率。AT89C51单片机芯片内部有一个反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡器电路的输入端和输出端,时钟可由内部和外部生成,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。系统采用的定时元件为石英晶体和电容组成的并联谐振回路。晶振频率选择12MHz,电容值取30PF,电容的大小频率起微调的作用。海口经济学院信息工程学院4图2-1单片机最小系统图(二)按键控制电路按键控制电路(如图2-2)是由4个按键开关构成的。他们分别接在单片机AT89C51的P1.0~P1.3引脚上,为了一对一方式控制16个LED彩灯的不同闪烁形式。当按下开关key1时,16个LED发光二极管闪烁第一种彩灯方式;当按下开关key2时,16个LED发光二极管闪烁第二种彩灯方式;同理,当按下开关key3时,16个LED发光二极管闪烁第三种彩灯方式;当按下开关key4时,16个LED发光二极管闪烁第四种彩灯方式。图2-2按键控制电路图时钟电路复位电路key1key2key3key4海口经济学院信息工程学院5(三)中断电路单片机的P3.3引脚街上一个按键开关以实现对彩灯中断的控制(如图2-3)。当彩灯系统正在实现无论哪一种控制方式时,按下中断开关使过程终止,16个LED发光二极管同时会处于熄灭状态,停止当前工作;当再次按一下中断开关时,彩灯系统会继续进行工作,闪光方式会与中断之前的方式一样。如图2-3中断控制电路图(四)LED显示电路流水灯采用的是发光二极管(Light-EmittingDiode),简称LED,是一种将电能转换为光能的半导体器件,具有体积小、耗电低的优点,常被用作微型计算机与数字电路的输出装置。当LED两端加上一定的正向电压,使之流过一定的工作电流就会发光,其亮度随流过的电流增加而增加,但电流过大LED的寿命也将缩短。普通LED正向电流一般为5~20mA。由于51的I/O是弱上拉的方式,在输出高电平时,只能输出几十微安的电流,而在输出低电平时,I/O最大可以输入几十毫安的电流。所以,通常采用灌电流的方式,即电流从电源经LED流向I/O口。为了不让流过LED的电流太大而把它烧坏,还得串上限流电阻R,当P0和P2口输出高电平(+5V)时,LED两端没有电压降,所以熄灭;当P0和P2口输出低电平(即P0/P2=0)时,LED正向导通发光。此时LED两端电压VD约为1.7V,则限流电阻R两端将存在3.3V(即5-1.7=3.3V)。查阅AT89C51技术手册后发现,单个I/O口的输入电流不能超过10mA;P0口的输入电流总和不能超过26mA;P1、P2、P3的输入电流总和不能超过15mA;所有I/O口的输入电流总和不能超海口经济学院信息工程学院6过71mA。(如图2-4)图2-4led显示电路图(五)总体电路海口经济学院信息工程学院7(六)单机片的介绍AT89C51管脚图如下图2-5所示海口经济学院信息工程学院8图2-5AT89C51引脚排列VCC:供电电压+5V。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。本系统中P0口接LED数码管的段选段。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收[7]。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。本系统中语音芯片ISD1420的地址端接P2口。P3口:P3口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下海口经济学院信息工程学院9拉为低电平,P3口将输出电流,这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表2.5所示。P3口同时为闪烁编程和编程校验接收一些控制信号。表2.5P3口的第二功能口管脚备选功能信号名称P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0记时器0外部输入P3.5T1记时器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在本设计中,对ROM的读操作只在内部程序存储器中,所以EA置应高电平。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出[8]。三、软件设计(一)软件设计思路海口经济学院信息工程学院10单片机的应用系统由硬件和软件组成,上述硬件各电路搭建完成后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要告诉单片机怎么样进行控制,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的闪烁。软件编程是多控制、多闪烁方式的LED灯系统中的一个重要的组成部分,是本设计的重点和难点。所以我来阐述多控制、多闪烁方式的LED灯系统是如何实现16个LED灯的循环点亮,来介绍实现流水灯控制的软件编程方法。本设计是以单片机AT89C51为核心控制16个发光二极管4种闪烁方式的变换。硬件电路如图附录A所示,16个发光二极管分别接在单片机的P0和P2接口上。例如,当给P0.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。同理,接在P0和P2口的其他15个LED的点亮和熄灭的方法同P0.0引脚上的灯管。因此,要实现流水灯功能,我们只要将发光二极管按照不同方式依次点亮、熄灭,16只LED灯便会一亮一暗的成流水灯了。程序设计流程如图3-2。(二)软件设计流程图3-2程序设计流程图海口经济学院信息工程学院11(三)软件程序#includereg51.h#defineuintunsignedin