浅析基于STC12C5A60S2 单片机的电量监测技术研究论文 1 引言 随着国家“节约发展”理念的提出,越来越多的人们青睐于新能源交通工具。电动车作为一种人们生活中首选的代步工具,保有量逐年提升,而电动车续航、电量检测和电池状况监测的问题,也成为了大家所关心的重要……
浅析基于STC12C5A60S2 单片机的电量监测技术研究论文
1 引言
随着国家“节约发展”理念的提出,越来越多的人们青睐于新能源交通工具。电动车作为一种人们生活中首选的代步工具,保有量逐年提升,而电动车续航、电量检测和电池状况监测的问题,也成为了大家所关心的重要问题。本文设计了一种利用STC12C5A60S2 单片机的电动车电量监测系统,利用单片机模数转换的功能,实现了电动车蓄电池电量的实时显示、监督、管理以及异常情况警报。该系统成本较低,使用较方便,具有较高的应用价值。
2 系统总体设计
本文所研究的系统主要由采集电路、数据处理部分和显示部分等组成。通过采集电路对蓄电池的电压等数据进行采样,然后将采集的数据通过单片机的A/D 转换功能得到电量数据,并将结果存入到相关的寄存器。微处理器通过相关接口将所需参数读到微处理器内部,并将电量、经纬度等数据在LCD 屏中显示,让用户直观地观察到实时的数据。
3 系统硬件组成
本系统采用的单片机是STC12C5A60S2 单片机,利用单片机具有的A/D 转换功能,实现了将模拟信号(电压)转化为数字信号,以便后续的传输和处理。
3.1 STC12C5A60S2 单片机
STC12C5A60S2 单片机是STC 生产的一款单时钟/ 机器周期(IT)的单片机,是一款新一代的8051 单片机。STC12C5A60S2 单片机运行速度高,可以达到传统的8051 单片机速度的8-12 倍,功率耗损很低,而且在干扰很强大的环境中也可以稳定运行,同时指令代码完全兼容传统的8051 单片机。工作电压 3.5V—5.5V,工作频率范围 0-35MHz。STC12C5A60S2 单片机包含 CPU、存储 Flash、SRAM、定时/ 计时器、I/O 接口、高速A/D 转换器、SPI 接口、PAC、看门狗及片内R/C 振荡器和外部晶体振荡电路等模块。
3.2 STC12C5A60S2 单片机的高速A/D 转换
3.2.1 A/D 转换器结构
STC12C5A60S2 系列带A/D 转换的.单片机的A/D转换口在P1 口(P1.7-P1.0) ,有 8 路 10 位高速A/D 转换器 , 速度可达到250KHz。8 路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1 口为弱上拉型I/O 口,用户可以通过软件设置将8 路中的任何一路设置为A/D 转换,不需作为A/D 使用的口可继续作为I/O 口使用。
3.2.2 逐次比较法A/D 转换
STC12C5A60S2 单片机采用的是逐次比较型A/D转换电路,该电路使用了二分搜索算法。启动转换后,先将逐次比较寄存器SAR 最高位置“1”,其余位置“0”,相当于取参考电压VREF 的1/2 与输入电压VIN 进行比较。若VREF/2>VIN,那么将最高位置“0”;此后次高位置1,相当于在1/2 范围中再对半搜索。若VREF/2< VIN, 那么最高位和次高位均为1, 这相当于在另一个1/2 范围中再作对半搜索. 如此进行直到SAR的所有位都在逐次比较过程中被确定。SAR 的输出即为所需的二进制数字量。由此可见,这类A/D 转换器在一个时钟周期只完成一位转换. 若要获得N 位的分辨率, 它就必须执行N 次比较操作, 因此转换速度慢。它的优点是占用面积小, 复杂度和功耗通常低于其它类型的A/D 转换电路,同时分辨率也较高,且不存在延迟问题。
4 程序的设计与编写实现
在程序设计之初,我首先想到的是要对寄存器进行设计。因此,我在innit()初始化函数中对寄存器值进行了设计。利用sfr P1ASF = 0x9D 与P1ASF=0x01语句对I/O 口进行定义。考虑到转换精度的问题,本文采取两种措施来保证转换精确度。第一种方法是舍弃了取8 位结果的方式,转而用了取完整10 位结果的方式,虽然增加了运算量,但因为STC12C5A60S2 单片机的高速运算能力,因此并不会降低转换能力,同时对特殊寄存器ADRJ 置0,即sfr ADC_RES 为高8 位、sfrADC_RESL 为低2 位,并采取下面的计算公式:1 0 - b i t A / D C o n v e r s i o n R e s u l t : ( A D C _RES[7:0],ADC_RESL[1:0])=1024*Vin/Vcc。第二种方法是对所示的转换速度控制寄存器ADC_SPEEDLL 利用宏定义将其置0 具体实现方法为#define ADC_SPEEDLL 0X00。目的是提高模数转换的时钟周期数,以此来提高转换精度。最后通后ADCCONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|0 语句对寄存器控制的最终实现。当模数转换开始后,需要检测转换是否完成,此时只需要一个while 语句将ADC 控制寄存器ADC_CONTR 与ADC标志位ADC_FLAG 相与后取反检测。此时需要注意的是,当检测完成后要清除转换完成标志。由于我们用了取完整10 位结果的方式而STC12C5A60S2 单片机的寄存器位8 位,因此要对转换结果高8 位左移两位并与低2 位进行或操作。
5 硬件电路的实现方法
电量监控是利用STC12C5A60S2 单片机自有的模数转换功能, 通过大电阻分压的技术将电池的电压通过放大器构成的电压跟随器隔离、RC 低通滤波电路的滤波后,送入单片机进行转换。采用此大电阻分压方法的另一优点是降低整个系统的功耗,节约能源。
本文介绍利用 STC12C5A60S2 单片机来实现模数转换,并使用单片机的扩展性以及对输入信号的变化自适应性来适应输入输出设备的变化。当开发者需要详细的转换只需要对程序进行修改并下载即可。这样方便了开发者对转换的结果进行处理与对比,并根据自己的需要不用改动硬件就能对其转换结果加以处理。本系统为了A/D 转换能被更好的使用,我们实现了把A/D 转换的结果通过显示屏展示出来。为了满足开发人的需求,系统设计了一个通信串口,利用CH340G 芯片将USB转为串口,有利于电脑与单片机传输数据,开发者可以编写自己需要的程序并下载到单片机。
6 总结与展望
本文详细的介绍了基于STC12C5A60S2 单片机模数转换的电动车电量监测技术,并在实践中得到应用,经过团队成员的努力,实现了预期功能效果,希望能够促进电动车的未来发展,方便人们的生活。