课程设计报告广告灯(共8页).doc
精选优质文档-倾情为你奉上第二章 广告灯在现在诸多的娱乐场所、理发店、宾馆、饭店、公司等的门外,都可以看到各式各样的广告流水灯。所谓“广告流水灯”,就是将一系列的有颜色的广告灯串联接在一起,然后令这些灯按一定的次序逐个或者几个的一次点亮和熄灭。由于各灯点亮和熄灭,产生的效果就像流动的水一样,因此,就称这类广告灯为“广告流水灯”。生活中广告流水灯的形式和点亮的次序是多种多样的。有单一颜色的几个灯按固定的次序来点亮的,有多个不同颜色的灯构成某一图案依次点亮的,也有多排广告灯按多种组合好的次序循环点亮的等。我们设计的广告流水灯,就是这些广告灯中的类型。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用AT89C51单片机自制了一款简易的广告流水灯。1设计目的、要求、总框图与方案1.1设计目的本设计以AT89S51单片机为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89S51单片机控制16个发光二极管发光,实现亮点从高到低位,从左到右,从单到双的循环移动。通过PROTEL软件设计、仿真,并能从中掌握通过软件控制发光二极管的思路和技巧。这次设计重点就在于利用单片机的知识去控制系统的运行。1.2设计要求按1-8、8-1的顺序依次逐个点亮,任意时刻只有一个灯点亮;循环点亮1次后灯全灭后,让所有灯同时闪烁3次;灯全亮,然后按1-8的顺序依次熄灭一个灯,直到全灭;再按8-1的顺序依次点亮,直到所有灯全亮; 灯全灭,同时从两头开始,依次各点亮一个灯并熄灭此前点亮的灯,即1和8亮,熄灭后2和7亮,依此类推,最后灯全灭; 所有偶数灯同时闪烁3次;灯全灭,同时从两头开始,依次各点亮一个灯,直到所有灯全亮后,同时按8-1、2-7的顺序依次各熄灭一个灯,直到灯全灭;所有奇数灯同时闪烁3次; 重新按步骤走1.3设计总框图与方案单片机显 示图1.1系统框图本次课程设计是用流水灯的变化来表示不同的效果。主体选用AT89S51单片机使用多个发光二极管,通过编程来实现“流水灯”的花样变化。2流程图与程序开 始设置初值启动定时器亮灯左移溢出中断服务程序R2为0亮灯右移R2为0不亮灯左移R0为0不亮灯右移R0为0查表进行其它花样变化A=01是否是否是否否否是是是否 图3.1总流程图3、原理硬件图和源程序3.1设计采用元件在这次课程设计中要用到的元器件有AT89S51模块一块5v电源一个黄色LED8个300电阻8个3.2系统电路图 源程序:MM: MOV P2,#0AH MOV A,#0feH MOV R0,#0LOOP1: MOV P0,A ;按1-8、8-1的顺序依次逐个点亮,任意时刻只有一个灯点亮LCALL DELAY1SRL AINC R0CJNE R0,#8,LOOP1MOV R0,#0MOV P0,#0FFH;循环点亮1次后灯全灭后,让所有灯同时闪烁3次LCALL DELAY1SLOOP2:MOV P0,#0 INC R0LCALL DELAY05SMOV P0,#0FFHLCALL DELAY05SCJNE R0,#3,LOOP2MOV R0,#0;灯全亮,然后按1-8的顺序依次熄灭一个灯,直到全灭MOV A,#01HMOV P0,#00HLOOP3:LCALL DELAY1SSETB CMOV P0,ARLC AINC R0CJNE R0,#8,LOOP3MOV R0,#0;再按8-1的顺序依次点亮,直到所有灯全亮MOV P0,#0FFHLCALL DELAY1SCLR CMOV A,#07FHLOOP4:MOV P0,ALCALL DELAY1SRRC AINC R0CJNE R0,#8,LOOP4 MOV P0,#0FFH;灯全灭,同时从两头开始,依次各点亮一个灯并熄灭此前点亮 LCALL DELAY1S ;的灯,即1和8亮,熄灭后2和7亮,依此类推,最后灯全灭; MOV 20H,#7EHMOV P0,20HLCALL DELAY1SMOV A,#0BDHMOV P0,ALCALL DELAY1SSWAP AMOV P0,ALCALL DELAY1SMOV A,20HSWAP AMOV P0,ALCALL DELAY1SMOV P0,#0FFH;所有偶数灯同时闪烁3次LCALL DELAY1SMOV R0,#0LOOP5:MOV P0,#55HLCALL DELAY05SMOV P0,#0FFHLCALL DELAY05SINC R0CJNE R0,#3,LOOP5MOV P0,#0FFH;灯全灭,同时从两头开始,依次各点亮一个灯,直到所有灯全亮后LCALL DELAY1S;8-1、2-7的顺序依次各熄灭一个灯,直到灯全灭MOV P0,#7EHPUSH P0LCALL DELAY1SMOV P0,#3CHLCALL DELAY1SMOV P0,#18HLCALL DELAY1SMOV P0,#0LCALL DELAY1SMOV P0,#81HLCALL DELAY1SMOV P0,#0C3HLCALL DELAY1SMOV P0,#0E7HLCALL DELAY1SMOV P0,#0FFHLCALL DELAY1SMOV R0,#0;所有奇数灯同时闪烁3次LOOP6:MOV P0,#0AAHLCALL DELAY05SMOV P0,#0FFHLCALL DELAY05SINC R0CJNE R0,#3,LOOP6MOV P0,#0FFH LJMP MMDELAY1S:MOV R5,#100 DL0:MOV R6,#172 DL1:MOV R7,#10 DL2:DJNZ R7,DL2 DJNZ R6,DL1 DJNZ R5,DL0 RET DELAY05S:MOV R5,#75 DL3:MOV R6,#100 DL4:MOV R7,#10 DL5:DJNZ R7,DL5 DJNZ R6,DL4 DJNZ R5,DL3 RET END专心-专注-专业