(毕业设计论文)《LED流水灯单片机的设计》

上传人:zhuma****mei1 文档编号:54407370 上传时间:2018-09-12 格式:DOC 页数:14 大小:67KB
返回 下载 相关 举报
(毕业设计论文)《LED流水灯单片机的设计》_第1页
第1页 / 共14页
(毕业设计论文)《LED流水灯单片机的设计》_第2页
第2页 / 共14页
(毕业设计论文)《LED流水灯单片机的设计》_第3页
第3页 / 共14页
(毕业设计论文)《LED流水灯单片机的设计》_第4页
第4页 / 共14页
(毕业设计论文)《LED流水灯单片机的设计》_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《(毕业设计论文)《LED流水灯单片机的设计》》由会员分享,可在线阅读,更多相关《(毕业设计论文)《LED流水灯单片机的设计》(14页珍藏版)》请在金锄头文库上搜索。

1、精品 云南省师范大学云南省师范大学 20122012 届应用电子技术专业毕业设计(论文)届应用电子技术专业毕业设计(论文) 论文标题:论文标题:LED 流水灯单片机的设计流水灯单片机的设计 系(部): 专业班级: 电子电工一班 学生姓名: 指导教师: 完成时间:2012 年 4 月 23 日 精品 目目 录录 摘要1 引言2 1 硬件组成2 2 软件编程3 2.1 位控法4 2.3 循环移位法5 2.3 查表法6 3 小结9 4 参考文献 10 5 致谢词 11 6 独撰声名 12 精品 LED 流水灯的单片机设计 摘 要 本文介绍了交通灯及数码管的软硬件设计过程,重点给出了其软件编程 的思想

2、方法,以期给单片机学习者以启发。 关键词 MCS51 单片机、LED 流水灯 MCU Design LED water la Author:xuyang Tutor: mouxiaoling (grade and major:Grade 2008 Applied Electronic Technology) Abstract This article describes the traffic lights and digital hardware and software design process, Given its focus on software programming way

3、of thinking in order to inspire learners to the microcontroller Key words MCS51 Microcontroller、LED water lamp 引言引言 精品 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自 动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系 统,正以前所未见的速度被单片机智能控制系统所取代。单片机具 有体积小、功能强、成本低、应用面广等优点,可以说,智能控制 与自动控制的核心就是单片机。目前,一个学习与应用单片机的高 潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有 效方法

4、就是理论与实践并重,本文笔者用 AT89C51 单片机自制了一 款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学 者以启发,更快地成为单片机领域的优秀人才。 1 1 硬件硬件组组成成 按照单片机系统扩展与系统配置状况,单片机应用系统可 分为最小系统、最小功耗系统及典型系统等。AT89C51 单片机 是美国 ATMEL 公司生产的低电压、高性能 CMOS 8 位单片机, 具有丰富的内部资源:4kB 闪存、128BRAM、32 根 I/O 口线、 2 个 16 位定时/计数器、5 个向量两级中断结构、2 个全双工的 串行口,具有 4.255.50V 的电压工作范围和 024MHz 工作

5、频率,使用 AT89C51 单片机时无须外扩存储器。因此,本流水灯 实际上就是一个带有八个发光二极管的单片机最小应用系统,即为 由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个 单片机。其具体硬件组成如图 1 所示。 精品 图 1 流水灯硬件原理图 从原理图中可以看出,如果要让接在 P1.0 口的 LED1 亮起来,那么 只要把 P1.0 口的电平变为低电平就可以了;相反,如果要接在 P1.0 口的 LED1 熄灭,就要把 P1.0 口的电平变为高电平;同理,接在 P1.1P1.7 口的其他 7 个 LED 的点亮和熄灭的方法同 LED1。因此, 要实现流水灯功能,我们只要将发光二极

6、管 LED1LED8 依次点亮、 熄灭,8 只 LED 灯便会一亮一暗的做流水灯了。在此我们还应注意 一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很 短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就 看不到“流水”效果了。 2 软软件件编编程程 精品 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完 成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要 告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高 低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系 统中的一个重要的组成部分,是单片机学习的重点和难点。下面我 们以最简单的流水灯控制功能即实

