一,51单片机车位管理系统制作要求1 小区内住户可买车位,并对其发放车位卡,即对此车位拥有永久使用权;
2 外来车辆进入停车场根据时间计算费用,离开时结算
(三十分钟内免费(实际程序30秒钟)每增加3小时加5块,不足3小时的按3小时计算)
3 管理员查看后台停车场管理系统,实现对停车场信息,已永久出售车位信息,
其他车位信息,临时停放车位上的车辆信息等的管理;
(作者蜂鸣器坏了,故没有车满提醒功能)
二,车位管理系统相关说明
系统框架:
按键部分:
(1)数字按键部分
0123
4567
89ab
cdef
(2)功能按键部分
进入车辆键
离开键
买键
买永久车位键
显示部分:
1602
三,车位管理系统制作要求:
(1)初始化:
1602显示剩余车位,和占用车位,第二行个个车位的状
(2)系统设置及要求
按下进入车辆键
进入车辆剩余车位减一,占用车位加一
按下数字键选择停靠车位
下面对应车位显示占用(显示1)
如图:
按下离开键
进入车辆剩余车位加一,占用车位减一
按下数字键选择停靠车位
下面对应车位显示占用(显示0)
生成停车费,搞定之后由收费站按下已买键车子方可离去
工作人员记录车牌号
当车位小区内有人购永久车位
按下购永久车位键
按下数字按键选择要购的车位
下面对应车位显示占用(显示#)
生成费用
四:电路原理图
单片机代码部分
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit rs=P3^5;
- sbit en=P3^4;
- sbit kr0=P3^0;//竖行
- sbit kr1=P3^1;//同上
- sbit kr2=P3^2;
- sbit kr3=P3^3;
- sbit kc1=P3^6;//横行
- uchar zhanyong=0,shengyu=16,shoufei,chepaihao,zhuangtai,chefei,num_2;
- 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;
- bit a,aa,xuan_jin,xuan_chu,yongjiuchewei;
- 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;
- void delay(uint i)
- {
- while(i--);
- }
- //**************************1602模块***********************************************************************
- void writecom(uchar com)
- {
- rs=0;
- P0=com;
- delay(50);
- en=1;
- delay(50);
- en=0;
- delay(50);
- }
- void writedate(uchar date)
- {
- rs=1;
- P0=date;
- delay(50);
- en=1;
- delay(50);
- en=0;
- delay(50);
- }
- void shownum(uchar row,uchar col,uchar code *s)//*s输入你想在1602中显示的ascll码
- {
- uchar i;
- row%=2; col%=40;
- writecom(0x80+row*0x40+col);
- for(i=0;s[i]!=0;i++)writedate(s[i]);
- }
- void kb_xs(uchar row,uchar col,uchar num)//可变两位数字显示
- {
- row%=2; col%=40;
- writecom(0x80+row*0x40+col);
- writedate(num/10+'0');
- writedate(num%10+'0');
- }
- void kb_xs_2(uchar row,uchar col,uchar num)//可变一位数字显示
- {
- row%=2; col%=40;
- writecom(0x80+row*0x40+col);
- writedate(num%10+'0');
- }
- void lcd_init()
- {
- writecom(0x38);
- writecom(0x0c);
- writecom(0x06);
- writecom(1);
- shownum(0,0,"zhan00 sheng00");
- shownum(1,0,"0000000000000000");//16个车位状态
- // shownum(1,0,"$00 #00000000");
- kb_xs(0,4,zhanyong);
- kb_xs(0,13,shengyu);
- }
- //*************************按键模块***************************************
- /*
- 总车辆和剩余车辆的加减
- 成功按键,查看车辆情况按键7
- 选择购车位键和购键
- */
- //按键扫描
- uchar key_get()
- {//矩阵扫描法
- uchar k=' ';
- kr0=kr1=kr2=kr3=kc1=1;
- kr0=0;k=kc1==0?1:k;kr0=1;
- kr1=0;k=kc1==0?3:k;kr1=1;
- kr2=0;k=kc1==0?5:k;kr2=1;
- kr3=0;k=kc1==0?7:k;kr3=1;
- return k;
- }
- //按键功能
- void keyscan_2()
- {
- uchar kkkk;
- if(key_get()!=' '&&aa==1)
- {
- delay(200);
- aa=0;//确保按下后程序只进入一次
- if(key_get()!=' ')
- {
- kkkk=key_get();
- if(kkkk==1&&shengyu!=0)//进车
- {
- xuan_jin=1;//可以选择进那个车位
- }
- else if(kkkk==3&&zhanyong!=16)//出车
- {
- xuan_chu=1;
- }
- else if(kkkk==5)//付
- {
- chehao=0;
- num_2=0;
- chefei=0;
- yongjiuchewei=0;
- shownum(0,0,"zhan00 sheng00 ");
- kb_xs(0,4,zhanyong);
- kb_xs(0,13,shengyu);
- }
- else if(kkkk==7)//买永久车位
- {
- yongjiuchewei=1;
- // shownum(0,0,"$3w ");
- }
- }
- }
- else if(key_get()==' ')
- {
- aa=1;
- }
- }
- //0到15号车位第一下是进入,第2下是离开
- uchar key()
- {
- uchar m,n,kk=' ';
- for(n=0;n<4;n++)
- {
- P1=_crol_(0xfe,n);
- m=P1&0xf0;
- switch(m)
- {
- case 0xe0:kk=4*n;break;
- case 0xd0:kk=4*n+1;break;
- case 0xb0:kk=4*n+2;break;
- case 0x70:kk=4*n+3;break;
- }
- }
- return kk;
- }
复制代码
Keil5代码下载:
停车场车位管理系统.rar
(594.66 KB, 下载次数: 27)
|