1、可编程彩灯控制器设计第1章 绪 论1.1概述基本思想本次设计主要是通过运用AT89C51单片机系统内部编程和LED彩灯结合外围电路来设计完成对彩灯按设定的时间有规律的循环控制。1.2设计背景自1879年美国科学家爱迪生发明了白炽灯以来,便结束了人类“黑暗”的历史,给人类以光明,创造了巨大的财富。如今灯光已成为人民生活中必不可少的家用品。而相续发展起来的循环彩灯也成为时代前沿的时尚艺术,它以现代高科技为基础,随着高技术日新月异的发展,其艺术性和表现力都产生了质的飞跃,实现了艺术上的创新与突破,不断创造出令人惊叹、叫绝的视觉艺术效果,给人们带来了美的享受和心灵上的震撼。伴随着人们生活环境的不断改善
2、和美化,在许多场合可以看到霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态 参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点而且价格昂贵。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 利用控制电路可使彩灯按一定的规律不断的改变状态,
3、不仅可以获得良好的观赏效果,而且可以省电(与全部彩灯始终全亮相比)。再由于人们对于物质生活的要求也在逐渐提高,不光是对各种各样的生活电器的需要,也开始在环境的幽雅方面有了更高的要求。比如日光灯已经不能满足于我们的需要,彩灯的运用已经遍布于人们的生活中,从歌舞厅到卡拉OK包房,从节日的祝贺到日常生活中的点缀。这些不紧说明了我们对生活的要求有了质的飞跃,也说明科技在现实运用中有了较大的发展。在这一设计中我们将涉及有关彩灯控制器的设计,从原理上使我们对这一设计有所了解。将其确实的与我们生活相联系起来。完成循环彩灯的控制,以目前所学专业知识可用三种方案来实现:一种是用PLC数控逻辑设计,一种是用数字逻
4、辑设计,最后一种是单片机。用PLC数控逻辑设计虽然简单,容量大但设计所需设备不方便,此处不便采用。 数字逻辑设计具有电路结构复杂、功能单一、芯片过多、功率损耗大等缺点,而且价格昂贵,此外从功能效果上看亮灯模式少而且样式单调,缺乏用户可操作性,因此也未采用。单片机外围元件少结构简单,易于维护,节约能源用户可操作性强,设备方便,价格合理,因此本设计采用单片机实现该功能。单片机是通过内部编程实现控制每个引脚。本设计就是通过编写程序来达到控制引脚的目的,让其引脚输出低电平则该灯亮,输出高电平则该灯灭。全部输出为高电平则全灭,全部输出低电平则全亮。在每步执行完都调用内部延时循环程序达到外部引脚亮灭延时的
5、目的。最终实现设计要求所需循环彩灯控制电路。1.3应用价值在家庭装饰、商业区、许多户外广告、公益广告等的灯光布置中经常需要完成彩灯循环点亮以实现灯光动态效果,做到广告、彩灯等作品色彩鲜艳,富有创艺,变化形式丰富,起着宣传和美化环境的作用,营造文明和亮丽氛围,增添人们生活乐趣。彩灯控制现已广泛用于广告、舞厅、商店方面。伴随着经济的发展和夜市的兴起循环彩灯的用途将越来越广,必然是现代都市的发展和人们生活水平提高要求的需要。第2章 总体设计方案2.1设计任务要求(1)共有红、绿、黄3色彩灯各9个,要求安一定顺序和时间关系运行。动作要求:先红灯,后绿灯,再黄灯,分别按0.5S的速度跑动一次,然后,全部
6、红灯亮5S,再黄灯,后绿灯,各一次。以此循环。(2)对各组灯的控制,要求有驱动电路。(3)对跑动电路,可以每3个一组,交叉安装,分别点亮每一组,利用视觉暂停,达到跑动的效果。(4)系统要求仿真实验。2.2器件的选取(1) 可编程单片机AT89C51(2) LED发光二极管彩灯(3) 仿真器件KeiluVision2编程调试器(4)各类附加装配器件等第3章 系统设计3.1 系统设计3.1.1系统设计框图 图31循环彩灯系统框图3.1.2 系统的工作原理按下电源开关系统开始工作,单片机把程序计数器(PC)中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对指令操作码进行
7、译码,以产生一系列控制信号,从而完成指令的执行。相应外部引脚也随着产生一系列按设计要求的变化达到设计目的。通过控制对核心芯片AT89c51内部系统编程,设想哪个引脚外发光二极管亮(除接晶振,电源,地的引脚外)则对其系统内部编程设为低电平,哪个引脚外发光二极管灭则相应的设为高电平。设想引脚外全部发光二极管亮对应的所有引脚则全设为低电平,设想引脚外相应的发光二极管全灭则引脚全设为高电平。按照上面所讲用一定的外围元件就可实现该电路。晶振采用6MHZ,可知输出延迟时间为2us,再对内部编写循环程序以达到设计要求就可控制彩灯点亮时间。先红、绿、黄三组灯中的每个灯依次点亮0.5S,然后三组灯按红、黄、绿点
8、亮5S以此循环完成设计。按下复位按钮系统恢复到初始状态并开始工作。3.2 硬件结构3.2.1 AT89C51结构及功能介绍AT89C51是美国ATMEL公司生产低电压,高性能CMOS 8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CUP)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价比的应用场合,灵活应用于各种控制领域。(1)主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命
9、:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32个可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 (2)功能特性概述: AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz 的静态逻辑系操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信接口及中断系统
10、继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。(3)主要引脚及芯片基本工作条件说明40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。Pin9:RESET/Vpd复位信号复用脚,当AT89C51通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高电平,系统即初始复位。AT89C51的复位方式可以是自动复位,也可以是手动复位,如图3 3 复位电路。此外RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。Pin20、40:分别
11、是单片机的主电源引脚。20脚是芯片的接地端。40脚则是芯片的电源端。二者是必不可少的,它们是单片机基本工作的条件。Pin18、19:XTAL1接外部晶振的一个引脚。在单片机内部,它是上述振荡器的反相放大器的输入端。当采用外部振荡时,该引脚接受振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。则XTAL2接外部晶振另一个引脚。在单片机内部它是上述振荡器的反相放大器的输出端。采用外部振荡器时该引脚应该悬空。AT89C51引脚分布图3-2: 图3-2 AT89C513.2.2 供电电路随着半导体工艺的发展,稳压电路也采用集成电路器件来制成。可采用独立的稳压电源。这种供电方式的优点是稳压可靠,且
12、有各种成熟电路可供选择。由于集成稳压器具有体积小,外界线路简单,使用方便,工作可靠等优点。因此,在各种电子设备中应用十分普遍,为了跟上时代的发展,可采用W7800系列三端稳压器,主要利用它的输出电压是固定的在使用中不能进行调整等优点。本次设计为了电源的简洁,采用了USB接口为循环彩灯系统电路提供稳定5V的工作电压这样能使整体电路更简洁,更节约成本,也在一定的程度上减少了硬件设计的复杂性。3.2.3 复位电路单片机在开机或工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。AT8
13、9C51单片机的复位是靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位。复位方式一般有上电复位、手动复位和自动复位电路三种,在本设计中采用的是手动复位。电路如下图33所示。因AT89c51单片机需高电平(3.75.5V)复位,且复位时流入单片机的电流不能超过10mA。具体参数:根据所需要的复位参数可得当按下SW键时出现两个机器周期的高电平在单片机REST端产生的压降等于: 图3-3 复位电路3.2.4 P0接口驱动电路P0口的结构是由两个FET构成的推拉式输出结构,由于在本设计中作普通I/O口使用,上面的FET是
14、截止的,若不接上拉电阻,当端口处于高电平1的状态下,实际上端口对地、对Vcc电阻都是无穷大,即本质上是不确定状态。因此需要上拉。本设计是驱动发光二极管LED(共阴共阳,图3-4)从亮度角度考虑用的是1K电阻。上拉电阻越大(20010K)电流越大发光二极管越暗,相反越亮。为了保护电路给段LED不被损坏,需外加限流电阻。 高电平驱动 低电平驱动 图3-4驱动发光LED3.2.5晶振电路本设计采用的是内部时钟振荡方式。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激震荡
15、器,震荡电路参见下图35。 外接石英晶体(或陶瓷谐震器)及电容C1、C2接在放大器的反馈回路中构成并联震荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程度及灯的稳定性。本设计采用的是石英晶体电容C1、C2用。图3-5时钟振荡方式此设计也可以采用外部时钟电路如图35外部时钟方式所示。这种情况下外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。为AT89C51提供基准频率、产生振荡电流、发出时钟信号。3.2.6电源指示灯电路当还末按电源开关系统处于准工作状态时,指示灯红灯亮。在按下电源开关系统开始
16、工作时绿色指示灯亮。3.3彩灯各个状态转换及端口定义根据循环彩灯的设计要求:开始每组灯(有红、绿、黄三组)中的每个灯依次按0.5S流水状接连点亮一次;然后再所有红、黄、绿三组灯每隔5S全亮一次形成循环点亮状况(对P32P39和P21脚用上拉电阻限制电流,防止电流过大,烧坏AT89c51芯片)。通过对三组发光二极管设计一个内部逐个延时0.5秒的程序,需要时调用内部延时程序实现延时0.5秒控制。并运用系统编程对P1P8和P22脚红色发光二极管让其逐个引脚输出为低电平,可使相应的发红光二极管点亮,绿、黄色发光二极管一样。同样对三组发光二极管每组设计一个内部延时5秒的程序待需要时调用。对P1P8和P2
17、2脚通过编程全设为低电平使其点亮发红光,再以同样的方式设置黄、绿色发光二极管实现循环。其程序如附录(二)循环彩灯源程序。循环彩灯端口定义 :P1 P8、P22 定义为红色发光二极管P10P17、P23 定义为绿色发光二极管P32P39、P21 定义为黄色发光二极管注意由于本设计驱动LED发光二极管的时候是共阳接法所以在AT89C51输出为高电平时为灯灭状态,低电平时为灯亮状态。即:输出为1时亮为0时灭。表3-1循环彩灯时间转换状态表三组彩灯时间说明红色0.5s单个发光二极管点亮时间绿色0.5s单个发光二极管点亮时间黄色0.5s单个发光二极管点亮时间红色5s全部发光二极管点亮时间绿色5s全部发光
18、二极管点亮时间黄色5s全部发光二极管点亮时间3.4 软件设计与仿真本次循环彩灯设计是采用汇编语言编写单片机程序。首先是定义发光二极管数据端口,其次是画出程序设计流程图(图36所示)并按照系统设计流程图编写逐个和每组彩灯亮控制程序,并调用0.5S和5S延时程序,最后把模块0.5S和5S程序编写出来,以便在逐个和每组彩灯亮时调用,最后完成程序设计。用美国Keil Software公司出品的51系列兼容单片机软件Keil C51 uVision2编程调试器看有无错误直到编译通过(编译界面如图37所示)生成HEX文件。用Proteus软件的ISIS的电路分析实物仿真系统软件仿真,如图38。其逐个和每组
19、彩灯亮程序、0.5S和5S控制程序分别如下面1、2、3、4。图 3-6 程序设计流程图图37 Keil C51 uVision2编程调试界面图38 Proteus电路分析实物仿真系统1 逐个彩灯亮控制程序:程序放在附录二CLR P1.0 清除P1.0,使其=0及为低电平,LED灯亮LCALL DELAY1 调用延时程序1SETB P1.0 置高电平P1.0,使其=1,LED灯灭CLR P1.1LCALL DELAY1SETB P1.1CLR P1.2LCALL DELAY1SETB P1.2CLR P1.3LCALL DELAY1SETB P1.3CLR P1.4LCALL DELAY1SET
20、B P1.4CLR P1.5LCALL DELAY1SETB P1.5CLR P1.6LCALL DELAY1SETB P1.6CLR P1.7LCALL DELAY1SETB P1.7CLR P2.1LCALL DELAY1SETB P2.1CLR P0.0LCALL DELAY1SETB P0.0CLR P0.1LCALL DELAY1SETB P0.1CLR P0.2LCALL DELAY1SETB P0.2CLR P0.3LCALL DELAY1SETB P0.3CLR P0.4LCALL DELAY1SETB P0.4CLR P0.5LCALL DELAY1SETB P0.5CLR
21、P0.6LCALL DELAY1SETB P0.6CLR P0.7LCALL DELAY1SETB P0.7CLR P2.0LCALL DELAY1SETB P2.0CLR P3.0LCALL DELAY1SETB P3.0CLR P3.1LCALL DELAY1SETB P3.1CLR P3.2LCALL DELAY1SETB P3.2CLR P3.3LCALL DELAY1SETB P3.3CLR P3.4LCALL DELAY1SETB P3.4CLR P3.5LCALL DELAY1SETB P3.5CLR P3.6LCALL DELAY1SETB P3.6CLR P3.7LCALL
22、DELAY1SETB P3.7CLR P2.2LCALL DELAY1SETB P2.22 每组彩灯亮控制程序:MOV P1,#0 把P1口的所有端子=0及都为低电平,P1口LED灯全亮CLR P2.1 清除P2.1,使其=0则LED灯亮LCALL DELAY2 调用系统内部延时程序2达到外部延时目的MOV P1,#0FFH 把P1口置为高电平及所有P1口LED灯全灭SETB P2.1 把P2.1口置高电平,LED灯灭MOV P3,#0CLR P2.2LCALL DELAY2MOV P3,#0FFHSETB P2.2MOV P0,#0CLR P2.0LCALL DELAY2MOV P0,#0F
23、FHSETB P2.03 0.5秒延时程序:time500ms: mov r5,#04h ;time500ms_1: mov r6,#0f4h ;time500ms_2: mov r7,#0ffh ; djnz r7,$ djnz r6,time500ms_2 djnz r5,time500ms_14 5秒延时程序:time5s: mov r5,#40 ;1001.401mstime5s_1: mov r6,#0f4h ;125.173mstime5s_2: mov r7,#0ffh ;511us djnz r7,$ djnz r6,time5s_2 djnz r5,time5s_1 ret第
24、4章仿真测试4.1仿真平台4.1.1 Keil uvison2编程调试器Keil C51 uVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件。集成开发环境Keil Software .Inc/Keil Elektronik GmbH基于AT89C51内核的微处理器软件为开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面到达了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。它集成了源程序编辑和程序调试于一体,支持汇编
25、、C、PL/M语言,是目前广泛的单片机开发软件。4.1.2 Proteus的介绍ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC
26、12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。4.2仿真结果电路按设定要求实现了所设计循环彩灯的点亮与熄灭。开始红色发光二极管逐个点亮0.5s,然后依次绿色、黄色发光二极管逐个点亮0.5s。再所有红色、黄色、绿色发光二极管依次
27、点亮5s,实现循环彩灯的点亮,完成设计任务。第5章制作与调试5.1系统总原理图5-1循环彩灯原理图5.2元件的选取在Mltisim7软件上画出原理图,并按图51图中所列元件进行购买。本设计是通过单片机采用内部振荡,外接石英晶振以及C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容C1和C2的值虽然没有严格要求,但电容的大小多少会影响振动频率的高低、振荡器的稳定性、起振的速度和温度稳定性等。外接石英晶振时,C1和C2一般取30PF10PF,在本此设计中选用22uf电容。其选用的石英晶振6MHZ。单片机的P0口及P2.1串接上拉电阻驱动和上拉,提高输出电平的作用。从而提高芯片输入信号的
28、噪声容限增强抗干扰能力(在本设计中采用的是1K电阻)。在各个端口接限流电阻防止电流过大烧坏发光二极管。由于发光二极管正常工作电流在1030mA范围内,正向电压降在1.53V范围内。由i=(5-Ui-us)R其中:Ui为LED正向导通电压(1.42.6V);Us为Ui为低电平时的电压;R为LED的限流电阻可知电阻可取大小为110,输出电流为22.7mA。所选元器件见附录一 元器件清单列表。5.3装配电路板1、确定电路图。2、根据电路原理图制作PCB板并确定线路终端插座,开关,面板的位置。3、完成电路布线图,所有线路必须按横平竖直的方向分布,严禁蛛网式分布,避免交叉,美观实用的原则。电源线配线时,
29、所用导线截面积应满足用电设备的最大输出功率。晶振尽量离芯片近点。4、按电路原理图的布局、布线连接元器件。5、锡焊 将焊件和焊料共同加热到锡焊温度,焊件不熔化的情况下,焊料融化并浸润焊件面形成焊件的连接。6、焊件必须具备的几点条件:(1)焊件必须具有良好的可焊性;(2)焊件表面必须保持清洁与干燥;(3)要使用合适的焊锡;(4)焊件要加热到适当的温度;(5)合适的焊接时间(避免烧坏元器件)。7、通电调试。所有导线分布到位确认无误后,方可通电调试。5.4整机调试5.4.1硬件调试(1)脱机调试 脱机调试是应用系统之前,先用万用表等工具,根据硬件电路原理图和装配图仔细检查样机线路的正确性,并核对元器件
30、的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路或其他信号线的短路。应用系统所用的电源,事先必须单独调试。调试好后,确认其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各个点电位是否正常。若有高压,联机时将损坏开发机。(2)联机调试 通过脱机调试可以排除一些明显的故障。但有些硬件故障需要通过联机调试才能发现和排除。联机前先检查一下系统之间电源、接地是否良好。如一切正常,即可打开电源。 对于工作不稳定的问题一
31、定要认真查出原因,加以排除。5.4.2软件调试软件调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM中的内容和IO口的状态、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各个模块通过后,可以把各功能联合起来进行整体程序综合调试。在这一阶段,若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,堆栈区域是否溢出,输入设备的状态是否正常等。单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序正确否。5.5实验现象系统按设计要求实现了所设计的全部任务。按下电源开关红色、绿色、黄色发光二极管三组中的每个灯流
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1