基于AT89S52单片机的简易循环彩灯设计.docx
基于AT89S52单片机的简易循环彩灯设计 基于AT89S52单片机的简易循环彩灯控制设计 目录 绪论 (4) 1项目分析 (2) 1.1 需求分析 (2) 1.2 功能模块分析 (3) 1.2.1 系统模块图 (3) 1.2.2 外部时钟电路 (3) 1.2.3 复位电路 (3) 1.2.4 LED驱动电路 (4) 1.2.5 最小系统电路 (4) 1.3 方案设计 (5) 1.3.1 设计方案比较及选择 (5) 1.3.2 可行性分析 (5) 1.3.3 难点分析及解决方法 (5) 1.4 技术性能指标 (6) 1.4.1基本要求: (6) 1.4.2 彩灯闪烁花型 (6) 2 硬件设计 (6) 2.1 总体电路图 (6) 2.2 电路的工作原理 (7) 2.3 元器件及其参数选择 (7) 2.4 PCB板的制作 (9) 2.5焊接组装 (9) 3 电路调试 (10) 3.1 静态调试 (10) 3.2 通电调试 (10) 3.3 故障分析与排除 (10) 4 软件设计 (11) 4.1 程序设计 (11) 4.2 程序功能模块的划分 (11) 4.3 程序框架图 (11) 4.4 软件程序: (11) 4.4 程序调试 (14) 4.5 系统仿真 (14) 4.6 设计结果评价 (15) 5 结语 (15) 参考文献 (17) 附录: (18) 致谢 (19) 基于AT89S52单片机的简易循环彩灯控制设计 摘要 在当代生活里,人们对生活灯饰品的要求越来越高,这样无疑使得各种彩灯成为了最日常生活中不可缺少的装饰品,它不仅能美化都市环境,渲染生活气氛,还可将其用于各种娱乐场所和电子玩具中。现以本毕业设计为例进行分析与设计简易的可编程的循环彩灯控制电路很多,其组合的方式和运用的集成块的种类及数目更是多种多样,而且还有专门的可编程9循的各种复杂程度的循环彩灯控制电路模块。市场上及大多数的彩灯都是运用各种数字电路来实现的,但本毕业设计在考虑到制作简易程度及成本的前提下,由于单片机具有集成度高、功耗低、运行可靠性强、体积并不大、价格低廉等优点 , 所以特意地运用了单片机、LED等优点及技术,来实现对各种形式不一的各色彩灯的自动简易控制。 本毕业设计以AT89S52单片机2为主要的控制核心,各电路都采用模块化的设计方法,运用各色LED彩灯、普通按键等组成主要电路,运用可编程循软件在按键的控制下实现对彩灯循环点亮花样及模式进行选择,从而达到每个不同需求的人对设计出来的成品的要求。本毕业设计具有体积小、电子元器件少、电路结构简易及操作方便等优点。 关键词:AT89S52单片机;数字电路4;循环灯; LED Simple cycle lights AT89S52 microcontroller-based control designs Abstract In modern life, people living lights jewelry have become increasingly demanding, this would no doubt make a variety of lights has become the most indispensable everyday decorations, it can not only beautify the urban environment, rendering the atmosphere of life, but also to for a variety of entertainment and electronic toys. The graduation project is now an example to analyze and design simple programmable loop control circuit Lantern many combinations of types and numbers of the manifold ways and the use of more diverse, but also through a dedicated programmable the complexity of the various lights loop control circuit module. Most of the lights on the market and are using a variety of digital circuitry to achieve, but the graduation project, taking into account the extent and cost of making simple premise, because the single-chip high integration, low power consumption, high operating reliability , the volume is not large, low cost, etc., so he use a microcontroller, LED and other advantages and technologies to automate simple control of all forms of different colored lanterns The graduation project AT89S52 microcontroller as the main control center, all circuits are designed using a modular approach, the use of colored LED lights, buttons and other components common main circuit, the use of programmable through software implementation cycle under the control of the lantern keys lighting patterns and mode selection, to achieve the different needs of each person, the finished design requirements. The graduation design has a small, small electronic components, circuit structure simple and convenient operation Key words:AT89S52 machines;Digital circuits;Lights;LED 绪论 本毕业设计是一种主要由AT89S52单片机组成的简易的可编程的循环彩灯控制设计,从而实现对LED彩灯发亮模式及花样的控制。本毕业设计是将单片机1P0口和P2口作为16路LED彩灯的输出端口(提供+5V工作电源),且主控单片机是AT89S52单片机(提供+5V工作电源),在主控电路模块上还包含振荡电路和复位电路。本毕业设计的整个控制模块由软件控制,在此基础上,设计者 可以通过主控模块(单片机)上P3口的按键对正在工作的已编写好的若干种亮灯模式的LED彩灯进行花样控制。 该毕业设计的系统设计2原理比较简易, 其主要设计原由是利用单片机的可编程控制原理, 由硬软件两大部分组成。其硬件包括主控CPU-AT89S52 单片机、I/ O 接口及其扩展、EPROM及其扩展、各色小功率LED彩灯等几个部分。软件部分由主程序及各子程序构成。 由于软件控制程序存储在AT89S52单片机中的可进行电擦除的Flash闪存EPROM中,如果设计者需要改变LED彩灯发亮的花样,不需要更改已设计好的硬件电路5,只需修改存储在主控芯片中AT89S52单片机中的程序即可,是一种及有发展前景的可编程的循环彩灯控制装置。 1 项目分析 1.1 需求分析 在经济发展迅速的21世纪里,人们对周围环境的要求也越来越高,渴望生活在一个灯光夺目的的环境中享受美好生活,使得人生不那么单调寂寞。各种循环彩灯(即各种霓虹灯)也因此产生了,人们运用各种简易的可编程的循环彩灯来装饰街道、房屋建筑和咖啡屋等已经成为一种时尚。尤其是现在的90后为追求时尚,在他们的摩托车、自行车都安装了各种彩灯,给爱车装上闪灯后时尚又拉风。与此同时,各种手机装饰灯、风筝装饰彩灯也成为了时尚,都是为了使自己的爱物更加光彩夺目。据此可知,“彩灯族”正风靡社会生活各个角落,这样使得LED彩灯市场需求正日益上升,极具竞争力。各种简易的可编程11的循环彩灯在当今生活中无处不在,从而给企业带来了许多商业机遇。 LED彩灯由于其具有多种灯光色彩,价格低廉以及易于控制等特点而得到人们的广泛青睐。目前,市场上绝大多数的LED循环彩灯控制器都是由全硬件电路(即由多种模拟电子元器件组成的电路3)实现的。无疑,这样的电路稳定性不高、功耗大、结构复杂且功能单一,制成成品后只能按照单一固定的模式运行闪亮,无法满足客户根据不同场合或不同时间段的需要来调节彩灯发亮的时间、模式、闪烁频率等基本要求。这种彩灯控制器结构具有大功率芯片多、电路较为复杂、系统稳定性不高等缺点。除此之外,从工作的功能及效果上看,亮灯模式少且花样比较单调,用户可操作几乎没有,无法达到用户所需要的效果。因此,需要我们对现有的霓虹灯控制器进行必要的改进。与大多数现有的LED彩灯相比,该种简易的可编程12的循环彩灯具有变化新颖的点亮花样,性价比更高,与市面上的普通的全硬件控制的LED彩灯相比具有更好的装饰效果和经济效益。 1.2 功能模块分析 1.2.1 系统模块图 图1.1 系统模块 1.2.2外部时钟电路 XTAL2(即18)引脚和XTAL1(即19)引脚接外部时钟电路,XTAL1(即19)引脚接外部晶振及电容的一个脚, XTAL2(即18)引脚接外部晶振及电容的另一端。 外部时钟电路是在XTAL1和XTAL2引脚之间接入晶振及2个谐振电容并于片内时钟电路一起构成振动电路。这里我们一般选用12MHZ的晶振作为内部时钟电路的振荡频率,谐振电容我们一般采用2230pF的陶瓷片电容,此毕业设计我们选用的是30pF。时钟电路图如下图1.2所示: 图1.2时钟电路 1.2.3 复位电路 RST(即9)引脚为单片机主控系统复位输入端,接上电容、电阻及开关后够上电复位电路,VCC(即40)引脚为电源端(接+5V),GND(即20)引脚为接地端。复位电路实际上是对单片机的进行初始化操作,从而使片内部各寄存器都处于初始状态。复位电路有两种方式:一种是上电复位,另一种是 按键电平复位,本毕业设计采用的是按键电平复位(即手动复位)的方式。所选复位电路如下图1.3所示: 图1.3复位电路 1.2.4 LED驱动电路 LED驱动电路由16个电阻、16个LED和一个电源组成。LED驱动电路是本毕业设计的主要展示部分,系统的重要功能及效果都有此模块展示出来。由于单片机的吸电能力比输出能力强,所以我选择的是LED彩灯共阳极的接法。其模块电路图如下图1.4所示: 图1.4 LED驱动电路 1.2.5 最小系统电路 单片机主控模块外围电路的最小系统实际上是由外部时钟振荡电路和外部复位电路以及提供能量的电源组成。它是保证单片机能够正常工作的最小组成单位,其模块组成电路图如下图1.5所示: 图1.5 单片机最小系统 1.3 方案设计 1.3.1 设计方案比较及选择 在设计之初,我准备了两套设计方案:第一,是以MSP430单片机为主控模块设计一个由音乐和按键两种独立方式分别来控制彩灯闪烁模式并通过LCD12864显示发光彩灯个数的较为复杂的循环彩灯控制方案;第二,是以AT89S52单片机为主控模块设计一个只有按键独立彩灯闪烁模式且不带LCD12864显示模块的简易循环彩灯控制方案。但在最终确定设计方案的时候,我在综合到所懂的知识深度和设计成本的条件下,我最终选择了第二套方案。 1.3.2 可行性分析 本设计的基本要求是要实现LED彩灯的工作方式具有多种循环模式的功能,所以要想能够达到此种功能就必须运用单片机的简易控制来实现。本毕业设计选用AT89S52单片机作为主控模块,通过按键来选择彩灯循环模式来实现彩灯的简易循环控制。在本次设计中,我只用到单片机的最小系统模块(外部时钟电路、手动复位电路和供电模块),LED彩灯供电驱动模块以及一个按键来设计一个最为简易的可控型彩灯循环系统。由于此系统较为简易,所以在电路设计及布线的问题上应该不会存在太大的问题,所以我坚信此次毕业设计一定会去得圆满成功! 1.3.3 难点分析及解决方法 本毕业设计的几大模块都较为简单,但为使LED彩灯的循环工作模式比较新颖独特,这就需要设计者在编写程序环节上下功夫。所以在编写程序之前,我先对彩灯工作模式做了设计,然后根据各种模式编写相应的模式程序。在这里,我在编写程序是出了各种细节性的问题,比如参数变量和子模块程序声明方面总要或多或少的出现错误,从而使得在编译预处理的时候总是出现警告和错误,但这一问题在经过多次修改与调试最终得到解决;另一问题是,有2中程序编写的模式与预想设计的模式不一致,但经过多次的编写修改与测试最终也得到有效的解决,从而达到了我预先构想设计的循环工作模式。 1.4 技术性能指标 1.4.1 基本要求: a. 每个LED彩灯都能正常发亮; b. 能按照多种方式正常运行; c. 按键按下后能及时改变彩灯显示方式; d. 完整版系统能稳定工作; e. 焊接时要注意焊接点的美观。 1.4.2 彩灯闪烁花型 花型1:单个右移、左移。 花型2:16路彩灯先从左至右逐路点亮,到全亮后再从右至左逐路熄灭,循环演示。 花型3: 16路彩灯同时亮灭,亮、灭节拍交替进行。 花型4:两两右移。 花型5:16路彩灯每次8路灯亮,8路灯灭,且亮、灭相间,交替亮灭。 花型6: 16彩灯分成左、右8路,两两向外扩散。 花型7:16路彩灯分成左、右8路,左8路从左至右逐路点亮、右8路从右至左逐路点亮,到全亮后,左8路从右至左逐路熄灭,右8路从左至右逐路熄灭,循环演示。 花型8:左、右8路,两边三个灯依次右移点亮,再左移点亮。 2 硬件设计 2.1 总体电路图 图2.1 系统整体电路图 2.2 电路的工作原理 本毕业设计的电路原理并不难,它是一个以AT89S52单片机为主控芯片来控制彩灯的工作循环模式,所以只需在单片机最小系统的条件下加上一个彩灯驱动模块和一个控制按键在通电的情况下就可以实现。在这里我选用P0和P2端口作为16个LED彩灯的控制端口来控制彩灯的亮与灭;P3.7口作为按键的输入端口来选择彩灯的工作模式;单片机的最小系统选用的是最常用的(但在这里我选用的是手动高电平复位而非自动复位);电源我采用的是由USB通过数据传输线直接从电脑引入5V的电压,但为了确定引入的电压正常,我特意用一个LED彩灯亮亮与灭来指示,所以从整体上分析我认为这一电路原理是可行的。 2.3 元器件及其参数选择 在本节主要介绍系统的硬件元器件的简易介绍与选择及其参数的确定等。 2.3.1主控芯片的选择及引脚简介 市场上单片机的种类繁多,但由于AT89S52单片机的功耗、性能稳定、价格相对便宜且能够完全满足本毕业设计的参数要求,所以本毕业设计选用了此款单片机。AT89S52单片机芯片实物图如图2.2所示: 图2.2 AT89S52单片机 I/O口作为输入口时的工作方式有两种也就是读端口和读引脚。在读端口时并不是从外部直接读入数据,而是先把端口锁存器的数据读入内部总线,然后经过运算或变换后再将数据写回到端口锁存器。由于I/O端口在进行输入操作时要进行一个附加准备动作,所以称为准双向口。其芯片引脚图如下图2.3: 图2.3 AT89S52引脚图 能量输入引脚:VCC(即40)(供电+5V)、GND(即20)(接地) 复位引脚:RSTVPD(即9)在振荡器运行时,只有在此引脚上出现两个以上的机器周期(即24个振荡周期)的高电平时,才能使单片机复位,当这个引脚一直处于高电平时,AT89S52芯片将一直保持循环复位状态。复位后四组8位I/O均被置1,此时的程序计数器及特殊功能寄存器(SFR)均被清零。复位后对存储在芯片内部的RAM的程序没有影响; 心脏引脚:XTAL1(即19)反向振荡放大器的输入引脚以及内部时钟工作电路的输入引脚; XTAL2(即20)反向振荡放大器的输出引脚。(晶振引脚,提供时序、脉冲)。 2.3.2 LED发光二极管的选择 LED发光二极管:单向导电性,只有电流从正极流过时才能发光。其正常发光时功耗低,且此时的额定电压为2V左右,额定电流约10mA左右。其工作寿命长且可靠性高;发出的光的强弱可以很方便地通过控制电流的强弱来调节,本毕业设计在考虑到功耗和成本的条件下选用了各色功耗较低的小型LED。 注:要使LED正常工作须遵守两个原则:一是要按正确的顺序进行引脚连接,二是工作时须接上拉电阻。由于本课题设计的是简易循环彩灯,故选择LED。 图2.4 LED彩灯 2.3.3 电阻器的选择 220的16个、10K的9个,根据电路特性(R=5V/10mA=500)计算出电阻大小约为500,而市场上的电阻的实际阻值为:470、510、570。考虑到LED的额定电流一般为10mA且其亮度于通过其电流成正比,所以我们选择220。 2.3.4 电容器的选择 一个10uF的电解电容:有正负极之分,接在复位引脚上,且其正极应与电源电压的正极相连,阴极与电源电压的负极相连接,否则会损坏电容器。 两个30pF的陶瓷片电容:没有正负极之分,接在晶振引脚上。 2.3.5电源供电 单片机8051工作电压是5V。测试中电压在4.55.5都可以。 补充:这里介绍三种电源供电方式 a 电脑USB接口; b 普通手机或MP3的充电器(5.5V); c 三节5号电池。 2.3.6 其他器件 a 芯片插座:便于芯片的固定与取放; b 晶振:本课题选用频率为12M的晶振; c按键:独立按键便于手动选择所要的彩灯显示花样。 2.4 PCB板的制作 在焊接前需要通过DXP20228进行排版分布和PCB板设计。其具体步骤见Protel 2022肖玲妮.清华大学出版社P182-P188。PCB设计流程如下图2.4所示 图2.4 PCB设计流程 2.5 焊接组装 在准备焊接之前首先应列出电路所需的元器件清单并依次排在桌子上。仔细查是否有损坏的元器件,以免在调试时出现不必要的麻烦。查阅相关器件的引脚图,了解各引脚的功能和焊接方法。然后根据实物和PCB原理图在万能面板上做好规划,插的时候一定要固定住,以免在焊接时接触不紧或出现虚焊。焊接的同时把导线理顺,走线要明了,以免出现短路不方便后期的检查调试。