智能停车场设计.docx

上传人:b****3 文档编号:4847746 上传时间:2022-12-10 格式:DOCX 页数:32 大小:512.29KB
下载 相关 举报
智能停车场设计.docx_第1页
第1页 / 共32页
智能停车场设计.docx_第2页
第2页 / 共32页
智能停车场设计.docx_第3页
第3页 / 共32页
智能停车场设计.docx_第4页
第4页 / 共32页
智能停车场设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

智能停车场设计.docx

《智能停车场设计.docx》由会员分享,可在线阅读,更多相关《智能停车场设计.docx(32页珍藏版)》请在冰豆网上搜索。

智能停车场设计.docx

智能停车场设计

齐齐哈尔大学

创新杯(论文)

 

题目:

智能停车场系统的设计

作者姓名:

敖健

学号:

2012131071

单位:

通信与电子工程学院

指导教师:

张劲松

2015年5月20日

摘要

本文将介绍基于51单片机的智能停车场系统设计,重点是方案论证、系统设计及优化几个方面。

整个智能停车场系统,分为四大模块:

IC读卡器控制模块、12864液晶显示模块、步进电机控制模块、红外线控制模块。

12864液晶显示模块以微控制器51单片机为核心,采集各停车位车辆的信息指导车主停车;IC读卡器控制模块通过读取IC卡信息实现身份验证、门控等功能;

 

关键词:

智能停车场系统;IC读卡;51单片机;12864液晶显示屏

智能停车场管理系统

1.引言

随着科学技术的不断发展和人们生活水平的提高,汽车数量迅速增加,车位日益紧张,给人们日常停车带来了诸多麻烦,迫切需要高级停车场和智能的停车管理系统。

然而目前大部分停车场不仅规模小且相对分散,停车管理存在以下弊端:

1、人们不能及时掌握各停车场的信息

2、在进入停车场时更不能及时找到空车位

3、服务质量不高,车辆进出混乱

该智能停车场管理系统将会克服上述不足,设计更智能化、人性化。

不仅给车主停车和管理停车场带来了方便,更能充分利用车位资源,减少了拥堵,改善了交通秩序。

2.相关背景

随着中国现代化进程的加快,各停车场车流量日渐增多,单单依靠人工管理,其日常保安与管理工作也日渐繁重。

现代企业和政府管理部门为树立良好的形象,对所辖小区进行规范的现代化管理,已广泛地采用智能停车场,对出入车辆的进行高效管制。

2.1停车场管理系统概述

智能停车场管理系统是一种高效快捷、公正准确、科学经济的停车场管理手段,是停车场对于车辆实行动态和静态管理的综合。

从用户的角度看,其服务高效;从管理者的角度看,其易于操作维护、动化程度高、大大减轻管理者的劳动强度。

采用先进的单片机控制,从高标准、高可靠、高安全的设备,利用了高度自动化的机电和微机设备对停车场进行安全、有效的管理,包括、保安、监控、防盗等。

2.2研究意义以及前景

随着科技的进步和人类文明的发展,大型停车场在住宅小区、大厦、机关单位的应用越来越普遍。

而人们对停车场管理的要求也越来越高,智能化程度也越来越高,使用更加方便快捷,也给人类的生活带来了方便和快乐。

不仅提高了现代人类的工作效率,也大大的节约了人力物力,价低了公司的运营成本,并使得整个停车场安全可靠,因此该智能停车场管理系统将会得到极大的推广。

3.方案论证

3.1总体论证

3.1.1设计要求

设计一款具备停车指导,安全监控的智能停车场管理系统。

3.1.2实现方案

为了实现以上功能从大的方面有以下三个方案可供选择:

方案一:

采用高端CPU利用Internet网络进行信息传输和远程监控。

方案二:

采用廉价51单片机对各个车位进行信息采集同时利用电力线载波通信技术或无线网络技术进行信息传输和控制,并将信息提交的主控单片机进行。

方案三:

采用廉价51单片机对各个车位进行信息采集并提供给将寻找车位的车主。

比较:

方案一该设计智能化程度高、控制相当准确,便于与网络连接;但是施工工程量很大,费用高;方案二避免了布线安装施工的困难,但成本高,网络性能一般;方案三不仅技术成熟、成本低廉而且通信性能高布线简单,易于实现。

通过以上比较决定采用方案三。

3.2方案分析

3.2.1检测探头的选用

红外检测原理实现简单、成本低廉,利用红外线控制模块检测车辆不仅抗干扰性强、检测距离远,提高智能化程度,故在停车位选用红外控制模块检测,在停车场门口选用IC读卡控制模块控制车辆出入。

3.2.2从机微处理器的选用

单片机选用深圳宏晶的STC89C52。

此单片机与AT89C52完全兼容,而且STC89C52功能更强、更稳定,特别的一点是STC系列单片机支持串口在线编程功能,且价格与AT89C52相当,故选用STC89C52为控制核心。

3.2.3从机显示模块选择

选用12864液晶显示器,功耗低,显示功能强大。

4.系统设计

4.1硬件设计

4.1.1系统模型

图1系统整体模型图

使相对分散的停车场形成一个统一的整体,便于调度和协调。

停车场内部自成独立的系统适用于小型停车场和独立停车场,扩大了适用范围,此外本系统具有良好的扩展性,便于和监控系统的对接,使其更具有推广应用价值。

4.1.2硬件简介

(1)单片机STC89C52

STC89C52单片机是深圳宏晶科技代理美国一家高科技公司的产品,它具有无法解密、超低功耗、高速高可靠、抗静电抗干扰的众多优点。

而且STC89C52向下完全兼容ATMEL公司的AT89C52,其中STC89C52支持串口在线编程的功能给实验者带来了很大的方便。

内置8K的FLASH程序存储器更是能够反复擦鞋10000次,使实验者不必担心FLASH存储器的老化。

下面是STC89C52的引脚定义:

(2)IC读卡器模块

RFID系列的rc522射频读卡器,是采用先进的射频接收线路设计及嵌入式微控制器,结合高效解码算法,完成对64bitsRead-OnlyEM4100兼容式ID卡的接收,具有接收灵敏度高,工作电流小,单直流电源供电,低价位高性能等特点,适用于门禁,巡更等各种射频应用领域。

有效距离10cm以上,在有效距离内数据接收时间小于100ms,单直流电源+5V供电,工作电流小于70mA。

接口描述:

IC读卡器接口定义

 

5.结论

本设计利用微型计算机作上位机提供友好的人机界面、语音服务、网络服务,对停车场的管理和监控更加人性化、智能化、合理化,真正实现了对停车场的综合控制管理。

而且本系统利用性能可靠、价格廉价的51单片机作从机微处理器降低了系统成本,便于普通小区普及应用。

 

系统参数:

工作电压:

220V,50Hz

磁卡有效距离:

10cm

红外检测探头:

3cm

 

致谢

本设计的顺利完成得到了院系领导老师的大力支持和帮助,尤其是我的张劲松老师在百忙之中抽出宝贵的休息时间,仔细耐心地指导我、鼓励我、让我有了解决问题的信心,使设计得以顺利的完成。

本设计的过程中曾多次与同学探讨问题,通过探讨使自己的想法更完善。

另外,我院学生创新实验室的全体师生,也为本设计提供了很大的帮助,在模型的制作中我的女朋友也参与其中帮助我完成了模型制作。

在此,对他们表示由衷的感谢!

电子信息技术日新月异地飞速发展,人们总是处在不断学习阶段,再加上我水平有限,所以本设计肯定存在许多不尽如人意的地方,欢迎广大老师和同学批评指正。

最后,我在这里要感谢系里的所有老师,是他们精心的栽培与悉心指导为我以后的学习、工作打下了坚实的基础。

谢谢通信与电子信息工程学院所有老师。

附录

 

实物图:

 

智能停车场管理系统程序:

12864液晶显示程序:

#ifndef__LCD12864_H

#define__LCD12864_H

//---包含头文件---//

#include"LPCREG.H"

//---重定义关键词---//

#ifndefuchar

#defineucharunsignedchar

#endif

#ifndefuint

#defineuintunsignedint

#endif

//---如果使用画图模式定义这个---//

//#defineLCD12864_PICTURE

