0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

bbxyliyang 来源:bbxyliyang 作者:bbxyliyang 2023-08-01 16:23 次阅读


一、系统方案

系统设计将软件设计内容分为了五大模块,分别是进入、驶出传感器检测、液晶显示、LED模块、蜂鸣器报警电路、按键模块,系统将其进行分别设计,接通电源之后,单片机分别向LCD1602液晶显示器和按键发出初始化指令,初始化结束后,进行按键扫描,若检测到按键信号,处理按键对应操作,无论是否有按键信号,都会继续进行下一步,然后进入、驶出传感器检测车辆数量,如果车辆数大于16,蜂鸣器报警,否则停止报警,并在LCD1602液晶显示器上进入、驶出数量,之后返回到LCD1602液晶显示器、和按键初始化,继续这个流程,直到断开电源结束。

wKgaomTHZb6Aci37AAAYTYJo5oI812.png


二、硬件设计
原理图如下:

wKgZomTIwMeAFWA0AAGqbjmcRA8480.png


三、单片机软件设计
1、首先是系统初始化:
beep = 1;
init_1602();

write_string(1,0,"IN : OUT:");
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);

2、液晶显示程序
/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}

/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}

/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}


/********************************************************************
* 名称 : write_sfm2(uchar hang,uchar add,uchar date)
* 功能 : 显示2位十进制数,如果要让第一行,第五个字符开始显示"23" ,调用该函数如下
write_sfm1(1,5,23)
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_sfm2(uchar hang,uchar add,uint date)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
if(date >= 100)
{
write_data(0x30+date/100%10);
write_data(0x30+date/10%10);
}
else
{
write_data(' ');
write_data(0x30+date/10%10);
}
write_data(0x30+date%10);
}

/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '�') break;
write_data(*p);
p++;
}
}

/********************************************************************
* 名称 : clear_1602()
* 功能 : 清除1602显示
* 输入 : 无
* 输出 : 无
***********************************************************************/
void clear_1602()
{
write_string(1,0," ");
write_string(2,0," ");
}

/***********************lcd1602上显示特定的字符************************/
void write_zifu(uchar hang,uchar add,uchar date)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(date);
}


/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
// write_string(1,0," Alcohol: 00mg/L");
// write_string(2,0," BaoJing: 80mg/L");
// write_sfm2(2,9,s_dengji); //显示酒精等级
}
3、按键检测程序
void key() //独立按键程序
{

if(num_car==16)
{
beep=0;// { beep=0; delay_1ms(200); beep=1;}
}else{
beep = 1;
}

if(!K1) // 汽车进入
{
delay_1ms(20);
if(!K1)
{
while(!K1)
;

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));
}
}
}
4、核心算法程序
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{
ret |= 1<}
return ret;
}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行interwetten与威廉的赔率体系 仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
;
;i++)

wKgZomTIwNCAVdLZAAHUfL6axA0693.png


审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44557

    浏览量

    635144
  • 蜂鸣器
    +关注

    关注

    12

    文章

    891

    浏览量

    45943
  • 车辆管理系统

    关注

    0

    文章

    8

    浏览量

    6924
收藏 人收藏

    评论

    相关推荐

    停车场智能管理系统方案

    简单、方便。  ·完善的管理功能,自动形成各种报表。  ·滚动式LED中文电子显示屏提示,使用户和管理者一目了然。  ·独特的车牌号录入、显示系统,大大提高停车场防盗措施。  ·
    发表于 01-07 16:37

    求基于单片机停车场管理系统设计电路图

    最近在做基于单片机停车场管理系统设计,要求能对停车场的车位进行管理,对所停的车自动计费。液晶显
    发表于 03-26 10:01

    浅谈新型停车场管理系统的先进性

    管理系统建设的当务之急。大多的停车场管理系统重点是收费管理功能,关注的是
    发表于 10-11 10:53

    智能停车场管理系统常见问题汇总

    、软件是否为确认开闸 (软件设置或单片机设置)4、停车场系统出卡机故障 a、出卡板设置有车或无车出卡跳线 (设置相应跳线) b、检查出卡主板 c、检查出卡机按钮 (更换富士按钮) d、检查出卡机变压器电源
    发表于 05-04 17:21

    那位大神有没有基于单片机停车场智能管理系统,求指导!!!!

    那位大神有没有基于单片机停车场智能管理系统,求指导!!!!
    发表于 04-28 17:35

    基于p89c52单片机剩余空位监测管理系统停车场

    基于p89c52单片机剩余空位监测管理系统停车场)报告咋写???
    发表于 07-13 20:40

    远距离微波卡在智能停车场管理系统的应用前景怎么样

    ,铁路车辆自动识别、集装箱识别,公路车辆识别与自动收费系统,移动车辆识别、电子闭锁防盗(电子遥控门锁控制器)、医疗科研等。本文主要介绍远距离微波卡在智能
    发表于 05-29 07:57

    基于15单片机的智能停车场引导系统设计

    的环境监测与管理系统的设计。该设计主要实现以下功能:蓝牙检测进出场抬杆、环境光检测、车辆诱导、停车计时计费控制系统,可以达到非人工化,基本实
    发表于 07-19 06:16

    怎么实现基于51单片机停车场车位管理系统的设计?

    怎么实现基于51单片机停车场车位管理系统的设计?
    发表于 11-10 07:12

    如何去实现基于51单片机停车场车位管理系统设计

    ,于是停车正在成为世界性的问题。以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场
    发表于 11-19 06:26

    利用单片机控制的一种停车场管理系统

    一.硬件方案本设计利用单片机控制的一种停车场管理系统。它能在任意时间内,根据有效的停车空间,计算能够停泊的
    发表于 11-19 06:02

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

    一.硬件方案本设计利用单片机控制的一种停车场管理系统。它能在任意时间内,根据有效的停车空间,计算能够停泊的
    发表于 11-13 09:36 15次下载
    基于51<b class='flag-5'>单片机</b>的<b class='flag-5'>停车场</b>车位<b class='flag-5'>管理</b><b class='flag-5'>系统</b>

    51单片机 停车场管理系统

    记录一下单片机大作业,项目介绍:我们小组在经过了半个学期的计算机系统设计的学习后,并结合了平时停车场管理模式,使用C51单片机和各个模块完
    发表于 11-23 16:22 30次下载
    51<b class='flag-5'>单片机</b> <b class='flag-5'>停车场</b><b class='flag-5'>管理</b><b class='flag-5'>系统</b>

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

    的。整个智能停车场系统,分为四大模块:IC读卡器控制模块、1602液晶显示模块、步进电机控制模块、红外线控制模块。1602液晶显示模块以微控制器52单片机为核心,采集各停车
    发表于 04-12 14:37 25次下载

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

    设置现有车辆数及剩余车位数;(4)车位满后将报警提示。仿真演示视频:基于51单片机停车场管理系统-仿真视频设计介绍51
    的头像 发表于 10-22 14:12 253次阅读
    基于51<b class='flag-5'>单片机</b>的<b class='flag-5'>停车场</b><b class='flag-5'>管理</b><b class='flag-5'>系统</b>