基于单片机的自动门控制系统设计.docx
《基于单片机的自动门控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动门控制系统设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于单片机的自动门控制系统设计
第一章绪论
1.1课题研究的背景
社会的进步、科技的前进将人们的生活投入了一个急剧发展的数字化的21
世纪。
人们生活水平也随之逐渐升高,让人们对美好生活环境追求的欲望也愈来愈强烈,因而各类方便于生活的单片机自动控制系统开始进入了人们的生活。
以单片机为核心的自动门系统就是其中之一。
因自动门之中使用的芯片和传感器技术的日渐先进,使它的实用性变的更好,功能也愈来愈多,从而让它的应用范围也越来越广泛。
使用自动门会给人们带来人员出入方便、节约能源、减少噪音等好处,也令人们的建筑更加的现代化。
1.2国内外研究现状和发展趋势
自动门是上个世纪中期在建筑物上得到利用。
在上个世纪二十年代之后,自动门开始造美国的超级市场上初次使用。
当时使用的是油压式自动门,这是世界上第一跨自动门,根据它的使用原理,气动式自动门也开始得到发明。
到
1962年电气化的进步,电气式自动门得以发展,因它较于油压式和气动式维护更加方便,电气式自动门随着城市化的推进,使用它的用户也随之增加。
但在上世纪六十年代电气设备的发展还处于低级阶段,电机转速难以控制,故此当时的电气式自动门的性能还是差强人意,能源利用率低下,维护的成本还是相对较高。
在进入计算机时代之后,计算机技术的不断发展,电子控制技术开始成熟,直接控制电动机的电气式自动门得到急剧的发展,使其逐步成为自动门的主流。
在中国自动门现在随着城市化推进的浪潮在社会中得到广泛的应用,现在在每个城市都可以见到自动门的身影。
但在国内因其研发起步较晚,自主研发的程度比较低,大部分的专利都在外国人的手中。
在进入新世纪之后,国内的计算机发展进入快车道,追赶上国际上的先进水平。
利用计算机技术的自动门技术在国内也在飞速发展。
自动平移门是现在最常见的自动门。
工作的方式是将两个人体红外感应器安装在门内外两侧。
当人走近自动门时,任意一个人体红外感应器感应到人体红外的存在,就控制步进电机打开门。
当人通过门之后,再将门关闭。
因为自动平移门可以在进入自动模式后能够完成自动控制,可以让建筑物层次得以提升又方便美观。
因此迅速在国内外建筑市场得到广泛的普及。
1.3课题研究意义和目的
21世纪是电子科技不断发展的时代,各种智能控制系统逐渐的进入人们的
生活之中。
自动门控制系统因它能够出色的完成疏导人流,降低人员密度,防止再次发人员踩踏的惨剧,已成为商场、超市、旅店、写字楼等人流集中地的首选。
为了使自动门更好的为人们服务。
为了获得一种简单电路,功能完善,维护方便和性价高等优点的自动门系统,本文中,研究了一种平开式的自动门控
制系统。
实现了自动识别人体红外识和防挤压等功能。
该系统以STC89C52作
为控制核心,以步进电机、红外传感器和光电开关结合的简易单片机系统,充分发挥核心控制系统的性能。
具有一定的使用和参考价值。
1.4课题主要研究内容
阅读单片机以及自动控制相关知识。
通过去图书馆下载往年有关的论文进行参考,查阅资料,浏览图书馆相关文献,使用网络参考网络上的论文。
在此基础上利用单片机实现自动门控制系统的设计。
本次设计总体结构大致分为电源模块、动力模块、报警模块、人体感应模块、门行程检测模块、障碍物检测
模块共六大模块组成,通过Keil软件编写设计所需要的程序并对程序进行检查
分析,Altiumdesigner进行原理图设计和PCB板的布线,最后使用Proteus软件
进行仿真。
本控制系统基本框图如图1.1所示
图1.1红外检测框图
第二章系统硬件设计
为了满足生活中日益增长的自动门需求,本设计是完成一种基于89C52单
片机的自动门控制系统,该系统包括报警电路,HC-SR501人体感应模块,复
位电路,动力模块,控制方式切电路换等。
当有人经过人体感应模块时,人体
感应模块会感应到人体的温度,之后会将红外线信号转化为电压信号,从而该系
统会自动打开门,让行人通过。
当人通过后,人体感应模块感应不到人体的温度,之后输出低电压信号,从而该系统会自动打关门。
该系统操作简单,可靠
性强,灵敏度高,检测范围广,便于安装,非常适代替原始的手动门,从而达到出入方便的目的。
2.1硬件整体设计思路
根据需要实现的功能选取基本硬件:
主控芯片:
STC89C52;
人体感应模块:
HC-SR501;
系统整体硬件框图如图2.1所示
图2.1系统硬件框图
2.2单片机介绍
单片机是微型计算机系统。
虽然它小,但具备一台计算机的大部分部件:
运算器、控制器、内存、内部和外部总线系统。
相当于一块芯片成为了一台体积小、质量轻、价格便宜的计算机。
这为它的广泛应用提供了便利的条件。
根据系统需求,需要控制芯片能在5V~7V电压下工作,低功耗响应速度
快,具备定时器,UART串口通信,外部中断,至少具备8个I/O口,能够驱动小电流设备。
根据以上功能需要,综合考虑选取在市场上应用比较广泛且性价比高的Atmel公司的STC89C52单片机,作为主控芯片,并选取11.0592MHz
的晶振外接在主控芯片上图2.2为STC89C52单片机的最小系统图。
图2.2STC89C52单片机最小系统
STC89C52单片机拥有40个引脚。
表1按照引脚功能可分4个部分。
表2.1单片机引脚说明
单片机引脚
引脚功能
主电源引
脚
VCC(40)
电源输入,接+5V电源
GND(20)
接地线
外接晶振
引脚
XTAL1(19)
片内振荡电路的输入端
XTAL2(18)
片内振荡电路的输出端
控制引脚
RST/VPP(9)
复位信号输入端
ALE/PROG(30)
地址锁存允许信号
PSEN(29)
外部存储器读选通信号
EA/VPP(31)
程序存储器的内外部选通,接低电平从外部程序
存储器读指令,如果接高电平则从内部程序存储
器读指令
可编程输
入/输出引
脚
PO口(32~39)
准双向8位三态I/O口
P1口(1~8)
准双向8位三态I/O口
P2(21~28)
准双向8位三态I/O口
P3(10~17)
准双向8位三态I/O口
值得注意的是,P3口的每一个引脚都可以单独作为第一功能的输入输出或
第二功能。
P3口第二功能如表2.2所示
表2.2P3口第二功能
P3.0
PXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
复位是单片机的初始化操作。
其主要功能是让单片机初始化为0000H并从
2.3所示。
0000H单元开始执行程序。
可以在单片机程序运转出错或操作失误使系统处于
死锁状况时,摆脱困境。
复位电路原理图如图
图2.3复位电路原理图
2.3人体感应模块设计
HC-SR501是利用红外线的技术从而来实现自动控制的功能。
当有人经过
该系统时,该模块感应到人体的温度,人体所辐射出来的红外线被人体感应模块吸收之后,该人体感应模块经过一系列的处理之后,红外线就会转变成电压信号,该系统就会发出报警的信号。
该人体模块灵敏度高,广泛地被应用在自动感应产品之中。
它的发明使好多自动感应产品的制作变得更加的方便快捷,更加的可靠。
2.4步进电机
步进电动机是一种的数字控制电动机。
它是将收到的电脉冲信号转变成角位移或者线性位移。
即给一个脉冲信号,步进电动机就转动一个角度。
步进电机在负载范围内的开启/停止,转动频率,只与控制核心传输给它的信号相关,而不受负载大小的影响。
由于这特点的存在,所以作常适合于单片机控制。
近年来,数字技术、计算机技术迅速发展推动步进电动机的进步,使步进电动机的使用愈来愈广泛。
2.5驱动控制系统
在利用步进电机时必需要有由环形脉冲,功率放大等构成的控制系统,其方框图如图2.3所示。
图2.3驱动控制系统框图
脉冲信号由单片机产生,经ULN2003芯片对脉冲信号进行放大,步进电动
机根据脉冲电流进行相应的工作状态。
在步进电动机的控制中,基本控制如下
(1)反应式步进电动机控制换相顺序
A-AB-B-
步进电动机的工作方时,按照通电换相次序严格执行。
我们把通电换相过程称为脉冲分配。
四相五线步进电机工作方式通电换相的正序:
是
BC-C-CD-D-DA-A;反序为A-DA-D-CD-C-BC-B-AB-A。
共有八个通电状态。
其驱动方式逻辑时序如表2.4示。
表2.4逻辑时序
步进
01
02
03
04
真值表
通电
0
ON
OFF
ON
OFF
1010
AC
1
ON
OFF
OFF
OFF
1000
A
2
ON
OFF
OFF
ON
1001
AD
3
OFF
OFF
OFF
ON
0001
D
4
OFF
ON
OFF
ON
0101
BD
5
OFF
ON
OFF
OFF
0100
B
6
OFF
ON
ON
OFF
0110
BC
7
OFF
OFF
ON
OFF
0010
C
8
ON
OFF
ON
OFF
1010
AC
ULN2003芯片是高压大电流达林顿晶体管阵列,它是使用七个硅NPN达
林顿管组成成。
具有电流增益高、工作电流大、带负载能力强等特性。
本设计
采用该芯片将信号从微处理器中放大,构成一个功率放大电路,以便于对步进电机驱动。
其方框图如图2.5所示。
图2.5ULN2003芯片框图
2.6检测模块
本设计利用E18-D50NK红外避障器和ITR-9608光电开关组成自动门的检测系统。
E18-D50NK是一种集发射与接收于一体的主动式光电传感器。
E18-D50NK
传感器传感器具有抗干扰能力强、安装方便、使用简单等特点。
并且探测距离是可以通过电位器进行调节的。
广泛应用在防盗报警、自动门、机器人避障、流水线记数等方面。
该传感器主动发射的光线经过调制后调制成一定波长的光线在进行发射,在工作中可以避免被自然光线和各种灯光的干扰具有较大精度。
当发射的光线被挡住,接收器根据发射回来的光线进行调节输出信号。
单片机处理此信号,最终报警器报警,步进电机停止转动,以达到放夹功能。
保护了行人的安全和防止夹到异物损坏自动门。
ITR-9608光电开关为槽型光电传感器。
其工作原理是:
通过检查自身发射
器发射的光线是否被另一端的接收器接收到,接收到光线表示没有物体通过检测器,没有接收到光线表示有物体经过,光电开关据此产生信号。
对射式光电开关的特点在于:
检测的物体不限于是不是金属物体,只要此物体不是不透明的,工作时不易受干扰,感应灵敏度高,工作所需能量小,工作寿命长。
主要应用在测速、计数器、打印机等自动设备上。
在本次设计中利用此传感器检测门打开或关闭的位置。
在自动门关闭的过程中,当自动门遮挡住JP1时,系统认为自动门已经完全关闭,电动机停止关门。
在门打开的过程中,当自动门不能继续遮挡JP2时,系统认为自动门已经完全打开,电动机停止转动,等待关门指令进行再进行关门动作。
门行程检测电路如图2.5所示。
图2.5门行程检测电路
第三章课题的软件设计
3.1系统软件结构
本设计利用C语言进行程序编写,整个系统的程序主要由端口设置,标志位设置,延时子函数,报警子函数,顺时针/逆时针转动子函数,门行程检测子
函数,主程序等组成。
程序依次正常运行带动硬件完成设计所需要的功能。
全部程序见附录。
3.2程序流程图设计
自动门在自动状态下首先检测门的状态,根据接收到检测器的信号判断自
动门上次停机所处的位置。
在根据红外探测器所接收到的信号,判断是否有人,是否进入开门状态。
在开门过程中门限位检测开关,检测门的位置,到达
预定位置,停止开门。
在红外检测开关检测到没有人时进入关门程序,在关门过程中,红外传感器继续检测是否有人,有人则停止关门,进入开门程序,无
人则继续关门,同时障碍检测器在关门过程中检测是否有障碍无,若检测到有障碍物,停止关门、报警,直到障碍物消失。
若无障碍物继续关门,直到右侧限位开关检测到门处于预定位置,停止关门。
等待下次红外检测器检测到有人在次循环。
流程图如图3.1所示。
3.1系统流程图
3.3关门/开门子函数
ucharcodeFFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//顺时针方
向转动编码
ucharcodeREV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//逆时针方
向转动编码
//顺时钟转动子函数
voidmotor_ffw()
{
uchari;
for(i=0;i<8;i++){
P0=FFW[i];
delay
(2);
}
///逆时针转动子函数
voidmotor_rev()
{
ucharj;
for(j=0;j<8;j++)
{
P0=REV[j];
delay
(2);
}
}
利用用C语言谈的For循环程序,使步进电机在合适的时机进行正确的正反转。
单片机需要开门或者关门自行调动相关程序,使自动门能够正确的工作。
是设计的主要程序,如果没有这个程序,单片机无法使电动机转动。
3.4报警子函数
voidalarm1()//报警子函数
{
uchari;
for(i=0;i<200;i++)
{
alarm=~alarm;//f报警delay(20);
}
alarm=1;//报警完关闭
}
此程序是蜂鸣器启动程序,在i在小于200时,输出高低电平脉冲。
利用延时程序使脉冲的频率进行降低,蜂鸣器发出的声音频率降低,延长蜂鸣器的使用寿命。
3.5自动模式子程序
//****************自动模式************************************//
if(ZD==0)//如果自动模式按键按下
LS=1;//手动模式指示灯灭for(t=0;t<50;t++)//自动模式灯闪烁约5秒钟
LZ=~LZ;
delay(200);
delay(5);
zdms=0;//自动模式标志置零,进入自动模式sdms=1;//手动模式标志置1,退出手动模式
LZ=0;//自动模式指示灯亮
if((zdms==0)&&(zt3==1)&&(hw_temp==1))//同时被挡住
motor_ffw();//调用顺时针转动子函数
if((zdms==0)&&(zt1==1)&&(hw_temp==1))//右边被挡住
motor_ffw();//调用顺时针转动子函数
if((bz_temp==1)&&(zdms==0)&&(zt3==0)&&(hw_temp==0))//同时没有被挡住
motor_rev();//调用逆时针转动子函数
if((bz_temp==1)&&(zdms==0)&&(zt2==0)&&(hw_temp==0))//左边没被
挡住
motor_rev();//调用逆时针转动子函数
自动模式下开门:
需要同时满足以下3个条件。
zdms==O:
自动模式按钮按下。
zt3==1:
门行程检测按钮感应到门没有打开,处于关闭或半开启状
态。
hw_temp==1:
任意一个人体红外感应器感应到人。
满足
3个条件后,调动电动机顺时针转动程序,步进电机转动使门打开。
直到门达到预定状态,步进电机停止转动。
自动模式下关门:
需要同时满足以下4个条件。
bz_temp==1:
障碍检测器未感应到有障碍物。
zdms==O:
自动模式按钮按下。
zt3==0:
门行程检测按钮感应到门处于打开状态。
4)
hw_temp==0:
所有红外人体感应器感应不到到人体红外。
3.6障碍物检测程序
//************如果检测到障碍物,马上停止转动,进入制动报警状态
if((bz_temp==0)&&(K2==0)&&(sdms==0))
{
P0=0x00;//步进电机停止转动alarm1();
}
if((bz_temp==0)&&(zdms==0)&&(hw_temp==0))
{
P0=0x00;//步进电机停止转动alarm1();
障碍检测程序的调用无论是自动模式还是手动模式,只要满足关门时障碍
检测器检测到有人,马上停止电动机的转动。
进入报警模式,蜂鸣器响起。
3.7电路图与PCB板的设计
在Altiun上画出电路的原理图,并据此绘制出PCB板的接线图。
在绘制
PCB板接线图时根据元器件的大小,本着结构紧凑,布局合理,减少跳线的原则围进行布局排版。
原理图如图3.2所示,PCB接线图如图3.3所示。
3.2原理图
图3.3PCB接线
第四章系统的仿真与调试
4.1系统仿真
在首先是进行系统仿真。
此次仿真利用Proteus软件,,它的功能很强大,
能够仿真单片机及其外围电路,并且能将所设计的程序导入到单片机内。
仿真
的目的是排除明显的硬件故障和软件问题,检测硬件软件是否兼容,能否实现所预设的功能。
根据之前所设计的原理图和系统程序,并使用原来学过的仿真软件绘画仿真图,测试整体设计。
4.2软件的调试
在设计中所用程序并不是直接烧录进单片机,而是在进行过各种调试仿真后,把没有错误,能够完美实现设计要求的程序烧录至单片机,使单片机能够协调指挥各个硬件,达到设计的目标。
本次程序调试使用的是KeiluVision4编码器进行调试,在是用KeiluVision4编码器时,对工程成功的进行编译后、连接以后,在“主菜单”中打开“调试”栏,点金“开始/停止调试”即可进入软件仿真调试状态。
此过程可以检查程序中存在的错误。
以便于修改程序。
在KeiluVision4软件调试过程中可以进行单步调试,这一步可以使用户清晰的看到程序执行到哪一步,错误出现在哪
里,减少检查错误的时间,减少工作强度。
在检查程序的过程中,不出现逻辑错误,并不代表程序完全没有错误。
可以设置端口和断点,并查看标志位和个
寄存器的状态。
如果出现逻辑错误,更正逻辑错误,直到程序上完全没有错误。
软件调试结果如图4.1所示。
图4-1程序调试结果
4.3硬件的调试
在单片机的焊接过程中绕单片机为中心,从简单,线路少的元器件开始进
行焊接,焊接结束后再进行下一步的调试。
仔细检查电路板是否有元器件方向反向、虚焊、漏焊、断线等现象。
检查完毕后,进行通电检查电路板是否有异常,一般是检查是否有因线路接错而产生短路而引起的电路异常发热,发热温度过高有可能使电路板烧毁。
如出现此
现象,要立即关闭电源,用万用表检查电路板,排除故障后,再次对电路板进行功能调试,直到电路板达到完整运行使用的状态。
实物检测手动模式:
按下手动模式开关,手动模式指示灯亮起,按下开门
按钮,步进电机顺时针转动带动自动门开启,直到左侧限位开关检测不到门,步进电机停止转动。
按下关门按钮,步进电机逆时针转动带动门关闭,直到右侧限位开关检测到门。