历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2019年12月20日 | 基于51单片机的停车场车位管理系统

2019-12-20 来源:51hei

51单片机主控的停车场车位管理系统设计的实物图:
0.jpg?imageView2/2/w/5500.png?imageView2/2/w/550

停车场车辆管理系统设计与开发


摘要:伴随着科技的飞速发展,交通工具的越来越普及。汽车作为人类社会中最主要的交通工具之一,起着重大作用。随着人们生活水平的提高,汽车的数量也与日俱增,于是停车正在成为世界性的问题。以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资消耗,大大提高了效率。


本论文介绍了利用单片机控制的一种停车场管理系统。它能在任意时间内,根据有效的停车空间,计算能够停泊的车辆数量,并且使用自动而可靠的完成车辆的进出。还能够显示是否有停放的场地以及是否有车辆进、出停车场。


本设计具有结构简单,计数准确,经济效益高,造价低廉,可靠性高,维修方便,研制周期短,操作简单等优点。经实验证明,这套系统软硬件设计合理,各项性能良好,经过系统扩展与升级,可以有效的满足各种流量统计的需要。


  •   前言


1.1研究的背景及意义

随着经济的增长及城市化进程的加快,小汽车进入家庭,私人拥有量越来越多。由调查研究发现许多的小区在停车管理上存在着一定的局限性,为了方便有效的实现小区车辆管理系统使小区停车场安全、快捷运转,必须配备一套综合小区车辆统计计数系统。


单片微型计算机(简称单片机)也叫做微型控制器,自从20世纪70年代问世以来,得到了快速发展,从早期的8位机到现在的32位机,其硬件资源和软件资源在不断丰富与完善。单片机由于其集成度高、体积小、抗干扰能力强和价格低廉、具有独特的控制功能,它已经成为计算机世界中的重要成员。在一个应用系统中,只用一个单片机。但是单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的还在于,单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并能提高系统性能的控制技术必将随着单片机应用的推广普及而不断发展完善。

随着社会的发展,数据统计的重要性也是十分显著的。它是计算机与外部物理世界连接的桥梁。是统计管理的关键步骤,它在现代信息领域发挥着重要作用,是信息产品不可或缺的重要组成部分。因此选择基于单片机数据流量统计系统设计是很有意义也是很有必要的。


本设计就是利用“单片机”控制的车辆流量统计系统。随着国民经济的增长,人民生活质量的提高,私家车逐渐走进人们的生活,可是随之而来的问题也摆在了人们面前,那就是城市的空间越来越紧张,停车位难求,特别是到了法定假日出去自驾游,进入停车场却发现已满,只能去另寻车位。该设计就是针对此类问题而做,该设计不仅能直观的显示停车场的车流量,还能在车位满时发出报警。不但可方便车主了解停车场车位情况,做出适当的选择,又方便物业公司的管理。


该设计价格低廉,计数准确,可广泛应用于停车场、商场、房地产公司以及物业管理部门等。由于该设计的价格优势、安全性以及大量应用后可导致管理成本的下降,中国人口众多,可想而知其可以为产品生产企业创造多少经济价值。


1.2系统概述

本系统包括:电源模块、传感器模块、显示模块、手动键盘输入模块、车辆车位模拟模块等。它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。


系统的特点:

(1)由于本系统采用电子元件无需人工管理。

(2)自动显示停车场的车位状态,进出和停放车辆统计。

(3)统计小区当天已停放车辆总数,并且显示停放位置。

(4)本系统适用于任意停车场。

(5)检测小区车位车辆是否已满,报警指示灯闪烁。

系统的模拟框图:

第2节方案设计及选择

该系统用于检测是否有车辆进出,是否有空余车位,应用单片机来控制其他模块以实现对车辆的数目、状态等的加减计数和状态显示,并利用单片机中的定时系统对车辆进出的时间限制以及设定,键盘系统的输入可以人工控制总车位数以及剩余车位数数值的显示。


2.1电源模块的设计

整个系统中电源模块主要的是提供稳定的电压。

方案一:整个系统中电源模块主要的是提供稳定的电压。该电路输入单相220v交流电,经过变压器,全桥整流,稳压后输出稳定的5v直流电。

方案二: 该电路直接使用USB 5V供电,直接接入有USB接口的电源适配器即可! 可以具有外接元件少,使用方便,性能稳定,价格低廉等优点,因而得到广泛应用。因为此系统设计要输出5V的电压。


综上所述:为了简化电路,使用方便。我们采用现在非常成熟的电源适配器供电。直接接适配器电源5V电。



2.2传感器的选择

方案一:超声波传感器发送声波出去,当有汽车经常时通过反射回来的声波消耗的时间进行计算。这样通过不同的距离来判断是否有汽车经过。优点精度高,小巧方便。 缺点就是使用起来比较复杂,而且也不宜安装。


