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

硬件设计

        本设计利用单片机控制的一种停车场管理系统。它能在任意时间内,根据有效的停车空间,计算能够停泊的车辆数量,并且使用自动而可靠的完成车辆的进出。还能够显示是否有停放的场地以及是否有车辆进、出停车场。整体电路主要由51单片机+最小系统+LCD1602液晶显示模块+红外检测传感器+74HC595+蜂鸣器模块+LED指示灯模块+按键模块;

原理图如图:

Protues仿真如图:

设计功能

  1. 使用红外检测传感器分别对车辆的进和出进行统计。
  2. 通过按键来人工调整总车位数以及剩余车位数;
  3. 自动显示停车场的车位状态,进出和停放车辆统计。
  4. 统计小区当天已停放车辆总数,及剩余车位。
  5. 检测小区车位车辆是否已满,报警指示灯闪烁。
  6. 显示停车场现有车辆数和已停放过车辆数并且拥有16个模拟的停车位,用来显示车辆停放的具体情况。

主程序源码

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();                    //独立按键程序
    }
}

资料链接:https://pan.baidu.com/s/1oPqyqJiFEWXKFX2VItSONg?pwd=t7or 
提取码:t7or

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值