8位准双向I/O,占10——17脚。
P3口是一个双功能端口,即P3口除可作通用I/O口线使用外,其每一条口线都具有第二功能,其第二功能见表。
同P1口,P3口的每一位口线能<以吸收或输出电流的方式)驱动4个LSTTL负载。
<2)控制信号引脚线
①PESN(29脚>;外部程序存储器读选通信号。
在单片机访问外部扩展程序存储器ROM时,PESN作为外部扩展程序存储器的读选通信号<低电平有效),定时输出脉冲。
在单片机访问内部程序存储器时,PESN信号无效<高电平)。
②ALE/PROG<30脚):
地址锁存允许/片内EPROM编程脉冲输入信号。
在单片机访问片外存储器时,该引脚是地址锁存信号,用于锁存低8位地址。
在ALE为高电平时P0口上的信息为低8位地址,在ALE为低电平期间,P0口上的信息为指令或数据信息,从而实现低位地址与数据的分离。
在单片机不访问片外存储器是,ALE引脚能按主振频率的1/6固定的输出正脉冲,此脉冲可用作外部的时钟或定时脉冲使用<这里应当注意,在访问外部存储器时,ALE会缺少一个脉冲)。
而当对单片机内部的程序存储器编程时<如对8751内部的EPROM编程时),此引脚为编程秒冲的输入端。
③EA/Vpp(31脚>:
外部程序存储器访问允许/固化编程电压输入端。
当EA为低电平时,CPU直接访问外部程序存储器,当EA为高电平时,则CPU要先对单片机内部0——4KB程序存储器进行访问,然后自动延至外部超过4KB的程序存储器。
当对8751单片机内部的EPROM进行编程时,此引脚为编程电源输入端<一般为+21V电源)。
④RST/Vpd(9脚>;复位信号/备用电源输入端。
当振荡器工作时,若在此引脚上加两个周期的高电平,就能使单片机复位。
此引脚也可作为备用电源的输入端,当单片机电源失电期间,由Vpd向单片机提供备用电源,以保护单片机中的内容。
<3)电源及其他
①Vcc<40脚):
电源端,引入单片机的工作电源。
②Vss(20脚>:
接地端。
③XTAL1,XTAL2<19——18脚):
时钟电路引脚。
当使用内部引脚时,这两个引脚端外接石英晶体和微调电路。
当使用外部时钟时,两引脚用于外接外部时钟。
3.2红外检测电路
红外检测电路主要由热释电红外传感器和检测放大电路组成,核心元件是热释电红外传感器,它能以非接触形式检测人体辐射出的红外线能量变化,并将此变化转化为电压信号输出[5]。
不需要红外线和电磁波发射源以及各种主动接触开关由于敏感元件的输出电压极微弱且其阻抗很高,故在传感器内部设有场效应管及偏置厚膜电阻,从而构成信号放大及阻抗变换电路[6],一般热释电红外传感器自身的接收灵敏度较低,检测距离仅2m左右。
当有人靠近自动门时,被热释电红外传感器接收下来,并将其转换成信号,经检测放大电路内部放大等处理后输出给单片机[7]。
其热电释红外检测电路如图3-2所示。
图3-2热电释红外检测电路
3.3步进电机
步进电动机是纯粹的数字控制电动机:
它将电脉冲信号转变成角位移,即结一个脉冲信号,步进电动机就转动一个角度[8]。
因此作常适合于单片机控制,近30年来,数字技术、计算机技术和水磁材料的迅速发展推动步进电动机的发展,为步进电动机的应用开辟了广阔的前景。
3.3.1步进电动机的特点[9]
(1>步进电动机的角位移与输入脉冲数严格成正比具有良好的跟随型。
以由步进电动机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常可靠。
同时,它也可以与角度反馈环节组成高性能的闭外数控系统。
(2>步进电动机的动态响应快,易于起停、正反转及变速。
(3>速度可在相当宽的范围内平滑调节。
低速下仍能保证获很大转矩,因此,一般可以不用减速器而直接驱动负载。
(4>步进电动机只能通过脉冲电源供电才能远行。
它不能直接使用交流电源和步进电源。
(5>步进电动机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。
(6>步进电动机自身的噪音和振动较大,带惯性负载的能力较差。
3.3.2驱动控制系统的组成
使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如图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检测模块
检测有无人进出采用对射主动红外探测器。
限位开关则由磁开关来实现。
生活中的检测防范装置有许多种,其中对射红外探测器的应用最为广泛,它由发射器和接收器两部分组成。
其中发射器发射出一定波长的红外线,平时状态下由接收器接收,但如果发射器所发射的红外线被物体挡住,就会发出报警信号[10]。
设计在自动门的门内门外一定高度处各设置一个对射探测器。
并由导向管套住发射管和接收管,确保所发出的光线是一束,而且不宜受其他光线的干扰。
接收管的光线被阻挡时输山高电平信号。
两接收器的输出端接到一个或门上,再经过一个非门接到INT0引脚。
这样不论是有人进门或有人出门,都会有低电平信号输入INT0端口,从而使单片机得到有人的信息,并调用相应程序执行相应的开门动作。
限位开关分别设置在开门极限位置、关门极限位置、和一半处的位置。
此开关是这样种器件:
半有磁铁在其附近时,磁开关就被吸为关闭状态,输出高电平,相反输出低电平。
将两小块磁铁分别置于门的右上角位置,则当自动门移到限位开关处时,此开关就会被吸合,发出高电平信号,分别输出给P0.4、P0.5、P0.6这三个引脚,单片机经过查询这三个引脚来判断到那个限位开关,再执行变速或停止的相应动作。
限位开关的安装方法如图3-5所示,整体电路如图3-6所示。
图3-5检测有无人进出及限位开关模块
图3-6整体电路图
4自动门系统的软件设计
4.1整体程序流程图
本设计程序以汇编语言编写,因为汇编语言易于读写、易于调试和修改,同时汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快。
本程序的设计主要由PWM信号发生程序、转速测量模块程序和检测开关程序组成。
整体程序流程图如下页图4-1所示。
4.2功能模块设计
本软件主要采用查询的方法来实现.虽然中断的方法要比查询具有实时性并节约时间,但是基于本系统的要求,因为如果采用有人进入INT0中断服务程序的话,服服务程序很不容易判断自动门究竟出于哪一部分,要用哪种速度开门。
查询如果设置的合适也是完全可以的。
4.2.1PWM信号发生程序设计
PWM信号就是脉冲宽度信号,一定时间的高电平和一定时间的低电平的循环即可形成PWM信号[11]。
于是本程序采用将P0.0清0和置l的方法来实现。
首先在程序开始初始化的时候将P0.0清0,调用PWM信号产生程序时,先将P0.0置1,然后经定时程序延时一段时间后再将P0.0清0。
然后判断有没有中断要执行,如到达限位开关或是有人进出时。
如果以上情况都没发生就继续调用这一个方波的发生程序。
直至有中断打断时,执行清0P0.0或调用另一个方波发生程序实施变速。
变速是根据程序的顺序执行顺序而判断门所处的位置来实现的。
此程序严格按照自动门开关一次的顺序来编写的,考虑了各阶段可能遇到的所有问题,因此根据程序执行的控制器可判断自动门是该快速还是慢速。
4.2.2转速测量模块程序设计
本程序采用定时和延时技术结合的方法来实现。
其中定时没有采用定时器/计数器。
因为前边已经有了基本延时程序,为了使程序更简便并且有更高的利用率高的利用率,因而仍采用软件延时的方法。
具体程序如下:
T10:
MOVTMOD,#50H。
T1为方式1计数器
MOVTL1,#0
MOVTH1,#0
MOVR0,#10。
测试一秒内的转速
SETBTR1
LOOP2:
LCALLDEL
DJNZR0,LOOP2
CLRTR1
MOVA,TL1
CJNEA,#0,JIXU1
JIXU1:
JBP0.6,GSLOW
AJMPGFAST
当调用关门程序的过程中才有必要测速,其他部分不需要设置此程序。
在调用关门PWM信号的过程中,调用测速程序。
计数器采用的Tl计数。
首先将计数器Tl启动并设置初值为0,然后开始定时,定时l秒后,将计数器所计数值传给寄存器A,在将此计数值与电机正常状态下最低转速的二倍相比较(因为圆盘上设有两个孔,因此是最低转速的二倍>。
如果计数值小于最小值的二倍则代表有障碍物,从而转到开门程序执行。
其中TMOD是定时器/计数器的工作方式寄存器。
它用于选择定时器/计数器的工作模式和工作方式,它的字节地址为89H,不能进行位寻址。
其格式如图4-1所示。
图4-1TMOD格式
当GATE位为0时,仅由运行控制位TRX(x=0,1>=1来启动定时器/计数器运行。
M1、M0为工作方式选择位。
本程序中将其设置为01,表示定时器/计数器工作在方式l,为l6位定时器/计数器。
图4-2整体程序流程图
C/T=1时为计数器模式,计数器对外部输入引脚TO(P3.4脚>或Tl(P3.5脚>的外部脉冲(负跳变>计数。
TRl为计数器控制位,TRl为1启动定时器/计数器工作(GATE为0的时候仅由它来控制定时器/计数器>。
该位可由软件置l或清0。
图4-2整体程序流程图。
4.2.3检测开关程序设计
检测是否有人的探测器接到了INT0引脚,由于系统功能实现的需要,本设计采用了查询的方法。
因为若使用中断的方法,在中断服务程序中开门的速度很难确定,因为门无论处于何种状态,都有可能有人进出而需要执行开门动作。
如果不能准确判断自动门日前所处的位置,就不能正确的调用相应的PWM信号,使电机实现不同的转速。
查寻方法如下:
JNBP3.2,KSLOW还有JBP0.6,GSLOW等语句。
JNB指令意思是:
如果P3.2为高电平,则跳转到KFAST执行。
JB指令是当此引脚为高电平时进行跳转。
系统中有多个请求源,均采用了对输入引脚查询的方式。
这有助于准确的判断所应执行的动作。
5设计仿真与分析
单片机应用系统的开发过程,一般都包括如下几个过程:
首先设计硬件电路,并在Multisim上仿真,仿真好了就完成硬件组装工作,然后进入软件设计、调试和硬件调试阶段。
5.1仿真软件介绍
本设计的仿真软件采用Multisim和KeiluVision3软件相结合的方法。
Multisim是美国国家仪器它包含了电路原理图的图形输入、电路