方案二:采用红外线光电传感器,只要在所测距离内,有障碍物经过时。则输出一个高电平。当没有障碍物时输出低电平。这样就很好判断是否有汽车经过。


综上所述:我们采用了方案二,直接使用光电传感器来判断是否有车驶入。


2.3主芯片的的选取

方案一:采用8位微控制器。8位微控制器的典型代表是8051微控制器。8051微控制器是一款入门级微控制器,它内核简易,应用广泛,资料齐全,非常适合入门学习。同时它的价格低廉,是一款适用于追求低成本,不追求实时性的电子产品。在我国很长一段时间内,8051微控制器占据了小型家电市场,其中的原因正是超低的成本.


方案二:采用16位微控制器。MSP430微控制器是一款以低功耗闻名的16位微控制器,有许多低功耗的工作模式,采用了精简指令集(RISC)结构,具有丰富的寻址方式,高效率的查表处理指令。这些特点都保证了用它可以编写出高效率的源程序。


方案三:采用32位微控制器。Cortex-M0+内核基于ARMv6架构,支持Thumb/Thumb-2子集ISA,单核心,采用低成本的90nmLP工艺制造,核心面积仅0.04mm2,每MHz单位频率消耗的电流、功耗分别有9μA、11μW,是现今其它8/16位微控制器的大约三分之一,而性能上又比它们高出很多。飞思卡尔的Kinetis L系列微控制器基于ARM Cortex-M0+内核,是目前市场上能效极高的32位微控制器,每微安数据吞吐量居业内领先水平;超低功耗模式多种灵活的功率模式,适合不同的应用情形,可最大限度延长电池寿命;多种技术优化功耗,包括90nm薄膜存储(TFS)技术、时钟和电源门控技术,以及带有位处理引擎、外围交叉桥和零等待闪存控制器的高效平台等;深度睡眠模式下,可在不唤醒内核的情况下进行智能决策并处理数据。


综合上述几种单片机优缺点并且根据实验要求,就地取材选择了由STC公司生产的一种价格便宜、低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。


  •   系统的硬件设计


3.1微处理器电路模块

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。


具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。


STC89C52RC单片机参数

⑴8K字节程序存储空间;

⑵512字节数据存储空间;

⑶内带2K字节EEPROM存储空间;

⑷可直接使用串口下载;

3.2显示模块

显示部分是LCD1602液晶

一般1602字符型液晶显示器实物如下图所示:

    


3.2.1液晶简介

  (1)1602LCD主要技术参数:

   显示容量:16×2个字符

              芯片工作电压:4.5—5.5V

              工作电流:2.0mA(5.0V)

              模块最佳工作电压:5.0V

              字符尺寸:2.95×4.35(W×H)mm

   (2)引脚功能

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

3.2.2指令说明

1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读出的数据内容

3.2.3显示电路原理图


3.3报警部分

当小车车库内停车位为0时,如果有小车继续驶入时。蜂鸣器就会发出报警声音来提醒驾驶员。此时驾驶员应该将车停在小区外的停车场。蜂鸣器通过一个PNP型的三极管驱动。三极管的基极接到单片机的P1.7口。


3.4停车位模拟停车模块

在此处用16盏LED灯4*4排列,用来模拟停车位。由于51单片机I/O口数量不足,所以使用了74HC595芯片对其进行了扩展。


74HC595是8位串行输入转并行输出移位寄存器。在正常使用时SCLR为高电平,G为低电平。从SER每输入一位数据,串行输595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,如下面的真值表,在正常使用时SCLR为高电平, G为低电平。从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。

真值表:


  •   系统的软件设计

软件设计是设计中很重要的部分。它关系到一个系统能否实现其预定的要求。


4.1主程序设计

主程序是软件设计的总体框架,因此主程序的流程图的设计决定了程序编写的好坏,该主程序的功能是扫描键盘,作出逻辑判断,控制各种中断,数据送入显示模块。其流程图如图14所示。

在判断车辆是否进出中:本系统使用了两个传感器,一个用来检测出去的车,一个检测进来的车。当两个传感器同时检测到车的时候,说明进出的是车辆。当一个传感器检测到车辆时,开门。当两个传感器都检测到时,通过逻辑判断,剩余车位数进行加减。


4.2倒计时中断程序设计

这个子程序用来计算开门的时间。当时间到时,根据传感器状态判断自动门是否可以关闭。若可以,则关闭,然后退出;若不可以,则再次设定自动门开启剩余时间,重新进入倒计时。程序流程图如图15所示:

4.3键盘中断程序设计

这一部分包括加、减、两个键,


4.3.1增加键

在此程序中,剩余车位不超过最大车位数.流程图如图所示:

4.3.2减少键

减少键的程序段和上图的增加键相似。

  •   系统分析与调试

