物联网、通信专业 单片机课程设计 可控流水灯设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮阴工学院
单片机课程设计报告
题目:可控流水灯设计
系(院): 计算机工程学院
专业:计算机科学与技术(物联网方向)班级:物联网1091
学号:1091205924
姓名:谢圣东
指导教师:戴峻峰,陈宏明
学年学期:2010 ~ 2011学年第 2 学期
2011年6月25 日
摘要
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。可控流水灯设计要求:对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。在设计中主要采用8051单片机作为主要控制元件;在单片机P2接上8个发光二极管作为流水指示灯,在P0口接上数码管显示编号,显示当前流水灯的流水模式,数码管采取共阳极接法;在P1口的4、5、6位上各接一个按键,一个按键进行方式选择,另外两个按键控制流水灯的流动的速度。在接上复位电路,时钟电路,电源电路以及一些必要的设计与电路,就能设计出一款可控流水灯。
关键词 8051单片机发光二极管数码管流水灯
目录
1 引言 (1)
2 课题综述 (1)
2.1 课题的来源 (1)
2.2 课题的目的与意义 (1)
2.3 面临的问题 (1)
3 系统设计 (1)
3.1 总体设计 (1)
3.2 硬件原理图 (2)
3.3 硬件焊接图 (3)
3.4 软件设计 (4)
4 代码编写 (4)
5 系统调试 (8)
总结 (9)
致谢 (10)
参考文献 (11)
1 引言
单片机课程设计主要是为了让我们增进对80C51单片机电路的的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握硬件设计过程、方法及实现,为以后实现应用打下基础。另外,通过简单课题的设计练习,使我们了解各项工程部分,达到巩固并运用所学知识解决实际问题的目的。
2 课题综述
2.1 课题的来源
当今社会,由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在各个领域,而流水灯在生活中的应用更是广泛,较为贴近生活。所以选择可控流水灯设计这个课题,也是对本学期学习单片机课程的加深与巩固。
2.2 课题的目的与意义
通过可控流水灯单片机课程的设计,即那个理论与实践联系在一起,在熟悉基本原理的前提下,提出自己的该方案,完成可控流水灯的设计。
2.3 面临的问题
面临的问题就是软件与硬件方面:软件方面,要实现按键对数码管的逻辑控制,在控制流水灯点亮;硬件方面,就是先要绘制protel原理图,在绘制原理图时要有电源电路,USB、串口电路,单片机还要有复位电路、时钟电路,以及三个按键要接在P1口,数码管接在P0口,LED灯接在P2口
3 系统设计
3.1 总体设计
使80C51芯片作为控制主体;三个按键中,第二个按键作为控制数码管显示以及相应的流水灯显示,其他两个按键作为控制流水灯流水速度;数码管显示流水灯显示方式,8个放光二极管作为LED显示流水灯。另外外接复位电路,电源电路,时钟电路,系统对外连接的串口用MAX232芯片完成。
模块区域图如下:
图3-1 模块区域图
3.2 硬件原理图
图3-2硬件原理图3.3 硬件焊接图
图3-3硬件焊接图1
图3-3硬件焊接图2
3.4 软件设计
软件设计部分的方法与函数嵌套、调用函数的方法。要实现按键控制数码管显示数字,还要在显示对应的数字时使8个显示相应的流水灯,所以在P1.5口出现一个低电平时就会被调到其他的函数区域执行,点亮数码管,是数码管显示出相应的数字,然后依然是通过调用函数的方法,使LED灯点亮,课题的要求是显示流水灯,要有一亮一灭的效果,所以在此函数里放一个循环,一个循环左移,这样也就产生了流水灯的效果,接着下面就是这样循环下去,最后按复位键复位。
4 代码编写
ORG 0000H
SJMP MAIN
MAIN: //MOV A,P1 ;读入P1口状态
//ANL A,#20H ;屏蔽无效位
MOV P0 ,#0FFH
LCALL WAIT
FS1: MOV A,#0F9H
MOV P0 ,A ;数码管显示数字1
MOV R2 ,#08H
MOV A,#0FEH
LOOP1: MOV P2 ,A
LCALL DELAY
RL A
DJNZ R2 ,LOOP1
LCALL WAIT
FS2: MOV A,#0A4H
MOV P0 ,A ;数码管显示数字2
MOV R2 ,#08H
MOV A,#0FEH
LOOP2: MOV P2 ,A
LCALL DELAY
RL A
RL A
DJNZ R2 ,LOOP2
LCALL WAIT
FS3: MOV A,#0B0H
MOV P0 ,A ;显示3
MOV R2 ,#08H
MOV A,#0FEH LOOP3: MOV P2 ,A
LCALL DELAY
RL A
RL A
RL A
DJNZ R2 ,LOOP3 LCALL WAIT
FS4: MOV A,#99H
MOV P0 ,A ;显示4
MOV R2 ,#08H
MOV A,#0FEH LOOP4: MOV P2 ,A
LCALL DELAY
RL A
RL A
RL A
RL A
DJNZ R2 ,LOOP4
LCALL WAIT
FS5: MOV A,#92H