您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页基于51单片机的三层电梯系统设计毕业论

基于51单片机的三层电梯系统设计毕业论

来源:尚车旅游网
精选文档

基于51单片机的三层电梯系统设计

专业班级:电子信息科学与技术姓 名:指导教师: 1班 李 强 金国华老师

信息科学技术学院

欢迎下载,希望能帮到您

精选文档

摘 要

本文设计了一款基于单片机(AT89C51)的三层电梯的模拟控制系统。以51单片机为核心,由7段显示数码管来作为电梯楼层和电梯上下行状态的显示部分,数码管显示“p”则说明电梯运行状态向上,显示“d”则说明电梯运行状态向下。由按键来分别表示电梯内外的各个功能按钮。

本设计主要是利用了单片机:灵活性大、通用性强以及易于实现复杂控制的特点,使系统在达到设计目的的同时显得结构简单,操作方便,容易理解。文中首先是针对设计的目的选择出比较合适的设计方案,并且对AT89C51单片机和7段显示数码管进行了简要介绍,然后将本次设计的硬件电路分为单片机控制模块、显示模块、按键检测模块三个大的模块。在进行了电路的连接之后,根据电路的连接就各个模块分别编写程序再由主程序统一衔接在一起。通过调试运行,所设计的三层电梯系统基本满足设计要求。

关键词:AT89C51单片机;电梯控制;数码显示

欢迎下载,希望能帮到您

精选文档

Abstract

欢迎下载,希望能帮到您

精选文档

In this paper,we designed a three elevator analog control system which is based on a microcontroller(AT89C51).The microcontroller as the core,and 7-segment digital tube display as the elevator floor and the elevator up and down the line status display section.When the elevator running up the digital display \"p\" and when the elevator running down the digital display \"d\" .Various function buttons inside or outside the elevator are represented by buttons.

This design is mainly the use of the characteristics of SCM:flexibility,versatility and easy to implement complex control features.So that the system is not only designed to meet the design requirements but also seem simple structure,easy to operate and understand.First of all,we choose the appropriate design and then a brief description of AT89C51 microcontroller and 7-segment display digital tube.Then in this design the hardware circuit is divided into three large modules:single-chip control module, display module, key detection module .According to the connection of the circuit ,we write programs on each module separately and then together in unity by the main program.By commissioning,the system is basically meet the requirement of the design.

Key word:AT89C51Microcontroller;Elevator control;Digital display

欢迎下载,希望能帮到您

精选文档

欢迎下载,希望能帮到您

精选文档

目 录

第1章 绪论 .................................................................................................................................... 1

1.1 课题的背景及意义 ........................................................................................................... 1 1.2 设计的目的要求 ............................................................................................................... 1 1.3 方案选择设计 ................................................................................................................... 2

1.3.1 按键模块方案选择 ................................................................................................ 2 1.3.2 AT89C51单片机控制模块供电方案选择 ............................................................. 2 1.3.3 显示模块方案选择 ................................................................................................ 2

第2章 电子元件 ............................................................................................................................ 4

2.1 AT89C51单片机 ............................................................................................................... 4

2.1.1 AT89C51单片机硬件 ............................................................................................ 4 2.1.2 AT89C51单片机中断系统................................................................................... 11 2.1.3 AT89C51单片机定时器/计数器 ......................................................................... 13 2.1.4 串行通信 .............................................................................................................. 16 2.1.5 AT89C51单片机的发展和未来 ........................................................................... 17 2.2 7段显示数码管 ............................................................................................................... 18

2.2.1 7段数码管的结构和原理 .................................................................................... 18 2.2.2 7段数码管的驱动方法 ........................................................................................ 19

第3章 硬件电路设计 .................................................................................................................. 21

3.1 AT89C51单片机控制模块 ............................................................................................. 21

3.1.1 电源电路 .............................................................................................................. 21 3.1.2 复位电路 .............................................................................................................. 21 3.1.3 时钟电路 .............................................................................................................. 22 3.2 按键模块 ......................................................................................................................... 22 3.3 显示模块 ......................................................................................................................... 23 第4章 软件程序设计 .................................................................................................................. 24

4.1 主程序模块 ..................................................................................................................... 24 4.2 按键检测模块 ................................................................................................................. 25 4.3 显示模块 ......................................................................................................................... 25 第5章 仿真及硬件实现 .............................................................................................................. 27

5.1 仿真 ................................................................................................................................. 27

5.1.1 仿真软件 .............................................................................................................. 27

欢迎下载,希望能帮到您

精选文档

5.1.2 仿真结果 .............................................................................................................. 29 5.2 硬件实现 ......................................................................................................................... 30

5.2.1 实物制作 .............................................................................................................. 31 5.2.2 系统调试 .............................................................................................................. 31

总 结 ........................................................................................................................................ 33 参考文献 ........................................................................................................................................ 34 致 谢 ........................................................................................................................................ 35

欢迎下载,希望能帮到您

精选文档

基于单片机的三层电梯系统设计

第1章 绪论

现代社会科学的飞速发展,给人类生活带来了极大的便利。微型计算机的出现使计算机在逻辑处理和工业控制等方面的非凡能力得到了更好的体现。尤其是其非凡的嵌入能力对于满足嵌入式应用需求具有独特的优势。

1.1 课题的背景及意义

随着城市建设的不断发展,以及农村的城镇化,楼群建筑不断增多,电梯在当今社会的生活中有着广泛的应用。电梯作为楼群建筑中垂直运行的交通工具已与人们的日常生活密不可分。 实际上电梯是根据外部呼叫信号(呼梯信号)以及自身控制规律等运行的,而呼叫是随机的,电梯实际上是一个人机交互式的控制系统,单纯用顺序控制或逻辑控制是不能满足控制要求的,因此,大部分电梯控制系统都采用随机逻辑方式控制[2]。

在目前广泛使用的电梯控制系统中,绝大多数为继电器控制型,所有的逻辑及控制关系完全由诸多继电器互相配合来完成,该控制系统的缺点是:(1)随着楼层的增高,使用继电器的数量越来越多,造价和体积也越来越大;(2)继电器这种触点式的电控元器件不宜长时间频繁工作,因而采用在电梯系统当中常发生触电表面 烧结、控制失灵的故障[4]。

