LED流水灯的设计与制作.doc

上传人:时光煮雨 文档编号:14892467 上传时间:2022-02-23 格式:DOC 页数:10 大小:137KB
返回 下载 相关 举报
LED流水灯的设计与制作.doc_第1页
第1页 / 共10页
LED流水灯的设计与制作.doc_第2页
第2页 / 共10页
LED流水灯的设计与制作.doc_第3页
第3页 / 共10页
LED流水灯的设计与制作.doc_第4页
第4页 / 共10页
LED流水灯的设计与制作.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《LED流水灯的设计与制作.doc》由会员分享,可在线阅读,更多相关《LED流水灯的设计与制作.doc(10页珍藏版)》请在三一文库上搜索。

1、摘 要本设计是一种基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C52单片机作为主控核心,由编程实现亮灯循环模式。由在显示模块上有8个LED彩灯,根据用户需要可以编写若干种亮灯模式. 本系统具有体积小、硬件少、电路结构简单及容易操作和阅读等优点。该LED彩灯控制器实际应用效果较好,亮灯模式多。与其他LED彩灯相比,具有体积小、价格低、低能耗等优点。在能源比较匮乏的今天,彩灯的循环控制在显示方面更表现出一种节约能源的魅力.这将使彩灯具有更广阔的发展天地。关键字:AT89C51 循环 LED彩灯AbstractThe design is a project of

2、the lantern control which based on a AT89c52 single-chip to achieve the control of the LED lanterns.The master core of the design is AT89c52 single-chip,the display module is formed with 8LEDS,the programme achieve the circle mode of the colour LEDS.The 8 LEDS on the display module can be compiled a

3、 lot of modes based on the needs of the users。This system has some excellences of small bulk,few hardware,simple circuit frame,easy handle and read.The practice appliance effect of this colour lantern control is better and lots of modes of the colour lantern.This LED has some excellences of small bu

4、lk,low price, low energy consume compared with else LEDS.In lack energy today,the LED circle mode comports a charm of the economying energy on the display.This will lets LED has more amplitude heaven and earth to develop.Keywords: AT89C51 Circulate LED Lantern目 录绪论- 31 LED流水灯方案设计与选择- 31、1 设计要求- 31、2

5、 系统功能- 31、3 方案选择- 32 LED流水灯设计过程- 4 2、1 元件选取- 4 2、2 硬件设计- 4 2、2、1 单片机介绍- 4 2、2、2 LED流水灯总图- 5 2、3 软件设计- 6 2、3、1 编程介绍- 6 2、3、2 编程选择- 10参考文献- 11绪 论当今时代足一个新技术层出不穷的时代,在电子领域尤其足自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。1 LED流水灯方案设计与选择1、1 设计要求本次毕业设计

6、要求设计一个LED流水灯,其设计要求如下:(1)、用8个发光二极管作为显示电路。(2)、实现LED动态显示。(3)、能连续循环显示。1、2 系统功能LED流水灯可直接与220 V交流市电相连接,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供12 V工作电源,另一方面为主控模块单片机系统提供5 V工作电源。整个系统工作由软件程序控制运行。上电后,LED流水灯按程序设计好的模式进行显示,由全灭按程序显示全都熄灭为一个周期。然后循环继续工作。1、3 方案选择可只采用AT89C51作为主控芯片,将P1分别接8个LED实现显示,可用C语言或者汇编语言编程实现。方案框图如图:电源AT89C

7、51LED显示2 LED流水灯设计过程2、1 元件选取名称规格型号数量 微处理器 AT89C511电阻若干电容若干晶振11.0592MHZ1LED8 2、2 硬件设计 2、2、1 单片机介绍图3 AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC 电源电压。GND 接地。RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P1口 8位双向I/O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上

8、拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口 引脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口。2、2、2 LED流水灯总图 按照单片饥系统扩建和系统配置状况,单片机应用系统可分为最小系统

9、、最小功耗系统及典型系统等。AT89C51单片机是美国 ATMEI 公司生产的低电 、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根IO口线、2个16位定时计数器、5个向量阴级中断结构、2个全I双工的串行、具有4.255.50V的电压工作范同和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图所示。图:流水灯硬件原理图从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1

10、.0的电平变为低电平就可以了;相反,如果要接在P10口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接 P11P17口的其他7个LED的点亮和熄灭的方法同LED1。因此, 实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此,我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。2、3 软件编程 2、3、1 编程介绍单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单

11、片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 (1) 位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG 0000H ; 单片机上电后从O000H地址执行AJMP START ; 跳转到主程序存放地址处ORG 0030H : 设置主程序开始地址START:MOV SP,#60H ; 设

