基于51单片机的电梯控制器设计

合集下载

基于51单片机的智能电梯控制器设计

基于51单片机的智能电梯控制器设计

目录摘要 (1)Abstract (1)引言 (1)1 PLC与51在实现智能电梯控制的差别 (2)1.1 常规用PLC智能电梯控制 (2)1.2 单片机智能电梯控制 (2)2 设计方案体系结构 (2)2.1 各楼层的电梯间电路 (2)2.2 电梯内部电路 (3)2.3 控制台电路 (3)2.4 控制方案 (3)2.5 控制方案选用 (4)3 硬件电路设计 (4)3.1 单片机的内部组成 (5)3.2 单片机的外接震荡电路 (6)3.3 电梯内控制器的仿真电路 (6)3.4 电路板的制作与调试 (8)4 软件编译 (9)4.1 软件抗干扰 (10)4.2 软件防死机 (11)5 智能电梯控制器采用硬件和软件协调的发展前景 (12)结论 (12)参考文献: (12)致谢 (13)基于51单片机的智能电梯控制器摘要:本设计是基于51系列单片机的智能电梯控制器,采用常见的AT89S51单片机作为核心控制芯片,其功耗小,运行稳定,常用的5V的电压供电。

楼层显示选用常见的高亮度七段数码管,具有廉价、内容丰富、美观、使用方便等特点。

采用红绿不同颜色的发光二极管指示电梯运行状态,简单明了,安全可靠。

这种实现方法的优点是简单,性能可靠,实时性好,操作简单,编程容易。

关键词:智能;电梯;七段数码管;AT89S51;二极管The Intelligent Electronic Elevator based 51 MCU Abstract:This design is based on 51 series of the MCU intelligent elevator controller, the common AT89S51 as the main controlling chip, the low power consumption, stable operation, commonly used 5 voltage power supply. Floor number use the common high brightness Seven-Segment LED to display,which is cheap, rich content, beautiful, convenient use, etc. Use red and green color light-emitting diodes instructions elevator status, simple, safe and reliable. The advantage of the approach is simple, reliable performance, good real-time performance, simple operation, easy programming.Key words:Intelligent;Elevator;Seven-segment LED;AT89S51;Leds引言电梯是人们在楼宇中垂直走动最主要的搭乘工具,电梯系统[1]的广泛使用,给人们带来了诸多的便利和效益。

毕业设计(论文)-基于51单片机的电梯智能控制系统设计

毕业设计(论文)-基于51单片机的电梯智能控制系统设计

摘要在现代电梯智能控制系统大多采用PLC智能控制,PLC具有稳定的多I/O 口输出控制,容易操作与调试,易于远程操作及监控等优点,但PLC造价高,市场上一般16点的PLC造价就至少上百元,而大多进口的西门子,欧姆龙系列就不用说了,故在小系统中,采用PLC控制不太合适。

本系统采用AT89C51进行智能控制,成本超低,但性能亦很稳定,并具有系统崩溃自锁功能,整体性能比利用PLC更优惠。

关键字:AT89C51,电机控制,24c02目录摘要 (1)目录 (2)一系统设计方案 (3)1.单片机控制系统总体框图 (3)2.电机驱动系统设计框图 (3)二元器件简介 (4)1.AT89C51的单片机简介 (4)(1)主要特性 (5)(2)管脚说明 (5)(3)振荡器特性 (8)(4)芯片擦除 (8)2.存储器24c02 (9)三电梯智能控制系统设计 (13)1.硬件电路设计 (13)(1)单片机最小系统 (13)(2)继电器控制电路的设计 (14)(3)红外检测系统 (14)(4)系统供电电源 (15)2.系统软件设计 (15)(1)软件介绍 (15)(2)程序流程图 (15)(3)程序清单 (16)四调试过程 (17)1.检测AT89C51运行否 (17)2.红外检测测试 (17)总结 (18)参考文献 (19)一系统设计方案1.单片机控制系统总体框图2.电机驱动系统设计框图二元器件简介1.AT89C51的单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