因此我们设计一个3层自动电梯模拟升降控制系统,通过乘客的自行按键达到升降功能。以单片机为核心,再辅以适当的硬件电路和控制程序来检测和控制整个电梯的信号,具有成本低、通用性强、灵活性大、扩展容易及易于实现复杂控制等优点。

1.2 设计的目的要求

在目前设计一个自动电梯模拟升降控制系统,通过乘客的自行按键达到电梯的升降功能。结合硬件与软件对应。P2口与键盘对应连接,数码管采用并行输入方式,键盘从低位到高位分别为一层按键,二层按键,三层按键,一层上升按键,二层上升按键,二层下降按键,三层下降按键.P1.0与数码管的时钟输入端相连,P1.1与数码管的串行口相连,用来显示电梯的上升下降和当前所

欢迎下载,希望能帮到您

精选文档

在楼层,电梯门是否开启三种状态,p表示上升,d表示下降,1,2,3表示当前楼层,如果数码管闪烁,表示电梯门开启,反之则关断。在电梯处于一楼的时候,先按3楼,再按2楼可以实现电梯先停到2楼再停到三楼的目的,这也是对中断优先级判断的实现。

欢迎下载,希望能帮到您

精选文档

1.3 方案选择设计

硬件部分的设计主要分为三个部分:按键模块、AT89C51单片机控制模块、显示模块[6]-[11]。

按 键 模 块 AT89C51单片机控制模块 显 示 模 块

图1.1 设计模块组成图

如图1.1,就是本次设计硬件部分的大概结构框图。 1.3.1 按键模块方案选择

按键模块可以选择的有两种,一是独立按键,二是矩阵按键。主要考虑到本次设计所需要的按键数目不多,所以考虑使用独立按键来组成按键模块。 1.3.2 AT89C51单片机控制模块供电方案选择

供电方式有三种:一是电池盒供电,二是USB供电,三是稳压电源供电。由于USB供电和稳压电源携带都不是很方便,所以本次设计选择的供电方式是电池盒供电。

1.3.3 显示模块方案选择

显示模块可以选择的方案有三种:一是7段显示数码管、二是液晶显示、三是点阵显示。7段显示数码管在显示数字上面方便快捷,程序编写上相对简单很多,并且在实验室容易得到。液晶显示在对信息的显示上可以更全面,但程序编写上较为麻烦。点阵显示,在显示数字以及上下行状态上都很方便,但在编写程序以及在实物制作上难度都较大。综合上述考虑,最终决定由7段显示译码器来充当显示模块

欢迎下载,希望能帮到您

精选文档

[7]

三个模块组成的系统运行流程为,检测到的按键的信息和电梯所在楼层的信息送到单片机经过运算之后,将下达指令进行下一步,同时将有关信息送到数码显示部分将信息显示出来。

欢迎下载,希望能帮到您

精选文档

电子元件

本文中主要是以单片机为核心,配合以电梯内外按键模块,楼层显示及上下行数码显示模块来完成整个设计,所以接下来就硬件部分模块做一个简单的介绍。

2.1 AT89C51单片机

微型计算机(Microcomputer)的出现是电子数字计算机广泛应用到人们日常生活与工作领域当中的重大转折点。它已经深入到非微型计算机无法应用的领域,对社会产生了极大的影响。单片机是微型计算机的一个重要的分支,它以其独特的机构和功能,越来越普遍地应用到了各个领域当中。以下是AT89C51单片机的特点及其应用. (1)单片机的特点

a抗干扰能力强,工作温度范围宽。 b高的可靠性。

c控制功能强,数值计算能力相对较差。

d指令系统比通用微机的指令系统简单具有许多面向控制的指令。 e具有很高的性价比。 (2)单片机的应用领域 a工业控制领域 b家用电器领域 c办公自动化领域 d商业营销领域 e智能仪器仪表领域

f其它领域 ; 另外,在汽车与航空航天器电子系统中的自动驾驶系统、 通信系统、飞行监视器(黑匣子)等,都采用了单片机控制系统[1]。

2.1.1 AT89C51单片机硬件

单片机内部包含中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM、EPROM、Flash ROM)、定时器/计数器以及各种输入/输出(I/O)接口。其结构如图2.1所示。

欢迎下载,希望能帮到您

精选文档

ROM RAM 定时器/ 计数器 CPU 时钟 I/O接口 图2.1 单片机内部结构图

(1)中央处理器部分

单片机的核心部分就是中央处理器,它包括有运算器、控制器、程序计数器和指令寄存器等部件。

①运算器

运算器的主要功能是:进行算术运算和逻辑运算。能够对半字节、单字节等二进制数据进行算术逻辑运算,同时也可以按位进行逻辑运算,即处理位操作。通过标志位C,可以实现置位、复位、转移、取反等操作。

②控制器

控制部件由时钟电路组成。单片机内设有一个反向放大器构成的震荡电路,由此产生时钟,为单片机正常工作提供时钟信号。

③程序计数器

程序计数器主要是用来存放即将执行的程序的地址,长度为16位,可以对64KB的程序存储器进行访问。

④指令寄存器

指令寄存器用来存放指令代码,当CPU执行操作时,首先将程序存储器中的指令代码送到指令存器,然后通过译码产生出相对应的控制信号,从而完成相应的操作[3]。

(2)存储器

MCS-51单片机的存储器结构和常见的微型计算机的配置方式不同,其数据

欢迎下载,希望能帮到您

精选文档

存储器和程序存储器是相互独立的,物理结构也不相同。数据存储器由随机存取存储器(RAM)构成,而程序存储器由只读存储器(ROM)构成。单片机的存储器的编址方式应用的是统一的编址方式。

欢迎下载,希望能帮到您

精选文档

①程序存储器

单片机中的程序存储器可以分为只读存储器、紫外线擦除电可编程只读存储器、闪速存储器三类。

