基于51单片机实现的电梯模型设计
基于51单片机的电梯控制器设计
题目:基于单片机控制的电梯控制器目录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语言进行编程,实现运送乘客到任意楼层,并且实时显示电梯的楼层和电梯上下情况。
基于51单片机实现的电梯模型设计
电梯模型设计报告学院:自动化学院队名:xxx队员:xxx日期:2009.11.20一、概述电梯模型以51为核心处理器,步进电机为控制电机,用L298N 搭建驱动电机模块,结合光电传感器实现对电梯的上升,下降,准确平层各种运行方式的控制。
利用矩阵键盘、ISD1760语音芯片,数码管等各种功能模块实现电梯的扩展功能及人机交互功能。
二、方案论证方案一:直流伺服电机+光电传感控制方式。
优点:直流电机速度可以平滑调节,自带编码盘可以记录电梯运行位移,速度调节范围大。
缺点:用编码盘测量位移误差较大,对CPU运算处理要求较高而且直流电机运行时带有一定惯性,对平层带来较大难度。
方案二:步进电机+光电传感控制。
优点:步进电机可以用脉冲方式控制轿厢位移,配合光电传感模块可以准确实现轿厢平层;步进电机为输入脉冲时,电机可以卡死不发生转动,使得电梯在楼层处安全停止,等待相应操作。
缺点:步进电机转速较慢,速度控制要通过该变脉冲频率来调节,控制电路要求较高。
由于本作品为电梯模型,速度要求不高,通过单片机可以方便输出电机所需脉冲,配合L298芯片可以实现对步进电机的完美控制,所以我们选择方案二。
三、详细设计方案1.楼层模型设计电梯模型采用易于加工的木材,选用1.2米长的木板作为模拟楼层,底座用三角架固定,确保电梯运行过程不会出现模型摇动现象。
电梯轨道处拉两根铁丝作为电梯导轨,保障电梯的运动轨迹。
轿厢用纸盒模拟代替,盒子敞开一面,可以放入物品,模拟乘客进出电梯。
2.驱动电路模块控制电机选用四相步进电机,步进角为1.8度。
步进电机可以通过直流斩波改变顺序控制电机正反传,51单片机的定时/计数器可以模拟输出4路直流斩波,通过步进电机驱动电路控制步进电机。
驱动电路以L298N驱动芯片为核心部件,L298N芯片的电平电压与51单片机兼容,驱动电压可达50V完全可以驱动电梯模型所用控制电机。
驱动电路如下图:四个输出端分别接步进电机的四个脉冲输入端,通过定时计数器模拟输出的四路直流斩波控制L298N的输出端口,从而可以方便的控制步进电机。
基于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单片机的电梯智能控制系统设计
摘要在现代电梯智能控制系统大多采用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单片机的四层电梯控制设计
目录摘要 (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芯片驱动。
软件部分使用汇编语言,利用中断方式来检测用户请求的按键信息,根据电梯运行到相应楼层时,光电传感器产生电平变化,送到单片机计数来确定楼层数,并送到数码管进行显示。
基于C51单片机的模拟电梯系统设计报告
单片机原理与应用技术课程设计报告基于C51单片机控制的电梯自动控制系统专业班级: _____计算机xx_____姓名: ___xxx__时间: ______2012年6月 __指导教师: ______xxx _____一、设计要求1.基本功能:(1)显示:本设计要求实现5层控制,实时显示电梯所在楼层位置。
(2)升降控制:采用一台步进电机的正反转来实现电梯的升降。
(3)具备不可逆响应的功能:电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。
2.设计内容:(1)基于功能进行初步设计;(2)编写代码,实现功能;(3)完成课程设计报告。
二、电梯控制系统原理1.系统总体实现原理:本电梯模拟系统是基于C51单片机、4*4矩阵式键盘、步进电机和LED数码管来实现的。
通过4*4矩阵式键盘输入控制信息,C51单片机程序处理后来直接控制步进电机转动、LED 数码管显示。
电梯运行基本过程是:电梯默认初始停在一楼,LED数码管显示1,当按键按下1~5中的数时,通过程序进行判断是否升降(即步进电机正转反转)、升降几层(转几圈)。
与此同时,LED 数码管显示当前所在楼层(1~5)。
电梯在升降过程中,按其他键无效,即只有在电梯停下后,才可以进行下一轮的升降。
另外,站在电梯外边的人可以通过按上下键(一层只有上键,五层只有下键)来控制电梯到人所在楼层,例如,你站在3层,你按了上键,电梯不论在1~5层的哪一层都会先升降到3层,然后你进电梯,向前面所说的进行控制电梯升降。
图1 设计电路总框图3938373635343332212223242526272829301110图2 单片机最小系统电路2.各组成部分原理: (1)信号输入电路现以呼叫信号的输入为例,来说明信号输入及单片机识别原理。
如图3所示,采用P0口外接上拉电阻的并行输入形式,来输入外呼叫信号,本电路采用4×4矩阵键盘,列扫描法识别键值的原理,具体原理如下:a) 判断键盘中有无键按下:将全部行线P0.0-P0.3置低电平,列线P0.4-P0.7置高电平,然后检测列线的状态。
(完整)基于51单片机的三层电梯系统设计
基于51单片机的三层电梯系统设计专业班级:电子信息科学与技术1班*名:**指导教师:金国华老师信息科学技术学院摘要本文设计了一款基于单片机(AT89C51)的三层电梯的模拟控制系统。
以51单片机为核心,由7段显示数码管来作为电梯楼层和电梯上下行状态的显示部分,数码管显示“p”则说明电梯运行状态向上,显示“d”则说明电梯运行状态向下。
由按键来分别表示电梯内外的各个功能按钮。
本设计主要是利用了单片机:灵活性大、通用性强以及易于实现复杂控制的特点,使系统在达到设计目的的同时显得结构简单,操作方便,容易理解。
文中首先是针对设计的目的选择出比较合适的设计方案,并且对AT89C51单片机和7段显示数码管进行了简要介绍,然后将本次设计的硬件电路分为单片机控制模块、显示模块、按键检测模块三个大的模块.在进行了电路的连接之后,根据电路的连接就各个模块分别编写程序再由主程序统一衔接在一起。
通过调试运行,所设计的三层电梯系统基本满足设计要求。
关键词:AT89C51单片机;电梯控制;数码显示AbstractIn 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 d igital 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。
基于51单片机模拟电梯控制系统
基于51单片机模拟电梯控制系统简介本文档介绍了基于51单片机的模拟电梯控制系统。
电梯是现代建筑中不可或缺的交通工具,其安全性和运行效率直接影响到建筑的使用体验。
本文档将详细描述电梯控制系统的设计和实现过程,以及关键的技术细节。
系统架构硬件设计基于51单片机的模拟电梯控制系统的硬件设计主要包括以下几个模块:1.电梯控制板:该板包含了51单片机、电梯按钮、电梯状态显示器等组件,用于控制电梯的运行和状态显示。
2.电梯驱动器:该模块负责控制电梯的电机和门的开关,通过与电梯控制板的通信来实现电梯的运行控制。
3.按键模块:该模块用于接收用户输入的目标楼层,并将数据传输给电梯控制板。
4.故障检测模块:该模块用于检测电梯运行时的故障情况,并通过与电梯控制板的通信来报告故障信息。
软件设计电梯控制系统的软件设计主要包括以下几个部分:1.电梯控制算法:该算法用于根据用户输入的目标楼层和电梯当前的状态,确定电梯的运行方向和下一个停靠楼层。
2.状态机设计:该设计用于实现电梯的状态转换和运行控制。
通过状态机设计,可以实现电梯的顺序运行、停靠和开关门等功能。
3.中断处理程序:该程序用于处理硬件中断,包括接收用户输入的目标楼层和监测电梯的故障情况。
功能实现电梯运行控制通过电梯控制算法和状态机设计,可以实现电梯的运行控制。
电梯可以根据用户输入的目标楼层确定运行方向,并在到达目标楼层时停靠。
电梯状态显示电梯状态显示器可以显示电梯当前的楼层和运行状态,如上行、下行、停靠等。
通过电梯状态显示器,用户可以清楚地了解电梯的运行情况。
故障检测与报告电梯控制系统可以监测电梯的故障情况,如电机故障、门开关故障等。
一旦检测到故障,系统会通过显示器或其他方式向维护人员报告故障信息,以便及时修复。
基于51单片机的模拟电梯控制系统通过硬件设计和软件设计实现了电梯的运行控制、状态显示和故障检测等功能。
该系统可以提供安全、高效的电梯运行体验,为建筑的使用者提供便利。
基于51单片机的电梯控制系统
电梯系统的组成模块
• 单片机最小系统模块 • 电梯内外电路按键模拟检测模块 • 电梯外部请求发光管显示模块 • 楼层显示数码管模块 • 电梯上下行模块及模拟传感器模块 • 给电梯提供动力的控制模块
电梯控制系统的模型示意图
电 梯 系 统 的 模 型
楼层模型: 高:180cm 宽:60cm
电梯模型: 高:40cm 宽:40cm
谢谢大家!
基于51单片机的 基于51单片机的 电梯控制系统
设计成员:王青青 苏Байду номын сангаас锋 王乃亨 范 葳
设计要求:
(1)用AT89C51单片机,实现用步 )用AT89C51单片机,实现用步 进电机带动电梯的4 进电机带动电梯的4层楼电梯运行 控制系统。 (2)每层楼都具有显示和请求的功 能。 (3)显示电梯的运行状态并实时显 示电梯所在楼层位置。
设计思路:
• 本次设计的总思想是,用开关作为电
梯内外的请求按键,按键和单片机的 接口相连,按键按下为低电平,将电 平信号传送到单片机,单片机根据各 口的信号进行判断处理,处理完毕后 控制步进电机运动,实现电梯的上下 运动,采用模拟传感器确定电梯所在 的楼层数及电梯准确停止的位置,用 七段数码管显示电梯所在楼层和下一 目标楼层,用LED灯显示电梯的上下运 目标楼层,用LED灯显示电梯的上下运 行状态。
• 时时显示电梯所在楼层数以及电梯要运行到
的下一目标楼层数和电梯当前的上下运行状 态显示。 • 有手动报警功能。
待改进方面:
• 电梯门模型的安装和控制 • 到达指定楼层的语音提示 • 时时响应请求要加强 • 准确判断电梯内部是否有人方面要
加强
希望各位领导、老 希望各位领导、 师审阅我们的论文并渴 望您们给予批评指正。 望您们给予批评指正。
基于51单片机的模拟电梯控制系统_毕业设计
摘要本文介绍了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯内外电路按键模拟检测模块、电梯外请求发光管显示模块、楼层显示数码管模块、电梯上下行模块及模拟传感器模块等5部分组成。
该系统采用单片机(AT89C51)作为控制核心,内外均使用按键按下与否引起的单片机相应端口电平变化的原理,作为用户请求信息发送到单片机,单片机根据判断的结果最终驱动步进电机做相应的运动,在运动的过程中,单片机依照请求信息通过模拟的传感器使步进电机停止运动,并利用彩灯作为上升和下降的状况显示,七段数码管实时显示当前楼层,完成整个请求和响应的过程。
软件部分使用汇编语言实现,利用查询方式来检测用户请求的按键信息。
根据电梯运行到相应楼层时,模拟按键引起的电平变化,进行判断和执行实现电梯的控制,并且将程序模块化,方便了修改和调用。
硬件设计简单可靠,结合软件,基本实现了四层电梯的模拟运行。
关键词:单片机,AT89C51,电梯控制,步进电机目录摘要 (I)目录 (II)第1章绪论 (1)1.1电梯的研究背景及意义 (1)1.2 电梯的国内外发展状况 (1)第2章电梯设计任务与要求 (2)2.1设计任务 (2)2.2设计要求 (2)第3章总体设计方案 (3)3.1设计思路 (3)3.2总体设计框图 (3)第4章电梯控制系统 (4)4.1电梯控制系统 (4)4.2主要硬件设计器件介绍 (5)4.3 软件设计 (9)第5章个人心得体会 (12)参考文献 (14)致谢 (15)附录I: (16)附录II: (18)第1章绪论1.1电梯的研究背景及意义电梯是高层宾馆、商城、住宅、多层厂房和仓库等高层建筑不可缺少的垂直方向的交通工具。
随着社会的发展,建筑物规模越来越大,楼层越来越多,对电梯的可靠性、舒适感和美学等方面的要求也有了更高的要求。
电梯是集机电一体的复杂系统,涉及机械传动、电气控制和土建等工程领域,而对现代电梯而言,应具有高度的安全性。
80C51基于单片机的电梯控制器设计_毕业设计(论文)
80C51基于单片机的电梯控制器设计_毕业设计(论文)单片机技术课程设计报告课题名称基于单片机的电梯控制器设计系别理学院专业 _电子信息科学与技术_2013年 6月 20 日毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于51单片机的电梯模型控制系统设计
主要研究内容
本课题的主要任务是 完成一个电梯系统的 调度模块,即根据每 个楼层不同顾客的按 键需求,让电梯做出 合理的判断,正确高 效地知道电梯完成各 项载客任务。
基于51单片机的电梯模 型控制电梯出 现在上海,是由美国奥 的斯公司于1901年安装 的。而今我国电梯已进 入了告诉发展时期。如 何一座城市、商场、医 院等地方都有电梯被广 泛应用者,直接与人们 的生活息息相关,成为 人们生活不可缺少的垂 直运输交通工具。
单片机在我们的生活中触手可及,尤其是在智 能仪表,实时控制,机电一体化等方面有着广 泛应用,毕业设计注重于对单片机的理解与应 用,掌握接口技术,中断技术,存储方式,时 钟方式,和控制方式,通过模拟控制电梯来学 习这些,这样样才更好的利用单片机,提高自 身综合能力。
基于MCS-51单片机的电梯模拟系统设计
本科毕业设计论文题目基于MCS-51单片机的电梯模拟系统设计专业名称学生姓名指导教师毕业时间毕业一、题目:基于MCS-51单片机的电梯模拟系统设计二、指导思想和目的要求:通过毕业设计,使学生对所学电子工艺、传感器知识、电机控制技术、模电、数电、等电子基础课程的基本知识加深理解,在所学51八位单片机的基础上,学习更高级十六位单片机的基本指令及基本结构,并将其与实际工程应用紧密结合起来,培养创新意识,增强分析问题解决问题能力,为尽快进入社会角色,熟悉相关开发工作流程,提高基本工作技能,为即将踏入社会奠定理论和实践基础。
要求:认真复习有关基础理论和技术知识,查阅参考资料,参照下列设计思想,运用所学单片机知识独立设计电路、自行焊接、调试,直至预期结果方可。
要求实现:1. 通电后,系统默认电梯轿厢停在一层。
2. 如需上行,请按下所要到达楼层的上行呼叫按钮,轿厢显示开始上行,所经楼层号用LED进行短时显示,到达,楼层号持续显示,直至轿厢被呼叫离开,并有蜂鸣器鸣叫以示到达。
3. 当轿厢停留在中间楼层时,可实现上或下行呼叫,行进方向按呼叫顺序进行,如同时呼叫,则坚持先上行,后下行原则。
4. 由LED指示轿厢行进的方向。
5. 模拟楼层数要求五层及以上。
三、进度与要求:1.第一周~第三周在工作中收集各种相关资料,给出系统整体设计方案。
2.第四周~第五周进行器件选型,并用PROTEL设计硬件原理图。
3.第六周~第九周针对系统具体功能进行编程调试。
4.第十周~第十一周整理并组织论文。
6.第十二周~第十四周完成修改稿,定稿,打印,交评阅。
7.第十五周~第十六周评阅与答辩四、主要参考书及参考资料[1] 谢宜人主编,单片机实用技术问答, 北京人民邮电出版社 ; 2003[2] 靳达,单片机应用系统开发实例导航 , 北京人民邮电出版社 ; 2003[3] 流光斌等,单片机系统实用抗干扰技术,北京人民邮电出版社;2004[4] 余永权,ATMEL89系列单片机应用技术,北京航空航天大学出版社;2002[5] 陈瑾;智能小车运动控制系统的研究与实现[D];东南大学硕士论文;2005年[6] 韦巍;智能控制技术[M];北京:机械工业出版社;2000年[7] 蒋新松;机器人学导论[M];辽宁科学技术出版社;2003年[8] 孙迪生,王炎;机器人控制技术;北京:机械工业出版社;1997年[9] 陈明荧,8051单片机课程设计实训教材,清华大学出版社;2003年[10] 蔡美琴等,MCS-51系列单片机系统及其应用,高等教育出版社;2004年学生指导教师__ _ 系主任摘要电梯开始成为人们生活中不可缺少的一种便利工具。
基于51单片机的电梯智能控制系统设计与实现
基于51单片机的电梯智能控制系统设计与实现电梯智能控制系统是一种基于微控制器的设计,它的主要目的是帮助电梯自动化运行并保证运行的安全性。
本文将介绍基于51单片机的电梯智能控制系统的设计和实现。
一、电梯智能控制系统的设计思路若要设计一款电梯智能控制系统,我们需要考虑以下方面:1. 电梯的联动性:我们需要让电梯在呼叫系统和在楼层之间进行联动通信,从而实现自动化操作。
2. 速度控制器:电梯的电控系统中应该包括速度控制器以及对所有电动机和电脑设备的功率管理。
3. 安全保障:此类系统应该包括底层的传感器和控制器,以预防电梯陷入危险的情况。
基于这些方面,我们可以设计出以下的电梯智能控制系统:1. 位于每个楼层的面板将包括两个按钮:上行/下行和电梯呼叫。
2. 每个电梯都有自己的控制器,可以预测每个乘客的目标楼层以及电梯运动的方向。
3. 运动速度应该根据电梯的位置或者方向进行控制。
当电梯靠近楼层之后,速度应该降低并使电梯到达目的地。
4. 当电梯遇到紧急情况,如被卡住或者有人挡住,控制器应该立即响应并阻止电梯运动,避免任何可能危险的事件发生。
二、电梯智能控制系统的硬件设计以下是电梯智能控制系统的基本硬件设计:1. 单片机:电梯智能控制系统需要恰当的单片机来控制每个电梯的速度和位置,同时实现通信功能。
在本例中,我们使用51单片机。
2. 传感器:控制电梯位置和速度的传感器包括霍尔传感器和光电传感器。
3. 驱动器:驱动器是一种组件,可以调节电器负载的功率流量。
在电梯中,我们使用电动机和变频器驱动器来控制电梯的运动。
4. LED 显示器:该显示器用于指示电梯的运动状态,例如方向的指示灯、上行/下行箭头、电梯当前位置的数字等。
5. 按钮面板:面板应该在每个楼层提供上行/下行按钮和呼叫按钮,以允许乘客控制电梯。
三、电梯智能控制系统的软件设计以下是电梯智能控制系统的基本软件设计:1. 定时器:使用定时器来控制每个电梯的位置和速度,例如电梯到达楼层时,应该停止电梯并允许乘客离开或进入电梯。
基于-51单片机的电梯设计
摘要随着社会的不断发展,楼房越来越高,而电梯则成了高层楼房的必须设备。
电梯从手柄开关操纵电梯、按钮控制电梯发展到了现在的群控电梯,为高层运输做出了不可磨灭的贡献。
单片机在电梯升降控制上的应用主要体现在它的逻辑开关控制功能。
由于单片机具有逻辑运算,计数和定时以及数据输入输出的功能,在电梯升降过程中,各种逻辑开关控制与单片机很好的结合,很好的实现了对升降的控制。
本文主要讨论研究利用Atmel 公司的51系列单片机AT89C51和四相步进电机对电梯的升降进行控制,形成电梯控制系统。
关键词:电梯 AT89C51 电梯升降控制四相步进电机 C语言程序设计第一章绪论1.1单片机简介近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。
本系统采用Atmel 公司的51系列单片机AT89C51作为主控芯片。
其特征如下:单片机 AT89C518位微控制器 8K字节在系统可编程 Flash主要性能与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz~33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符功能特性描述AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
基于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单片机电梯控制器设计语言书写~程序段较长~需改进或者尝试用其他简单实用的语言书写。
2024版基于51单片机的电梯仿真系统(仿真程序PPT)
51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
51单片机结构和工作原理
51单片机的结构
51单片机主要由中央处理器(CPU)、存储器(RAM和ROM)、特殊功能寄存器(SFR)、定 时器/计数器(T0和T1)、中断系统、I/O端口(P0、P1、P2、P3)以及串行通信接口(SCI)
基于51单片机的电梯仿真 系统(仿真程序PPT)
目录
• 引言 • 51单片机基础知识 • 电梯仿真系统设计 • 电梯仿真系统实现 • 电梯仿真系统优化与改进 • 总结与展望
01
引言
目的和背景
电梯在现代社会中的普及和使用频率,使得电梯控制系统的设计和优化变 得至关重要。
传统电梯控制系统存在诸多局限性,如布线复杂、维护困难等,因此研究 基于单片机的电梯控制系统具有重要意义。
提升运行效率
通过优化算法,减少程序运行时间,使电梯响 应更快。
降低资源消耗
合理利用单片机资源,如内存、CPU等,避免 资源浪费。
增强稳定性
采用容错机制,确保电梯在异常情况下仍能稳定运行。
功能扩展
多电梯协同
实现多台电梯的协同工作,提高运输效率。
语音识别与控制
集成语音识别技术,方便用户通过语音控制 电梯。
楼层导航
增加楼层导航功能,引导乘客快速找到目的 楼层。
用户体验提升
01
界面优化
改进用户界面,使其更加直观、 易用。
02
03
响应速度提升
个性化服务
优化程序响应速度,减少用户等 待时间。
提供个性化设置选项,如语音提 示、背景音乐等,满足不同用户 需求。
06
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电梯模型设计报告学院:自动化学院队名:xxx队员:xxx日期:2009.11.20一、概述电梯模型以51为核心处理器,步进电机为控制电机,用L298N 搭建驱动电机模块,结合光电传感器实现对电梯的上升,下降,准确平层各种运行方式的控制。
利用矩阵键盘、ISD1760语音芯片,数码管等各种功能模块实现电梯的扩展功能及人机交互功能。
二、方案论证方案一:直流伺服电机+光电传感控制方式。
优点:直流电机速度可以平滑调节,自带编码盘可以记录电梯运行位移,速度调节范围大。
缺点:用编码盘测量位移误差较大,对CPU运算处理要求较高而且直流电机运行时带有一定惯性,对平层带来较大难度。
方案二:步进电机+光电传感控制。
优点:步进电机可以用脉冲方式控制轿厢位移,配合光电传感模块可以准确实现轿厢平层;步进电机为输入脉冲时,电机可以卡死不发生转动,使得电梯在楼层处安全停止,等待相应操作。
缺点:步进电机转速较慢,速度控制要通过该变脉冲频率来调节,控制电路要求较高。
由于本作品为电梯模型,速度要求不高,通过单片机可以方便输出电机所需脉冲,配合L298芯片可以实现对步进电机的完美控制,所以我们选择方案二。
三、详细设计方案1.楼层模型设计电梯模型采用易于加工的木材,选用1.2米长的木板作为模拟楼层,底座用三角架固定,确保电梯运行过程不会出现模型摇动现象。
电梯轨道处拉两根铁丝作为电梯导轨,保障电梯的运动轨迹。
轿厢用纸盒模拟代替,盒子敞开一面,可以放入物品,模拟乘客进出电梯。
2.驱动电路模块控制电机选用四相步进电机,步进角为1.8度。
步进电机可以通过直流斩波改变顺序控制电机正反传,51单片机的定时/计数器可以模拟输出4路直流斩波,通过步进电机驱动电路控制步进电机。
驱动电路以L298N驱动芯片为核心部件,L298N芯片的电平电压与51单片机兼容,驱动电压可达50V完全可以驱动电梯模型所用控制电机。
驱动电路如下图:四个输出端分别接步进电机的四个脉冲输入端,通过定时计数器模拟输出的四路直流斩波控制L298N的输出端口,从而可以方便的控制步进电机。
电机的运转速度可以通过调节直流斩波的频率来控制。
同时,通过对脉冲个数的控制,也可以粗略了解轿厢运行的位移,配合光电模块,将使电梯平层更加便捷、准确。
3.光电传感模块为了确保准确平层,每层楼都安装红外对管,用于检测轿厢是否运行至楼层,若检测到轿厢运行至目标楼层,则像CPU发出中断请求,执行电梯停止运行操作。
红外对管原理:红外对管由发射和接受两部分组成,发射的红外线京轿厢反射后被接受管接受后,引起电平跳变CPU根据此信号做出相应命令。
电路原理图如下:4.楼层按键设计为了模拟乘客在轿厢内对电梯的控制,我们扩展了一个4*4的键盘,用于乘客选择楼层及轿厢内的一些控制按钮,考虑到实验的原因,控制键盘并未装在轿厢内部,而是引到模型外面,便于演示。
本模型用到两个4*4矩阵键盘,一个用于楼层级轿厢控制,另一个用于密码和其他设置,接口原理相同。
5.语音播放模块本模型加入了语音播放功能,及时播放轿厢运行状况,所有录音内容均为小组设计,是本模型人机交互人性化设计一个重要部分。
语音播放模块以ISD1760语音芯片为核心, ISD1700系列芯片是华邦公司新推出的单片优质语音录放电路,该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示。
语音芯片提前录入“欢迎乘坐长颈鹿电梯”、报告层数的语音数据,电梯平层后,CPU会输出脉冲控制芯片,喇叭发出欢迎语音和层数提示。
ISD电特性及应用电路如下:ISD1700电特性:.工作电压:2.4V-5.5V,,最高不能超过6V.静态电流:0.5 - 1 μA.工作电流:20mA电路图如下:语音变化信号由15脚输出,采用简单的三极管电流放大电路,接入小喇叭,实现语音输出。
小喇叭参数:8欧,0.5W。
6.电源切换部分考虑到紧急停电情况,用电池作为备用电源,停电时用继电器切换至备用电源,在备用电源供电情况下,控制轿厢运行到附近楼层,若检测到不是短时停电,则控制电梯在备用电源供电下运行。
电路原理图如下:7.负载控制部分本模型采用光电方式控制额定负载,输出电压信号经AD转换为0-255之间的数字信号输入CPU。
单片机将输入值的大小与设定额定值比较,若超过额定值,则发出报警音,同时像电机控制CPU发送超载信号,电机控制CPU停止运行。
若要改变额定负载值,可以用相应按键设置,改变程序中存储的额定负载值即可。
8.中央处理器部分本作品使用3片51单片机配合使用来控制整个系统,单片机之间通过通信达到信息传递。
单片机接口原理图(主要功能CPU)如下:主控CPU;电机控制CPU:功能扩展CPU:四、调试过程各个模块均可以独立正常运行,通过单片机系统总线将各个模块连接起来,实现了预期结果。
五、程序流程图电机控制CPU:功能扩展CPU:六、程序清单主控制CPU:#include<reg52.h>sbit P0_0=P0^0;sbit P0_1=P0^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit P3_0=P3^0;sbit P3_1=P3^1;sbit P3_4=P3^4;sbit P3_5=P3^5;/*******函数声明********/void init();//初始化?void keyscan();//键盘扫描void delay1ms(unsigned int count);//延时程序void runto(unsigned int lou);//电梯运行程序void show();//code unsigned char LedTab[]=//{// 0xc0, 0xf9, 0xa4, 0xb0,// 0x99, 0x92, 0x82, 0xf8,// 0x80, 0x90, 0x88, 0x83,// 0xc6, 0xa1 ,0x86 ,0x8e, 0xff//};/*数码管十六进制编码表*/code unsigned char LedTab[]={0xff, 0x7e, 0xbe, 0xde, 0xee,0xed, 0x77, 0x7b, 0x7d,0xbd, 0xdd, 0xbb, 0xdb,0xeb, 0xb7 ,0xd7 ,0xe7};/*数码管十六进制编码表**/******变量声明********/static int fangxiang=1,weizhi=0,mudi,shijian=3000;//电梯的状态,位置static unsigned int shang[6]={0,0,0,0,0,0},xia[6]={0,0,0,0,0,0},led[17];//各层的信息,“1”表示有人按键int m,n,k,temp;unsigned char text;void main(){init();P1=0x0f;while(1){while(P0_1==0){EA=0;}while(P0_0==0){EA=0;}while((P0_0==1)&&(P0_1==1)){EA=1;show();if(fangxiang==1)//从当前位置向上检测,当检测到最近呼叫层时向CPU3发出目标信号{for(m=weizhi;m<6;m++)if(shang[m]==1){temp=1;mudi=m;SBUF=mudi;//shang[m]=0;goto A;}fangxiang=-1;//当向上没有检测到呼叫时,从6楼往下检测for(m=5;m>=0;m--)if(xia[m]==1){temp=0;mudi=m;SBUF=mudi;//xia[m]=0;goto A;}fangxiang=1;//当向上没有检测到呼叫时从1楼网上检测for(m=0;m<weizhi;m++)if(shang[m]==1){temp=1;mudi=m;SBUF=mudi;//shang[m]=0;goto A;}}else if(fangxiang==-1)//从当前位置向上检测,当检测到最近呼叫层时向CPU3发出目标信{for(m=weizhi;m>=0;m--)if(xia[m]==1){temp=0;mudi=m;SBUF=mudi;//xia[m]=0;goto A;}fangxiang=1;for(m=0;m<6;m++)if(shang[m]==1){temp=1;mudi=m;SBUF=mudi;//shang[m]=0;goto A;}fangxiang=-1;for(m=5;m>weizhi;m--)if(xia[m]==1){temp=0;mudi=m;SBUF=mudi;//xia[m]=0;goto A;}}A: show();if(weizhi==mudi)//当到达目的层时注销呼叫标记{if(temp==1){shang[mudi]=0;led[mudi+6]=0;led[mudi+11]=0;}else if(temp==0){xia[mudi]=0;led[mudi+1]=0;led[mudi+11]=0;}delay1ms(shijian) ;}}}}/****程序初始化*****/void init(){EA=1;//开总中断EX0=1;//开处部中断0TH0=(65535-20000)/256;TL0=(65535-20000)%256;ET0=1;//开计时器0TR0=1;//开机计时TMOD=0x21;//设置定时器1为工作方式2 TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;ES=1;}/*外部中断0 */void into0() interrupt 0 using 0{shijian+=2000;if(shijian>=8000)shijian=3000;}/*计时器0*/void timer0() interrupt 1 using 1{TH0=(65535-20000)/256;TL0=(65535-20000)%256;show();keyscan();}/*计时器1*/void timer1() interrupt 3 using 3 {}void ser() interrupt 4{if(RI==1){RI=0;text=SBUF;weizhi=text;}if(TI==1){TI=0;}}void show(){unsigned int r;for(r=0;r<=16;r++){if(led[r]==1)P1=LedTab[r];}}/*延时程序*/void delay1ms(unsigned int count) {unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}/*键盘扫描*/void keyscan(){int temp;show();P2=0xfe;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xee:shang[0]=1;led[6]=1;break;case 0xde:{if(fangxiang==1)shang[3]=1;else xia[3]=1;led[14]=1;}break;case 0xbe:{if(fangxiang==1)shang[4]=1;else xia[4]=1;led[15]=1;}break;case 0x7e:{if(fangxiang==1)shang[5]=1;else xia[5]=1;led[16]=1;}break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}}P2=0xfd;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xed:{if(fangxiang==1)shang[0]=1;else xia[0]=1;led[11]=1;}break;case 0xdd:{if(fangxiang==1)shang[1]=1;else xia[1]=1;led[12]=1;}break;case 0xbd:{if(fangxiang==1)shang[2]=1;else xia[2]=1;led[13]=1;}break;case 0x7d:xia[5]=1;led[5]=1;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}}P2=0xfb;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xeb:shang[1]=1;led[7]=1;break;case 0xdb:shang[2]=1;led[8]=1;break;case 0xbb:shang[3]=1;led[9]=1;break;case 0x7b:shang[4]=1;led[10]=1;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}}P2=0xf7;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xe7:xia[1]=1;led[1]=1;break;case 0xd7:xia[2]=1;led[2]=1;break;case 0xb7:xia[3]=1;led[3]=1;break;case 0x77:xia[4]=1;led[4]=1;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;}}}}电机控制CPU:#include<reg52.h>sbit P0_0=P0^0;sbit P0_1=P0^1;sbit P0_2=P0^2;sbit P0_3=P0^3;sbit P0_4=P0^4;sbit P0_5=P0^5;sbit P0_6=P0^6;sbit P0_7=P0^7;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit P2_0=P2^0;sbit P2_1=P2^1;sbit P2_2=P2^2;sbit P2_5=P2^5;sbit P2_6=P2^6;sbit P2_4=P2^4;sbit P2_7=P2^7;sbit P3_0=P3^0;sbit P3_1=P3^1;sbit P3_2=P3^2;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_7=P3^7;static int step_n,fangxiang=1,k=1,mudi=3,weizhi=0;//K=1时电机运行unsigned char text,temp;//中间变量,存放通信口收到的信息void init();void step();//电机运行程序void play(int count);void delay1ms(unsigned int count);//延时程序void check();//红外扫描int shudu=5,yuyin;code unsigned char m_ucLedTab[]={0x7e,0xc4,0x54,0x72,0x51,0x41};/*数码管十六进制编码表*/void main(){init();delay1ms(100);play(1);delay1ms(300);while(1){while(k==3)//停电时的乘序{if((P0_0==1)&&(P0_1==1))k=0;temp=P0;temp=temp&0xfc;while(temp==0xfc){temp=P0;temp=temp&0xfc;step();delay1ms(8);}P1=m_ucLedTab[weizhi];check();mudi=weizhi;}while(k!=3)//正常模式下电梯的运作{if(k==1)step();//电机单步运行if(P0_0==0)//断电信号k=3;while(P0_1==0);//超载信号delay1ms(5);if(k!=3){check();P1=m_ucLedTab[weizhi];if(weizhi<mudi){k=1;fangxiang=1;yuyin=0;}else if(weizhi>mudi){k=1;fangxiang=-1;yuyin=0;}else if(weizhi==mudi){k=0;if(yuyin==0)play(weizhi+2);delay1ms(50);yuyin++;}P1=m_ucLedTab[weizhi];}}}}void play(int count)//语音播放程序{int b;P3_5=0;delay1ms(40);P3_5=1;for(b=0;b<=count;b++){ P3_6=0;delay1ms(200);P3_6=1;delay1ms(200);}P3_7=0;delay1ms(50);P3_7=1;}void into() interrupt 0{}void time1() interrupt 1{{TH0=(65535-5500)/256;TL0=(65535-5500)%256;}}void ser() interrupt 4{if(RI==1){RI=0;text=SBUF;if((text<6)&&(text>=0))mudi=text;}if(TI==1){TI=0;}}void init(){TMOD=0X20;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;TH1=0xfd;//设置波特率TL1=0xfd;TR1=1;REN=1;//允许接收SM0=0;SM1=1;//设置通信方式1ES=1;//开通信中断//ET0=1;//EX0=1;//开外部中断0//EX1=1;//IT0=1;//跳边缘触发//IT1=1;//TR0=0;}/****红外传感器的扫描***/ void check(){P0=0xff;if(P0_2==0){weizhi=0;SBUF=0;}if(P0_3==0){weizhi=1;SBUF=1;}if(P0_4==0){weizhi=2;SBUF=2;}if(P0_5==0){weizhi=3;SBUF=3;}if(P0_6==0){weizhi=4;SBUF=4;}if(P0_7==0){weizhi=5;SBUF=5;}{}}/*****电机运行程序*****/ void step(){switch(step_n){case 0:{P2=0x8f;}break;case 1:{P2=0x1f;}break;case 2:{P2=0x4f;}break;case 3:{P2=0x2f;}break;}if(fangxiang==1){step_n++;if(step_n>3)step_n=0;}else if(fangxiang==-1){step_n--;if(step_n<0)step_n=3;}}void delay1ms(unsigned int count) {unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<130;j++);}扩展功能CPU:#include<reg52.h>#include<EEPROM.H>#define LED7_STATUS P0/*数码管状态引脚(0为有效,1为无效)*/sbit LED7A_STATUS= P1^3;/*数码管第一位控制引脚(0为有效,1为无效)*/ sbit LED7B_STATUS = P1^4;/*数码管第二位控制引脚(0为有效,1为无效)*/ sbit LED7C_STATUS = P1^5;/*数码管第三位控制引脚(0为有效,1为无效)*/ sbit LED7D_STATUS = P1^2;/*数码管第四位控制引脚(0为有效,1为无效)*/ sbit P3_0=P3^0;sbit P3_1=P3^1;sbit SPK = P3^7;sbit AD_CLK = P1^0;/*AD转换时钟端*/sbit AD_SDA = P1^2;/*AD转换数据端*/unsigned char frq;/*******函数声明*******/void init();//程序初始化void keyscan();//键盘扫描void delay1ms(unsigned int count);//延时程序void Led7Scan();//数码管显示程序unsigned char AD_Read();/*******变量声明******/code unsigned char m_ucLedTab[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,0x88, 0x83, 0xC6, 0xa1 ,0x86 ,0x8e, 0xff};/*数码管十六进制编码表*/unsigned char temp;//中间变量static unsigned int cod[4],k=0,mima=0,a=1;//密码int num[16]={16,16,16,16};//数码管显示缓冲数int n,m,mode=0;//中间变量unsigned char AD_Buf;/*AD转换存储*/int huanjing=160,zhongliang[5]={999,30,80};int caozai=19999;/*****函数内容****/void main(){init();for(n=0;n<4;n++)num[n]=cod[n];while(1){Led7Scan();while(mode==0)//超载模式{unsigned char AD_Buf;AD_Buf=AD_Read();//读取AD传来的数据delay1ms(500);while((huanjing-AD_Buf)>caozai){P1=0xc3;P0=((P0>>1)|(P0<<7));keyscan();for(n=0;n<60;n++){frq++;delay1ms(1);a=0;}P3_1=0;}keyscan();}while(mode==1){Led7Scan();{while(k<4){keyscan();//输入4个数}if(mima==0){if(k==4){for(n=0;n<4;n++){if(cod[n]!=num[n])//判断密码是否正确a=0;}if(a==0)//输入的密码错误{for(n=0;n<4;n++)num[n]=16;TR0=0;P0=0xfe;while(a==0){P1=0xc3;P0=((P0>>1)|(P0<<7));keyscan();for(n=0;n<60;n++){frq++;delay1ms(1);}}}else{mima=1;//密码正确P3_0=0;for(m=0;m<4;m++){for(n=0;n<4;n++){num[n]=cod[n];}delay1ms(150);for(n=0;n<4;n++){num[n]=16;}delay1ms(150);}num[3]=AT24C02ReadByte(5);num[3]++;AT24C02WriteByte(5,num[3]);}}}else if(mima==1){for(n=0;n<4;n++){cod[n]=num[n];AT24C02WriteByte(n,cod[n]);delay1ms(5);}}}mode=0;}}}void init(){unsigned int i;for(i=0;i<4;i++){cod[i]=AT24C02ReadByte(i);delay1ms(5);}EA=1;EA=1;//开总中断EX0=1;//开处部中断0TH0=(65535-20000)/256;TL0=(65535-20000)%256;ET0=1;//开计时器0TR0=1;//开机计时TMOD=0x11;//设置定时器1为工作方式2TH1=0xfd;TL1=0xfd;ET1=1;TR1=1;}void timer0() interrupt 1{{ Led7Scan();TH0=0xec;/*重新设置T0定时值*/TL0=0x78;//Led7Scan();}}void timer1() interrupt 3{if(a==0){ TH1 = 0xfe;TL1 = frq;SPK = ~SPK;}}/**************************************************************************** 名称: Led7Scan()说明: 数码管动态扫描处理程序参数: 无返回: 无*****************************************************************************/ void Led7Scan(){static unsigned char a=0;switch(a)/*判断数码管动态扫描值*/{case 0:/*处理数码管第一位*/LED7D_STATUS=1;/*设置数码管第四位为无效*/LED7A_STATUS=0;/*设置数码管第一位位有效*/break;case 1:/*处理数码管第二位*/LED7A_STATUS=1;/*设置数码管第一位为无效*/LED7B_STATUS=0;/*设置数码管第二位位有效*/break;case 2:/*处理数码管第三位*/LED7B_STATUS=1;/*设置数码管第二位为无效*/LED7C_STATUS=0;/*设置数码管第三位位有效*/break;case 3:/*处理数码管第四位*/LED7C_STATUS=1;/*设置数码管第三位为无效*/LED7D_STATUS=0;/*设置数码管第四位位有效*/break;}LED7_STATUS=m_ucLedTab[num[a]];/*将显示码送数码管状态引脚*/a++;/*数码管动态扫描值加1,若该值4则置为0*/if(a>3)a=0;}unsigned char AD_Read(){unsigned char i,ADC;AD_CLK=0;AD_SDA=1;ADC=0;for(i=0;i<8;i++){AD_CLK=1;AD_CLK=1;ADC<<=1;if(AD_SDA==1){ADC|=0x01;}else{ADC&=0xfe;}AD_CLK=0;AD_CLK=0;}AD_CLK=0;AD_SDA=0;return(ADC);}/****延时程序*****/void delay1ms(unsigned int count) {unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}/*******键盘扫描********/void keyscan(){P2=0xfe;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xee:num[0]=10;{mode=1;a=1;k=0;TR0=1;SPK=1;for(n=0;n<4;n++)num[n]=16;num[0]=10;}break;case 0xde:{mode=0;for(n=0;n<4;n++)num[n]=16;}num[0]=11;//huanjing=AD_Read();break;case 0xbe:num[0]=12;mode=3;break;case 0x7e:num[0]=13;mode=4;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;Led7Scan();}}}P2=0xfd;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xed:{if(mode==1){ num[k]=1;k++;}if(mode==0){num[3]=1;caozai=zhongliang[0];}}break;case 0xdd:{if(mode==1){ num[k]=4;k++;}}break;case 0xbd:{if(mode==1){ num[k]=7;k++;}}break;case 0x7d:{for(n=0;n<4;n++)num[n]=16;}break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;Led7Scan();}}}P2=0xfb;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xeb:{if(mode==1){ num[k]=2;k++;}if(mode==0){num[3]=2;caozai=zhongliang[1];}}break;case 0xdb:{if(mode==1){ num[k]=5;k++;}}break;case 0xbb:{if(mode==1){ num[k]=8;k++;}}break;case 0x7b:{if(mode==1){ num[k]=0;k++;}}break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;Led7Scan();}}}P2=0xf7;temp=P2;temp=temp&0xf0;while(temp!=0xf0){delay1ms(5);temp=P2;temp=temp&0xf0;while(temp!=0xf0){temp=P2;switch(temp){case 0xe7:{if(mode==1){ num[k]=3;k++;}if(mode==0){num[3]=3;caozai=zhongliang[2];}}break;case 0xd7:{if(mode==1){ num[k]=6;k++;}}break;case 0xb7:{if(mode==1){ num[k]=9;k++;}}break;case 0x77:num[k]=16;break;}while(temp!=0xf0){temp=P2;temp=temp&0xf0;Led7Scan();}}}}七、总结经过调试安装,本模型在实现基本功能的基础上,实现简单数控设置负载,语音播放提示,密码控制,紧急停电时电源切换、楼层停止时间设置,不同楼层间不同速度运行等多项扩展功能。