基于51单片机的8层电梯模拟控制

基于51单片机的8层电梯模拟控制

基于51单片机的8层电梯模拟控制摘要:电梯控制本是一个比较复杂的系统,在这里我们只是对电梯的控制进行模拟,没有考虑某些因素。

如:我们没有应用现实中的行程开关,电动机等重要器件,我们用红外线.LED等器件来对其进行模拟,本设计主要涉及到低压电气,红外通讯,单片机开发,PROTEL软件,PROTEUS软件,电子电路等知识。

关键词:电梯红外电动机LCD一、系统概述1)输入系统输入系统在本设计中主要是体现在电梯呼叫信号的发起的元件上.本系统中主要的输入设备有BUTTON(按钮)和红外接收装置。

BUTTON:有外呼叫和内呼叫两种.简单来说就是电梯内的按钮和电梯外的按钮.电梯内的按钮要比电梯外的多一些,这个不用说相信大家都知道;电梯外的主要用于电梯的呼叫,当电梯到达该呼叫楼层时,电梯自动开门后该呼叫请求会自动清掉,保证下次呼叫的正确性。

红外接收装置:由于本系统只是对电梯控制进行模拟,所以我们就只用了两套红外收发装置进行模拟。

一套专门用于断电保护人身安全的:当电梯运行在中间楼层时,我们用红外装置来监测复位时,电梯的停放情况,如果电梯并没有在最底层,那么我的系统会自动将电梯运行到最底层,这样保证了人的安全,也保证了电梯不会因为断电而无法运行。

另一套红外装置其实是本系统8层楼中8套行程限位的代表,当电梯运行到某一楼层时该楼层发射装置发射的红外信号会传递到电梯本身身上的红外接收装置,如果CPU每12秒收到了一次这个信号,那么说明电梯运行无误,否则CPU 将自动报警,并停止电梯的运行,当检修人员发现电梯出现故障后,按下检修开关,电梯自动运行到最底层,并显示当前电梯处于修理中,等检修师傅检修好后在次按下检修开关电梯就可以再次投入使用了.2)输出系统本设计中作为输出系统的元件有LCD,蜂鸣器,发光二极管和继电器。

LCD:本设计采用的是LM1602B液晶显示器.与红外收发装置一样,LCD我们也只用了两套,一套用于电梯箱内的当前信息显示;另一套用于电梯箱外,主要是给需要呼叫电梯的人一个选择的权利,因为一般必须先响应同方向的呼叫,后处理反方向呼叫。

基于51单片机电梯控制设计毕业论文

基于51单片机电梯控制设计毕业论文

基于51单片机的电梯控制设计毕业论文一章绪论1电梯的概述电梯进入人们的生活已经15年了。

一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。

1854年,在纽约水晶宫举行的世界博览会上,美国人伊莱沙·格雷夫斯·奥的斯一次向世人展示了他的发明。

他站在装满货物的升降梯平台上,命令助手将平台拉升到观众都能看得到的高度,然后发出信号,令助手用利斧砍断了升降梯的提拉缆绳。

令人惊讶的是,升降梯并没有坠毁,而是牢牢地固定在半空中——奥的斯先生发明的升降梯安全装置发挥了作用。

“一切安全,先生们。

”站在升降梯平台上的奥的斯先生向周围观看的人们挥手致意。

谁也不会想到,这就是人类历史上一部安全升降梯。

生活在继续,科技在发展,电梯也在进步。

15年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新——手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等等,多台电梯还出现了并联控制,智能群控;双层轿厢电梯展示出节省井道空间,提升运输能力的优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形——扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭。

如今,以美国奥的斯公司为代表的世界各大著名电梯公司各展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。

调频门控、智能远程监控、主机节能、控制柜低噪音耐用、复合钢带环保——一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好。

中国最早的一部电梯出现在上海,是由美国奥的斯公司于191年安装的。

1932年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运转着。

1951年,党中央提出要在天安门安装一台由我国自行制造的电梯,天津从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。

