单片机蓄电池智能充电保护系统设计与Proteus仿真实现:过压、过流、过温保护及LCD实时显示
51单片机蓄电池充电保护设计Proteus仿真 功能描述如下:本设计由STC89C52单片机电路+LCD1602液晶显示电路+ACS712电流检测电路+分压电路+PCF8591 AD检测设计+继电器电路+DS18B20温度传感器。 系统具有过压保护、过流保护和过温保护。 即如果蓄电池的电压超过14 V或充电电流高于0.7A或温度高于40℃,则继电器断开,否则继电器闭合。 液晶LCD1602实时显示温度、电压和电流。 1、DS18B20检测温湿度; 2、PCF8591检测电压; 3、ACS712检测电流 4、将测得的温度和电压、电流显示于LCD1602上,同时显示继电器状态ON/OFF; 5、根据温湿度、电压、电流控制继电器开关,保证在过温、过压、过流情况下及时断开电源; 6、电路上的模块使用标号进行连接,看起来像没有连在一起,实际已经连了,不然怎么可能实现上述功能。
一、系统概述
本代码基于51单片机平台,构建了一套完整的蓄电池充电保护系统。系统通过多类传感器与数据采集模块,实时监测充电过程中的关键参数(温度、电池电压、充电电流),并依据预设阈值实现充电回路的自动通断控制,核心目标是防止过充、过流、过热等异常工况对蓄电池造成损害,同时通过LCD1602显示屏直观呈现监测数据与系统状态,兼具保护与可视化功能。

51单片机蓄电池充电保护设计Proteus仿真 功能描述如下:本设计由STC89C52单片机电路+LCD1602液晶显示电路+ACS712电流检测电路+分压电路+PCF8591 AD检测设计+继电器电路+DS18B20温度传感器。 系统具有过压保护、过流保护和过温保护。 即如果蓄电池的电压超过14 V或充电电流高于0.7A或温度高于40℃,则继电器断开,否则继电器闭合。 液晶LCD1602实时显示温度、电压和电流。 1、DS18B20检测温湿度; 2、PCF8591检测电压; 3、ACS712检测电流 4、将测得的温度和电压、电流显示于LCD1602上,同时显示继电器状态ON/OFF; 5、根据温湿度、电压、电流控制继电器开关,保证在过温、过压、过流情况下及时断开电源; 6、电路上的模块使用标号进行连接,看起来像没有连在一起,实际已经连了,不然怎么可能实现上述功能。

