基于单片机的车辆超载报警系统设计及人数检测设计
基于单片机的车辆超载报警系统设计及人数检测设计
点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081431
1. 系统功能概述
随着公共交通和校车等载客车辆数量的不断增加,超载问题已成为交通安全管理中的一个突出隐患。车辆超载不仅增加机械磨损、消耗燃料,还严重威胁乘客生命安全。因此,设计一种能够实时检测车内人数并自动报警的智能系统,对于提高车辆安全性具有重要意义。
本系统基于单片机控制技术,实现了对车内乘客人数的实时监测与超载报警。当车上人数超过预设阈值时,系统会自动发出声光报警,并通过继电器切断车辆点火装置,防止继续行驶,从而有效避免因超载引发的安全事故。系统具有结构简单、成本低、实时性强、可靠性高等优点,适用于校车、公交车及中巴车等多种载客场景。
本设计的主要功能如下:
- 人数检测功能:通过两组红外对管实现乘客上下车人数统计。系统根据红外光束的遮断顺序判断乘客是上车还是下车,从而动态计算车内人数。
- 实时显示功能:采用四位数码管实时显示当前车内人数,数字清晰可见。
- 超载报警功能:当车内人数超过设定的报警阈值(默认20人)时,蜂鸣器和LED红灯同时启动报警提示。
- 安全保护功能:超载时继电器动作,自动切断点火装置电路,防止车辆启动运行。
- 参数设置功能:系统通过三个按键实现报警阈值的调节,范围为0~99人,可根据车辆核载人数灵活设置。
- 掉电保持功能:系统将当前设定阈值和人数数据存储于EEPROM中,断电后不丢失。
2. 系统电路设计
整个系统由STC89C52单片机为核心控制单元,结合红外传感器、数码管显示模块、蜂鸣器报警电路、按键输入电路、继电器控制电路等组成一个完整的智能检测与报警控制系统。以下从各模块详细介绍电路设计原理。
2.1 主控单片机电路
主控芯片选用STC89C52单片机,该芯片是兼容MCS-51内核的增强型单片机,具有较强的运算与控制能力。它内置8K Flash程序存储器、256B数据RAM、丰富的I/O接口和多个中断源,非常适合本系统的控制逻辑与数据处理需求。
系统的晶振电路采用11.0592MHz石英晶体,为单片机提供稳定时钟信号。上电复位电路由RC延时和复位按钮组成,保证单片机每次上电后从初始状态开始运行。电源部分使用5V稳压模块供电,确保单片机及外围模块正常工作。
2.2 红外检测模块
红外检测模块是系统的核心部分,负责检测乘客的上下车行为。系统使用两组红外对管(红外发射管与接收管),安装在车门两侧。
当乘客经过时,会依次遮挡红外光束,系统根据遮断的先后顺序来判断乘客的移动方向:
- 若A组红外先遮断后B组遮断,表示乘客上车,人数加1;
- 若B组红外先遮断后A组遮断,表示乘客下车,人数减1。
红外接收端输出的电信号经比较电路整形为数字信号后输入单片机IO口。由于环境光、灰尘等因素可能干扰红外检测信号,电路中还加入了滤波与抗干扰电容,确保信号稳定可靠。
2.3 数码管显示模块
显示模块采用四位共阴极数码管,用于实时显示车内乘客人数。系统通过动态扫描方式驱动数码管,以减少I/O口占用。
单片机的P0口作为段选端,P2口部分引脚作为位选端。通过快速轮询扫描,不同位数码管依次点亮,从视觉上实现稳定显示。显示刷新率约为100Hz,人眼不会察觉闪烁现象。
2.4 按键输入模块
系统设置三个独立按键,分别用于:
- K1:增加报警阈值;
- K2:减少报警阈值;
- K3:确认并保存设置。
按键采用下拉电阻接法,按下时输入低电平信号。程序中加入按键去抖动算法,避免误触发。每次参数调整后,系统会在数码管上显示新的阈值,并存储到EEPROM中以实现掉电保存。
2.5 报警与指示模块
报警模块包括蜂鸣器和LED指示灯。当检测到车内人数超过设定值时,系统输出高电平信号,蜂鸣器发出连续鸣响,同时红色LED灯闪烁,形成声光双重报警提示。
蜂鸣器通过三极管驱动,防止单片机I/O直接带负载而损坏。
2.6 继电器控制模块
继电器作为安全保护装置,用于切断车辆点火电路。当车内人数超过设定阈值时,单片机输出控制信号驱动继电器吸合,切断点火电源,从而防止车辆超载运行。
继电器驱动采用NPN型三极管(如9013或8050),并在继电器线圈两端并联续流二极管,用以吸收感应电动势,保护驱动电路安全。
2.7 电源模块
系统供电电压为12V直流,取自车辆电源系统。电路中通过7805稳压芯片将12V降压为5V,为单片机、红外模块、显示模块等提供稳定电源。电源输入端还并联有滤波电容和保护二极管,防止瞬时电压波动影响系统工作。
3. 程序设计
软件部分是本系统实现智能检测与报警逻辑的核心。程序采用模块化结构设计,主要包括:系统初始化模块、红外检测模块、人数统计模块、显示模块、按键控制模块、报警模块及EEPROM存储模块。
3.1 主程序设计
主程序负责系统的初始化、主循环运行及逻辑调度。其主要任务包括:
- 系统初始化(包括端口、显示、EEPROM参数读取等);
- 红外信号检测与人数统计;
- 阈值比较与报警处理;
- 按键输入响应与参数调整;
- 显示更新与数据存储。
主程序框架如下:
#include <reg52.h>
#include "lcd.h"
#include "key.h"
#include "eeprom.h"
#include "sensor.h"
#include "alarm.h"unsigned char people = 0;
unsigned char limit = 20;void main()
{System_Init();limit = EEPROM_Read(0x00); //读取保存的阈值while(1){Key_Scan();Sensor_Check();Display_Num(people);if(people > limit){Alarm_On();Relay_Off();}else{Alarm_Off();Relay_On();}}
}
3.2 红外检测模块程序
红外检测模块用于检测上下车动作。两组红外信号输入单片机中断引脚,通过中断触发方式实时响应。
void Sensor_Check()
{if(IR_A == 0 && IR_B == 1) //A先触发{Delay_ms(100);if(IR_B == 0) people++; //上车}else if(IR_B == 0 && IR_A == 1) //B先触发{Delay_ms(100);if(IR_A == 0 && people > 0) people--; //下车}
}
程序根据红外遮断顺序判断乘客的进出方向,从而更新人数变量people
。为了防止光干扰和重复计数,加入延时与状态判断逻辑。
3.3 数码管显示模块程序
显示模块采用动态扫描方式显示车内人数及阈值信息。
void Display_Num(unsigned char num)
{unsigned char bai,shi,ge;bai = num / 100;shi = (num / 10) % 10;ge = num % 10;P2 = 0xFE; P0 = seg[ge]; Delay_ms(5);P2 = 0xFD; P0 = seg[shi]; Delay_ms(5);P2 = 0xFB; P0 = seg[bai]; Delay_ms(5);
}
动态刷新三位数码管实现实时人数显示,显示刷新频率高于60Hz,视觉上稳定不闪烁。
3.4 按键设置模块程序
通过三个按键实现报警阈值的设定与保存功能。程序对按键输入进行去抖处理,并在LCD上实时显示当前设置。
void Key_Scan()
{if(K1 == 0) {Delay_ms(10); if(K1==0 && limit<99) limit++;}if(K2 == 0) {Delay_ms(10); if(K2==0 && limit>0) limit--;}if(K3 == 0) {EEPROM_Write(0x00, limit);}
}
按键调节阈值后立即生效,且通过EEPROM掉电保存,保证系统长期稳定运行。
3.5 报警与继电器控制模块程序
报警模块用于控制蜂鸣器、LED以及继电器状态,实现超载保护功能。
void Alarm_On()
{BEEP = 1;LED = 1;
}void Alarm_Off()
{BEEP = 0;LED = 0;
}void Relay_Off()
{RELAY = 0; //断开点火电路
}void Relay_On()
{RELAY = 1; //恢复点火电路
}
当人数超过设定阈值时,系统立即进入报警状态,并保持报警直到人数下降至安全范围。
3.6 EEPROM存储模块
EEPROM用于存储报警阈值,确保断电后数据不丢失。
void EEPROM_Write(unsigned char addr, unsigned char dat)
{IAP_CONTR = 0x82;IAP_ADDRL = addr;IAP_DATA = dat;IAP_TRIG = 0x5A; IAP_TRIG = 0xA5;
}unsigned char EEPROM_Read(unsigned char addr)
{IAP_CONTR = 0x81;IAP_ADDRL = addr;IAP_TRIG = 0x5A; IAP_TRIG = 0xA5;return IAP_DATA;
}
系统上电时自动读取存储的阈值,确保上次设置继续生效。
4. 系统总结
本设计通过红外检测、数码管显示、单片机控制与继电器保护相结合,实现了车辆乘客人数检测与超载自动报警控制。系统结构清晰、逻辑可靠,具有以下优点:
- 检测精度高:双红外对管结构有效避免单点检测误差,可准确识别上下车方向。
- 响应速度快:采用中断检测机制,系统能在乘客经过瞬间及时计数。
- 报警可靠性强:声光双重报警结合继电器电路切断功能,保障行车安全。
- 参数可调节性强:用户可根据车辆实际核载人数灵活设定报警阈值,适应多种车型。
- 可扩展性强:系统可扩展至无线通信模块,实现远程监控与超载记录上传。
总体而言,该系统不仅在技术上实现了车辆超载的自动化检测与安全保护,还具备良好的实用性与推广价值,为智能交通安全监管提供了一种高效、低成本的解决方案。