找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1211|回复: 3
打印 上一主题 下一主题
收起左侧

单片机车位管理系统程序(永久车位+停车时间计算费用+查看车位状态+记录车牌号)

[复制链接]
跳转到指定楼层
楼主
一,51单片机车位管理系统制作要求1  小区内住户可买车位,并对其发放车位卡,即对此车位拥有永久使用权;
2  外来车辆进入停车场根据时间计算费用,离开时结算
(三十分钟内免费(实际程序30秒钟)每增加3小时加5块,不足3小时的按3小时计算)
3  管理员查看后台停车场管理系统,实现对停车场信息,已永久出售车位信息,
其他车位信息,临时停放车位上的车辆信息等的管理;

(作者蜂鸣器坏了,故没有车满提醒功能)
二,车位管理系统相关说明
系统框架:

按键部分:
(1)数字按键部分
0123
4567
89ab
cdef
(2)功能按键部分
进入车辆键
离开键
买键
买永久车位键
显示部分:
1602
三,车位管理系统制作要求:
(1)初始化:
1602显示剩余车位,和占用车位,第二行个个车位的状

(2)系统设置及要求
按下进入车辆键
进入车辆剩余车位减一,占用车位加一
按下数字键选择停靠车位
下面对应车位显示占用(显示1)
如图:


按下离开键
进入车辆剩余车位加一,占用车位减一
按下数字键选择停靠车位
下面对应车位显示占用(显示0)

生成停车费,搞定之后由收费站按下已买键车子方可离去
工作人员记录车牌号

