ATS单片机的停车场车位设计方案.docx
《ATS单片机的停车场车位设计方案.docx》由会员分享,可在线阅读,更多相关《ATS单片机的停车场车位设计方案.docx(31页珍藏版)》请在冰豆网上搜索。
ATS单片机的停车场车位设计方案
停车场管理系统设计
[摘要]伴随着科技的飞速发展,交通工具的越来越普及。
汽车作为人类社会中最主要的交通工具之一,起着重大作用。
随着人们生活水平的提高,汽车的数量也与日俱增,于是停车正在成为世界性的问题。
以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资消耗,大大提高了效率。
本论文介绍了一种停车场管理系统模型。
它能在任意时间内,根据有效的停车空间,计算能够停泊的车辆数量,并且使用自动而可靠的完成车辆的进。
还能够显示是否有停放的场地以及是否有车辆进、出停车场。
本停车场管理系统是集自动化技术、计算机技术为一体的智能化系统,能够避免停车场入口处及出口处的交通阻塞现象,同时还能满足使用者和管理者对停车场效率、安全、性能以及管理上的需要,不会造成大量资源的流失。
因此,停车场管理系统的研究和实现具有十分重要的现实意义。
[关键词]单片机红外线传感器动态显示
目录
第一章绪论1
1.1研究背景及意义1
1.2系统概述1
1.3课题介绍1
第二章硬件电路设计3
2.1芯片的选择3
2.1.1AT89S52的介绍3
2.1.2AT89S52引脚功能3
2.1.3AT89S52单片机内部结构6
2.1.4七段显示译码器7448的介绍7
2.2电源模块的设计9
2.3显示模块的设计9
2.4键盘输入模块的设计10
2.5传感器模块的设计12
2.5.1红外线发射模块12
2.5.2红外线接收模块13
2.6电机控制模块的设计13
第三章软件设计15
3.1主程序设计15
3.2倒计时中断程序设计16
3.3键盘中断程序设计17
3.3.1增加键17
3.3.2减少键18
3.3.3确定键18
结论19
致谢语20
参考文献:
21
附录1:
系统程序清单22
附录2:
系统电路原理图29
第一章绪论
1.1研究背景及意义
近年来,随着经济建设的快速发展,汽车带给人们快乐的同时也带来了越来越突出的难题:
城市交通问题日益严重,停车问题接踵而至,一个不到10平方M的停车位,牵动着社会的“神经”,停车场车位不足的问题越来越突出。
目前,有偿使用停车场是这个问题最为有效的解决方式,这就使得停车场管理的重要性越来越受到重视。
然而目前的大部分停车场管理系统都是采取人工判别车型、人工收费、人工放行以及人工引导车辆入库等比较传统的管理模式,这在很大程度上制约着城市的发展。
本文是利用单片机来设计的一个停车场管理系统。
在如今农业、工业、生活、军事等各个方面都向自动化、智能化、数字化发展。
为了适应时代的发展,电子技术发展迅猛。
自动化、智能化、数字化的实现方式多种多样,从而产生了很多设计工具。
单片机就是其中之一,它正朝着高性能和多品种方向发展,卓越的性价比受到设计者的欢迎。
1.2系统概述
本系统包括:
传感器模块、电源模块、LED显示模块、键盘输入模块等。
它可以实现控制门的开启、显示当前停车场内车辆的数目及状态、人工的设置总车位数以及剩余车位数等功能。
系统的特点:
(1)由于本系统采用电子元件无需人工管理。
(2)自动控制门的开启。
(3)自动显示停车场的车位状态。
(4)人工设置总车位数,剩余车位数。
(5)本系统适用于任意停车场。
1.3课题介绍
本设计是将单片机作为控制系统的核心部件,通过传感器模块检测到有车辆进出时,进行判断,控制自动门的开启,并通过对显示模块进行动态扫描,显示目前停车场内车辆的数目及状态。
管理者还可以对停车场的最大容量等进行人工的限制。
如系统的基本框图1.1所示:
图1.1系统基本框图
第二章硬件电路设计
该系统用于检测是否有车辆进出,是否有空余车位,应用单片机来控制其他模块以实现对车辆的数目、状态等的加减计数和状态显示,并利用单片机中的定时系统对车辆进出的时间限制以及设定,键盘系统的输入可以人工控制总车位数以及剩余车位数
2.1芯片的选择
2.1.1AT89S52的介绍
本系统采用的是一种低功耗、高性能的MCS-51系列的单片机,AT89S52是一种COMS8位微控制器,具有8K在系统可编程Flash存储器,是由Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52委众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52的主要性能:
●与MCS-51单片机产品兼容;
●8K字节在系统可编程Flash存储器;
●1000次擦写周期;
●全静态操作;
●三级加密程序存储器;
●32个可编程I/O口线;
●三个16位定时器/计数器;
●8个中断源;
●全双工UART串行通道;
●低功耗空闲和掉电模式;
●掉电后中断可唤醒;
●看门狗定时器;
●双数据指针;
●掉电标识符;
2.1.2AT89S52引脚功能
●VCC:
电源
●GND:
地
●P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外接上拉电阻。
●P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
作为第二功能时,作用如表1所示:
表2.1P1口的第二功能
P1口
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
●P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
●P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用。
在flash编程和校验时,P3口也接收一些控制信号。
作为第二功能时,作用如表2所示:
表2.2P3口的第二功能
P3口
第二功能
信号名称
P3.0
RXD
串行数据接收口
P3.1
TXD
串行数据发送口
P3.2
INT0
外部中断0请求输入
P3.3
INT1
外部中断1请求输入
P3.4
T0
定时器/计数器0的外部输入口
P3.5
T1
定时器/计数器1的外部输入口
P3.6
WR
外部RAM写选通信号
P3.7
RD
外部RAM读选通信号
●RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
●ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
●PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
●XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
●XTAL2:
振荡器反相放大器的输出端。
AT89S52的引脚如图2.1所示
图2.1AT89S52引脚图
2.1.3AT89S52单片机内部结构
如图2.2所示:
VSS
图2.2AT89S52单片机内部结构图
2.1.4七段显示译码器7448的介绍
7448七段显示译码器输出高电平有效,用以驱动共阴极显示器。
7448的功能如表2.4所示。
它有3个辅助控制端LT、RBI、BI/RBO,现分别简要说明如下:
(1)灭灯输入BI/RBO:
特殊控制端,有时作为输入,有时作为输出。
当BI/BRO作为输入使用且BI=0时,无论其它输入端是什么电平,所有各段输出a~g均为0,所以字形熄灭。
(2)试灯输入LT:
当LT=0时,BI/RBO是输出端,且RBO=1,此时,无论其它输入端是什么电平,所有各段输出a~g均为1.该输入端常用于检查7448本身及显示器的好坏。
(3)动态灭零输入RBI:
当LT=1,RBI=0且输入代码DCBA=0000时,各段输出a~g均为低电平,与BCD码相应的字形0熄灭,故称“灭零”。
(4)动态灭零输出RBO:
BI/RBO作为输出使用时,受控于LT和RBI,当LT=1且RBI=0时,输入代码DBCA=0000时RBO=0;若LT=0或者LT=1且RBI=1,则RBO=1。
该段主要用于显示多位数字时,多个译码之间的连接。
表2.37448功能表
十进制或
功能
输入
BI/RBO
输出
字形
LT
RBI
DCBA
abcdefg
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1111110
1110000
2101101
1111001
0110011
1011011
1001111
1110000
1111111
1111011
0001101
0011001
0100011
1001011
0001111
0000000
0
1
2
3
4
5
6
7
8
9
消隐
脉冲消隐
灯测试
X
1
0
X
0
X
XXXX
0000
XXXX
0
0
1
0000000
0000000
1111111
8
从功能表可以看出,对输入代码0000,译码条件是:
LT和RBI同时等于1,而对其他输入代码则要求LT=1,这时候译码器各段a~g输出的电平是由输入BCD码决定的,并且满足现实字形的要求。
2.2电源模块的设计
整个系统中电源模块主要的是起供应稳定的电压、提高系统的技术指标和抗干扰性。
三端稳压器是一种标准化、系统化的通用线性稳压电源集成电路,在线性集成稳压器中,由于三端稳压器只有三个引出端子,具有外接元件少,使用方便,性能稳定,价格低廉等优点,因而得到广泛应用。
三端稳压器可以决定一个稳压电源输出电压和最大输出电流。
用于控制板电路的稳压.以防止电压过高烧毁电路。
在本次设计中采用LM7805稳压器。
用LM7805三端稳压器来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来安全可靠、方便,而且价格便宜。
当在电路中通上220V交流电压时,交流高电压通过变压器变换成交流低电压,交流低电压经过桥式整流电路D1-D4的整流和滤波电容C1的滤波,在三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压,此直流电压经过稳压器LM7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压,其电路图如图2.4所示:
图2.4电源设计总图
2.3显示模块的设计
该硬件电路是在一个8位I/O口上将所有位的断码线相应段并连在一起,形成断码线的多路复用,而各位的共阴极分别由相应的I/O线控制,形成各位的分时选通。
本系统选用三个共阴数码管,总共可以控制255个车位。
如图所示,数码管a-h脚端连接,通过连接一个7448连接到单片机芯片的P1、P2口。
其中7448是驱动作用。
另外,本系统还可以显示停车场的车位状况,我们可以将单片机芯片的P0.0和P0.1来作为显示车位状况的输出端。
将P0.0接红色二极管,当其发红光时表示停车场已满即无停车位。
将P0.1接绿色二极管,当其发绿光时表示停车场未满即还有停车位。
但由于P0口的输出电路是漏极开路,换言之,当P0作为输出时,上拉场效晶体管截止。
所以,必须外接上拉电阻才能有高电平。
如图2.5所示
图2.5显示模块总图
2.4键盘输入模块的设计
键盘工作方式有3种,即程序控制扫描、定时扫描和中断扫描。
程序控制扫描方式是指单片机在空闲时,才调用键盘扫描子程序,并反复地扫描键盘,直到用户从键盘上输入命令或数据,而在执行键入命令或处理键入数据过程中,CPU将不再响应键入要求,直到CPU重新扫描键盘为止;定时扫描方式就是每隔一定时间对键盘扫描一次,它利用单片机内部的定时器产生一定的时间的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键执行响应的键功能程序;键盘工作在程序控制扫描方式时,当无键按下时CPU要不间断的扫描键盘,直到有键按下为止。
如果CPU要处理很多事情,这种方式将不能适应。
定时扫描方式只要时间一到,CPU就去扫描键盘,工作效率有了进一步的提高。
但这两种方式常使CPU处于空扫状态,而中断方式下,CPU可以一直处理自己的工作,直到有键闭合时发出中断申请,CPU响应中断,执行相应的中断服务程序,才对键盘进行扫描,从而提高了CPU的工作效率。
本系统用的是程序控制扫描和中断扫描两种方式相结合的方式。
如图2.6所示。
SW1是编程扫描方式,此开关用于改变显示模块的数码管状态,该开关断开时,P0.3为低电平,数码管显示停车场剩余车位量。
P0.3闭合时,为高电平,数码管显示停车场全部车位量。
SW2、SW3、SW4用于手动调节剩余车位和全部车位数。
SW2为确定键,利用定时器1(T1)进行中断扫描;SW3为数字加,利用外部中断1(INT1)进行中断扫描;SW4为数字减,利用外部中断0(INT0)进行中断扫描。
当SW1断开时,其它三个开关调节的是剩余车位的数量,使计数出错时不至于重启系统或系统初始化时使用。
当SW1闭合时,则是调节全部车位总数的数量。
图2.6键盘输入模块总图
2.5传感器模块的设计
本系统采用的是红外线传感器,这部分的功能是感受到物体的运动并且传送信号到AT89S52芯片上。
传感器部分分为发射器和接收器两个部分。
2.5.1红外线发射模块
系统用两块555芯片产生波形,用红外线发射二极管发射波形,系统采用的是TSOP1738接收器,它对于1KHZ信号调制的38KHZ脉冲有效。
电路图如图所示,图2.7中,IC12、R1、R2、C1、D1、C2用于产生1KHZ的方波。
接通电源后,电容C1被充电,VC上升,当VC上升到2/3VCC时,触发器被复位,同时放电脚(7脚)导通,此时3脚输出VO为低电平,电容C1通过R1和T放电,使VC下降。
当VC下降到1/3VCC时,触发器又被置位,VO反转为高电平。
电容器C放电所需时间为0.5ms。
当C1放电结束时,T截止VCC将通过R1向电容C1充电,VC由1/3VCC上升到2/3VCC所需的时间为0.5ms。
当VC上升到2/3VCC时,触发器有发生翻转,如此周而复始,在输出端就得到一个周期性方波,其频率为1KHZ,占空比为50%。
以IC13为主的部件产生38KHZ的方波,原理同上。
将IC12的3脚接IC13的4脚(复位端)。
当IC12输出低电平时,IC13输出低电平;当IC12输出高电平时,IC13输出38KHZ的方波,将此信号加到两个红外线发射管(IR1、IR2)上,通过他们发射信号。
R5作为限流电阻,防止555芯片和红外线发射管烧坏。
图2.7传感器图
2.5.2红外线接收模块
本模块的主要部件是TSOP1738。
TSOP1738是VISHAY公司推出的一体化红外线接收器,集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样。
它适合于各种红外线遥控和红外线数据传输。
内部包括光电接收器和带有红外线滤波器的预放大电路它对于1KHZ信号调制的38KHZ脉冲有效。
正常地接收发射模块产生的红外线信号时,接收器的输出端会产生1KHZ的方波,当没有信号时,输出为+5V的直流电平。
这种传感器的输出为集电极开路型,因此需要外接阻值大于10K的上拉电阻。
由于传感器精度极高,所以在传感器的输出端和地之间必须接上一个22uF的电解电容。
在电源与地线之间必须接上一个4.7uF的电解电容,以便减少接收到的杂散信号的干扰。
这样,传感器模块在正常接收信号(没有车经过),输出0V;当信号中断时(有车经过)时,输出为+5V。
具体的电路图如图2.8所示。
图2.8红外线接收模块图
2.6电机控制模块的设计
要横杆改变运动方向,如上升、下降等,要求电动机能实现正、反转。
对于三相异步电动机来说,可通过两个接触器来改变电动机定子绕组的电源相序来实现。
电动机正、反转控制线路如图2.9所示,通过按键控制接触器KM1,为正向接触器,控制电动机M正转;控制接触器KM2,为反向接触器,控制电动机M反转。
图2.9电机控制模块图
正转控制:
合上刀开关Q→按下正向起动按钮SB2→正向接触器KM1通电→KM1,主触点和自锁触点闭合→电动机M正转。
反转控制:
合上刀开关Q→按下反向起动按钮SB3→正向接触器KM2通电→KM2,主触点和自锁触点闭合→电动机M反转。
停机:
按停止按钮SB1→KM1(或KM2)断电→M停转。
第三章软件设计
软件设计是设计中很重要的部分。
它关系到一个系统能否实现其预定的要求。
3.1主程序设计
主程序是软件设计的总体框架,因此主程序的流程图的设计决定了程序编写的好坏,该主程序的功能是扫描键盘,作出逻辑判断,控制各种中断,数据送入显示模块。
其流程图如图3.1所示。
图3.1系统主程序流程图
在判断车辆是否进出中:
本系统使用了两个传感器,一个用来检测出去的车,一个检测进来的车。
当两个传感器同时检测到车的时候,说明进出的是车辆。
当一个传感器检测到车辆时,开门。
当两个传感器都检测到时,通过逻辑判断,剩余车位数进行加减。
3.2倒计时中断程序设计
这个子程序用来计算开门的时间。
当时间到时,根据传感器状态判断自动门是否可以关闭。
若可以,则关闭,然后退出;若不可以,则再次设定自动门开启剩余时间,重新进入倒计时。
程序流程图如图3.2所示。
图3.2倒计时中断程序流程图
3.3键盘中断程序设计
这一部分包括加、减、确定三个键,分别由外部中断1(INT1)外部中断0(INT0)和定时器1(T1)。
3.3.1增加键
在此程序中,剩余车位不超过最大车位数,即最大车位数不超过255.流程图3.3如下
图3.3按键流程图
3.3.2减少键
减少键的程序段和3.3.1相似。
3.3.3确定键
确定键实现了用定时器1中断,其作用是判断手动设置以后的剩余车位是否大于最大车位数,防止系统紊乱。
结论
本课题所研究的是通过单片机来实现对停车场的管理,在设计的过程中硬件存在着这样的问题:
(1)本系统中所使用的红外线传感器TSOP1738过于灵敏,输出端出现电平抖动,可以通过软件或硬件去抖动。
我选择了软件抖动,即分两次读取传感器的状态,对比两次读取的状态,系统做出对应的反应,键盘也是这样做。
(2)数码管显示亮度不够。
AT89S52的I/O口得输入功率不够造成的,解决方法是在数码管输入端和I/O口之间添加7448芯片,进行驱动。
本系统的不足之处:
(1)没有实现对电机的无线控制。
(2)由于单片机芯片的局限,系统无车辆出入记录功能,有待改进。
致谢语
从刚接到毕业设计课题,我首先是查找一些相关的书籍及资料,并根据实际情况拟定设计方案,从而达到优化方案。
在研究设计电路时,最难的是调试了,但在老师和同学的帮助下使得本次设计达到了预定的要求。
同时,通过这次毕业设计,在各个方面都有了很大的提高,特别是在理论和实践结合方面使我受益匪浅,使我大学里学习的理论知识在根本上得到一次最完整的实践和提高。
也为我即将面临的工作奠定了很好的基础。
在本次毕业设计中深深认识到自己的各个方面的不足之处,本着提高动手能力以及检测大学所学知识的目的,我严格要求自己,每一环节都认真对待,定期向知道老师报告进展情况和请教不懂的地方,得以完成任务。
在经过系统的设计与制作后,感触最深的是解决问题的方法、技巧。
在这个过程中,我遇到许许多多问题,对待问题要多方法处理,多角度处理。
这不但增强了实践能力,而且懂得了联系实际的重要性,我坚信这对以后的学习和工作会有极大的帮助。
当然,我的设计还存在着一些缺陷,有待于在将来设计中进一步提高。
参考文献:
[1]李广弟.单片机基础[M].北京:
北京航天航空大学出版社,2005.
[2]胡汉才.单片机原理及接口技术[M].北京:
清华大学出版社,2004.
[3]马忠梅.单片机C语言Windows环境编程宝典[M].北京