程序存储器是用于存放程序代码的,是控制计算机动作的一系列命令,单片机只认识由“0”和“1”代码构成的机器指令。如前述用助记符编写的命令MOV A,#20H,换成机器认识的代码74H、20H:(写成二进制就是01110100B和00100000B)。在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。

AT89C51单片机内部程序存储器的容量为4KB,外部可扩展64KB。AT89C52单片机内部程序存储器容量为8KB,外部可扩展64KB。

②数据存储器

单片机中的数据存储器分为两个地址空间:一个为内部数据存储器,访问时需要MOV指令;另一个为外部数据存储器,访问时需要MOVX指令。

AT89C51单片机内部数据存储器的容量为128B,外部可扩展64KB。AT89C52单片机内部程序存储器容量为256B,外部可扩展64KB[3]。

(3)I/O接口

单片机的I/O接口分为四组:P0、P1、P2、P3。每组包含8位双向接口。每个接口都可以单独的用作输入或者输出口。

①P0口

P0口有两种功能:普通I/O口功能和地址数据复用接口功能。当作为地址/数据复用接口时,低8位地址和数据分时复用P0口。

②P1口

P1口用作普通的I/O口,可以用作输出口也可以用作输入口。 ③P2口

P2口可以作为输入或者输出端口,常与地址总线高8位相接,输出高8位地址。

④P3口

P3口为双功能口。当用作第一功能时,与P1口功能相同;当用作第二功能时,每一位都有其特殊功能[3]。定义见表2.1

欢迎下载,希望能帮到您

精选文档

表2.1 P3口第二功能

(4)专用功能寄存器

单片机内部锁存器、定时器/计数器、各种控制寄存器、状态寄存器以及串行数据缓冲器都属于专用功能寄存器。它们存在于单片机内部RAM中,地址范围是80H~FFH。表2.2列出了各种专用功能器以及地址。

表2.2 专用功能器列表

[3]

其中,凡字节地址可以被8整除的专用功能寄存器都可以位寻址。其位地址

欢迎下载,希望能帮到您

精选文档

见表2

欢迎下载,希望能帮到您

精选文档

.3

表2.3 可位寻址的专用寄存器位地址

①程序状态字PSW

程序状态字包含了程序的状态信息,是一个8位的寄存器。其各位含义如表2.4。

表2.4 程序状态字

PSW位地址 含义 D7H CY D6H AC D5H FO D4H RS1 D3H RS0 D2H OV D1H --- D0H P

CY是进位标志位,在执行某些指令时,可以被硬件或者软件清零或置位。 AC是辅助进位标志,当执行某些操作时,低四位向高四位有进位或借位时,AC将被置位,否则清零。

FO标志,用户定义的一个状态标记。

RS1,RS0是寄存器区选择控制位。用来选择工作寄存器区。RS1,RS0与工作寄存器区对应关系见表2.5。

欢迎下载,希望能帮到您

精选文档

表2.5 RS1,RS0与工作寄存器区对应关系 RS1 0 0 1 1 RS0 0 1 0 1 区域 区域0(00H~07H) 区域1(08H~0FH) 区域2(10H~17H) 区域3(18H~2FH) OV溢出标志位,当进行算数运算时,由硬件置位或者清零,以表示是否溢出。若用C’6表示D6位向D7位有进位或借位,用C’7表示D7向CY有进位后者借位,那么有:

OV=C’6C’7

P为奇偶校验位。每个机器周期都由硬件来置位或者清零,用来表示累加器ACC中1的个数。

②累加器ACC

累加器ACC是一个最常用的8位专用功能寄存器。单片机执行指令时大部分操作都与累加器ACC有关。指令系统中,常常用A作为累加器ACC的助记符。

③B寄存器

B寄存器常常用在乘法指令或者除法指令当中。在乘法指令中,两个乘数分别来自A和B,结果存放在AB寄存器当中。在除法指令中,被除数取自A,除数取自B,商存在A中,余数存在B中。

④堆栈指针SP

堆栈指针SP表示堆栈顶部在内部RAM中的位置。是一个8位寄存器。单片机复位后,SP初始化为07H。

⑤数据指针DPTR

DPTR是一个16位的专用功能寄存器。用DPH表示高8位,DPL表示低8位。因而它既可以作为一个16位寄存器使用,也可作为两个8位寄存器使用。DPTR主要用来存放16位的地址数据,常用来访问外部存储器。

⑥串行数据缓冲器

串行数据缓冲器SBUF用来存放接受和发送的数据。每个单片机有两个独立的SUBF,一个为接收缓冲器,另外一个为发送缓冲器。

其他专用功能寄存器在中断系统中介绍。 (5)单片机引脚功能

单片机共有40个引脚。其中I/O接口占32个,其余的为控制引脚和电源引脚。单片机引脚示意如图2.2。

[3]

欢迎下载,希望能帮到您

精选文档

图2.2 单片机引脚示意图

①电源引脚Vss和Vcc

Vss与地相接;Vcc与工作电压+5V相接。 ②时钟电路引脚XTAL1和XTAL2

XTAL1为片内振荡电路输入端。XTAL2为片内振荡电路的输出端。单片机时钟电路可分为内部时钟和外部时钟。对应电路如图2.3。

③RST/VPD引脚

复位控制输入端或者当单片机断电时,备用电源由此输入。

XTAL1 XTAL2 外部时钟 内部时钟

图2.3 外部时钟和内部时钟电路

④ALE/!PROG引脚

ALE地址锁存允许端;PROG编程脉冲输入端。当P0口作为地址/数据复用口时,输出地址信号的同时,ALE引脚输出锁存信号。将低8位地址暂时锁存。对于可编程单片机,在对内部程序存储器编程期间,由PROG输入编程脉冲。

欢迎下载,希望能帮到您

精选文档

⑤!PSEN引脚

片外程序存储器读选通接口。当访问外部程序存储器时,此引脚输出有效电平。

⑥!EA/Vpp引脚

片外程序存储器选通端/编程电压输入端。当访问内部程序存储器时,~EA为高电平,当访问外部程序存储器时,~EA为低电平。当对内部程序存储器编程时,此引脚需连接+21V的编程电压[3]。 2.1.2 AT89C51单片机中断系统