12、置堆栈起始地址为60HCLR P1.0 ; P1.0输出低电平,使LED1点亮ACALL DELAY ; 调用延时子程序SETB P1.0; P1.0输出高电平,使LED1熄灭CLR P1.1; P1.1输出低电平,使LED2点亮ACALL DELAY ; 调用延时子程序SETB P1.1 ; P1.1输出高电平,使LED2熄灭CLR P1.2 ; P1.2输出低电平,使LED3点亮ACALL DELAY ;调用延时子程序SETB P1.2 ; P1.2输出高电平,使LED3熄灭CLR P1.3 ; P1.3输出低电平,使LED4点亮ACALL DELAY ;调用延时子程序SETB P1.3

13、; P1.3输出高电平,使LED4熄灭CLR P1.4 ; P1.4输出低电平,使LED5点亮ACALL DELAY ;调用延时子程序SETB P1.4 ; P1.4输出高电平,使LED5熄灭CLR P1.5 ; P1.5输出低电平,使LED6点亮ACALL DELAY ;调用延时子程序SETB P1.5 ; P1.5输出高电平,使LED6熄灭CLR P1.6 ; P1.6输出低电平,使LED7点亮ACALL DELAY ;调用延时子程序SETB P1.6 ; P1.6输出高电平,使LED7熄灭CLR P1.7 ; P1.7输出低电平,使LED8点亮ACALL DELAY ;调用延时子程序SE

14、TB P1.7; P1.7输出高电平,使LED8熄灭ACALL DELAY ; 调用延时子程序AJMP START; 8个LED流了一遍后返回到标号START处再循环DELAY: 延时子程序MOV RO,#255 ;延时一段时间DI: MOV RI,#255DJNZ Rl,8DJNZ RO,DIRET ; 子程序返回END ; 程序结束(2) 循环移位法 在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采朋循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动

15、,然后再输出至P1口,这样就实现“流水”效果。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。具体编程如下所示,程序结构确实简单了很多。ORG 0000H;单片机上电后从O000H地址执行AJMP START ;跳转到主程序放地址处ORG 0030H;设置主程序开始地址START:MOV SP,#60H ;设置堆栈起始地址为60HMOV A,#OFEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV Pl,A ;将ACC的

16、数据送P1口MOV R0,#7 ;将数据再移动7次就完成一个8位流水过程LOOP:RL A;将ACC中的数据左移一位MOV P1,A ;把ACC移动过的数据送P1口显示ACALL DELAY;调用延时子程序DJNZ RO,LOOP ;没有移动够7次继续移动AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果DELAY: 延时子程序M0V R0,#255; 延时一段时间DI: MOV R1#255DJNZ Rl,$DJNZ R0,DIRET ;子程序返回END ;程序结束 (3) 查表法 上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查

17、表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVCA,A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。 ORG 0000H ;单片机上电后从0000H地址执行AJMP START ;跳转到主程序存放地址处ORG 0030H ;设置主程序开始地址START:MOV SP,#60H ;设置堆栈起始地址为60HMOV DPTR

18、,# TAB ;流水花样表首地址送DPTRLOOP: CLR A ;累加器清零MOVC A,A+DPTR ;取数据表中的值CJNE A,#0FFH,SHOW;检查流水结束标志AJMP START ;所有花样流完,则从头开始重复流SHOW: MOV P1,A ;将数据送到P1口ACALL DELAY ;调用延时子程序INC DPTR ;取数据表指针指向下一数据AJMP LOOP ;继续查表取数据DELAY: ;延时子程序MOV R0,#255 ;延时一段时间D1: MOV R1,#255DJNZ R1,$DJNZ R0,D1RET ;子程序返回TAB ;下面是流水花样数据表,用户可据要求任意编写

19、DB 11111110B ;二进制表示的流水花样数据,从低到高左移DB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 01111111B ;二进制表示的流水花样数据,从高到低右移DB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据DB 0EFH,0DFH,0BFH,7FHDB 7FH,0

20、BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 0FFH ;流水花样结束标志0FFHEND ;程序结束2、3、2 编程选择 要想能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果,所以我们选择查表法。我们只要把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVCA,A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示即可。 当程序编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,最后连接好电路通电,我们就看到LED1LED8的“流水”效果了。参考文献1康华光.电子技术基础数电部分(第四版).北京:高等教育出版社,1998(7) 2蔡明生.电子设计 .北京:高等教育出版社,2004(1)3李维.数字电路设计及实验 .大连:大连理工出版社,2008(9)4梁宗善.电子技术基础课程设计.武汉:华中理工大学出版社,2009(5)5刘法治.常用电子元器件及典型芯片应用技术.北京:机械工业出版社,2007(2)9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1