本科毕业论文---基于单片机的自动门控制系统课程设计.doc
齐鲁工业大学齐鲁工业大学课 程 设 计课 程 传感器课程设计 题 目 自动门控制系统设计 院 系 电气学院 专业班级 测控2012级1班 学生姓名 魏涛 学生学号 201202051018 指导教师 孙凯 2015年 1月 15 日齐鲁工业大学课程设计任务书课程: 单片机的控制系统课程设计 题目: 自动门控制系统设计 专业: 测控技术与仪器 姓名: 魏涛 学号:201202051018 主要内容:利用51板实现自动门控制系统设计。具体要求如下: 1、有人来时(进门或出门)开门。当人走到离门不远的时候时,安装在门上侧的热释红外线传感器信号检测装置检测到有人时,将启动电动机带动传动链开门。 2、无人时关门延迟,当热释收发装置没有检测到有人在离门1m的范围内,将延迟1秒启动电动机带动传动链关门。 3、关门中途来人,立即开门。当启动电动机带动传动链关门时,感应探头突然检测到在离门1m的范围内有人,则立即停止电动机关门,启动电动机带动传动链开门。基本要求:1、熟悉MCS单片机系统的基本构成和工作原理。 2、了解自动门系统的原理及控制方法。 3、掌握 MCS-51系列单片机I/O、定时器等操作方法。 4、掌握单片机的一般编程技巧。 参考资料:1、张毅刚单片机原理及应用M北京:高等教育出版社,2010.2、蔡美琴MCS-51系列单片机系统及其应用M北京:高等教育出版社,2004.完成期限 2015-1-15 指导教师 孙凯 专业负责人 魏涛 2015年1月15日2齐鲁工业大学目 录第1章 绪 论11.1 自动门发展历史11.2 单片机的发展及89C51系列的运用11.3 红外探测技术的发展21.4 设计的主要内容2第2章 系统结构及主要元器件3 2.1设计整体框图及总电路图3 2.2主要元器件介绍4第3章 硬件设计113.1 基本单片机系统113.2 红外检测电路113.3 步进电机123.4 检测模块14第4章 软件设计164.1 系统软件结构164.2 各部分程序流程设计164.3 门行程检测及故障检测24结 论28参考文献293齐鲁工业大学第1章 绪 论1.1 自动门发展历史 自动门从理论上理解应该是门的概念的延伸,是门的功能根据人的需要所进行的发展和完善。自动门是指:可以将人接近门的动作(或将某种入门授权)识别为开门信号的控制单元,通过驱动系统将门开启,在人离开后再将门自动关闭,并对开启和关闭的过程实现控制的系统。 自动门开始在建筑物上使用,是在二十世纪年以后。二十年代后期,美国的超级市场的开放,自动门开始被使用,受此影响,世界第一自动门品牌多玛在1945年开发出油压式、空气式自动门,新建大楼的正门也开始使用了。到了1962年,电气式己开始出现,之后伴随着城市的建设,自动门技术的领域每年都在增加。当初,用供给建筑物用电源进行电动机的速度控制很难,只好进行油压、空压速度控制,转换但因能源利用效率很低,然而伴随着电气控制的技术发展,现在电气控制技术已经成熟,直接控制电动机的电气式自动门逐渐成为主流。例如:各种用可识别控制的自动专用门,如:感应自动门(红外感应,微波感应,触摸感应,脚踏感应)、刷卡自动门等。 21世纪的今天,门更加突出了安全理念,强调了有效性:有效地防范、通行、疏散,同时还突出了建筑艺术的理念,强调门与建筑以及周围环境整体的协调、和谐。门大规模专业化生产始于150年前,在不断发展和完善的过程中,涌现出大批独具规模的专业制造商。门的高级形式-自动门起源在欧美,迅速发展至今天,已经形成了种类齐全、功能完善、造工精细的自动门家族。1.2 单片机的发展及89C51系列的运用担任本设计处理部分的是89C52单片机(89C51系列).目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS 51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 1.3 红外探测技术的发展红外探测技术在军事技术、工业控制、安全保卫、家用电器以及人们的日常生活等诸多领域中都有着非常广泛的应用,而一些教学实验的测控系统也在教学中发挥了很大的作用。红外探测技术利用红外光波(又称红外线)作为载波来传送测量信号或者控制指令,例如红外遥控电视开关、红外报警器、自动玻璃门等。之所以采用红外光波作为测控光源,是由于红外发射器件与红外接收器件的发光与受光峰值波长一般为0.88m-0.94m,落在近红外波段内,而且二者的光谱恰好重和能够很好地匹配,可获得较高的传输效率及较高的可靠性。红外测控系统一般包括发射、接收以及处理部分。在本设计中,红外线探测器中的热电元件检测人体的存在或移动,并把热电元件的输出信号转换成电压信号。然后,对电压信号进行波形分析。于是,只有当通过波形分析检测到由人体产生的波形时,才输出检测信号。例如,在两个不同的频率范围内放大电压信号,且将被放大的信号用于鉴别由人体引起的信号。1.4 设计的主要内容1、有人来时(进门或出门)开门。当人走到离门不远的时候时,安装在门上侧的热释红外线传感器信号检测装置检测到有人时,将启动电动机带动传动链开门。2、无人时关门延迟,当热释收发装置没有检测到有人在离门1m的范围内,将延迟1秒启动电动机带动传动链关门。人体信号光学系统(菲涅尔透镜)热释电红外线传感器信号处理自动门控制电路图1-1 设计总结构3、关门中途来人,立即开门。当启动电动机带动传动链关门时,感应探头突然检测到在离门1m的范围内有人,则立即停止电动机关门,启动电动机带动传动链开门。总体结构图如下图1-1: 第2章 系统结构及主要元器件2.1 设计整体框图及总电路图本设计主要应用单片机程序对步进伺服电机的正转、反转进行控制,从而对门进行开、关的控制。在门的两侧各有一个感应器,分别感应从里面出去和从外面进来的人。感应探测器探测到有人靠近时,将脉冲信号传给主控器单片机,主控器判断后通知电机运行,同时监控电机的转数,以便通知电机在一定时候加力和进入慢行运行。检测人进出的传感器采用红外传感器。图2-1,是自动门系统整体框图。图2-2,是总电路图。位 置给 定单片机PWM功率接口电动机负载传感器接口电流反馈信号正/负位置反馈脉冲绝对零位脉冲图2-1 自动门系统整体框图图2-2 总电路图2.2 主要元器件介绍2.2.1 单片机单片机是把微型计算机主要部分都集成在一个芯片上的单芯片微型计算机,即将运算器,控制器,输入输出接口,部分存储器以及其他一些逻辑部件集成在一个芯片上,故可以把单片机看成是一个不带外部设备的微型计算机,相当于一个没有显示器,没有键盘,不带监控程序的单板机。 由于单片计算机具有体积小,重量轻,耗电少,功能强和价格低等特点,又由于数据大多是在芯片内传送处理,所以运行速度快,抗干扰能力强。单片机从七十年代问世以来,在二十多年的时间里,发展异常迅速,并已广泛应用于各种领域。单片机具有通讯接口,用单片机进行接口的控制与管理,单片机与主机可并行工作,大大地提高了系统的运行速度,所以在网络通讯领域也得到了越来越多的应用。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-3所示。图2-3 AT89C51外形及引脚图图2-3 AT89C51外形及引脚图AT89C51引脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。在实际应用中,大多数情况下都使用P3口的第二功能。P3.0 RXD:串行输入口P3.1 TXD:串行输出口P3.2 /INT0:外部中断0P3.3 /INT1:外部中断1P3.4 T0:记时器0外部输入P3.5 T1:记时器1外部输入P3.6 /WR:外部数据存储器P3.7 /RD:外部数据存储器P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.2.2 BISS0001芯片介绍和典型电路 BISS0001是一款具有较高性能的传感信号处理集成电路,它配以热释电红外传感器和少量外接元器件构成被动式的热释电红外开关。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗手池等装置,特别适用于企业、宾馆、商场、库房及家庭的过道、走廊等敏感区域,或用于安全区域的自动灯光、照明和报警系统。它不仅能和热释电红外传感器的输出良好地匹配,而且也能和其他多种传感器进行匹配。它的内部是由运算放大器、电压比较器、与门电路、状态控制器、定时控制器、锁定时间控制器和禁止电路等组成。BISS0001采用16脚标准型塑料封装结构,如图2-4所示,管脚说明如表2-1。 图 2-4 BISS0001管脚图表2-1 BISS0001管脚说明引脚名称I/O 功能说明1AI可重复触发和不可重复触发选择端。当A为“1”时,允许重复触发;反之,不可重复触。2VOO控制信号输出端。由VS的上跳变沿触发,使Vo输出从低电平跳变到高电平时视为有效触发。在输出延迟时间Tx之外和无VS的上跳变时,Vo保持低电平状态。3RR1-输出延迟时间Tx的调节端4RC1-输出延迟时间Tx的调节端5RC2-触发封锁时间Ti的调节端6RR2-触发封锁时间Ti的调节端7VSS-工作电源负端8VRFI参考电压及复位输入端。通常接VDD,当接“0”时可使定时器复位9VCI触发禁止端。当Vc<VR时禁止触发;当Vc>VR时允许触发10IB-运算放大器偏置电流设置端11VDD-工作电源正端122OUTO第二级运算放大器的输出端132IN-I第二级运算放大器的反相输入端141IN+I第一级运算放大器的同相输入端151IN-I第一级运算放大器的反相输入端161OUTO第一级运算放大器的输出端BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。当热释电红外传感器接收到人体红外辐射后输出检测信号,然后由14脚输入BISS0001,经地内部电路处理,由2脚输出探测信号(正向脉冲信号)。输出脉冲信号的宽度由外接电阻R9和电容C6来决定。当 2脚输出控制脉冲后,电子开关被接通,数字编码电路和无线电发射电路由于得到电源而开始工作。电源变压器为5W/15V,E为12V免维护蓄电池,供停电使用。S1为锁控电源开关,可根据需要安装在适当处所,用来接通工作电源,无必要时可取消设置。SCR采用1A的单向可控硅。HFC9301为软封装发声电路,发声为“嘀、嘀”声。电路的调试主要是主机与各分机之间的统调。将发射电路和接收电路组装好后,先将发射机中C10的调至适当位置后固定不动,接着调整接收机中的C1,使接收机能收到发射机发出的信号。若为“一对多”或“多对一”报警系统,应先将主机“一”(可以是发射机,也可以是接收机 )调好固定,然后调整各分机,使其与主机统调。BISS0001 应用线路图如图2-5所示。图 2-5 BISS0001的热释电红外开关应用电路图2.2.2 热释电红外传感器热释电红外传感器和热电偶都是基于热电效应原理的热电型红外传感器。不同的是热释电红外传感器的热电系数远远高于热电偶,其内部的热电元由高热电系数的铁钛酸铅汞陶瓷以及钽酸锂、硫酸三甘铁等配合滤光镜片窗口组成,其极化随温度的变化而变化。为了抑制因自身温度变化而产生的干扰 该传感器在工艺上将两个特征一致的热电元反向串联或接成差动平衡电路方式,因而能以非接触式检测出物体放出的红外线能量变化 并将其转换为电信号输出。热释电红外传感器在结构上引入场效应管的目的在于完成阻抗变换。由于热电元输出的是电荷信号,并不能直接使用 因而需要用电阻将其转换为电压形式 该电阻阻抗高达104,故引入的沟道结型场效应管应接成共漏形式 即源极跟随器 来完成阻抗变换。热释电红外传感器由传感探测元、干涉滤光片和场效应管匹配器三部分组成。设计时应将高热电材料制成一定厚度的薄片,并在它的两面镀上金属电极,然后加电对其进行极化,这样便制成了热释电探测元。由于加电极化的电压是有极性的,因此极化后的探测元也是有正、负极性的。人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生信号。1D脚 2S脚 3G脚图2-6 热释电红外传感器内部结构图2-6是一个双探测元热释电红外传感器的结构示意图。使用时D端接电源正极,G端接电源负极,S端为信号输出。该传感器将两个极性相反、特性一致的探测元串接在一起,目的是消除因环境和自身变化引起的干扰。它利用两个极性相反、大小相等的干扰信号在内部相互抵消的原理来使传感器得到补偿。对于辐射至传感器的红外辐射,热释电传感器通过安装在传感器前面的菲涅尔透镜将其聚焦后加至两个探测元上,从而使传感器输出电压信号。制造热释电红外探测元的高热电材料是一种广谱材料,它的探测波长范围为0.220m。为了对某一波长范围的红外辐射有较高的敏感度,该传感器在窗口上加装了一块干涉滤波片。这种滤波片除了允许某些波长范围的红外辐射通过外,还能将灯光、阳光和其它红外辐射拒之门外。第3章 硬件设计3.1 基本单片机系统8051单片机最早由Intel公司推出, 作为系统的控制器,单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种算法,并且具有功耗低,体积小,技术成熟,成本低廉。在各个领域应用广泛。而且我们也比较熟悉这款芯片,因此采用8051构成系统控制部分。这是自动门系统的控制核心, 一般情况下以单片机片内的基本硬件资源为主,有必要时再扩展部分外部器件。在本设计中需要完成的控制比较简单,以单片机片内的基本硬件资源完全可以实现, 因此不需扩展。其单片机电路图如图3-1。图3-1 单片机电路图3.2 红外检测电路红外检测电路主要由热释电红外传感器和检测放大电路组成,核心元件是热释电红外传感器,它能以非接触形式检测人体辐射出的红外线能量变化,并将此变化转化为电压信号输出。不需要红外线和电磁波发射源以及各种主动接触开关由于敏感元件的输出电压极微弱且其阻抗很高,故在传感器内部设有场效应管及偏置厚膜电阻,从而构成信号放大及阻抗变换电路, 一般热释电红外传感器自身的接收灵敏度较低, 检测距离仅2m 左右。当有人靠近自动门时,被热释电红外传感器接收下来,并将其转换成信号,经检测放大电路内部放大等处理后输出给单片机。其热电释红外检测电路如图3-2所示。图3-2 热电释红外检测电路3.3 步进电机步进电动机是纯粹的数字控制电动机:它将电脉冲信号转变成角位移,即接收一个脉冲信号,步进电动机就转动一个角度。因此作常适合于单片机控制,近30年来,数字技术、计算机技术和水磁材料的迅速发展推动步进电动机的发展,为步进电动机的应用开辟了广阔的前景。3.3.1 步进电动机的特点(1)步进电动机的角位移与输入脉冲数严格成正比具有良好的跟随型。以由步进电动机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常可靠。同时,它也可以与角度反馈环节组成高性能的闭外数控系统。(2)步进电动机的动态响应快,易于起停、正反转及变速。(3)速度可在相当宽的范围内平滑调节。低速下仍能保证获很大转矩,因此,一般可以不用减速器而直接驱动负载。(4)步进电动机只能通过脉冲电源供电才能远行。它不能直接使用交流电源和步进电源。(5)步进电动机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。(6)步进电动机自身的噪音和振动较大,带惯性负载的能力较差。3.3.2 驱动控制系统的组成使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如图3-3所示。信号分配脉冲信号负载步进电机功率放大图3-3 驱动控制系统图步进电动机的驱动电路根据控制信号工作。在步进电动机的单片机控制中,控制信号由单片机产生。其基本控制作用如下:反应式步进电动机控制换相顺序:步进电动机的通电换相顺序严格安照步进电动机的工作方式进行。通常我们把通电换相这过程称为脉冲分配。三相六拍步进电机工作方式通电换相的正序是A-AB-B-BC-C-CA;反序为A-CA-C-BC-B-AB;共有八个通电状态。3.3.3 斩波驱动 斩波恒流驱动的原理如图3-4所示。T1是一个高频开关管。T2开关管的发射极接一只小电阻只,电动机绕组的电流经这个电阻到地,所以这个电阻是电流取样电阻。比较器的一端接给定电压Uo,另一端接取样电阻上的压降,当取样电压为0时,比较器输出高电平。图3-4 斩波恒流驱动电路原理图 当控制脉冲Ui为低电平时T1和T2两个开关管均截止;当U1为高电平时,T1和T2两个开关管均导通,电源向绕组供电。由于绕组电感的作用,只上的电压逐渐升高,当超过给定电压Uc的值时,比较器输出低电平,使与门输出低电平、Tl截止,电源被切断;当取样电阻上的电压小于给定电压时,比较器输出高电乎,与门也输出高电平,T1又导通,电源又开始向绕组供电。这样反复循环,直到Ui为低电平。3.4 检测模块 检测有无人进出采用对射主动红外探测器。限位开关则由磁开关来实现。 生活中的检测防范装置有许多种,其中对射红外探测器的应用最为广泛,它由发射器和接收器两部分组成。其中发射器发射出一定波长的红外线,平时状态下由接收器接收,但如果发射器所发射的红外线被物体挡住,就会发出报警信号。 设计在自动门的门内门外一定高度处各设置一个对射探测器。并由导向管套住发射管和接收管,确保所发出的光线是一束,而且不宜受其他光线的干扰。接收管的光线被阻挡时输山高电平信号。两接收器的输出端接到一个或门上,再经过一个非门接到INT0引脚。这样不论是有人进门或有人出门,都会有低电平信号输入INT0端口,从而使单片机得到有人的信息,并调用相应程序执行相应的开门动作。限位开关分别设置在开门极限位置、关门极限位置、和一半处的位置。此开关是这样种器件:半有磁铁在其附近时,磁开关就被吸为关闭状态,输出高电平,相反输出低电平。将两小块磁铁分别置于门的右上角位置,则当自动门移到限位开关处时,此开关就会被吸合,发出高电平信号,分别输出给P0.4、P0.5、P0.6这三个引脚,单片机经过查询这三个引脚来判断到那个限位开关,再执行变速或停止的相应动作。限位开关的安装方法如图3-5所示,整体电路如图3-6所示。图3-5 检测有无人进出及限位开关模块图3-6 整体电路图第4章 软件设计4.1 系统软件结构整个系统软件主要由主程序、开门子程序、关门子程序、T0中断服务程序、T1中断服务程序、外部中断服务子程序组成。主程序主要是完成系统进行初始化、中断设置等功能。程序设计中设置了一个外部中断0,它保证红外自动门能够在无人操控情况下自动运行,主要功能是当检测到有人出入门时,启动电机,从而实现自动开关门的目的。4.2 各部分程序流程设计4.2.1 系统主程序 中断优先级设置定时器T0、T1的设置 开定时器开中断开外部中断开始开定时器T0N系统终止Y手动方式系统故障YN关外部中断1图4-1 系统主程序流程图主程序源代码: MOV R4,A INC R1 CLR R5,A SUBB A,R4 XCH A,R4 DEC R1 SJMP LP2 JB 00H,ROLE SPEED0 BIT P1.0 ; 门行程行状1 SPEED1 BIT P1.1 ; 门行程行状2 SPEED2 BIT P1.2 ; 门行程行状3 SPEED3 BIT P1.3 ; 门行程行状4 KEYDOOROPEN BIT P1.4 ; 手动门开按钮 KEYDOORCLOSE BIT P1.5 ; 手动门关按钮 MODE BIT P1.6 ; 手动/自动切换 DOOROPEN BIT P3.0 ; 门开驱动信号 DOORCLOSE BIT P3.1 ; 门关驱动信号 SIGNAL BIT P3.2 ; 红外线传感器信号 A0809E0C BIT P3.3 ; A/D转换结束信号 HSPEED BIT P3.4 ; 电机速度变换 DOORSTATE BIT 00H ; 门状态 RERROR BIT 01H ; 系统故障 ORG 0000H AJMP START ORG 0003H AJMP INT0 ORG 000BH AJMP T0 ORG 001BH AJMP T1 ORG 0050H START: CLR DOOROPEN ; 关电机驱动 CLR DOORCLOSE MOV TMOD, #11H ; 定时器工作方式 MOV TLO,#OFOH ; 置定时器常数, MOV TH0,#08DH MOV TL1,#0E0H MOV TH1,#0B1H MOV TCON,#50H MOV IP,#08H ; 优先级设置 MOV IE,#80H ; 开中断LOOP: ACALL SYSERROR ; 调用系统故障子程序 JB RERROR,WAIT ; 有故障等待处理 MOV A,P2 ANL A,#OFH JNZ WAIT ; 无按键等待 JB MODE,AUTO ; 运行方式判断 CLR EXO SETB ETO SJMP LOOPAUTO: SETB ETO SJMP LOOPWAIT: SJMP $ ; 等待4.2.2 开门子程序开始门状态检测加速NNN电机加速减速电机减速停止电机停止返回图4-2 开门子程序流程图开门子程序:DOOR_OPEN:JB DOORSTATE, LOOP3 ; 门已开退出 CLR HSPEED CLR DOORCLOSE SETR DOOROPEN ; 低速启动 JNP SPEED1,$ SETB HSPEED ; 高速开门 JNB SPEED2,$ CLR HSPEED ; 低速运行 JNB SPEED3,$ CLR DOOROPEN ; 停机 SETB DOORSTATE ; 保存门状态 LOOP3:RET关门子程序:DOOR_CLOSE:JNB DOORSTATE, LOOP4 ; 门已关退出 CLR HSPEED CLR DOOROPEN SETB DOORCLOSE ; 低速启动 JB SPEED2,$ CLR HSPEED ; 高速关门 JB SPEED0,$ CLR DOORCLOSE ; 停机 CLR DOORSTATELOOP4: RET4.2.3 开门中断程序关T0中断请按键操作开门否NY加速N开门子程序Y关门子程序装载T0常数开中断中断返回图4-3 开门中断程序流程图外部中断服务子程序: ORG 0300H INT: MOV TLO,#11H MOV THO,#OFCH CPL P1 RETIINT0: CLR EX0LOOP8: ACALL SYSERROR ; 故障检查 JB RERROR,LOOP6 ; 有故障返回 JB DOORSTATE,LOOP6 ; 门已开返回 ACALL DOOR_OPEN ; 开门LOOP7: ACALL DELAY10S ; 等待10s ACALL SYSERROR ; 故障检查 JB RERROR,LOOP6 ; 无故障继续 JNB SIGNAL,LOOP7 ; 有人等待 CLR HSPEED SETB DOORCLOSE ; 无人启动电机,低速关门 JNB SIGNAL,LOOP8 ; 有人来打开门 JB SPE