基于单片机的流水灯设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的流水灯设计

学院:

专业:

指导老师:

姓名:

班级:

学号:

年月日

摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

This age is a new technology emerge in endlessly era, in the electronic field especially automation intelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced by microcontroller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the microcontroller.

关键词:LED 单片机控制系统流水灯

目录

1.前言

1.1 设计概述 (2)

1.2 设计主要功能 (2)

2. 硬件组成

2.1 80C51单片计算机的组成原理 (3)

2.组成框图及内部总体结构 (3)

2.寄存器和存储器………………………………………………………

(4)

2.1.3 单片机各口及其负载能力、接口要求 (5)

2.1.4 MCS—51单片机的引脚功能 (8)

3. 软件编程

4. 结语

5. 课程设计体会

6 参考文献

前言

学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

硬件组成

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O 口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。

图1 流水灯硬件原理图

从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

软件编程

单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。

3.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输出高电平,使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熄灭

相关文档
最新文档