基于单片机的地铁自动门.docx
《基于单片机的地铁自动门.docx》由会员分享,可在线阅读,更多相关《基于单片机的地铁自动门.docx(19页珍藏版)》请在冰豆网上搜索。
![基于单片机的地铁自动门.docx](https://file1.bdocx.com/fileroot1/2023-1/10/1eb91716-f792-4996-a4a5-3d416803672d/1eb91716-f792-4996-a4a5-3d416803672d1.gif)
基于单片机的地铁自动门
摘要
随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便生活的自动控制系统开始进入人们的生活,以单片机为核心的自动门系统就是其中之一。
本文设计了基于单片机的地铁自动门,该系统以单片机为主体,直流电机、转速测量为核心,实现地铁门的自动控制。
本设计主要应用8051作为控制核心,直流电机、红外传感器、磁开关相结合的系统。
通过单片机程序对直流伺服电机的正转、反转进行控制,从而对门进行开、关的控制;直流电机采用H桥驱动。
充分发挥了单片机的性能。
其优点是电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的使用和参考价值。
关键词:
8051;地铁自动门;直流电机;红外传感器;转速测量
绪论
现代社会是一个快速发展的信息化社会,随着科学技术的不断进步,人们不断去追求舒适,方便的生活环境。
于是相应的电子产品产生,智能型自动门同样出现在人们的生活中。
随着自动门的技术、性能日趋成熟、完善,它被广泛应用在政府机关、银行、医院、商业、工业等不同行业,改善了人们的生产生活条件。
自动门不但能给我们带来人员出入方便、节约空调能源、防风、防尘、防噪音等好处,更令我们的建筑物增添了不少高贵典雅的气息。
自动门是指可以将人接近门的动作(或将某种入门授权)识别为开门信号的控制单元,通过驱动系统将门开启,在人离开后再将门自动关闭,并对开启和关闭的过程实现控制的系统。
按启闭形式分:
可分为推拉门、平开门、折叠门和旋转门;按门体的材料分:
不锈钢门有安全玻璃、不锈钢饰面、建筑铝合金型材、彩色涂层钢板、木材等。
自动门的系统配置是指根据使用要求而配备的,与自动门控制器相连的外围辅助控制装置,如开门信号源、门禁系统、安全装置、集中控制等。
必须根据建筑物的使用特点。
通过人员的组成,楼宇自控的系统要求等合理配备辅助控制装置。
一、自动门系统方案
(一)设计思想和整体框图
本设计主要应用单片机程序对直流伺服电机的正转、反转进行控制,从而对门进行开、关的控制。
在门的两侧各有一个感应器,分别感应从里面出去和从外面进来的人。
感应探测器探测到有人靠近时,将脉冲信号传给主控器单片机,主控器判断后通知电机运行,同时监控电机的转数,以便通知电机在一定时候加力和进入慢行运行。
直流电动机采用H桥驱动。
检测人进出的传感器采用红外传感器。
下图1-1是自动门系统整体框图。
(二)器件选型
单片机AT89C51各个引脚的作用
VCC/GND:
供电电源。
P0口:
可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
既可以作标准输入输出I/O,也可作为AT89C51的一些特殊功能口,
管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出
正脉冲信号,此频率为振荡器频率的1/6。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序
存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平,此间内部程
序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
8051单片机最早由Intel公司推出,其后,多家公司购买了8051的内核,使得以8051为内核的MCU系列单片机在世界上产量最大,应用也最广泛,有人推测8051可能最终形成事实上的标准MCU芯片。
凌阳单片机系列芯片中相同的片内硬件功能模块具有相同的资源特点;不同型号的芯片只是对片内资源进行删减。
其最大的特点就是超强抗干扰.广泛应用于家用电器、工业控制、仪器仪表、安防报警、计算机外围等领域。
其主要优势在语音方面。
8051作为系统的控制器,单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种算法,并且具有功耗低,体积小,技术成熟,成本低廉,在各个领域应用广泛。
而且我们也比较熟悉这款芯片,因此采用8051构成系统控制部分。
直流电机采用H桥驱动:
单片机的一个引脚分别产生两种占空比不同的PWM(脉冲宽度调制)波形作为驱动信号,实现不同的转速和制动;另外由一个引脚产生转向控制信号,在门的中间及其两边设置磁开关,作为中断信号产生源,来判断电机是否应该转换速度或停止;有无人进出采用红外线来探测,有人时则产生中断,执行开门动作;转速测量采用在电机的转轴上设置一个带有相差180度且位于同一半径上的两小孔的圆盘,用红外线照射转动的圆孔,光透过小孔被光敏三极管接收,从而产生脉冲经整形电路后送到单片机内部定时计数测出频率。
在感应器的选择方面是很灵活的,在高档酒店、写字向中央处理器提出申请楼,可以选择高灵敏度的感应器;在人行道边上的银行、商店等经常有人路过的地方,可以选择特定区域有效的感应器;在医院手术室门前可以采用压力感应器;而车库的门可以采用固定光照感应器。
而现在被广泛应用的感应器主要有微波感应器和红外感应器。
微波感应器,又称微波雷达,对物体的移动进行反应,因而反应速度快,适用于行走速度正常的人员通过的场所,它的特点是一旦在门附近的人员不想出门而静止不动,雷达便不再反应,自动门就会关闭,有可能出现夹人现象。
红外感应器,对物体的存在进行反应,不管人员是否移动,只要处于感应器的扫描范围内,它都会反应。
红外感应器的反应速度比微波感应器慢。
本系统首先要求的是安全,所以选用红外线传感器。
二、自动门系统的硬件设计
(一)系统硬件整体逻辑设计
数字控制伺服系统由计算机控制器、PWM功率驱动接口、传感器接口和电机本体四部分组成。
计算机的作用是:
完成位置信号的设置,根据传感器接口给出的绝对零位脉冲和电流反馈控制,产生PWM脉宽调制信号,最后由PWM功率开关接口对电动机进行最终的功率驱动。
在这个系统中,由于反馈控制是通过软件实现的,故可以根据负载的性质改变系统的参数,求得最佳匹配。
信号滤波也可以通过软件实现,更有可能通过计算机补偿技术使传感器精度得以补偿提高。
计算机控制在可靠性、小型化、联网群控制等方面的优点都是经典模拟伺服系统无法比拟的。
(二)控制器单元的硬件设计
控制器单元硬件电路图如图2-0所示
图2-0控制器最小系统
一片MCS-51单片机芯片内包含一个8位CPU、振荡器和时钟电路、至少128字节的内部数据存储器,可寻址外部程序存储器和数据存储器个64k字节,21个特殊功能寄存器,4个并行I/O接口,2个16位定时/计数器,至少5个中断源,提供两级中断优先级,可实现两级中断服务程序嵌套。
具有有位寻址功能,有较强的布尔处理能力。
各功能单元(包括IO端口和定时器/计数器等)都由特殊功能寄存器(SFR)集中管理。
MCS-51单片机在物理结构上有四个存储空间:
1.片内程序存储器
2.片外程序存储器
3.片内数据存储器
4.片外数据存储器
程序内存ROM的寻址范围:
0000H~FFFFH容量64KB。
EA=1,寻址内部ROM;EA=0,寻址外部ROM。
地址长度:
16位。
作用:
存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:
0000H——系统复位,PC指向此处;
0003H——外部中断0入口
000BH——T0溢出中断入口
0013H——外中断1入口
001BH——T1溢出中断入口
0023H——串口中断入口
002BH——T2溢出中断入口
内部数据存储器RAM物理上分为两大区:
00H~7FH即128B内RAM和SFR区。
作用:
作数据缓冲器用。
一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序。
数据和表格等信息。
对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。
对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。
但在程序存储中有些特殊的单元,这在使用中应加以注意。
其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
0003H—000AH外部中断0中断地址区。
000BH—0012H定时/计数器0中断地址区。
0013H—001AH外部中断1中断地址区。
001BH—0022H定时/计数器1中断地址区。
0023H—002AH串行中断地址区。
可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。
从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。
因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。
但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
0000H-0002H,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG指令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。
从0033开始的用户ROM区域用户可以通过ORG指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。
数据存储器
数据存储器也称为随机存取数据存储器。
数据存储器分为内部数据存储和外部数据存储。
片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
MCS-51系列单片机有四个双向的8位并行口P0~P3,每个口各有一个8位的口锁存器,复位后它们的初态全为1。
P1口为准双向口,P1口的每一位都能独立地定义为输出线或输入线。
作为输入线的位,口锁存器的相应位必须为1状态。
P3口是一个双功能口,作为第一功能使用时,其功能和P1口相同。
作为第二功能使用时,其口锁存器状态必须为1。
P3口的每一位可独立地定义为第一功能的输入输出和第二功能的输入输入。
P2口也是准双向口,并且是双功能口,它既可作为第一功能的输入输出口使用,也可作为第二功能的系统扩展地址总线口,输出高8位地址AB8~AB15。
P0口也是双功能口,既可可作为第一功能的输入输出口使用,也可作为第二功能的系统扩展地址/数据总线口,分时输出低8位地址AB0~AB7和收发数据信息D0~D7。
P1.P2.P3都能驱动3个TTL门,且不需要外加电阻就能直接驱动MOS电路。
P0作为I/O时需外接上拉电阻才能驱动MOS电路。
如果MCS-51本身的I/O口数量和种类或存储器容量不能满足用户需求时,可扩展I/O接口或外数据存储器,外部数据存储器和外部扩展接口统一编址,CPU对它们的操作指令也相同。
在外部64k的数据空间(存储类型XDTA)内,可以各划出一个区域作为扩展I/O地址空间和外部数据存储器地址空间。
MCS-51系列单片机至少有5个中断请求源,提供2个中断优先级,可实现2级中断服务程序嵌套。
每个中断源可程控为高优先级中断或低优先级中断。
和中断系统相关的特殊功能寄存器有中断优先级控制寄存器IP,中断使能控制寄存器IE,以及定时/计数器控制寄存器TCON、串行通信口控制寄存器SCON的相关位。
MCS-51系列单片机的5个中断请求源中,有通过P3.2.P3.3输入的二个外部中断源____INT0和____INT1,片内两个定时器/计数器(T/C0、T/C1)的溢出中断请求源TF0和TF1,还有一个片内串行通信口发送或接收中断请求源TI或RI。
这些中断请求源分别由特殊功能寄存器TCON和SCON的相应位所锁存。
1.定时器/计数器(T/C)控制寄存器TCON
TCON的高4位控制定时/计数器,低4位控制外部中断。
其格式如表2-1所示。
表2-1定时器/计数器控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
定时/计数器控制
外部中断控制
IT0、IT1:
外部中断0、1触发方式选择位,由软件设置。
置1为下降沿触发(即当外部中断请求源信号有从1电平到0电平的变化时,外部中断请求标志IE0或IE1才会置1),设置0为低电平触发(即只要外部中断请求源信号为0时,外部中断请求标志IE0或IE1就置1)。
IE0、IE1:
外部中断0、1请求标志位。
产生中断请求时,硬件置位,CPU响应中断后,硬件清零。
TF0、TF1:
T/C0、T/C1计数溢出中断请求标志位。
产生中断时,硬件置位,CPU响应中断后,硬件清零。
TR0、TR1:
T/C0、T/C1启动标志位。
其操作方法将在定时器/计数器章节中介绍。
2.串行通信控制寄存器SCON
SCON中与串行通信中断有关的位是SCON.1和SCON.0。
格式如表2-2所示。
各中断源的硬件优先级以及中断服务程序入口地址如表7所示。
表2-2中断服务程序入口地址表
编号
中断源
入口地址
硬件优先级
0
外部中断0
0003H
最高
1
T/C0中断
000BH
高
2
外部中断1
0013H
中
3
T/C1中断
001BH
低
4
串行通信口中断
0023H
最低
通常在中断入口安排一条相应的无条件跳转指令,以当CPU响应中断后,可从中断入口跳转到用户设计的相应中断处理程序入口。
与中断系统相关的特殊功能寄存器有以下几个:
1.TCON:
涉及的位标志IE0、TF0、IE1.TF1
2.IE:
设及的位标志EX0、ET0、EX1.ET1.ES
3.IP:
涉及的位标志PX0、PT0、PX1.PT1.PS
4.SCON:
涉及的位标志RI、TI
定时器/计数器是单片机的一个重要功能部件,可用来实现定时、计数、频率测量、脉冲宽度测量、产生信号、信号检测等。
MCS-51系列单片机中有至少有2个定时器/计数器—T/C0和T/C1,它们既可以编程为定时器使用,也可编程为计数器使用。
若是内部晶振驱动时钟,则是定时器;若是对外部输入的脉冲信号计数,则是计数器。
当T/C以定时器方式工作时,在每个机器周期计数加1,计数频率=fosc/12。
如晶振频率为12MHz时,计数频率为1MHz,每隔1µs计数值加1。
当T/C以计数器方式工作时,计数脉冲来自外部输入管脚T0(P3.4)或T1(P3.5),当外部脉冲信号负跳变时计数值加1。
假如外部信号是周期性连续脉冲信号,则每过一个振荡周期,计数器进行一次加1计数。
因计算机识别输入信号的负跳变需两个机器周期,所以可计数外部脉冲的最高频率为fosc/24。
当晶振为12MHz时,最高计数频率为500kHz,假如外部脉冲频率高于此频率,计数将出错。
和T/C有关的特殊功能寄存器有TH0、TL0、TH1.TL1.TCON和TMOD,其中TH0和TL0为T/C0的计数寄存器,TH1和TL1为T/C1的计数寄存器。
TCON中高4位用于控制定时/计数器的启停以及产生计数溢出中断标志,其各位的定义如下表3-3所示。
表2-3定时器/计数器控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF0
TR0
TF1
TR1
IE1
IT1
IE0
IT0
TR0、TR1:
T/C0、T/C1启动控制位,需软件控制。
1—启动计数;0—停止计数。
TF0、TF1:
T/C0、T/C1计数溢出中断请求标志位。
产生中断时,硬件置位;CPU响应中断时,硬件清零。
TCON上电复位时清零。
TMOD用于设置定时器/计数器的工作模式,其各位的定义如表2-4所示。
表2-4定时器/计数器方式控制寄存器TMOD
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/—T
M1
M0
GATE
C/—T
M1
M0
T/C1
T/C0
其中高4位对应于T/C1,低4位对应于T/C0。
C/—T:
计数器或定时器选择位。
0—定时器;1—计数器。
GATE:
门控信号位。
0—T/C的启停仅受TR0或TR1的控制;1—T/C的启停受到双重控制,即TR0和P3.2或TR1和P3.3同时为1才能启动T/C0或TC1。
M1.M0:
工作方式选择位。
定时器定时时间和计数初值之间的关系:
定时时间=(满计数值−计数初值)∙机器周期
机器周期=12/fosc
满计数值:
16位计数:
216=65536
8位计数:
28=256
定时/计数器编程操作步骤:
1.确定工作模式:
编程TMOD
2.计算定时器计数初值,并装载到THx和TLx中,或THx和TLx清零
3.在中断方式工作时,开CPU中断和源中断:
编程IE。
必要时设置中断优先级:
编程IP
4.启动T/C:
置位TCON中的TR0、TR1
(三)直流电机驱动模块
微处理器取代模拟电路作为电动机控制器有如下特点:
1.使电路更简单
模拟电路为了实现控制逻辑需要许多电子元件,使电路复杂。
采用微处理器后,绝大多数控制逻辑可通过软件实。
2.可以实现较复杂的控制
微处理器有更强的逻辑功能,运算速度快、精度高、有大容量的存储单元,因此有能力实现复杂的控制,如优化控制等。
3.灵活性和适应性
因为控制器的控制方式是由软件完成的,如果必须要修改控制规律,一般不必改动硬件电路,只需修改程序即可。
在系统调试和升级时,可以不断尝试选择最优参数,非常方便。
4.无零点漂移,控制精度高
数字控制不会出现模拟电路中经常遇到的零点漂移问题。
无论被控制量的大小如何,都可以保证足够的控制精度。
5.可提供人机界面,多机联网工作
因此现在普遍采用单片机作为电动机的控制器。
本设就是由单片机控制产生PWM信号,通过H桥驱动直流电机。
电机的驱动方法可以分为:
可关断晶闸管的门极驱动、功率晶体管的驱动、和功率场效应管的驱动等。
此次设计我采用的方法是
由功率场效应管来组成驱动电路。
直流电动机是最早出现的电机,也是最早能实现调速的电机。
长期以来直流电机一直占据着调速控制的统治地位。
由于它具有良好的现行调速特性,简单的控制性能,高的效率,优异的动态特性;
尽管近年来不断受到其他电机的挑战,但到目前为止仍是大多数调速控制电动机的最优先选择。
近年来,直流电动机的结构和控制方式都发生了很大的变化。
随着计算机以及新型电力电子功率器件的不断出现,使采用全控型的开关功率元件进行脉宽调制(pulsewidthmodulation简称PWM)控制方式已成为绝对主流。
这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。
众所周知,直流电机转速n的表达式为:
n=(U-IR)/KΦ(2-1)
(2-1)中,U-电枢端电压;I-电枢电流:
R-电枢电路总电阻;Φ-每极磁通量;K-电动机结构参数。
现在,大多数应用场合都是用电枢控制法。
下面介绍在励磁恒定不变的情况下,如何通过调节电枢电压来实现调速。
绝大多数直流电机采用开关驱动方式。
开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制PWM来控制电动机电枢电压,实现调速。
当开关管导通时,电机两端响电压Us。
PWM信号的周期为T,其中高电平时间_为tl,低电平时间为t2。
当开关管截止时电机电枢两端的电压为0。
t2秒后,栅极输入重新变为高电平,开关管动作重复前面的过程。
这样,直流电动机电枢绕组两端的电压平均值U0为:
U0=(tlUs+0)/(t1+t2)=t1Us/T=aUs
(2-2)
式中,a为占空比,a=tl/T。
占空比a表示了在一个周期T里,开关管道通的时间与周期的比值。
a的变化范同为0≤a≤1。
由(2-2)可知,当电源电压Us不变的情况下,电枢的端电压的平均值U0取决于占空比a的大小,改变a值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速的原理。
在PWM调速时,占空比a是一个重要参数。
以下三种方法都可以改变占空比的值:
1.定宽调频法:
这种方法是保持tl不变,只改变t2,这样使周期T(或频率)也随之改变
2.调宽调频法:
这种方法是保持t2不变,只改变tl,这样使周期T(或频率)也随之改变
3.定频调宽法:
这种方法是使周期T(或频率)保持不变,而同时改变t1和t2
前两种方法由于在调速时改变了控制脉冲的周期,当控制脉冲的频率与系统的固有频率接近时将会引于控制脉冲的频率,且考虑到程序设计的方便性问题,仍是用的第二种方法。
目前,在直流电机的控制中,主要使用定频调宽法。
PWM控制信号