基于51单片机的充电管家养成记

张开发
2026/5/22 10:35:09 15 分钟阅读
基于51单片机的充电管家养成记
基于51单片机的智能充电电压电流温度监测系统设计报告原 S1014-基于51单片机的智能充电电压电流温度监测系统设计报告原理图proteus 功能介绍 需要实现的功能有对设备的温度、电流、电压的检测显示器显示系统检测的各种参数 1、通过液晶屏LCD1602显示当前温度值、电流值、电压值 2、可以通过按键设置阈值大小 3、监测当前参数不满足设定阈值时蜂鸣器报警 功能描述 本次系统主要有硬件和软件两个部分组成 硬件部分由STC89C51单片机最小系统单元温度检测电路单元压力检测单元报警单元人机交互单元电源单元液晶显示器单元组成在设计上硬件需要考虑到系统的稳定性以及可靠性 软件部分通过对系统软件总流程图绘制并绘制各个子控制驱动再对驱动程序编写完成系统程序的设计 在硬件与软件的设计上选择按照功能性分区设计使设计有条理运行可靠 系统设计没有制作实物而是通过仿真方式调试完成 使用仿真软件Proteus来搭建系统硬件电路调试测试 有哪些资料 1、原理图工程 2、源代码工程 3、仿真工程 4、报告-7804字 5、物料清单这个智能充电监测系统活脱脱就是个电子保姆温度、电流、电压全盯着超过安全值就报警。咱们拆开看看这保姆怎么炼成的。硬件搭积木核心是STC89C51这块经典单片机搭配ADC0832做模数转换老芯片性价比确实能打。温度检测用DS18B20这货支持单总线协议省引脚神器。电流检测用分流电阻运放方案电压检测直接电阻分压进ADC。LCD1602显示三行数据温度在首行电压电流挤在第二行。Proteus里搭电路时有个坑DS18B20的仿真模型要单独加载不然永远显示85℃。仿真电路里记得给运放接虚拟电源实物可以省的双电源在这里逃不掉。代码里藏着骚操作主程序就是个无限循环三件套读取数据→处理显示→检查报警。重点看ADC读取函数unsigned char ADC_Read(bit CH){ unsigned char dat; ADCS 0; //启动ADC ADCH CH; //选择通道 _nop_();_nop_(); while(ADCS); //等待转换 dat ADDL; dat | (ADDH 4); return dat; }这个0832驱动用GPIO模拟时序CH参数选通道。注意nop()是51的特色延时放现在芯片上得改延时函数。温度传感器处理有门道if(DS18B20_ReadTemp() 0){ temp_value (float)temp_raw * 0.0625; //12位精度转换 if(temp_value 99.9) beep_flag | 0x01; //超温标记 }DS18B20每次读取要严格遵循复位→跳ROM→发转换命令的流程仿真时可以适当放宽时序要求但实物必须卡准微秒级延时。按键处理玩状态机基于51单片机的智能充电电压电流温度监测系统设计报告原 S1014-基于51单片机的智能充电电压电流温度监测系统设计报告原理图proteus 功能介绍 需要实现的功能有对设备的温度、电流、电压的检测显示器显示系统检测的各种参数 1、通过液晶屏LCD1602显示当前温度值、电流值、电压值 2、可以通过按键设置阈值大小 3、监测当前参数不满足设定阈值时蜂鸣器报警 功能描述 本次系统主要有硬件和软件两个部分组成 硬件部分由STC89C51单片机最小系统单元温度检测电路单元压力检测单元报警单元人机交互单元电源单元液晶显示器单元组成在设计上硬件需要考虑到系统的稳定性以及可靠性 软件部分通过对系统软件总流程图绘制并绘制各个子控制驱动再对驱动程序编写完成系统程序的设计 在硬件与软件的设计上选择按照功能性分区设计使设计有条理运行可靠 系统设计没有制作实物而是通过仿真方式调试完成 使用仿真软件Proteus来搭建系统硬件电路调试测试 有哪些资料 1、原理图工程 2、源代码工程 3、仿真工程 4、报告-7804字 5、物料清单阈值设置用三个独立按键长按短按分开处理if(key1_press){ threshold_temp (key1_time20) ? 5 : 1; //长按步进5 EEPROM_save(); //存到24C02 }这里用24C02保存阈值避免每次上电重置。注意I2C时序要加10ms延时Proteus里仿真速度调慢点才能正常写入。显示花式排版LCD1602第二行要同时显示电压电流得玩字符拼接sprintf(buf,V:%04.1f I:%03.0f, voltage, current); LCD_Write_String(0x80, buf); //首行地址电压用4位显示带小数点电流3位整数。实测发现当电流小于10mA时末位会跳解决方法是在采样电路并104电容。报警逻辑小心机蜂鸣器驱动不简单是GPIO拉高if(beep_flag){ BEEP ~BEEP; //产生方波 delay_ms(200); //断续鸣响 }用定时器中断翻转IO产生断续音比持续响更省电。仿真时注意Proteus的蜂鸣器模型要接上拉电阻才能正常发声。仿真翻车现场调试时最诡异的问题是电压显示忽大忽小最后发现Proteus里ADC参考电压默认5V但系统供电是3.3V。改完参考电压后又在实物方案里给分压电阻加了1%精度的金属膜电阻。这个项目最值钱的其实是那7804字的报告里面记录了三次电路改版和五次程序重构。仿真工程里的示波器、电压表、电流表各种虚拟仪器玩得飞起比实物调试还方便看信号。项目资料原理图源码仿真文件物料清单详细报告

更多文章