7、现 8 个 LED 灯的循环点亮,来介 绍实现流水灯控制的几种软件编程方法。 2.12.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用 位指令控制 P1 口的每一个位输出高低电平,从而来控制相应 LED 灯的亮灭。程序如下: ORG 0000H ;单片机上电后从 0000H 地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为 60H CLR P1.0 ;P1.0 输出低电平,使 LED1 点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0 输出

8、高电平,使 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 ;P1.3 输出高电平,使 LED4 熄灭 CLR P1.4 ;P1.4 输出低电平,使 LED5 点亮

9、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 ;调用延时子程序 SETB P1.7 ;P1.7 输出高电平,使 LED

10、8 熄灭 ACALL DELAY ;调用延时子程序 AJMP START ;8 个 LED 流了一遍后返回到标号 START 处再循 环 DELAY: ;延时子程序 MOV R0,#255 ;延时一段时间 D1: MOV R1,#255 DJNZ R1,$ DJNZ R0,D1 RET ;子程序返回 END ;程序结束 2.22.2 循循环环移位法移位法 精品 在上个程序中我们是逐个控制 P1 端口的每个位来实现的,因此 程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结 构进行编程。我们在程序一开始就给 P1 口送一个数,这个数本身就 让 P1.0 先低,其他位为高,然后延时一段时间

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

12、中先装入 LED1 亮的数据(二进制的 11111110) MOV P1,A ;将 ACC 的数据送 P1 口 MOV R0,#7 ;将数据再移动 7 次就完成一个 8 位流水过程 LOOP: RL A ;将 ACC 中的数据左移一位 MOV P1,A ;把 ACC 移动过的数据送 p1 口显示 ACALL DELAY ;调用延时子程序 DJNZ R0,LOOP ;没有移动够 7 次继续移动 AJMP START ;移动完 7 次后跳到开始重来,以达到循环流动效果 DELAY: ;延时子程序 MOV R0,#255 ;延时一段时间 D1: MOV R1,#255 精品 DJNZ R1,$ DJ

13、NZ R0,D1 RET ;子程序返回 END ;程序结束 2.3 查查表法表法 上面的两个程序都是比较简单的流水灯程序,“流水”花样只能 实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序, 能够实现任意方式流水,而且流水花样无限,只要更改流水花样数 据表的流水数据就可以随意添加或改变流水花样,真正实现随心所 欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以 TAB 为标号的数据表中,然后通过查表指令“MOVC A,A+DPTR”把数据取到累加器 A 中,然后再送到 P1 口进行显 示。具体源程序如下,TAB 标号处的数据表可以根据实现效果的要 求任意修改。 ORG 0000

14、H ;单片机上电后从 0000H 地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为 60H MOV DPTR,# TAB ;流水花样表首地址送 DPTR LOOP: CLR A ;累加器清零 MOVC A,A+DPTR ;取数据表中的值 CJNE A,#0FFH,SHOW;检查流水结束标志 AJMP START ;所有花样流完,则从头开始重复流 SHOW: MOV P1,A ;将数据送到 P1 口 精品 ACALL DELAY ;调用延时子程序 INC DPTR ;取数据表指针指向下一数

15、据 AJMP LOOP ;继续查表取数据 DELAY: ;延时子程序 MOV R0,#255 ;延时一段时间 D1: MOV R1,#255 DJNZ R1,$ DJNZ R0,D1 RET ;子程序返回 TAB: ;下面是流水花样数据表,用户可据要求任意编写 DB 11111110B ;二进制表示的流水花样数据,从低到高左移 DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DB 01111111B ;二进制表示的流水花样数据,从高到低右移 DB 10111111B DB 11011111B DB 11101111B DB 11110111B DB 11111011B DB 11111101B DB 11111110B DB 11111101B 精品 DB 11111110B DB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据 DB 0EF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号