当车位小区内有人购永久车位
按下购永久车位键
按下数字按键选择要购的车位
下面对应车位显示占用(显示#)
生成费用


四:电路原理图


单片机代码部分
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit rs=P3^5;
  6. sbit en=P3^4;
  7. sbit kr0=P3^0;//竖行
  8. sbit kr1=P3^1;//同上
  9. sbit kr2=P3^2;
  10. sbit kr3=P3^3;
  11. sbit kc1=P3^6;//横行
  12. uchar zhanyong=0,shengyu=16,shoufei,chepaihao,zhuangtai,chefei,num_2;
  13. uint u_1_1,u_22,u_33,u_44,u_55,u_66,u_77,u_88,u_99,u_100,u_111,u_122,u_133,u_144,u_155,u_166,shijian;
  14. bit a,aa,xuan_jin,xuan_chu,yongjiuchewei;
  15. bit u_1,u_2,u_3,u_4,u_5,u_6,u_7,u_8,u_9,u_10,u_11,u_12,u_13,u_14,u_15,u_16,chehao;
  16. void delay(uint i)
  17. {
  18.   while(i--);
  19. }
  20. //**************************1602模块***********************************************************************
  21. void writecom(uchar com)
  22. {
  23.   rs=0;
  24.         P0=com;
  25.         delay(50);
  26.         en=1;
  27.         delay(50);
  28.         en=0;
  29.         delay(50);
  30. }
  31. void writedate(uchar date)
  32. {
  33.   rs=1;
  34.         P0=date;
  35.         delay(50);
  36.         en=1;
  37.         delay(50);
  38.         en=0;
  39.         delay(50);
  40. }
  41. void shownum(uchar row,uchar col,uchar code *s)//*s输入你想在1602中显示的ascll码
  42. {
  43.   uchar i;
  44.         row%=2; col%=40;
  45.         writecom(0x80+row*0x40+col);
  46.         for(i=0;s[i]!=0;i++)writedate(s[i]);
  47. }
  48. void kb_xs(uchar row,uchar col,uchar num)//可变两位数字显示
  49. {
  50.   row%=2; col%=40;
  51.         writecom(0x80+row*0x40+col);
  52.         writedate(num/10+'0');
  53.         writedate(num%10+'0');
  54. }
  55. void kb_xs_2(uchar row,uchar col,uchar num)//可变一位数字显示
  56. {
  57.   row%=2; col%=40;
  58.         writecom(0x80+row*0x40+col);
  59.   writedate(num%10+'0');
  60. }
  61. void lcd_init()
  62. {
  63.         writecom(0x38);
  64.         writecom(0x0c);
  65.         writecom(0x06);
  66.         writecom(1);
  67.         shownum(0,0,"zhan00 sheng00");
  68.         shownum(1,0,"0000000000000000");//16个车位状态
  69. //        shownum(1,0,"$00 #00000000");
  70.         kb_xs(0,4,zhanyong);
  71.         kb_xs(0,13,shengyu);
  72. }
  73. //*************************按键模块***************************************
  74. /*
  75. 总车辆和剩余车辆的加减

  76. 成功按键,查看车辆情况按键7        
  77. 选择购车位键和购键
  78. */
  79. //按键扫描
  80. uchar key_get()
  81. {//矩阵扫描法
  82.   uchar k=' ';
  83.         kr0=kr1=kr2=kr3=kc1=1;
  84.         kr0=0;k=kc1==0?1:k;kr0=1;
  85.         kr1=0;k=kc1==0?3:k;kr1=1;
  86.         kr2=0;k=kc1==0?5:k;kr2=1;
  87.         kr3=0;k=kc1==0?7:k;kr3=1;
  88.         return k;
  89. }
  90. //按键功能
  91. void keyscan_2()
  92. {
  93.         uchar kkkk;
  94.   if(key_get()!=' '&&aa==1)
  95.         {
  96.           delay(200);
  97.                 aa=0;//确保按下后程序只进入一次
  98.                 if(key_get()!=' ')
  99.                 {
  100.                   kkkk=key_get();
  101.                         if(kkkk==1&&shengyu!=0)//进车
  102.                         {
  103.                           xuan_jin=1;//可以选择进那个车位
  104.                         }
  105.                         else if(kkkk==3&&zhanyong!=16)//出车
  106.                         {
  107.                           xuan_chu=1;
  108.                         }
  109.                         else if(kkkk==5)//付
  110.                         {
  111.                                 chehao=0;
  112.                           num_2=0;
  113.                                 chefei=0;
  114.                                 yongjiuchewei=0;
  115.                                 shownum(0,0,"zhan00 sheng00  ");
  116.                                 kb_xs(0,4,zhanyong);
  117.                                 kb_xs(0,13,shengyu);
  118.                         }
  119.                         else if(kkkk==7)//买永久车位
  120.                         {
  121.                           yongjiuchewei=1;
  122. //                          shownum(0,0,"$3w             ");
  123.                         }
  124.                 }
  125.         }
  126.         else if(key_get()==' ')
  127.         {
  128.           aa=1;
  129.         }
  130. }
  131. //0到15号车位第一下是进入,第2下是离开
  132. uchar key()
  133. {
  134.   uchar m,n,kk=' ';
  135.         for(n=0;n<4;n++)
  136.         {
  137.           P1=_crol_(0xfe,n);
  138.                 m=P1&0xf0;
  139.                 switch(m)
  140.                 {
  141.                   case 0xe0:kk=4*n;break;
  142.                         case 0xd0:kk=4*n+1;break;
  143.                         case 0xb0:kk=4*n+2;break;
  144.                         case 0x70:kk=4*n+3;break;
  145.                 }
  146.         }
  147.         return kk;
  148. }
复制代码



Keil5代码下载: 停车场车位管理系统.rar (594.66 KB, 下载次数: 24)

评分

参与人数 1黑币 +80 收起 理由
admin + 80

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1042556 发表于 2022-12-17 08:23 | 只看该作者
132行的注释请忽略(进车和离开是由功能键完成)
回复

使用道具 举报

板凳
ID:672792 发表于 2022-12-17 09:50 | 只看该作者
感谢开源,51黑有你更精彩
回复

使用道具 举报

地板
ID:284488 发表于 2022-12-17 12:26 | 只看该作者
感谢楼主无私的分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表