关于电子类毕业论文.doc

上传人:坚持 文档编号:3650987 上传时间:2019-07-02 格式:DOC 页数:14 大小:85.50KB
下载 相关 举报
关于电子类毕业论文.doc_第1页
第1页 / 共14页
关于电子类毕业论文.doc_第2页
第2页 / 共14页
关于电子类毕业论文.doc_第3页
第3页 / 共14页
关于电子类毕业论文.doc_第4页
第4页 / 共14页
关于电子类毕业论文.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、江苏省江都职业教育中心校2010届应用电子技术专业毕业设计(论文)论文标题:LED 流水灯单片机的设计学院(系): 电信专业班级: 高职电子 0601学生姓名: 薛 丽指导教师:朱秋慧完成时间:2010 年 4 月 20 日目 录摘要1引言21 硬件组成22 软件编程32.1 位控法42.3 循环移位法52.3 查表法63 小结94 参考文献 105 致谢词 116 独撰声名 12LED流水灯的单片机设计作者:薛丽 指导教师:朱秋慧 (年级专业:2006 级应用电子技术)摘 要 本文介绍了交通灯及数码管的软硬件设计过程,重点给出了其软件编程的思想方法,以期给单片机学习者以启发。关键词 MCS5

2、1 单片机、LED 流水灯MCU Design LED water laAuthor: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 of thinking in order to inspi

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

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

5、应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图 1 所示。图 1 流水灯硬件原理图从原理图中可以看出,如果要让接在 P1.0 口的 LED1 亮起来,那么只要把 P1.0 口的电平 变为低电平就可以了; 相反,如果要接在 P1.0 口的 LED1 熄 灭,就要把 P1.0 口的电平变为高电平;同理,接在P1.1P1.7 口的其他 7 个 LED 的点亮和熄灭的方法同 LED1。因此,要实现流水灯功能,我们只要将发光二极管 LED1LED8 依次点亮、熄灭,8 只 LED 灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应

6、以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水 ”效果了。2 软件编程单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现 8 个 LED 灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。2.1位控法这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制 P1 口

7、的每 一个位输出高低电平,从而来控制相应 LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从 0000H 地址执行AJMP START ;跳转到主程序存放地址处ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为 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

8、熄灭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 点亮ACALL DELAY ;调用延时子程序SETB P1.4 ;P1.4 输出高电平,使 LED5 熄灭CLR P1.5 ;P1.5 输出低电平,使 LED6 点亮ACALL DELAY ;调用延时子程序SETB

9、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 输出高电平,使 LED8 熄灭ACALL DELAY ;调用延时子程序AJMP START ;8 个 LED 流了一遍后返回到 标号 START 处再循环DELAY: ;延 时子程序MOV R0,#255 ;延时一段时间D1: MOV R1,#255DJ

10、NZ R1,$DJNZ R0,D1RET ;子程序返回 END ;程序 结束2.2 循环移位法在上个程序中我们是逐个控制 P1 端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给 P1 口送一个数,这个数本身就让 P1.0 先低,其他位 为 高,然后延时一段时间 ,再让这个数据向高位移动,然后再输出至 P1 口,这样就实现“流水”效果啦。由于 8051系列单片机的指令中只有对累加器 ACC 中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到 ACC 中,让其移动,然后将 ACC 移动后的数据再 转送到 P1 口,

11、这样同样可以实现“ 流水”效果。具体编程如下所示,程序结构确实简单了很多。ORG 0000H ;单片机上电后从 0000H 地址执行AJMP START ;跳转到主程序存放地址处ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为 60HMOV A,#0FEH ;ACC 中先装入 LED1 亮的数据(二进制的 11111110)MOV P1,A ;将 ACC 的数据送 P1 口MOV R0,#7 ;将数据再移动 7 次就完成一个 8 位流水过程LOOP: RL A ;将 ACC 中的数据左移一位MOV P1,A ;把 ACC 移动过的数据送 p1

12、口显示ACALL DELAY ;调用延时子程序DJNZ R0,LOOP ;没有移动够 7 次继续移动AJMP START ;移动完 7 次后跳到开始重来,以达到循环流动效果DELAY: ;延 时子程序MOV R0,#255 ;延时一段时间D1: MOV R1,#255DJNZ R1,$DJNZ R0,D1RET ;子程序返回END ;程序结束2.3 查表法上面的两个程序都是比较简单的流水灯程序,“流水” 花样只能实现单一的“ 从左到右 ”流方式。运用 查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲

13、的流水灯效果。我们首先把要显示流水花样的数据建在一个以 TAB为标号的数据表中,然后通过查表指令“MOVC A,A+DPTR”把数据取到累加器 A 中,然后再送到 P1 口进行显示。具体源程序如下,TAB 标号处的数据表可以根据实现效果的要求任意修改。ORG 0000H ;单片机上电后从 0000H 地址执行AJMP START ;跳转到主程序存放地址处ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为 60HMOV DPTR,# TAB ;流水花样表首地址送 DPTRLOOP: CLR A ;累加器清零MOVC A,A+DPTR ;取数据表中的

14、值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: ;下面是流水花样数据表,用户可据要求任意 编写DB 11111110B ;二进制表示的流水花样数据,从低到高左移DB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 01111111B ;二进制表示的流水花样数据,从高到低右移DB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 11111101BDB 11111110BDB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据

展开阅读全文
相关资源
相关搜索

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

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。