基于51单片机的四层电梯控制设计

基于51单片机的四层电梯控制设计

目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1电梯的概述 (1)1.2本文主要研究内容 (2)第二章系统功能介绍及方案论证 (2)2.1电梯的组成 (2)2.2电梯控制系统组成框图及工作原理 (2)2.3总体方案设计与论证 (3)2.4单元电路的设计与论证 (3)2.4.1单片机最小系统 (3)2.4.2 电机驱动电路模块 (4)2.4.3报警模块 (5)2.4.4楼层检测模块 (5)2.4.4.1光电传感器原理 (5)2.4.4.2光电传感器的选择 (5)2.4.5电梯内部电路、电梯间电路及控制台电路模块的设计 (6)2.5本章小结 (6)第三章基于单片机的电梯控制系统单元电路的设计 (7)3.1单片机最小系统 (7)3.2各楼层电梯间电路 (7)3.3电梯内电路 (8)3.4控制台电路 (9)3.5楼层检测 (9)3.6电动机驱动 (10)3.7报警部分 (12)3.8本章小节 (12)第四章软件设计 (12)4.1按键查询部分 (13)4.2楼层选择按键功能程序 (16)4.3电机控制部分 (22)4.4楼层检测及显示部分 (22)4.5报警部分 (23)结论 (24)参考文献 (25)致谢辞 (26)附录一: (27)附录二: (29)开题报告摘要引言:本文介绍了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯间电路模块、电梯内电路模块、楼层检测模块、电动机驱动模块、报警模块等7部分组成。

该系统采用单片机(89C51)作为控制核心,内外招使用按键按下与否而引起的电平的改变,作为用户请求信息发送到单片机,单片机控制电动机转动,单片机根据楼层检测结果控制电机停在目标楼层。

楼层检测使用光电传感器,电动机控制部分采用直流电动机和L298N芯片驱动。

软件部分使用汇编语言,利用中断方式来检测用户请求的按键信息,根据电梯运行到相应楼层时,光电传感器产生电平变化,送到单片机计数来确定楼层数,并送到数码管进行显示。

基于51单片机模拟电梯控制系统

基于51单片机模拟电梯控制系统

基于51单片机模拟电梯控制系统简介本文档介绍了基于51单片机的模拟电梯控制系统。

电梯是现代建筑中不可或缺的交通工具,其安全性和运行效率直接影响到建筑的使用体验。

本文档将详细描述电梯控制系统的设计和实现过程,以及关键的技术细节。

系统架构硬件设计基于51单片机的模拟电梯控制系统的硬件设计主要包括以下几个模块:1.电梯控制板:该板包含了51单片机、电梯按钮、电梯状态显示器等组件,用于控制电梯的运行和状态显示。

2.电梯驱动器:该模块负责控制电梯的电机和门的开关,通过与电梯控制板的通信来实现电梯的运行控制。

3.按键模块:该模块用于接收用户输入的目标楼层,并将数据传输给电梯控制板。

4.故障检测模块:该模块用于检测电梯运行时的故障情况,并通过与电梯控制板的通信来报告故障信息。

软件设计电梯控制系统的软件设计主要包括以下几个部分:1.电梯控制算法:该算法用于根据用户输入的目标楼层和电梯当前的状态,确定电梯的运行方向和下一个停靠楼层。

2.状态机设计:该设计用于实现电梯的状态转换和运行控制。

通过状态机设计,可以实现电梯的顺序运行、停靠和开关门等功能。

3.中断处理程序:该程序用于处理硬件中断,包括接收用户输入的目标楼层和监测电梯的故障情况。

功能实现电梯运行控制通过电梯控制算法和状态机设计,可以实现电梯的运行控制。

电梯可以根据用户输入的目标楼层确定运行方向,并在到达目标楼层时停靠。

电梯状态显示电梯状态显示器可以显示电梯当前的楼层和运行状态,如上行、下行、停靠等。