5.1 keil运行图


5.2 proteus仿真图


5.3实物图


  •   成果总结

本课题所研究的是通过单片机来实现对停车场的管理,这里用的是51系列芯片。本设计利用液晶显示屏显示,可以同时显示小区内停车位,汽车数,汽车驶入流量和驶出流量。

由于本系统的实现技术要求比较高,而且课题研究的时间仓促,以及本人能力有限,因此还有很多地方存在着不足之处:


(1)本系统中的硬件部分不能实现集中控制,这样就增加了程序的编写难度,也相应的增加了系统的成本。

(2)系统稳定性需要加强,尽管这种情况不常发生,但是一旦发生就影响系统的运行。

(3)在功能上需要更加完善,本系统没有设置报警装置,如果系统发生故障,系统不能做出报警动作,这样也会影响系统的跟踪质量。


由于本人能力有限,做出的系统存在不少的问题,希望有更多的人参与其中,最终能做出性能好、精度高的停车场管理系统,以适应越来越多的私家车对停车位的需求。希望有更多的人参与到这项研究中来,性能好、精度高、低成本的控制系统是我们的目标。


结束语

从刚接到课题,我首先是查找一些相关的书籍及资料,并根据实际情况拟定设计方案,从而达到优化方案。在研究设计电路时,最难的是调试了,但在老师和同学的帮助下使得本次设计达到了预定的要求。同时,通过这次课题,在各个方面都有了很大的提高,特别是在理论和实践结合方面使我受益匪浅,使我大学里学习的理论知识在根本上得到一次最完整的实践和提高。


此次课题是在刘玉莹老师的悉心指导下完成的,从开始进入课题到设计的顺利完成,她都始终给予我耐心的指导和不懈的支持。老师认真的教学态度,严谨的治学精神,以及对学生无微不至的关爱,都深深地感染和激励着我,使我受益终生,在此表示衷心的谢意!


当然在本次课题中我也深深认识到自己的各个方面的不足之处,本着提高动手能力以及检测所学知识的目的,我严格要求自己,每一环节都认真对待,定期向知道老师报告进展情况和请教不懂的地方,得以完成任务。在这个过程中,我遇到许许多多问题,对待问题要多方法处理,多角度处理。这不但增强了实践能力,而且懂得了联系实际的重要性,我坚信这对以后的学习和会有极大的帮助。当然我的设计还存在着一些缺陷,有待于在将来设计中进一步提高。


单片机源程序如下:

#include                  //调用单片机头文件

#define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255

#define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535

#include


sbit K1=P1^0;

sbit K2=P1^1;


sbit K3=P1^2;

sbit K4=P1^3;


sbit beep = P1^7;   //蜂鸣器IO口定义


sbit SH = P3^5;

sbit ST = P3^6;

sbit DS = P3^7;


uchar num_jin;

uchar num_chu;

uchar num_car;


#include "lcd1602.h"


/***********************1ms延时函数*****************************/

void delay_1ms(uint q)

