c51停车场车位管理系统

51单片机停车场车位管理

前言

本系统包括:电源模块、传感器模块、显示模块、手动键盘输入模块、车辆车位模拟模块等。它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有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(2000);  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();					//独立按键程序
	}
}

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于C51单片机的智能停车场车位管理系统是一款可以实现自动检测和管理停车场车位的系统。该系统利用传感器监测每个停车位的状态,并通过C51单片机进行数据处理和控制。 设计中,每个停车位都配备有一个传感器,用于检测是否有车辆停放。当有车辆停放时,传感器会发送信号给C51单片机进行识别和记录。C51单片机会根据传感器的信号判断车位的状态,如果空闲则更新状态为已占用,并将相关信息存储到内存中。同时,LED显示屏会显示车位状态,提供给司机参考。 此外,该系统还具备自动收费功能,当车主离开停车场时,C51单片机会根据停车时间和收费规则计算停车费用,并显示在LED显示屏上供车主查看。车主可以选择通过现金或电子支付方式进行结算。 为了方便管理和查询,该系统还可以连接到一个计算机服务器,将停车位的状态和停车信息进行实时上传。停车场管理员可以通过计算机上的管理软件实时监控停车位的占用情况,也可以查询历史停车记录和收费情况。 基于C51单片机的智能停车场车位管理系统设计可以提高停车场的利用率,减少车辆拥堵现象。通过自动收费和信息管理,可以提高停车场管理员的工作效率,为车主提供更加便捷的停车服务。此外,该系统还可以通过数据分析,统计每个车位的使用率和停车场的收入情况,为停车场的运营提供有力支持。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值