通过电梯状态显示器,用户可以清楚地了解电梯的运行情况。

故障检测与报告电梯控制系统可以监测电梯的故障情况,如电机故障、门开关故障等。

一旦检测到故障,系统会通过显示器或其他方式向维护人员报告故障信息,以便及时修复。

基于51单片机的模拟电梯控制系统通过硬件设计和软件设计实现了电梯的运行控制、状态显示和故障检测等功能。

该系统可以提供安全、高效的电梯运行体验,为建筑的使用者提供便利。

基于51单片机的电梯控制系统

基于51单片机的电梯控制系统

电梯系统的组成模块
• 单片机最小系统模块 • 电梯内外电路按键模拟检测模块 • 电梯外部请求发光管显示模块 • 楼层显示数码管模块 • 电梯上下行模块及模拟传感器模块 • 给电梯提供动力的控制模块
电梯控制系统的模型示意图
电 梯 系 统 的 模 型
楼层模型: 高:180cm 宽:60cm
电梯模型: 高:40cm 宽:40cm
谢谢大家!
基于51单片机的 基于51单片机的 电梯控制系统
设计成员:王青青 苏Байду номын сангаас锋 王乃亨 范 葳
设计要求:
(1)用AT89C51单片机,实现用步 )用AT89C51单片机,实现用步 进电机带动电梯的4 进电机带动电梯的4层楼电梯运行 控制系统。 (2)每层楼都具有显示和请求的功 能。 (3)显示电梯的运行状态并实时显 示电梯所在楼层位置。
设计思路:
• 本次设计的总思想是,用开关作为电
梯内外的请求按键,按键和单片机的 接口相连,按键按下为低电平,将电 平信号传送到单片机,单片机根据各 口的信号进行判断处理,处理完毕后 控制步进电机运动,实现电梯的上下 运动,采用模拟传感器确定电梯所在 的楼层数及电梯准确停止的位置,用 七段数码管显示电梯所在楼层和下一 目标楼层,用LED灯显示电梯的上下运 目标楼层,用LED灯显示电梯的上下运 行状态。
• 时时显示电梯所在楼层数以及电梯要运行到
的下一目标楼层数和电梯当前的上下运行状 态显示。 • 有手动报警功能。
待改进方面:
• 电梯门模型的安装和控制 • 到达指定楼层的语音提示 • 时时响应请求要加强 • 准确判断电梯内部是否有人方面要
加强
希望各位领导、老 希望各位领导、 师审阅我们的论文并渴 望您们给予批评指正。 望您们给予批评指正。

基于51单片机的电梯控制器(总结报告)

基于51单片机的电梯控制器(总结报告)

基于51单片机的电梯控制器(总结报告)基于51单片机电梯控制器设计基于51单片机电梯控制器设计总结报告随着现代高科技的发展~住房和办公用楼都已经逐渐向高层发展。

电梯是高层宾馆、商店、住宅、多层仓库等高层建筑不可缺少的垂直方向的交通运输工具。

随着建筑物规模越来越大~楼层也越来越高~对电梯的调速精度、调速范围等静态和动态特性都提出了更高的要求。

基于发展~我们小组运用51单片机设计电梯控制器系统。

一、系统功能1、电梯以同向优先的基础上就近原则2、本课题以LED灯代替电梯的上下并配以数码管显示楼层二、系统硬件实现1、模块设计主控模块:51单片机控制显示模块:通过发光二极管模仿电梯并以此指示电梯的升降~配以数码管指示楼层数~蜂鸣器提示到达目标楼层。

输入模块:通过模拟电梯开关控制电梯升降达到模拟电梯的升降。