中断系统是单片机中非常重要的组成部分,它是为了使单片机能够对外部或内部随机发生的事件实时处理而设置的。中断功能的存在,在很大程度上提高了单片机实时处理能力,它也是单片机最重要的功能之一。当CPU正在执行某些操作时,如果外界或内部发生了某些事件,需要CPU暂时停止当前的操作,而去执行这个紧急事件,待处理完紧急事件又返回原来被暂时停止操作的地方继续运行原来的操作,这样的过程成为中断。向CPU申请中断的事件,称为中断源。往往微型计算机存在多个中断源,而当多个中断源同时向CPU申请中断时,CPU便不知道应该响应那个中断源。为此,人们规定的各种中断的优先级。当多个中断源同时向CPU发出中断请求时,CPU按照一定的顺序做出中断响应。当同时出现多个申请中断时,CPU将首先处理优先级别较高的中断请求,然后再处理优先级别较低的中断请求[8]。图2.4为AT89C51单片机的中断系统。

图2.4 单片机中断系统

欢迎下载,希望能帮到您

精选文档

当CPU正在处理某些中断请求时,如果出现了一个更高级优先级的中断请求,那么CPU将中断当前中断操作,进而去执行优先级更高的中断操作。当优先级较高的中断响应完之后,再去执行刚才被暂停的中断。这种高优先级中断源能中断低优先级中断源的中断过程,称为中断嵌套[8]。

AT89C51单片机内部有5个中断源,提供两种中断优先级。并且,每一个中断源的优先级都可以由编程进行设定。单片机内部设有中断允许寄存器IE,用来控制控制是否响应中断源的中断请求。单片机中断源的优先级顺序可以由中断优先级寄存器IP设定。表2.6为AT89C51的中断优先级。

表2.6 AT89C51的中断优先级

中断源 外部中断0 定时器0中断 外部中断1 定时器1中断 串行中断 同级内部优先级顺序 最高级 ↓ 最低级 TCON为定时器/计数器0和1的控制寄存器,用来控制定时器/计数器的工作方式,同时也暂存T0或者T1的溢出中断申请标志以及外部中断请求标志。TCON寄存器共8位,每位定义如图2.5。

图2.5 TCON控制寄存器

SCON为串行通信中断控制寄存器。共8位,其中低两位用来表示串行接口的中断标志。如图2.6。

欢迎下载,希望能帮到您

精选文档

图2.6 SCON

在单片机的中断系统中,设有IE中断允许寄存器。共8位,用来控制是否响应中断。各位定义如图2.7。

图2.7 IE中断允许寄存器

IP为单片机内部的8位特殊功能寄存器,用来控制单片机的中断优先级。因为单片机内部存在两个中断优先级,因而可以使用编程的方法设计中断优先级,来实现中断嵌套[8]。IP各位功能见表2.7。

表2.7 IP中断优先级控制寄存器

位 字节地址B8H PX0 PT0 PX1 PT1 PS 7 6 5 4 PS 3 PT1 2 PX1 1 PT0 0 PX0 外部中断0优先级设定位 定时/计数器T0优先级设定位 外部中断1优先级设定位 定时/计数器T1优先级设定位 串行口优先级设定位 2.1.3 AT89C51单片机定时器/计数器

定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信

欢迎下载,希望能帮到您

精选文档

号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。

欢迎下载,希望能帮到您

精选文档

定时器/计算器包含4个8位计数器。其中TH1和TL1两个8位计数器组成T1计数器;TH0和TL0组成T0计数器。基本结构如图2.8。

当作为定时器使用时,输入的时钟为单片机的晶体振荡器输出频率的12分频,即计算机的机器周期。当对外部事件计数时,需接到外部输入引脚P3.4和P3.5。外部事件发生时,产生电平变化,单片机采集到变化,就会自动加1计数。电平变化是指引脚上的电平由高到低的变化。

AT89C51单片机中的定时器/计数器有四种工作方式。需要TMOD和TCON两个特殊功能寄存器选择和控制。其工作方式及控制由编程实现[8]。

图2.8 定时器/计数器结构

(1) 定时/计数器控制寄存器TCON 见表2.8

表2.8定时器/计数器控制寄存器TCON

TCON T1 T1 T0 T0 INT1 INT1 INT0 INT0 中断标志 运行标志 中断标志 运行标志 中断标志 触发方式 中断标志 触发方式 位名称 位地址 TF1 8FH TR1 8EH TF0 8DH TR0 8CH IE1 8BH IT1 8AH IE0 89H IT0 88H

①TCON.7 TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只

欢迎下载,希望能帮到您

精选文档

能由软件清0。

欢迎下载,希望能帮到您

精选文档

② TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。

③ TCON.5 TF0:定时器0溢出标志位。其功能及操作情况同TF1。 ④TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。

⑤其他四个在中断说明。

(2)定时/计数器工作方式控制寄存器TMOD 见表2.9

表2.9定时/计数器工作方式控制寄存器TMOD

高4位控制T1 择 G C / T M1 M0 G C / T M1 M0 低4位控制T0 门控位 计数/定时方式选工作方式选择 门控位 计数/定时方式选择 工作方式选择 ① M1M0 —— 工作方式选择位 见表2.10

表2.10 MIMO 工作方式选择位

M1M0 0 0 0 1 1 0 1 1 工作方式 方式0 方式1 方式2 方式3 功能 13位计数器 16位计数器 两个8位计数器,初值自动装入 两个8位计数器,仅适用T0 ② C/T —— 计数/定时方式选择位

C/T=1,计数工作方式,对外部事件脉冲计数,用作计数器。 C/T=0,定时工作方式,对片内机周脉冲计数,用作定时器。 ③ GATE —— 门控位

GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。

GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。只有当 INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。

TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。 (3)定时/计数器工作方式 ① 工作方式0

13位计数器,由TL0低5位和TH0高 8位组成,TL0低5位计数满时不向TL0第6位进位,而是向TH0进位,13位计满溢出,TF0置“1”。最大计数值213 = 8192。