//---定义使用的IO口---//

#defineLCD12864_DATAPORTP1//数据IO口

sbitLCD12864_RS=P0^7;//(数据命令)寄存器选择输入

sbitLCD12864_RW=P0^6;//液晶读/写控制

sbitLCD12864_EN=P0^5;//液晶使能控制

sbitLCD12864_PSB=P3^5;//串/并方式控制

sbitLCD12864_RST=P3^4;//复位端

 

//---声明全局函数---//

voidLCD12864_Delay1ms(uintc);

ucharLCD12864_Busy(void);

voidLCD12864_WriteCmd(ucharcmd);

voidLCD12864_WriteData(uchardat);

voidLCD12864_Init();

voidLCD12864_ClearScreen(void);

voidLCD12864_SetWindow(ucharx,uchary);

#endif

#include"lcd12864.h"

/*******************************************************************************

*函数名:

LCD12864_Delay1ms

*函数功能:

延时1MS

*输入:

c

*输出:

*******************************************************************************/

voidLCD12864_Delay1ms(uintc)

{

uchara,b;

for(;c>0;c--)

{

for(b=199;b>0;b--)

{

for(a=1;a>0;a--);

}

}

}

/*******************************************************************************

*函数名:

LCD12864_Busy

*函数功能:

检测LCD是否忙

*输入:

*输出:

1或0(1表示不忙,0表示忙)

*******************************************************************************/

ucharLCD12864_Busy(void)

{

uchari=0;

LCD12864_RS=0;//选择命令

LCD12864_RW=1;//选择读取

LCD12864_EN=1;

LCD12864_Delay1ms

(1);

while((LCD12864_DATAPORT&0x80)==0x80)//检测读取到的值

{

i++;

if(i>100)

{

LCD12864_EN=0;

return0;//超过等待时间返回0表示失败

}

}

LCD12864_EN=0;

return1;

}

/*******************************************************************************

*函数名:

LCD12864_WriteCmd

*函数功能:

写命令

*输入:

cmd

*输出:

*******************************************************************************/

voidLCD12864_WriteCmd(ucharcmd)

{

uchari;

i=0;

while(LCD12864_Busy()==0)

{

LCD12864_Delay1ms

(1);

i++;

if(i>100)

{

return;//超过等待退出

}

}

LCD12864_RS=0;//选择命令

LCD12864_RW=0;//选择写入

LCD12864_EN=0;//初始化使能端

LCD12864_DATAPORT=cmd;//放置数据

LCD12864_EN=1;//写时序

LCD12864_Delay1ms(5);

LCD12864_EN=0;

}

/*******************************************************************************

*函数名:

LCD12864_WriteData

*函数功能:

写数据

*输入:

dat

*输出:

*******************************************************************************/

voidLCD12864_WriteData(uchardat)

{

uchari;

i=0;

while(LCD12864_Busy()==0)

{

LCD12864_Delay1ms

(1);

i++;

if(i>100)

{

return;//超过等待退出

}

}

LCD12864_RS=1;//选择数据

LCD12864_RW=0;//选择写入

LCD12864_EN=0;//初始化使能端

LCD12864_DATAPORT=dat;//放置数据

LCD12864_EN=1;//写时序

LCD12864_Delay1ms(5);

LCD12864_EN=0;

}

/*******************************************************************************

*函数名:

LCD12864_ReadData

*函数功能:

读取数据

*输入:

*输出:

读取到的8位数据

*******************************************************************************/

#ifdefLCD12864_PICTURE

ucharLCD12864_ReadData(void)

{

uchari,readValue;

i=0;

while(LCD12864_Busy()==0)

{

LCD12864_Delay1ms

(1);

i++;

if(i>100)

{

return0;//超过等待退出

}

}

LCD12864_RS=1;//选择命令

LCD12864_RW=1;

LCD12864_EN=0;

LCD12864_Delay1ms

(1);//等待

LCD12864_EN=1;

LCD12864_Delay1ms

(1);

readValue=LCD12864_DATAPORT;

LCD12864_EN=0;

returnreadValue;

}

#endif