2、框图设计电源按键电路驱动电路复位电路 At89s51数LED 码晶振电路管3、电路原理图基于51单片机电梯控制器设计4、焊接二、系统软件实现1、程序流程图开始设定初始值While(1)电梯控制显示电梯部分中断服务基于51单片机电梯控制器设计2、C语言源代码Void delay() //延时函数Void print() //显示函数~控制数码管及各楼层指示灯亮灭Void initial()//初始化函数Void open() //开门函数Void close() //关门函数Void run() //主函数~通过调用以上函数~控制整个电梯工作Void flag() //接受输入信号~改变各种标志信号Void time() interrupt 1 using 1//中断服务程序三、调试过程1、51单片机外围电路检测与电路调试2、硬件仿真、程序仿真3、程序结合硬件仿真四、实物五、结论电梯控制器完成系统功能电梯以同向优先的基础上就近原则~配以数码管及LED为电梯楼层指示。

六、总结基于团队的水平有限~虽然电梯控制器基本达到要求规定~但对于程序用C 基于51单片机电梯控制器设计语言书写~程序段较长~需改进或者尝试用其他简单实用的语言书写。

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

题目:基于单片机控制的电梯控制器目录1引言 (1)2总体设计方案 (1)2.1设计思路 (1)2.2总体设计框图 (2)3电梯控制系统原理分析 (2)3.1单片机最小系统电路的 (2)3.2控制电路的设计 (3)3.2.1电梯内部呼叫电路和电机状态显示电路 (3)3.2.2电梯外部呼叫电路 (3)3.2.3电机控制电路 (4)3.3显示楼层电路 (4)4 程序流程图 (5)4.1 主程序流程图 (5)4.2选择要去的楼层子程序流程图 (6)5总结与体会 (7)参考文献 (8)附录 1 (9)附录 2 (9)附录 (10)电梯控制器课程设计任务书1.设计目的与要求1.1 基本功能(1)显示:本设计要求实现6层控制,实时显示电梯所在楼层位置。

(2)升降控制:采用一台电动机的正反转来实现电梯的升降。

(3)具备不可逆响应的功能:电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。

1.2 扩展功能(1)可增加人性化的按键语音服务功能。

(2)可增加遥控或感应操作功能。

2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH文件生成与打印输出;3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。

4.答辩在规定时间内,完成叙述并回答问题。