欢迎下载,希望能帮到您

精选文档

初值确定:TH0=(8192-5000)/32;TL0=(8192-5000)%32;进行5ms的延时。12M晶振。

② 工作方式1

16位计数器,最大计数值为216 = 65536。

初值确定:TH0=(65536-50000)/256;TL0=(65536-50000)%256;进行50ms的延时。12M晶振。 ③ 工作方式2

8位计数器,仅用TL0计数,最大计数值为28= 256,计满溢出后,一方面使溢出标志TF0 = 1;另一方面,使原来装在TH0中的初值装入TL0。 优点:定时初值可自动恢复;缺点:计数范围小。适用于需要重复定时,而定时范围不大的应用场合。

初值确定:TH0=TL0=256-200进行200us的延时。12M晶振。 ④ 工作方式3

方式3仅适用于T0,T1无方式3。 (4)定时/计数器的应用

①定时器/计数器初始化的主要内容

a.选择工作方式:通过对方式寄存器TMOD进行设置 b.给定时器赋初值

c.根据需要设置中断控制字 d.启动定时器

②定时器/计数器初值设定方法 a.根据定时长短,选择工作方式 b.计算定时/计数初值 2.1.4 串行通信

AT89C51单片机内设有一个全双工的串行接口,能够同时接收数据和发送数据。同时串行接口还有接收缓冲的功能,当从接收寄存器中读出前一组数据之前,已经可以接收下一组数据[9]。

控制串行通信的寄存器有两个:特殊功能寄存器PCON和特殊功能寄存器SCON。PCON没有位寻址功能。其中只有D7位有意义,其他各位均无意义。PCON寄存器功能如图2.9。当SMOD=1时,串行接口在工作方式1、2或3的情况下,波特率加倍。SCON定义串行接口的操作方式。寄存器各位内容如图2.10。

欢迎下载,希望能帮到您

精选文档

图2.9 PCON

图2.10 SCON

串行接口有四种工作方式。分别由SM0和SM1控制。各工作方式功能见表2.11。

表2.11 串行接口工作方式

SM0 0 0 1 1 SM1 0 1 0 1 方式 0 1 2 3 功能 移位寄存器方式 8位UART 9位UART 9位UART 波特率 fosc/12 可变 fosc/64或fosc/32 可变

2.1.5 AT89C51单片机的发展和未来 (1)单片机的发展[10]

单片机的发展可分为三个阶段:

第一阶段为单片机的初级阶段,它以INTEL公司的MCS-48系列为代表,采用专门的结构,在片内集成了8位CPU、并行I/O口、8位定时/计数器、RAM、ROM等,但无串行口,中断处理也较简单。

第二阶段为单片机的发展阶段,它以INTEL公司的MCS-51系列为代表,在技术上完善了外部总线,并确立了单片机的控制功能。

第三阶段为单片机的更新阶段。最具有代表性的是INTEL公司的MCS-96系列单片机,他是16位的CPU,RAM和ROM的容量也进一步增大,并且带有高速

欢迎下载,希望能帮到您

精选文档

输入/输出部件,多通道A/D转换器,8级中断处理能力使之具有更强的实时处理功能。

欢迎下载,希望能帮到您

精选文档

(2)单片机的未来

从单片机发展的趋势来说,主要向着大容量高性能、小容量低价格、外围电路内装化方向发展。

① CPU的发展:增加CPU的字长或时钟频率均可提高CPU的数据数据处理能力和运算速度。

② 片内存储器的发展:早期单片机的片内存储器,一般为RAM为64-128B,程序存储器ROM在1-2KB,新型的单片机片内的RAM在256B以上,片内存储器也采用了快速闪存技术使容量多达128KB以上。 ③ 加强片内输入/输出接口功能 ④ 半导体工艺技术的发展

早期单片机采用PMOS工艺,随后逐渐采用NMOS、HMOS和CMOS工艺。现在的单片机基本上都采用CMOS工艺,半导体工艺技术的发展,对提高单片机的综合性能有很大的好处,主要表现在以下几个方面:

a.提高集成度 b.低功耗化 c.工作电压范围加宽 d.单片机的外型封装

2.2 7段显示数码管

数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个发光二极管单元,其基本单元是发光二极管。本次设计主要采用的是七段显示数码管。 2.2.1 7段数码管的结构和原理

7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.11所示。

欢迎下载,希望能帮到您

精选文档

共阴极 7段数码管内部字段LED和引脚分布 共阳 图4.11 7段数码管结构

2.2.2 7段数码管的驱动方法

发光二极管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。当其内部有一一电流通过时,它就会发光。 7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5~10mA;正向电压随发光材料不同表现为1.8~2.5V不等。7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。 (1) 静态显示

所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。这种显示方法为每一们都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。

静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。 (2)动态显示

所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作

欢迎下载,希望能帮到您

精选文档

