1节日彩灯的设计和制作【摘要】介绍了一种新型的彩灯控制系统的设计方法,以AT-89C51单片机作为主控核心,与按键、显示器等较少的辅助硬件电路相结合,利用软件实现对彩灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。【关键词】彩灯AT89C51单片机简易2第一章系统硬件电路的设计1.1方案论证与选择方案一:基于在系统可编程器件(ISP)来实现可编程现代彩灯的控制系统。用8种频率信号控制彩灯扫描速度,并可随时改变扫描速度,通过把4组彩灯在空间适当排列组合,可得各种花案效果。方案二:基于AT89C51单片机来实现对彩灯的控制。与按钮、74LS373芯片等模块组成核心主控制模块。在主控模块上设有1个按键和32个发光二极管,根据用户需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为0.5s的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。与方案一相比,方案二实现条件简单,操作方便,用材少,具有体积小、价格低、低能耗等优点。1.2系统功能分析该系统以AT89C51单片机作为主控核心,与按钮、74LS373芯片等模块组成核心主控制模块。在主控模块上设有1个按键和32个发光二极管,彩灯控制器与5V直流电相连接,经过通电,输出直流工作电压,主控模块单片机系统(节日彩灯控制器)提供5V工作电源。系统包括2大部分,即彩灯控制器(89C51主控模块)和32个发光二极管(管内模块)。前者是主控模块,具有按键、显示等功能,并利用89C51的P口输出控制信号;后者是受控模块,用来显示十种花样的。31.3系统结构框图1.4各功能部件单元电路设计1.4.1单片机的选择目前市场上的单片机,种类繁多,性能各异。所以,如何选择适合本系统的单片机就成为本设计首要解决的问题。通常,单片机的选择以性价比高、能够满足实际需要、常用等为标准。为此,本设计中的单片机选用AT89C51单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。主要特性:·8031CPU与MCS-51兼容·4K字节可编程FLASH存储器(寿命:1000写/擦循环)·全静态工作:0Hz-24KHz·三级程序存储器保密锁定·128*8位内部RAM·32条可编程I/O线·两个16位定时器/计数器·6个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路1.4.2单片机基本外围电路设计电源单片机地址锁存器显示模块模式切换4振荡电路:XTAL1和XTAL2分别为反向放大振荡器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。我们采用的是12MHz的晶振,C1,C2选择为30pF,机器周期为1us。复位电路:当振荡器复位电路复位器件时,要保持RST脚两个机器周期的高电平时间。在RST引脚出现高电平时实现复位和内部初始化。在振荡器运行的情况下,要实现复位操作必须使RST引脚至少保持两个机器周期(24个振荡周期)的高电平。复位的实现通常可以采用开机上电复位和外部手动复位两种方式,在本设计中采用的是外部手动复位。5在该复位电路中,C采用10uf,R采用8.2K,时间常数为。只要Vcc的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。1.4.3彩灯显示单元电路该显示模块设计主要器件有发光二极管(红、绿、黄)、74LS373芯片等。根据实际应用彩灯长度需要,可将不同数量的该发光二极管实现级连,组成一个完整的彩灯。考虑到功率损耗,模块之间接口处用信号正向74LS373连接。每个模块上均匀分布3种颜色灯,在实际制作PCB时采用红、绿、蓝3色互隔焊接方式,在电路板上把发光管按顺序1个(红)、1个(绿)、1个(黄)、每8个为一组,依次均匀焊在板上成正方形。为了得到更多的花样模式效果,可以使红绿黄3种灯从前往后驱动点亮闪烁,根据花样显示,这样会具有很好的动感视觉效果。由于节日彩灯系统所设计的二极管较多,所需译码器需要多线输出,因此选用芯片74LS373来控制其位口译码输出。1.4.4彩灯调整控制单元电路设计本设计通过按键来对彩灯进行调整和控制。而按键信号的获取方法采用中断扫描法。由于本设计的结构较简单,所以只设置了两个按钮,一个是在该显示模块里用来对彩灯花型进行切换的切换按钮,另一个是在复位模块里用到了复位按钮。分别接在单片机的RESET、P3.2口,经上拉电阻接在+5V电源Vcc,另一端接地。1.4.5电源电路电源电路原理图:桥式整流电路克服了全波整流电路要求变压器次级有中心抽头和二极管承受反压大的缺点,但多用了两只二极管。在半导体器件发展快,成本较低的今天,此缺点并不突出,因而桥式整流电路在实际中应用较为广泛。桥式整流电路:6由二极管的单向导电性,不难得出桥式整流电路的工作波形。当u2=(2Usinwt)处于正半周时,图1.4所示电路中的D1电位高于D3,二极管D1和D3处于正向偏置而导通,D2,D4则因反偏而截止。电源经D1,D3向负载供电,输出一个与u2正半波相同的电压,同理,当u2为负半周时,D3电位高于D1电位,D1,D3转为反偏而截止,D2与D4则因正偏而导通。电源经D2,D4向负载供电,此时,u0=-u2,其波形与u2的正半波相同。整流电路是将交流电变成直流电的一种电路,但其输出的直流电的脉动成分较大,而一般电子设备所需直流电源的脉动系数要求小于0.01.故整流输出的电压必须采取一定的措施.尽量降低输出电压中的脉动成分,同时要尽量保存输出电压中的直流成分,使输出电压接近于较理想的直流电,这样的电路就是直流电源中的滤波电路。71.5系统电路原理图第二章系统软件设计8系统中软件可以分为主程序和中断服务子程序,延时程序。主程序除了调用各种子模式子程序,调用二极管显示子程序和延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。主程序流程如图所示。亮灯模式子程序可以编写若干(n种),只要控制好各色灯触发和熄灭时刻灯效果。模式程序流程如图所示。就可以组合成各种亮2.1程序设计步骤1.根据设计要求,确定算法;2.根据所选择的算法花出流程图;3.根据流程图编写程序。2.2流程图的设计主程序流程图:中断程序流程图:开始初始化为“1”读花型编号1-10显示花型中断开始花型编号+1,当编号为10后显示9第三章系统安装与调试一、电路板的制作1.电路版设计的先期工作1.1利用原理图设计工具绘制原理图,并且生成对应的网络表。1.2手工更改网络表将元件的固定用脚等原理图上没有的焊盘定义到与它相通的网络上,没任何物理连接的可定义到地或保护地等。将原理图和PCB封装库中引脚名称不一致的器件引脚名称改成和PCB封装库中的一致,特别是二、三极管等。2.画出自非标准器件的封装库将所画的器件都放入一个自己建立的PCB库专用设计文件。3.设置PCB设计环境和绘制印刷电路的版框含中间的镂空等注意:在绘制电路版地边框前,一定要将当前层设置成KeepOut层,即禁止布线层。4.打开所有要用到的PCB库文件后,调入网络表文件和修改零件封装在原理图设计的过程中,ERC检查不会涉及到零件的封装问题。因此,原理图设计时,零件的封装可能被遗忘,在引进网络表时可以根据设计情况来修改或补充零件的封装。也可直接在PCB内人工生成网络表,并且指定零件封装。5.布置零件封装的位置Protel99可以进行自动布局,也可以进行手动布局。布线的关键是布局,多数设计者采用手动布局的形式。用鼠标选中一个元件,按住鼠标左键不放,拖住这个元件到达目的地,放开左键,将该元件固定。使用自动选择方式收集相似封装的元件,然后旋转、展开和整理成组,移动到板上所需位置上了.当简易的布局完成后,使用自动对齐方式整齐地展开或缩紧一组封装相似的元件。提示:在自动选择时,使用Shift+X或Y和Ctrl+X或Y可展开和缩紧选定组件的X、Y方向。注意:零件布局,应当从机械结构散热、电磁干扰、将来布线的方便性等方面综合考虑。先布置与机械尺寸有关的器件,并锁定这些器件,然后是大的占位置的器件和电路的核心元件,再是外围的小元件。6.根据情况再作适当调整然后将全部器件锁定10将过小的焊盘过孔改大,将所有固定螺丝孔焊盘的网络定义到地或保护地等。放好后用VIEW3D功能察看一下实际效果,存盘。7.布线规则设置布线规则是设置布线的各个规范(象使用层面、各组线宽、过孔间距、布线的拓朴结构等部分规则,可通过Design-Rules的Menu处从其它板导出后,再导入这块板)。8.自动布线和手工调整1点击菜单命令AutoRoute/Setup对自动布线功能进行设置选中除了AddTestpoints以外的所有项,特别是选中其中的LockAllPre-Route选项,RoutingGrid可选1mil等。2点击菜单命令AutoRoute/All开始自动布线3对布线进行手工初步调整9.切换到单层显示模式下(点击菜单命令Tools/Preferences,选中对话框中Display栏的SingleLayerMode)将每个布线层的线拉整齐和美观。最后取消单层显示模式,存盘。10.放置覆铜区将设计规则里的安全间距暂时改为0.5-1mm并清除错误标记,选Place-PolygonPlane在各布线层放置地线网络的覆铜(尽量用八角形,而不是用圆弧来包裹焊盘。最终要转成DOS格式文件的话,一定要选择用八角形)。相应放置其余几个布线层的覆铜,双击覆铜区域内任一点并选择一个覆铜后,直接点OK,再点Yes便可更新这个覆铜。几个覆铜多次反复几次直到每个覆铜层都较满为止。将设计规则里的安全间距改回原值。11.最后再做一次DRC选择其中ClearanceConstraintsMax/MinWidthConstraintsShortCircuitConstraints和Un-RoutedNetsConstraints这几项,按RunDRC钮,有错则改正。全部正确后存盘。二、安装安装元件时,相互独立的模块,如果没有把握保证它们工作正常时,最好不要全部都11装上,而是一部分一部分的装上(对于比较小的电路,可以一次全部装上),这样容易确定故障范围,免得到时遇到问题时,无从下手。一般来说,可以把电源部分先装好,然后就上电检测电源输出电压是否正常。接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下。以便马上检查出一问题的模块。74LS373的连接:由于74LS373具有输出允许控制,因此它既可以用作扩展输出口,又可以用作扩展输出口。将它的控制端接高电平,使之一直处于锁存允许。在执行对外部数据存储器读操作指令时将数据读入CPU。根据74LS373的引脚图,两个74LS373芯片的输入端分别与AT89C51的P1口和P2口连接。输出端与发光二级管连接。1号脚好10号脚并联接地。20号脚接+5V电源。74LS373的引脚图:AT89C51的连接:根据AT89C51的引脚图,40号脚VCC与+5V电源连接,20号脚VSS与31号脚并联接地。9号脚RST与复位模块连接,当振荡器工作时,在此引脚上出现两个机器周期以上的高电平将使单片机复位。19号脚XTAL1接外部晶体好微调电容的一个引脚。在单片机内部,它是一个反相放大器的输入端,在这个放大器构成了片内振荡器。18号脚XTAL2接外部晶体好微调电容的另一个引脚。在单片机内部,它是反相放大器的输出端。其P1口与一个74LS373的输入端连接,P2口与另一个74LS373的输入端连接。AT89C51的引脚图:12发