51单片机电池电量检测系统设计.docx
文本预览下载声明
51单片机电池电量检测系统设计
51单片机电池电量检测系统设计
PAGE 8
PAGEPAGE 21
51单片机电池电量检测系统设计
目录
TOC \o 1-3 \h \z \u 1. 设计要求 3
2. 设计思路 3
. 设计假设 3
. 设计方案 3
. 数学实现 3
3. 电路设计 4
. 整体电路结构 4
. 单片机最小系统 4
原理图 5
AT89C52单片机 5
时钟电路 5
复位电路 5
电源 5
. AD转换电路设计 5
原理图 5
ADS7825 6
. 数码管电路设计 7
原理图 7
数码管 7
74LS138 7
74LS373 8
. 串行口电路设计 8
原理图 8
MAX232 8
DB-9 9
4. 程序设计 9
. 单片机程序设计 9
程序流程图 9
程序设计 10
. 上位机程序设计 11
程序流程图 11
界面设计 12
程序设计 12
5. 系统调试 12
. 串口参数设置 12
. 调整滑动变阻器 13
. 启动MCU软件仿真 13
. 打开上位机串口连接 13
. 观察数码管显示及上位机显示 13
6. 总结 14
7. 附件1(硬件原理图) 15
8. 附件2(单片机源程序) 16
设计要求
本次设计要求,依据实验数据,设计简易的电池电量监测电路。该3AH的电池,在某固定环境下放电实验数据如 REF _Ref \h 表 1所示。要求依据测量电压推算时间,以此作为电量标识,并采用某种方式进行显示。
表 SEQ 表 \* ARABIC 1 放电实验数据
设计思路
设计假设
本次设计基于以下假设。在任意时刻t测得开路电压值V,不考虑其在t时刻前的具体放电过程。即认为该时刻电池开路电压V,是持续以放电实验中使用的放电电流I(500mA),由满电量电压,放电?t时间得到的。即,
设计方案
通过AD芯片获取电池两端开路电压,将模拟量电压值转换为单片机可处理的数字量。随后依据该测得的电压值按照所建立数学模型进行运算。然后将该数字电压值及其运算结果通过数码管显示,并同时通过串行口发送至上位机。上位机接收到数据后做相关处理显示工作。
数学实现
?t的值由插值的方式计算。依据 REF _Ref \h 表 1中的实验数据,通过测得的电压V,由下列公式逆向计算,其中t1,t2,V1
放电时间:
?
已用电量:
?Q
剩余电量:
Q
剩余电量百分比:
P=
其中时间单位为min,电流单位为mA,电量单位为mA?min。
按照如上方式使用实验数据,运用Matlab绘图得到如下结果。
图 SEQ 图 \* ARABIC 1 实验曲线
其绘图过程如下述程序所示。
图 SEQ 图 \* ARABIC 2 实验曲线绘制
电路设计
整体电路结构
整体电路原理图由Protues软件进行绘制并仿真。为简化连线便于观察逻辑,其中使用了网络标签的方式,对实际物理上相连而原理图中未连接的管脚,给予了相同的名称,则在逻辑上他们互相连接。具体电路原理图见附件1。
单片机最小系统
单片机最小系统是单片机能够正常执行内置程序,发挥其基础功能的必须组成部分。包括单片机,电源部分,时钟电路部分及复位电路部分。
原理图
图 SEQ 图 \* ARABIC 3 AT89C52最小系统
AT89C52单片机
本次设计中主要用到了该型单片机的IO口,串口及定时器。其中,P0口用于和AD转换电路交换数据。P2口部分管脚用于控制AD转换芯片工作及读取其状态。P3口管脚用作第二功能串行口数据输出,其余用到的管脚用于进行数码管位选。P1口用于数码管段选。
本次设计未使用片外数据/程序存储器,因此PSEN,ALE,EA均处于悬空状态。且本次设计中,与ADC芯片的数据交换未采用外部拓展总线的方式,将其视为普通IO
时钟电路
时钟电路为单片机最小系统组成之一,用于提供时钟信号,驱动CPU指令的执行,并为定时器等提供内部时间基准。本次设计采用无源晶振,为保证串口通信波特率准确,其频率选定为。
复位电路
复位电路用于在单片机程序执行出现异常时,重新初始化运行,从而防止由数字电路竞争冒险及环境干扰引起的,单片机系统的不正常工作。本次设计中的复位电路同时具有上电自动复位及按键复位的功能。其中上电时由电容C5将RST引脚拉高,提供复位信号。
电源
单片机由5V稳压电源供电,由于仿真软件对其供电电路进行了省略,因此在 REF _Ref9529071 \h 图
显示全部