(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参烽,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。

欢迎下载,希望能帮到您

精选文档

动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。 综合以上考虑,由于楼层显示和上下行显示各只需要一个,故只需2个数码管,本次采用的是共阳极的数码管。

欢迎下载,希望能帮到您

精选文档

第3章 硬件电路设计

本章主要介绍的是单片机电源电路、复位电路、时钟电路,以及按键模块和显示模块的电路设计[12]。

3.1 AT89C51单片机控制模块

本节介绍单片机AT89C51的基本工作电路。包括电源电路、复位电路、时钟电路。 3.1.1 电源电路

电源开关使用自锁开关。图3.1为自锁开关,共6个引脚。引脚定义如图3.2。引脚1与2和引脚4与5是常闭触点,引脚2与3和引脚5与6是常开触点。单片机的电源电路如图3.3所示。电源提供的+5V电压经过自锁开关为电路元件提供所需的工作电压。

3 2 1 6 5 4 图3.1 自锁开关 图3.2 引脚定义

图3.3 电源电路

3.1.2 复位电路

单片机复位电路使用按键开关。当需要单片机复位时,需要在RST引脚上加载2个机器周期以上的高电平。图3.4为单片机复位电路。

欢迎下载,希望能帮到您

精选文档

图3.4 单片机复位电路

3.1.3 时钟电路

单片机时钟电路用于提供单片机的工作脉冲。本设计采用内部时钟,时钟电路如图3.5所示。

图3.5 单片机时钟电路

3.2 按键模块

按键引起电平变化,通过单片机控制数码管显示,如图3.6所示。

图3.6 按键模块电路连接

欢迎下载,希望能帮到您

精选文档

3.3 显示模块

单片机通过对按键信息以及电梯所处信息的处理,进行运算之后将所得到记过通过数码管显示出来。如图3.7为电梯上下行显示模块,图中为上行显示,下行时显示“d”。

图3.7 电梯上行显示模块

如图3.8为电梯所处层数显示模块,其显示的是电梯所处楼层数,如图中显示“1”,则说明电梯此时所处于一楼状态。

图3.8 电梯楼层显示模块

欢迎下载,希望能帮到您

精选文档

第4章 软件程序设计

软件程序设计部分分为三个模块,单片机最小系统模块、按键模块、显示模块。下面是三个模块分别的流程图[5]。 4.1 主程序模块

单片机最小系统模块主要完成将各个模块进行有机的衔接,能够接收和控制其他模块的应答信号和工作方式。并对接收的数据进行处理和判断。图4.1为单片机最小系统模块流程框图[5]。

开始 初始化 键盘扫描 N 有无按键 Y 数码管闪烁显示楼KRY=1 层到达电梯开门 确定按键 上下行以及楼层数码管显示 图4.1 主程序流程框图

楼层到达 欢迎下载,希望能帮到您

精选文档

4.2 按键检测模块

按键检测模块主要完成按键检测,来确定是否有键按下,哪一个键被按下。图4.2为按键模块流程框图[5]。

开始 初始化 N 有键按下否 Y Y 是否抖动 N 确定按键 返回主程序 图4.2按键检测模块流程图

4.3 显示模块

显示模块主要完成发送显示控制字,显示楼层数、电梯上下行状态等工作。图4.3为显示模块流程框图[5]。

欢迎下载,希望能帮到您

精选文档

开始 发送显示控制字 发送显示字符 N 是否显示完成 Y 返回主程序 图4.3 显示模块程序框图

欢迎下载,希望能帮到您

精选文档

仿真及硬件实现

5.1 仿真

仿真主要是在电脑上进行硬件电路的仿真和软件的编写,从而初步达到设计要求。 5.1.1 仿真软件 (1)硬件电路仿真软件

硬件仿真过程是通过Proteus软件完成,Proteus软件由英国Lab Center Electronics公司开发的EDA工具。不仅能够从事EDA开发,还具有较好的单片机系统仿真功能。是国内外单片机开发爱好者的青睐工具。

智能原理图设计:具有丰富的元件库以及智能的元件搜索引擎。智能的连线功能,使得设计电路更加方便快捷。并且支持总线结构。还可以输出高质量的图纸。

完美的电路仿真功能:具备基于工业标准SPICE3F5的ProSPICE混合仿真功能。包含各式各样的激励源以及丰富的虚拟仪器。还能生动的表示各引脚的数字电平。

单片机协同仿真功能:支持主流的各种CPU以及通用的外设模块。实时的仿真,编译及调试功能。使得电子设计更加人性化。

综合以上特点,可以看出Proteus是一个功能强悍的教学与学习及设计开发的软件资源。图5.1为ISIS 7 Professional的工作界面。

图5.1 ISIS 7 Professional界面

欢迎下载,希望能帮到您

精选文档

(2)软件程序设计软件

程序设计部分,主要由三个模块组成,一是单片机最小系统模块,二是按键检测模块,三是显示模块。

程序的设计上主要运用Keil uVision软件Keil C51是美国Keil Software公司出品的兼容51系列单片机的C语言开发系统。与汇编语言相比,C语言容易上手,便于开发。在结构上、功能上具有明显的优势,而且也具有很强的可读性,可维护性。Keil内含C语言编译器、宏汇编、连接器、库管理以及一个功能完善的仿真调试器。该仿真软件可以运行在Win98、NT、Win2000、WinXP等操作系统上,方便用户使用。

2006年ARM推出针对各种嵌入式处理器的软件开发工具,集成Keil uVision3的RealView MDK开发环境。2009年发布的Keil uVision4引入灵活地窗口管理系统,使开发人员能够使用多台监视器。为用户提供了一个灵活,快捷的开发环境。2013年,Keil正式发布了Keil uVision5 IDE。

图5.2为Keil uVision3的窗口界面。

图5.2 Keil uVision窗口界面

欢迎下载,希望能帮到您

精选文档

5.1.2 仿真结果

通过仿真的硬件连接图如图5.3所示,

图5.3 硬件仿真连接图

接下来是该连接图在仿真过程中的截图,具体截图见图5.4。

如图5.4中图a为开始执行时初始化系统默认的状态为一楼,运行方向向上。当运行到一半时按一下复位键即回到如图5.3所示状态

如图b到图f分别为电梯在运行到上到二楼、到达三楼、三楼向下、下到二楼、下到一楼时的仿真结果图。

由图中所示可以看出仿真结果基本符合设计要求,虽然本次设计符合要求,但是距离实际的电梯模型还有一定的距离,例如在系统中加入电机,加入电梯升降模拟系统,加入更多的楼层数,或者是加入PCB版图的制作,但主要是由于时间的关系,无法将设计做到完美。

欢迎下载,希望能帮到您

精选文档

a. 开始执行初始化时的状态图 b. 按下二楼(上)键后的状态

c. 电梯上到三楼时的状态 d. 电梯在三楼按下楼键时的状态

e. 电梯到达二楼向下状态 f. 电梯下到一楼是状态

图5.4 仿真结果图

5.2 硬件实现

硬件实现主要是分为实物的制作和实物制作后系统的调试两个部分,接下

欢迎下载,希望能帮到您

精选文档

来会对这两个部分作介绍。

欢迎下载,希望能帮到您

精选文档

5.2.1 实物制作

实物的制作过程在实验室进行,将各部分按照仿真成功的电路图进行焊接,然后将已经烧好程序的单片机插上去之后的实物图如图5.5所示。图中右侧从上往下依次下来的7个按键分别对应的按键功能已经在图上标识出来。左边两个7段显示数码管由上往下分别显示电梯楼层和电梯上下行状态。下方是电池盒,电池盒上方按键为复位按键。

图 5.5 实物图

5.2.2 系统调试

接下来是实物运行过程的截图图片见图5.6

如图5.6(a)所示为按下开关通电后,所处的初始状态,也是系统的默认状态,在运行过程中按一下复位键也能回到如图所示的状态,图5.6(b)为电梯向下运行到二楼时的状态,图5.6(c)为电梯向上运行到二楼时的状态,图5.6(d)为电梯上到三楼时的显示状态。由实物制作所运行的结果来看,本次实物制作符合仿真时所达到的要求,但是距离真正的电梯模拟系统还有很大的距离,没

欢迎下载,希望能帮到您

精选文档

有电机,没有电梯升降模拟系统,主要是由于时间的关系,对于PCB板的制作也搁置了,总体上不能说本次设计完成任务,只能说勉强达到要求。

欢迎下载,希望能帮到您

精选文档

a.初始状态 b.二楼向下运行

c.二楼向上运行 d.向上到达三楼

图5.6 系统调试过程运行结果图

欢迎下载,希望能帮到您

精选文档

总结

经过了一个学期的努力以及老师同学的帮助,终于完成了毕业设计。对于我来说这是一个漫长的过程,这次毕业设计让我从先前对单片机只是一知半解到现在能熟知单片机的很多知识,我觉得这是这次毕业设计真正的意义所在,这也让我知道毕业设计也不仅仅是为了毕业应付了事那么简单。

电梯虽然是我平常生活中经常接触的事物,一般每天上下楼都会用上,但是我从来没有考虑过电梯的运行原理,也很少去看这一类的书籍。为了很好完成本次毕业设计查阅了很多的资料,并且在老师和同学的帮助下找到了简单可行的设计方案。最终也是完成了仿真以及最后的实物的制作并且满足实验所需要的要求。虽然设计是按要求完成了但是里面还存在很多可以改进的地方,比如可以在设计里面加入电动机的部分,用电动机的正转和反转来表示电梯的上下行方向,而不仅仅是靠数码管显示来显示出来,这样也更加贴近实际中我们乘坐的电梯。并且,在设计中只是简单的三层电梯系统的设计,与实际生活中的应用联系不大,也可以增加一些层数,以及增加PCB板的制作,但是增加任务的同时也增大了编写程序以及实物制作过程的难度,时间不足造成了很多地方没能去完善本次设计。从总体上讲本次设计还有很多改进的地方,所以不能说是很完美的完成了这次设计,只能说是勉强达到了设计要求。

欢迎下载,希望能帮到您

精选文档

参 考 文 献

[1] 张毅坤. 单片机微型计算机原理及应用[M]. 西安:西安电子科技大学出版社,2001 [2] 李惠升. 电梯控制技术[M]. 北京:机械工业出版社,2003.7 [3] 胡汉才. 单片机原理及接口技术[M]. 北京:高等教育出版社,2006

[4] 朱益华,林瑞深. 可编程序控制器在电梯控制中的应用[C]. 全国第四届自动化应用技术交流会,1998.07

[5] 王东峰等..单片机C语言应用100例[M]..北京:电子工业出版社,2009

[6] 施勇. 基于单片机的电梯的控制器的设计[D]. 沈阳建筑大学硕士学位论文,2011 [7] 邵犇. 对电梯检验之中控制系统的问题及解决对策探究[J].河南科技,2014 [8] 李金利. 单片机原理及应用技术[M]. 北京:高等教育出版社,2004 [9] 张宏润. 单片机原理及其应用[M]. 北京:清华大学出版社,2003

[10] 孙育才. MCS-51系列单片微型计算机及其应用[M]. 东南大学出版社,2000 [11] 许建国,张佳.基于单片机的电梯控制模型设计[J].数字技术与应用,2013

[12] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J].TQM Journal, 2008