系统硬件依赖包括51单片机核心板、DS18B20温度传感器、PCF8591模数/数模转换模块、LCD1602显示模块、按键模块及充电回路控制电路,软件层面则通过模块化设计,将数据采集、显示控制、按键交互、保护逻辑等功能拆分为独立模块,提升了代码的可维护性与可扩展性。
二、核心模块功能解析
(一)传感器数据采集模块
该模块是系统的“感知中枢”,负责采集充电过程中的关键物理量,为保护逻辑提供数据支撑,主要包含温度采集、电压采集、电流采集三个子功能,分别依赖DS18B20、PCF8591等硬件模块实现。
1. 温度采集(DS18B20模块)
- 功能定位:监测蓄电池或充电回路的实时温度,防止温度过高导致电池鼓包、电解液泄漏等安全风险。
- 工作流程:
1. 初始化:通过复位函数(dsreset)向DS18B20发送复位信号,等待传感器响应,建立通信连接;
2. 温度转换:发送温度转换指令(0x44),触发传感器内部的温度采样与A/D转换;
3. 数据读取:发送读数据指令(0xBE),依次读取传感器输出的温度低8位(TL)与高8位(TH);
4. 数据处理:根据TH的符号位判断温度正负,对负数进行补码转换后,结合TL计算实际温度值(分辨率0.625℃),最终输出浮点型温度数据。 - 关键特性:采用单总线通信协议,仅需1根I/O口即可实现数据传输,硬件接线简单;支持-55℃~125℃的宽量程测量,满足蓄电池常规使用温度范围。
2. 电压与电流采集(PCF8591模块)
- 功能定位:分别采集蓄电池两端电压与充电回路电流,前者判断电池是否充满,后者防止充电电流过大损坏电池。
- 工作原理:
- PCF8591是一款具备4路模拟输入、1路模拟输出的I2C总线模数/数模转换芯片,系统利用其2路模拟输入通道,分别连接电压采样电路与电流采样电路;
- 电压采集:通过分压电阻网络将蓄电池电压(通常12V/24V)降至PCF8591的输入量程(0~5V),由芯片转换为8位数字量;
- 电流采集:通过串联在充电回路的分流电阻采集电流信号,经放大电路转换为电压信号后,输入PCF8591进行模数转换;
- 数据处理逻辑:
1. 初始化I2C总线:通过Start函数发送起始信号,建立与PCF8591的I2C通信;
2. 通道选择:向芯片发送控制指令,指定当前采集的模拟通道(电压对应通道0,电流对应通道1);
3. 数据读取:切换至读模式,接收PCF8591输出的8位数字量,通过Stop函数结束通信;
4. 物理量换算:根据采样电路的分压比、放大倍数等参数,将数字量反向换算为实际电压(单位:V)与电流(单位:mA),例如电压通过“30.196数字量”公式修正,电流通过“1.02(2500-19.6数字量)/15/0.2”公式计算,确保数据准确性。
(二)显示控制模块(LCD1602模块)
- 功能定位:作为系统的“人机交互窗口”,实时显示温度、电压、电流等监测数据,以及充电回路的通断状态(ON/OFF),方便用户直观掌握系统运行情况。
- 核心功能实现:
1. 初始化:系统上电后,通过LCDinitial函数配置LCD1602的工作模式,包括设置为双行显示、开启显示与光标、关闭画面移动等,同时执行清屏操作(LCDcls),清除屏幕残留数据;
2. 光标定位:提供LcdSetCursor函数,支持通过(x,y)坐标(x为列号,y为行号,y=0代表第一行,y=1代表第二行)指定显示位置,为不同数据分配固定显示区域;
3. 数据显示: - 字符串显示:通过LCD_prints函数,在指定坐标输出固定文本(如“T:”“V:”“STA:”等标识);
- 数字显示:针对不同数据的精度需求,提供多种数字显示函数,例如LCDprint3fNum用于显示带1位小数的电压(如“13.5V”),LCDprintNum用于显示整数形式的温度(如“25℃”)与电流(如“500mA”),自动处理数字位数不足时的空格填充(如小于10的数字前补空格,确保显示对齐);
4. 状态更新:根据充电回路的通断状态,在“STA:”标识后动态显示“ON ”(充电开启)或“OFF”(充电关闭),状态切换时自动覆盖原显示内容。
(三)充电保护控制模块(主逻辑模块)
- 功能定位:系统的“决策核心”,基于传感器采集的温度、电压、电流数据,结合预设阈值判断是否允许充电,实现充电回路的自动保护控制。
- 核心逻辑流程:
1. 阈值预设:在主函数中预设保护阈值,包括温度上限(40℃)、电压下限(对应数字量145,实际电压约14.5V,防止过放后充电)、电流上限(700mA,防止过流);
2. 数据采集循环:通过while(1)死循环,每100ms执行一次数据采集,依次获取电压(adc1)、电流(adc2)、温度(TH)数据,确保监测的实时性;
3. 保护判断与执行: - 若满足“电压<14.5V + 电流<700mA + 温度<40℃”三个条件,判定当前充电条件安全,将控制引脚k_IH置0(导通充电回路),同时在LCD上显示“ON ”;
- 若任意一个条件不满足(如电压过高提示电池充满、电流过大提示短路风险、温度过高提示过热),则将kIH置1(切断充电回路),LCD显示“OFF”,实现保护;
4. 延时防抖:数据采集过程中加入100ms延时(delayms(100)),避免高频采集导致的CPU资源浪费,同时减少传感器数据波动对判断结果的影响。
(四)辅助模块
1. 延时模块(delay.c/.h)
- 功能定位:为系统各模块提供精准延时支持,保障硬件通信时序与数据稳定性。
- 核心函数:
- delay_2us:微秒级延时,用于I2C总线、DS18B20等高速通信的时序控制,通过循环递减实现;
- delay_ms:毫秒级延时,用于数据采集间隔、LCD显示更新、按键防抖等场景,基于“双层for循环”实现(晶振12M时,内层循环112次约为1ms),支持自定义延时时长(参数xms)。
2. 按键模块(key.c/.h)
- 功能定位:预留用户交互接口,支持通过按键手动设置保护阈值(如温度上限、电流上限)或切换显示模式,当前代码中已实现按键检测逻辑,后续可扩展功能。
- 工作原理:通过sbit定义3个独立按键(key1~key3,对应P2口1~3引脚),key函数实时检测按键电平,当检测到按键按下(引脚为低电平)时,先延时10ms防抖(避免机械按键的触点抖动导致误触发),再二次确认按键状态,确认按下后等待按键释放,最终返回对应按键的标识(1~3),供主逻辑调用。
三、系统整体工作流程
- 上电初始化:系统上电后,依次初始化LCD1602(配置显示模式、清屏、显示固定标识)、传感器(DS18B20、PCF8591),同时预设充电保护阈值;
- 数据采集:进入循环,每100ms通过PCF8591采集电压、电流数据,通过DS18B20采集温度数据,并完成物理量换算;
- 数据显示:将换算后的温度、电压、电流数据,通过LCD1602显示在指定区域,更新显示内容;
- 保护判断:对比采集数据与预设阈值,判断是否满足充电条件;
- 控制执行:根据判断结果,导通或切断充电回路,同时更新LCD上的系统状态(ON/OFF);
- 循环监测:重复步骤2~5,持续监测与保护,直至系统断电。
四、系统特点与应用场景
(一)核心特点
- 模块化设计:各功能拆分为独立模块(传感器采集、显示、控制、辅助),代码结构清晰,便于调试与功能扩展(如增加蓝牙数据传输、蜂鸣器报警等);
- 多重保护:同时监测温度、电压、电流三个关键参数,避免单一参数监测导致的保护漏洞,提升系统安全性;
- 直观可视化:通过LCD1602实时显示数据与状态,用户无需专业设备即可掌握蓄电池充电情况;
- 稳定性高:加入延时防抖、数据二次采集等设计,减少硬件波动与干扰对系统的影响。
(二)应用场景
适用于12V铅酸蓄电池等常规蓄电池的充电保护场景,如电动车充电器、应急电源充电模块、太阳能蓄电池充电系统等,可有效延长蓄电池使用寿命,防止充电过程中的安全风险。



更多推荐
所有评论(0)