{

        uint i,j;

        for(i=0;i                for(j=0;j<120;j++);

}


void write_74hc595(unsigned int num)

{

        int i;        

        ST = 0;

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

        {

                SH = 0;

                if (num & 0x0001)

                {

                        DS = 1;

                }

                else

                {

                        DS = 0;

                }

                SH = 1;

                num >>= 1;

        }

        ST = 1;

}


unsigned int num_2_led(unsigned int num)

{

        int i;

        unsigned int ret=0;

        if (num > 16) 

            return 0xFFFF;

        for(i=0;i        {

                ret |= 1<        }

        return ret;

}


void key()         //独立按键程序

{

        if(!K1)               //           汽车进入

          {

                delay_1ms(20);

                if(!K1)

                  {

            while(!K1)

                    ;

                        if(num_car==16)         { beep=0;         delay_1ms(200);  beep=1;}

            if(num_car<16)         { num_car++;  if(num_jin<=255) { num_jin++;}  }

                        write_sfm2(1,4,num_jin); 

                        write_sfm2(1,12,num_chu);  

                        write_sfm2(2,4,num_car); 

                    write_sfm2(2,12,16-num_car);  

                        write_74hc595(num_2_led(num_car));

                  }

        }        

推荐阅读

史海拾趣

BCD Semi(Diodes)公司的发展小趣事

在电子行业的发展过程中,市场波动和风险挑战是不可避免的。某一年,全球半导体市场出现了严重的产能过剩,导致产品价格大幅下跌。面对这一挑战,BCD Semi(Diodes)公司及时调整生产策略,优化产品结构,降低生产成本,成功度过了这一行业寒冬。

Connection One公司的发展小趣事

在电子行业的初期,Connection One公司凭借其创始人对半导体技术的深刻理解,成功研发出一款具有划时代意义的芯片。这款芯片不仅性能卓越,而且功耗极低,立即在市场上引起了轰动。公司因此迅速积累了第一笔资金,为后续的研发和扩展打下了坚实基础。

CHONGQING PINGYANG ELECTRONICS CO.,LTD.公司的发展小趣事

经过多年的发展,重庆平洋电子有限公司已经成长为一家中型规模的电子企业,产品广泛应用于汽车、家电、通信等多个领域。面对未来,公司将继续坚持技术创新和市场拓展并重的发展战略,不断提升产品质量和服务水平,努力成为电子行业的领军企业。同时,公司还将积极拓展国际市场,参与全球竞争,为实现更加辉煌的未来而努力奋斗。

这五个故事只是重庆平洋电子有限公司发展历程中的一部分缩影,但它们却充分展示了公司在电子行业中的崛起之路和未来的发展前景。

First Switchtech公司的发展小趣事

在追求商业成功的同时,First Switchtech公司(或类似公司)也始终关注可持续发展和社会责任。公司致力于环保产品的研发和生产,推出了多款符合国际环保标准的电子开关产品。同时,公司还积极参与公益事业,通过捐赠资金、技术支持等方式帮助贫困地区改善教育条件、提升医疗水平等。这些举措不仅提升了公司的社会形象,也促进了公司与社会的和谐共生。

需要注意的是,以上故事是基于电子行业普遍趋势和可能发展路径的构想,并非直接针对First Switchtech公司的具体事实。如需了解该公司的真实发展情况,建议直接访问其官方网站或查阅相关新闻报道。

ALSC [Alliance Semiconductor Corporation]公司的发展小趣事

随着产品质量的不断提升和市场口碑的积累,ALSC开始积极拓展国内外市场。公司不仅在国内建立了完善的销售网络,还与多家国际知名企业建立了战略合作关系。通过与国际伙伴的紧密合作,ALSC成功将产品推向全球市场,进一步提升了公司的知名度和影响力。

H&D Wireless公司的发展小趣事

随着全球化进程的加速,高创也开始了其全球化布局的步伐。除了在以色列和中国设立研发中心外,高创还积极拓展国际市场,与全球多个国家和地区的客户建立了长期合作关系。通过参加国际知名展会如汉诺威工业博览会等,高创不仅展示了其最新技术和产品,还加强了与国际同行的交流与合作,进一步提升了其国际知名度和影响力。

问答坊 | AI 解惑

Windows Embedded工控 油田开采效率高

  能源是一种极重要的资源。大家都知道,没有能源,汽车不能开,飞机不能飞,工业无法持续发展,经济提高也没有保证。   所以,开发油田的意义很大,现在咱国家原油产量在1.6亿吨左右。按现有资源的可获量以及目前开采利用情况和技术经济条件 ...…

查看全部问答>

EVC下能用skin++么?

用这个EVC做出的界面真难看,,,,我试着把skin++加进去。。 可是一加就出错:BtnTest.obj : error LNK2019: unresolved external symbol \"__declspec(dllimport) int __cdecl InitializeSkin(char *)\" (__imp_?InitializeSkin@@YAHPAD@Z) refe ...…

查看全部问答>

如何把 irp->AssociatedIrp.SystemBuffer 整个复制了?

如何把 irp->AssociatedIrp.SystemBuffer SystemBuffer整个复制了?…

查看全部问答>

CE flash播放

哪位高手有在CE上播放flash的类啊?我想在CE上播放flash.能不能借我参考一下,谢谢。…

查看全部问答>

想在wince下实现一个简单的列表界面,显示500条数据信息;同时运行一个通信协议

想在wince下实现一个简单的列表界面,显示500条数据信息;同时运行一个通信协议,  要求稳定性要高,可长期运行, 我的列表界面和 协议栈  是用两个 进程好呢,还是用 两个线程好呢 ? 看了网上一些信息, 多个线程间容易通信 ...…

查看全部问答>

硅光电池采样

我手上现有几颗硅光电池,想用它来替代光敏电阻,来对环境光做粗略采样。用万用表测了一下其输出电压最大在500mv,光源用的是节能灯。我用的单片机是mega16,采用电路如附件。不知这样的采集是否正确,希望给点意见和更好的采集方法。   …

查看全部问答>

软件朋友的商机

    用博客写了篇技术文章,想要贴图,发现它不支持,才知道博客编辑器使用起来非常不便。经多次使用发现博客编辑器至少要在以下几点加以改善。     1、要能贴图。在技术性文章中,图片说明是必不可少的,图文 ...…

查看全部问答>

请问哪位大虾知道STR736怎么用定时器来做外部脉冲计数?

                                 如题…

查看全部问答>

电源制作

哪位老兄用220V交流电做过449的产品?我要用12V,5V,3.5V, 8V. 该怎样制作?电源要稳定…

查看全部问答>