物联网、通信专业 单片机课程设计 可控流水灯设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档