基于51单片机的停车场车位管理系统设计


前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

资料获取

文章底部名片,详细资料联系我。

设计介绍

伴随着科技的飞速发展,交通工具的越来越普及。汽车作为人类社会中最主要的交通工具之一,起着重大作用。随着人们生活水平的提高,汽车的数量也与日俱增,于是停车正在成为世界性的问题。以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资消耗,大大提高了效率。
本论文介绍了利用单片机控制的一种停车场管理系统。它能在任意时间内,根据有效的停车空间,计算能够停泊的车辆数量,并且使用自动而可靠的完成车辆的进出。还能够显示是否有停放的场地以及是否有车辆进、出停车场。
本设计具有结构简单,计数准确,经济效益高,造价低廉,可靠性高,维修方便,研制周期短,操作简单等优点。经实验证明,这套系统软硬件设计合理,各项性能良好,经过系统扩展与升级,可以有效的满足各种流量统计的需要。

功能介绍

本系统包括:电源模块、传感器模块、显示模块、手动键盘输入模块、车辆车位模拟模块等。它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。
系统的特点:
(1)由于本系统采用电子元件无需人工管理。
(2)自动显示停车场的车位状态,进出和停放车辆统计。
(3)统计小区当天已停放车辆总数,并且显示停放位置。
(4)本系统适用于任意停车场。
(5)检测小区车位车辆是否已满,报警指示灯闪烁。
系统的模拟框图:
在这里插入图片描述

设计程序

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
#include <intrins.h>

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<q;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<num;i++)
	{
		ret |= 1<<i;
	}
	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));
		  }
	}	
	if(!K2)	       // 	 // 	  汽车驶出
	  {
		delay_1ms(20);
		if(!K2)
		  {
            while(!K2);
           if(num_car>=1) {	num_car--;  if(num_chu<=255) { num_chu++;}  }	
		    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));
		  }
	}		

 /***********************手动修改小区内停车位*************************************/
	if(!K3)	       // 		   人工调节
	  {
		delay_1ms(20);
		if(!K3)
		  {
            while(!K3);
 		   if(num_car<16)	 { num_car++; }
			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);  
		  }
	}	
	if(!K4)	       // 	 // 		   人工调节
	  {
		delay_1ms(20);
		if(!K4)
		  {
            while(!K4);
           if(num_car>=1) {	num_car--;  }	
		    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);  
		  }
	}				
}			

/***************主函数*****************/
void main()
{
    init_1602();
    write_string(1,0,"Jin:    Chu:");
    write_string(2,0,"Car:      P:");
	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(0);
	while(1)
	{
		key();					//独立按键程序
	}
}


具体实现截图

请添加图片描述
请添加图片描述
在这里插入图片描述

设计获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏👇🏻

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值