基于单片机控制的电梯控制器摘要:单片机即单片微型计算机(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

其中51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域.电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电设备,它是建筑中常用的交通工具。

本设计选择AT89S51为核心控制元件,设计了一个六层电梯系统,使用C语言进行编程,实现运送乘客到任意楼层,并且实时显示电梯的楼层和电梯上下情况。

利用单片机控制电梯有成本低,通用性强,灵活性大及易于实现复杂控制等优点。

关键词:电梯 AT89S51 LED显示电机正反转控制楼层显示1 引言随着人们生活水平的不断提高和国名经济的迅速发展。

各大城市建筑物在不断向高层化发展。

因此电梯在我们的生活中起着举足轻重的作用。

电梯已不仅是一种生产环节中的重要设备,更是一种人们频繁乘用的交通运输设备。

因此电梯控制技术也在不断的进步和完善,常用的控制技术主要的有两种技术:基于PLC控制和基于单片机控制两大技术。

用PLC控制的电梯性能可靠、稳定,但是造价太高。

基于单片机控制的电梯可以大大的降低成本而且运行也较可靠,所以现在电梯控制中大多数采用单片机控制。

本文基于单片机89SC51来控制各部分电路,采用单片机构成控制系统,可大大降低成本,而且做成专用控制系统,程序被固化,加强了保密性,提高了可靠性。

2 总体设计方案电梯控制系统由外部呼叫,内部呼叫,电机控制电路,楼层显示部分等组成。

电梯在各楼层的定位本应采用行程开关或者传感器,由于条件限制,采用延时控制。

相邻楼层间升降时间设为3秒。

2.1 设计思路本次设计的总思想是,用开关按钮做单片机的控制端来做作为输入信号,说明人在那一层,用七段数码管来显示电梯位置。

当电梯到达要求的楼层时,停止、开门,并继续查询有无呼叫信号,如此循环,同时可以利用单片机外部的复位按钮使电梯复位。

用单片机来控制电机的正反转来运行电梯的上、下,用发光二极管来显示电梯是上升还是下降,并且整体电梯全部采用独立键盘来控制,各个楼层的上下按钮、电梯内部的选层按钮均用独立键盘来实现。

由于设计中有不可逆控制,当上升或下降过程中,只相应同方向的呼叫相应。

2.1 总体设计框图本电路主要由5大部分电路组成:键盘电路、单片机最小系统电路、楼层显示电路、电机状态显示电路、电机控制电路。

其中单片机最小系统主要由复位电路和时钟电路组成。

电路复位后楼层显示数字1 表示电梯此时在一楼,显示电路通过74ls164串入并出驱动8位数码管显示,电梯楼层位置是由延时电路控制的,每层之间通过3秒延时控制即每延时3秒表示电梯走了一层。

电梯状态是通过两个发光管显示的,绿灯亮表示电梯在向上运行,黄灯亮表示电梯在向下运行。

键盘电路采用独立键盘(共16个按键),其中10个按键是各层楼外呼按键,6个表示电梯内部的选择键。

电梯的正常工作是通过对单片机写入程序控制的。

总体设计方框图如图1所示:图1.体设计方框图3 电梯控制系统原理分析3.1单片机最小系统电路的设计此电路组要是复位电路和时钟电路两部分,其中复位电路采用按键手动复位和上电自动复位组合,电路如图4(右)所示:其中9 脚为单片机的复位端。

时钟电路如图2(左)所示:晶振采用的是12MHZ的,XATL2和XATL1分别为单片机的18和19脚。

图2.单片机最小系统电路图3.2 控制电路的设计3.2.1 电梯内部呼叫电路和电机状态显示电路电梯内部呼叫电路和电机状态显示电路,如图3所示,六个目标楼层选择按键K1、K2、K3、K4、K5、K6与单片机P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5连接(P0口作为输出端驱动外部电路时须外接上拉电阻)。

电机状态是通过两个发光管显示的,绿灯、红灯与单片的P1.6、P1.7连接(须外接上拉电阻),绿灯亮表示电梯在向上运行,黄灯亮表示电梯在向下运行。

人进入电梯内按下要去的楼层对应的按键,就会控制电机转动,达到相应楼层。

图3.电梯内部呼叫电路和电机状态显示电路3.2.2 电梯外部呼叫电路电梯外部呼叫电路如图4所示,按键UP1、UP2、DOWN2、UP3、DOWN3、UP4、DOWN4、UP5、DOWN5、DOWN6接单片机的P2口和P1.0、P1.1。

若按下上升键,则电梯在上升过程中只响应上升呼叫,不响应下降键;反之亦然。

图4.电梯外部呼叫电路3.2.3 电机控制电路电机采用普通直流电机,直流电机具有优良的调速特性,调速平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。

用电机驱动芯片L298来驱动。

电机控制电路用来控制电机的正反转,当按下上升键时,电机正转,按下下降键时,电机反转。

电路如图5所示。

图5.电机控制电路3.3 显示楼层电路显示电路的作用是实时显示电梯所在楼层,用一个八段数码管来实现,本设计用74ls164驱动数码管,其管脚1、2接单片机P3.0口,管脚8接P3.1口。

电路如图6所示。

图6.显示楼层电路4 程序流程图4.1主程序流程图图7.主程序流程图4.2 选择要去的楼层子程序流程图图8.选择要去的楼层子程序流程图5 总结与体会通过这次单片机实习,使我在各方面都有了很大的提高,特别是在单片机编程方面让我有了很大的进步。

以前学习理论知识的时候我就对一些指令的应用不理解,现在自己动手编程了,通过这前两星期查找资料和单片机的实例应用,我对以前的不懂知识进行了全面的复习和新的学习。

这次实习在硬件设计方面我没遇到多大的问题,遇到的主要问题是在软件设计方面,由于刚开始我对编程没一点经验,所以没有很好的设计思路就开始编程了,结果刚编的过程中遇到了很多的问题,最后经过同学的帮助,我的程序才慢慢的编成了。

我设计的电梯自动控制用到了电机我们用二极管模拟,实物出来时,没能成功实现功能,让我们知道了理论与实际的差距,也意识到理论与实际相结合的重要性。

在写程序时需要极大的耐心,一点一点的改正,达到想要的效果,使自己的编程能力不断的提高!参考文献:[1] 沈德全.mcs51系列单片机接口电路与应用程序实例[M].北京:北京航空航天大学出版社[2] 张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,2008 .4[3] 张大明.单片机微机控制应用技术[M].北京:机械工业出版社,2006.4[4] 刘瑞新.单片机原理及应用教程[M].机械工业出版社, 2003.7[5] 李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2006附录1:总体电路图#include<reg51.h>#include"电梯.h"sbit k1=P0^0;sbit k2=P0^1;sbit k3=P0^2;sbit k4=P0^3;sbit k5=P0^4;sbit k6=P0^5;sbit LedDown=P0^6;sbit LedUp=P0^7;sbit up1=P2^0;sbit up2=P2^1;sbit down2=P2^2;sbit up3=P2^3;sbit down3=P2^4;sbit up4=P2^5;sbit down4=P2^6;sbit up5=P2^7;sbit down5=P1^0;sbit down6=P1^1;sbit d11=P1^2;sbit d12=P1^3;sbit d21=P1^4;sbit d22=P1^5;sbit pwm1=P1^6;sbit pwm2=P1^7;void DianTiKey();#define uchar unsigned charchar KeyValueOld; //内部按键上次值char KeyValueOOld; //外部按键上次值char NowFloor; //当前所在楼层char KeyValue; //电梯内部按键暂存值char KeyValueO; //电梯外部按键暂存值char GoFloor[5]; //要去楼层暂存GoFloor[1]=1 2楼在呼叫上升 GoFloor[1]=2 2楼在呼叫下降char t; //电梯运行/停止标/上升/下降志位 t=0电梯没有运行t=11电梯在上升 t=10电梯下降uchar code play[]={0xff,0xd7,0x32,0x92,0xd4,0x98,0x18}; //串口显示字型码unsigned int TimeValue; // 定时器计数char Num;void delay(unsigned int a)// unsigned int i;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue=0;TR0=1;while(TimeValue<a){DianTiKey(); //多人电梯功能添加部分}TR0=0;}void ShangSheng()//驱动电机上升函数{int i;t=11;LedUp=0;LedDown=1;for(i=0;i<10;i++){d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5);d11=0,d12=0,d21=1,d22=1;delay(5);d11=0,d12=0,d21=0,d22=1;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);}t=0;// d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;}void XiaJiang()//驱动电机下降函数int i;t=10;LedDown=0;LedUp=1;for(i=0;i<10;i++){d11=0,d12=0,d21=0,d22=1;delay(5);d11=0,d12=0,d21=1,d22=1;delay(5);d11=0,d12=0,d21=1,d22=0;delay(5);d11=0,d12=1,d21=1,d22=0;delay(5);d11=0,d12=1,d21=0,d22=0;delay(5);d11=1,d12=1,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=0;delay(5);d11=1,d12=0,d21=0,d22=1;delay(5);}t=0;// d11=1,d12=1,d21=1,d22=1;LedDown=1;LedUp=1;}void Go() //电梯内部按键响应程序{char temp;if(KeyValue!=KeyValueOld){KeyValueOld=KeyValue;temp=NowFloor-KeyValue;if(t==0){if(temp>0) //电梯执行上升{while(temp>0){ShangSheng();Num++;if(GoFloor[Num]!=0){if(((GoFloor[Num]&0x01)+(GoFloor[Num]&0x04))>0);}temp--;SBUF=play[--NowFloor];while(!TI);TI=0;}NowFloor=KeyValue;}if(temp<0) //电梯执行下降{while(temp<0){XiaJiang();temp++;SBUF=play[++NowFloor];while(!TI);TI=0;}NowFloor=KeyValue;}} //此电梯功能只适合一个人乘车}}void OutKey() //外部按键响应程序{char temp;if(KeyValueO!=KeyValueOOld)//按键是否按下{KeyValueOOld=KeyValueO;temp=NowFloor-KeyValueO;if(t==0){if(temp>0) //电梯执行上升{while(temp>0){ShangSheng();temp--;SBUF=play[--NowFloor];while(!TI);TI=0;}NowFloor=KeyValueO;}if(temp<0) //电梯执行下降{while(temp<0){XiaJiang();temp++;SBUF=play[++NowFloor];while(!TI);TI=0;}NowFloor=KeyValueO;}}}}void DianTiKey() //电梯按键扫描函数{switch(~P0){case 0x01:KeyValue=1;GoFloor[0]|=4;break;case 0x02:KeyValue=2;GoFloor[1]|=4;break;case 0x04:KeyValue=3;GoFloor[2]|=4;break;case 0x08:KeyValue=4;GoFloor[3]|=4;break;case 0x10:KeyValue=5;GoFloor[4]|=4;break;case 0x20:KeyValue=6;GoFloor[5]|=4;break;case 0x40:break;case 0x80:break;}if(t==0){switch(~P2) //上升按键扫描{case 0x01:GoFloor[0]|=1;KeyValueO=1;break;//1楼呼叫上升case 0x02:GoFloor[1]|=1;KeyValueO=2;break;//2楼呼叫上升case 0x04:GoFloor[2]|=1;KeyValueO=3;break;//3楼呼叫上升case 0x08:GoFloor[3]|=1;KeyValueO=4;break;//4楼呼叫上升case 0x10:GoFloor[4]|=1;KeyValueO=5;break;//5楼呼叫上升case 0x20:GoFloor[0]|=2;KeyValueO=2;break;//2楼呼叫下降case 0x40:GoFloor[1]|=2;KeyValueO=3;break;//3楼呼叫下降case 0x80:GoFloor[2]|=2;KeyValueO=4;break;//4楼呼叫下降}if(!down6){GoFloor[4]|=2; //6楼呼叫下降KeyValueO=6;}if(!down5) //5楼呼叫下降{GoFloor[3]|=2;KeyValueO=5;}}else{if(t==11) //电梯在上升时响应上升呼叫switch(~P2) //上升按键扫描{case 0x01:GoFloor[0]|=1;KeyValueO=1;break;//1楼呼叫上升case 0x02:GoFloor[1]|=1;KeyValueO=2;break;//2楼呼叫上升case 0x04:GoFloor[2]|=1;KeyValueO=3;break;//3楼呼叫上升case 0x08:GoFloor[3]|=1;KeyValueO=4;break;//4楼呼叫上升case 0x10:GoFloor[4]|=1;KeyValueO=5;break;//5楼呼叫上升}else if(t==10) //电梯在下降时响应下降呼叫{switch(~P2){case 0x20:GoFloor[0]|=2;KeyValueO=2;break;//2楼呼叫下降case 0x40:GoFloor[1]|=2;KeyValueO=3;break;//3楼呼叫下降case 0x80:GoFloor[2]|=2;KeyValueO=4;break;//4楼呼叫下降}if(!down6){GoFloor[4]|=2; //6楼呼叫下降KeyValueO=6;}if(!down5) //5楼呼叫下降{GoFloor[3]|=2;KeyValueO=5;}}}}void start(){SCON=0X00;//串口工作在零模式TMOD=0X01;ET0=1;EA=1;TI=0;NowFloor=1;KeyValueOld=KeyValueOOld=KeyValue=KeyValueO=1;pwm1=pwm2=1;SBUF=play[1];while(!TI);TI=0;}void main(){start();while(1){DianTiKey(); //电梯按键扫描OutKey(); //外部按键响应Go(); //内部按键响应}}void t0() interrupt 1{TH0=(65535-10000)/256;TL0=(65535-10000)%256;TimeValue++;}。

相关文档
最新文档