/*******************************************************************************

*函数名:

LCD12864_Init

*函数功能:

初始化LCD12864

*输入:

*输出:

*******************************************************************************/

voidLCD12864_Init()

{

LCD12864_PSB=1;//选择并行输入

LCD12864_RST=1;//复位

LCD12864_WriteCmd(0x30);//选择基本指令操作

LCD12864_WriteCmd(0x0c);//显示开,关光标

LCD12864_WriteCmd(0x01);//清除LCD12864的显示内容

}

 

/*******************************************************************************

*函数名:

LCD12864_SetWindow

*函数功能:

设置在基本指令模式下设置显示坐标。

注意:

x是设置行,y是设置列

*输入:

x,y

*输出:

*******************************************************************************/

voidLCD12864_SetWindow(ucharx,uchary)

{

ucharpos;

if(x==0)//第一行的地址是80H

{

x=0x80;

}

elseif(x==1)//第二行的地址是90H

{

x=0x90;

}

elseif(x==2)//第三行的地址是88H

{

x=0x88;

}

elseif(x==3)

{

x=0x98;

}

pos=x+y;

LCD12864_WriteCmd(pos);

}

RC522射频读卡器程序:

#include"intrins.h"

#include"LPCREG.H"

#include"mfrc522.h"

#defineMAXRLEN18

sbitMF522_NSS=P0^0;//SDA

sbitMF522_SCK=P0^1;

sbitMF522_SI=P0^2;//MOSI

sbitMF522_SO=P0^3;//MISO

sbitMF522_RST=P0^4;

/////////////////////////////////////////////////////////////////////

//功能:

寻卡

//说明参数:

req_code[IN]:

寻卡方式

//0x52=寻感应区内所有符合14443A标准的卡

//0x26=寻未进入休眠状态的卡

//pTagType[OUT]:

卡片类型的代码

//0x4400=Mifare_UltraLight

//0x0400=Mifare_One(S50)

//0x0200=Mifare_One(S70)

//0x0800=Mifare_Pro(X)

//0x4403=Mifare_DESFire

//返回:

成功返回MI_OK

/////////////////////////////////////////////////////////////////////PICC_REQIDL

charPcdRequest(unsignedcharreq_code,unsignedchar*pTagType)

{

charstatus;//idata

unsignedintunLen;//idata

unsignedcharucComMF522Buf[MAXRLEN];//idata

ClearBitMask(Status2Reg,0x08);

WriteRawRC(BitFramingReg,0x07);

SetBitMask(TxControlReg,0x03);

ucComMF522Buf[0]=req_code;

status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);

if((status==MI_OK)&&(unLen==0x10))

{

*pTagType=ucComMF522Buf[0];

*(pTagType+1)=ucComMF522Buf[1];

}

else

{status=MI_ERR;

 

}

returnstatus;

}

/////////////////////////////////////////////////////////////////////

//功能:

防冲撞

//参数说明:

pSnr[OUT]:

卡片序列号,4字节

//返回:

成功返回MI_OK

/////////////////////////////////////////////////////////////////////

charPcdAnticoll(unsignedchar*pSnr)

{

charstatus;//idata

unsignedchari,snr_check=0;

unsignedintunLen;

unsignedcharucComMF522Buf[MAXRLEN];

ClearBitMask(Status2Reg,0x08);

WriteRawRC(BitFramingReg,0x00);

ClearBitMask(CollReg,0x80);

ucComMF522Buf[0]=PICC_ANTICOLL1;

ucComMF522Buf[1]=0x20;

status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);

if(status==MI_OK)

{

for(i=0;i<4;i++)

{

*(pSnr+i)=ucComMF522Buf[i];

snr_check^=ucComMF522Buf[i];

}

if(snr_check!

=ucComMF522Buf[i])

{status=MI_ERR;}

}

SetBitMask(CollReg,0x80);

returnstatus;

}

/////////////////////////////////////////////////////////////////////

//功能:

选定卡片

//参数说明:

pSnr[IN]:

卡片序列号4字节

//返回:

成功返回MI_OK

/////////////////////////////////////////////////////////////////////

charPcdSelect(unsignedchar*pSnr)

{

charstatus;//idata

unsignedchari;//idata

un

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1