基于单片机的车辆超载报警系统设计及人数检测设计
点击链接下载资料:https://download.csdn.net/download/qq_39020934/92091262
1. 系统功能概述
随着交通运输行业的发展,车辆超载问题已成为影响道路安全的重要隐患。特别是在客运车辆中,超载不仅导致车辆制动性能下降,还容易造成严重的交通事故。为了实现对车辆载客数量的实时监控与自动化管理,本文设计了一种基于单片机的车辆超载报警系统,能够实时检测车内人数,并在超出安全阈值时自动报警与切断点火系统,从而实现对车辆安全运行的智能控制。
本系统以STC89C52单片机为核心控制单元,采用两组红外对管检测乘客的上下车状态,通过逻辑判断实现人数的增减统计,并利用数码管动态显示车内当前人数。当检测到人数超过设定的阈值时,系统会自动触发声光报警,同时通过继电器切断点火装置,防止车辆在超载状态下继续运行。此外,系统设有按键功能,可根据实际需求调整报警阈值,支持0至99人的设定范围。
系统主要功能如下:
- 人数检测功能:利用两组红外对管实现人员进出检测,自动计算车内实时人数。
- 数据显示功能:通过多位数码管动态显示当前人数。
- 报警功能:当检测到人数超过设定阈值时,自动启动蜂鸣器与LED灯发出声光警报。
- 安全保护功能:当超载报警时,自动驱动继电器切断点火电路,防止车辆运行。
- 阈值设定功能:通过三个独立按键实现报警阈值的加减与保存,便于不同类型车辆使用。
系统结构合理、响应迅速、功能可靠,具有较高的实用性与可推广性。
2. 系统电路设计
整个系统主要由五个模块组成:单片机主控模块、红外检测模块、数码管显示模块、声光报警模块、按键设定模块和继电器控制模块。各模块相互协调,共同完成超载监测与报警控制功能。
2.1 单片机主控模块
系统选用STC89C52单片机作为核心控制芯片。该芯片兼容MCS-51系列指令系统,内置8KB Flash存储器、256字节RAM、3个定时器/计数器以及丰富的I/O接口,能够很好地满足本系统在数据采集、逻辑判断与输出控制方面的需求。
在系统中,STC89C52主要完成以下任务:
- 采集红外对管的输出信号;
- 对乘客上下车动作进行逻辑判断与人数计数;
- 驱动数码管进行动态显示;
- 判断人数是否超过阈值并执行报警逻辑;
- 控制继电器状态;
- 响应按键输入,修改并保存报警阈值。
系统采用12MHz晶振电路作为主时钟源,确保数据采集与显示的实时性与稳定性。复位电路采用电容+电阻延时方式,以保证系统上电初始化正常。
2.2 红外检测模块
红外检测模块是整个系统的核心感知部分,用于检测人员上下车动作。系统采用**两组红外对管(红外发射与接收对管)**布置在车门两侧,形成两道检测光栅。
工作原理如下:
- 当乘客经过第一道红外线时,第一对管信号被遮挡;
- 若紧接着第二对管信号也被遮挡,则判断为“上车动作”,人数加1;
- 反之,当乘客离开车内方向依次遮挡第二、第一对管时,判断为“下车动作”,人数减1。
为避免多次误判,系统在程序中采用状态机逻辑与时间防抖算法,确保每个乘客的动作仅被识别一次。
红外接收信号经运算放大与比较电路转换为数字信号后,输入单片机的P3口进行检测。为增强抗干扰性能,输入端加入滤波电容与限流电阻。
2.3 数码管显示模块
显示模块采用四位共阴极数码管,用于实时显示车内当前人数。由于单片机I/O资源有限,系统采用动态扫描方式驱动显示,通过定时中断快速切换显示位实现稳定显示。
显示内容包括:
- 当前车内人数(0~99人);
- 当人数超限时,显示闪烁以提示报警状态。
显示控制部分由P0口输出段码数据,P2口控制位选信号。程序中采用查表法存储数字对应的段码值,从而实现灵活高效的显示控制。
2.4 声光报警模块
报警模块由蜂鸣器与高亮LED指示灯组成。当检测到人数超过设定阈值时,系统自动启动蜂鸣器鸣叫并点亮LED灯,以实现声光双重提示。
蜂鸣器由三极管驱动,单片机输出高电平时,三极管导通,蜂鸣器响起。为防止误触发,程序中设定报警延时与自动复位逻辑,即当人数恢复正常后报警停止。
此外,LED灯闪烁频率与报警状态同步,形成明显的视觉提示。
2.5 按键设定模块
系统提供三个独立按键,分别用于报警阈值的加、减与确认保存。按键通过上拉电阻连接至单片机I/O口,采用低电平触发模式。
具体功能如下:
- K1(加):每次按下阈值+1;
- K2(减):每次按下阈值-1;
- K3(确认):保存设定值并退出设置模式。
程序中通过软件防抖处理,确保按键动作准确识别。设定完成后,阈值数据可存入单片机EEPROM(或RAM中保持),系统重启后仍保持有效。
2.6 继电器控制模块
继电器模块用于控制车辆点火电路。当系统检测到超载时,单片机输出控制信号驱动继电器断开,从而实现安全保护。
驱动部分采用NPN三极管放大驱动电路,并在继电器两端并联二极管以吸收反向电动势,防止对单片机造成损害。
3. 系统程序设计
系统软件以C语言编写,采用模块化设计结构,主要包括主程序、红外检测程序、计数逻辑程序、数码管显示程序、按键处理程序以及报警控制程序等。整个程序在Keil µVision环境下开发,并通过Proteus仿真进行测试。
3.1 主程序设计
主程序负责系统初始化、任务调度与逻辑判断。初始化部分包括端口设置、定时器初始化、显示初始化等。主循环中不断读取红外检测信号,更新人数值并判断是否超过阈值。
#include <reg52.h>
#include "delay.h"
#include "display.h"
#include "key.h"
#include "infrared.h"
unsigned char people = 0;
unsigned char limit = 20;
bit alarm_state = 0;
void main()
{
Init_System();
while(1)
{
People_Count(); // 检测红外信号并更新人数
Key_Process(); // 处理按键输入
Display_Update(); // 数码管刷新
if(people > limit)
{
Alarm_On();
Relay_Off();
}
else
{
Alarm_Off();
Relay_On();
}
}
}
3.2 红外检测程序设计
红外检测模块是系统的核心部分,负责采集并判断上下车信号。为避免重复计数,采用状态转换与方向判断法。
void People_Count(void)
{
static bit first_sensor = 0, second_sensor = 0;
if(IR1 == 0) first_sensor = 1;
if(IR2 == 0 && first_sensor)
{
people++; // 上车
first_sensor = 0;
}
if(IR2 == 0) second_sensor = 1;
if(IR1 == 0 && second_sensor)
{
if(people > 0) people--; // 下车
second_sensor = 0;
}
}
该算法通过检测两组红外管的触发先后顺序,判断人员进出方向,实现人数加减计数。加入状态标志位可有效防止重复触发。
3.3 数码管显示程序设计
显示模块采用动态扫描方式实现对人数与报警信息的显示。程序利用定时器中断以一定频率切换显示位。
unsigned char code SEG_CODE[10] =
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Display_Update(void)
{
unsigned char ge, shi;
ge = people % 10;
shi = people / 10;
Display_Digit(0, SEG_CODE[shi]);
Display_Digit(1, SEG_CODE[ge]);
}
当人数超过阈值时,显示内容闪烁,提示用户系统处于报警状态。
3.4 按键程序设计
按键程序主要实现报警阈值的设置与存储,采用简单的扫描与防抖逻辑。
void Key_Process(void)
{
if(Key1_Pressed()) limit++;
if(Key2_Pressed() && limit>0) limit--;
if(Key3_Pressed()) Save_Limit(limit);
}
当用户修改阈值后,系统实时更新显示,并在确认键按下后存入存储器。
3.5 报警与继电器控制程序
当人数超过阈值时,系统自动触发报警与继电器动作。控制函数如下:
void Alarm_On(void)
{
P1_0 = 1; // 蜂鸣器
P1_1 = 1; // LED
}
void Alarm_Off(void)
{
P1_0 = 0;
P1_1 = 0;
}
void Relay_On(void)
{
P2_0 = 1;
}
void Relay_Off(void)
{
P2_0 = 0;
}
该部分保证当系统超载时立即报警并切断车辆点火电路,确保安全。
4. 系统总结
本设计实现了一套基于STC89C52单片机的车辆超载检测与报警系统,通过红外检测技术实现人员上下车的自动统计,并配合数码管显示与声光报警,实现车辆载客状态的实时监控与超载防护。系统设计思路清晰、逻辑判断精确,能够有效防止超载带来的安全风险。
系统的优点包括:
- 实时性强:红外检测响应迅速,可实时记录上下车动作;
- 可靠性高:硬件电路设计抗干扰性强,软件逻辑防抖动、防误判;
- 可扩展性好:可根据需要增加通信模块,实现远程监控与数据上传;
- 操作简便:按键设定阈值直观易懂,适用于多种客运车辆类型。
通过该设计,可有效提升车辆运营安全管理水平,为智慧交通系统提供技术支持。