[13]V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 [14]Yeager Brent.How to troubleshoot your electronic scale[J]. Powder and Bulk Engineering. 1995

欢迎下载,希望能帮到您

精选文档

致 谢

这次课程设计能够顺利完成,首先非常感谢我的父母将我培养到大学,并且供我读大学的所有费用,在这里特别感谢我的父母的养育之恩。再者要特别感谢学校特别是本专业的各位老师的辛勤教导,在我大学的四年里,我不是多么的优秀,但是老师们还是一视同仁地孜孜不倦地教导我,为我付出了很多。老师们一丝不苟、尽职尽责的工作态度以及正直的为人之道,都将使我终身受益,并激励我在今后的人生道路上更加刻苦努力的去奋斗。不仅是在学习上,在生活上老师还是我的老师给了我很多的帮助以及教导,就像是我大学生涯的领路人,使我不至于在大学学习生散漫环境下走上歪路,从而可以顺利毕业。在这里再一次感谢本专业的各位老师。

对于这次毕业设计,我最感谢的就是我的导师金国华老师,她是一个很平易近人的老师,在刚开始的时候,我对单片机知识还是一知半解对课题不知所措时,老师给我讲解的很详细,很清楚。再后来做毕业设计的过程中老师也对我做毕业设计的情况高度关注,并且及时尽早的找出我有错误的地方,并且启发我往更深一个层面去思考。在最后论文的撰写上面,我出现了很多的大大小小的问题,我要感谢金老师和李作洲两位老师给予我的指导,给与了我很大的帮助,帮我找出了我在文章层次划分上的不足之处,并且给与我很好很受用的建议。让我在这个过程中学到了很多,已经不只是停留在为毕业这个层次上了,对我日后进入社会也会很有帮助。在这里特别由衷的感谢金国华老师,以及其他给与我帮助的老师和同学们。

欢迎下载,希望能帮到您

精选文档

附录1 元件清单

序号 名称 型号 单位 数量 备注 1 电阻 10K 支 1 2 电容 30P 支 3 3 晶振 12MHZ 支 1 4 按键 --- 个 8 5 7段显示数码管 SM42038 个 2 6 电池盒 --- 个 1 7 电池 --- 节 3 8 导线及焊锡 --- --- 若干 9 自锁开关 --- 个 1 10 排阻 102 个 2 11 单片机 AT89C51 个 1 12 万用板 --- 块 1

欢迎下载,希望能帮到您

精选文档

附录2 程序部分

#include #define LCD1 P1 #define LCD2 P3

void Zero();

void Delay_ms(unsigned int Time);

void Display(unsigned int n,unsigned char a); void Flash(unsigned int Time); void KBScan(); void dl_ms(); void Destination(); void Up(); void Down();

//P2与查询式键盘硬件相连 sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; sbit P2_4=P2^4; sbit P2_5=P2^5; sbit P2_6=P2^6;

unsigned int lift=1; /*电梯所在楼层*/

unsigned int status=1; /*电梯上行为1,下行为0*/ unsigned char request[3]={0,0,0}; /*1~3楼有无请求,有请求为1*/ unsigned char dst=1; /*电梯的目的楼层*/

//清零程序 void Zero() {

LCD1=0x00; LCD2=0x00; }

//延时程序,以毫秒为单位,用软件计时,输入的参数 void Delay_ms(unsigned int Time) {

unsigned int i=0,j=0;

欢迎下载,希望能帮到您

精选文档

for(i=0;iKBScan();

for(j=0;j<125;++j); } }

//显示某一楼层

void Display(unsigned int n,unsigned char a) {

unsigned char b; if(a==0) { b=0x5e; }

else if(a==1) { b=0x73; } Zero(); KBScan(); LCD2=b; KBScan(); switch(n) {

case 3:{LCD1=0x4f;break;} case 2:{LCD1=0x5b;break;} case 1:{LCD1=0x06;break;} default: {break;} } }

//闪烁显示到达楼层

void Flash(unsigned int Time) {

unsigned char i; for(i=0;iDisplay(lift,status);

欢迎下载,希望能帮到您

精选文档

Delay_ms(1000); KBScan(); } Zero(); Delay_ms(1000); KBScan(); }

//查询式键盘扫描 void KBScan() {

if(P2!=0xff) {

dl_ms(); if(P2!=0xff) {

switch(P2) {

case 0xfe: {P0_0=1;request[0]=1;break;} /*电梯内请求1楼*/

case 0xfd: {P0_1=1;request[1]=1;break;} /*电梯内请求2楼*/ case 0xfb: {P0_2=1;request[2]=1;break;} /*电梯内请求3楼*/ case 0xf7: {P0_3=1;request[0]=1;break;} /*电梯外1楼请求向上*/ case 0xef: {P0_4=1;request[1]=1;break;} /*电梯外2楼请求向上*/ case 0xdf: {P0_5=1;request[1]=1;break;} /*电梯外2楼请求向下*/ case 0xbf: {P0_6=1;request[2]=1;break;} /*电梯内3楼请求向下*/

default: {break;} /*错误请求*/ } } } }

//消抖延时 void dl_ms() {

unsigned char i; for(i=0;i<30;++i); }

//获取目的楼层 void Destination() {

unsigned char j; //j循环控制变量 KBScan(); //有键按下

欢迎下载,希望能帮到您

精选文档

if(status==1) { {

//若电梯向上走则从高楼层到低楼层扫描

//以此达到判断优先级的目的

for(j=3;j>=1;--j) if(request[j-1]==1) {

dst=j; //则将目的楼层设为该楼 break; } } }

else if(status==0) { {

if(request[j-1]==1) { dst=j; break; } } } }

//电梯向上走 void Up() {

status=1; //置1表示电梯向上走 for(;lift<=dst;lift++) {

Display(lift,1); KBScan(); Destination();

//读取点阵键盘

if(request[lift-1]==1) //若请求到达的楼层在所在楼层和目的楼层之间则停下闪烁显示并将其对应的request清零 {

Delay_ms(3000); if(P0_5==1&&lift==2); else {

request[lift-1]=0; }

//每到达一楼就显示该楼层数

//电梯到达目的楼层之前往上走

for(j=1;j<=3;++j)

//若电梯向下走则从低楼层到高楼层扫描

//以此达到判断优先级的目的

//并将其对应的request置1,然后跳出

欢迎下载,希望能帮到您

精选文档

switch(lift) {

case 1:{P0_0=0;P0_3=0;break;} case 2:{P0_1=0;P0_4=0;break;} case 3:{P0_2=0;P0_6=0;break;} default:{break;} } Flash(3); Delay_ms(800); } else {

Delay_ms(3000); } } lift--; }

//电梯向下走 void Down() {

status=0; //置1表示电梯向上走 for(;lift>=dst;lift--) {

Display(lift,0); KBScan(); Destination();

//读取点阵键盘

if(request[lift-1]==1) //若请求到达的楼层在所在楼层和目的楼层之间则停下闪烁显示并将其对应的request清零 {

Delay_ms(3000); if(P0_4==1&&lift==2); else {

request[lift-1]=0; }

switch(lift) {

case 1:{P0_0=0;P0_3=0;break;} case 2:{P0_1=0;P0_5=0;break;} case 3:{P0_2=0;P0_6=0;break;} default:{break;}

//每到达一楼就显示该楼层数 //电梯到达目的楼层之前往上走

欢迎下载,希望能帮到您

精选文档

} Flash(3); Delay_ms(800); } else {

Delay_ms(3000); } } lift++; }

void main() { P0=0; while(1) {

LCD2=0x00;

Display(lift,status);

Destination(); //查询有无楼层请求到达 if(dst>=lift) //请求的楼层比要到达的楼层高 { Up(); } else {

Down(); } } }

//否则电梯向下走

//电梯向上走

//电梯程序的循环

. .

欢迎下载,希望能帮到您

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务