基于单片机的蓄电池检测系统设计 下载本文

5)报警输出单元:当所测数据超过上限值或低于下限值时,产生声光报警; 6)串行通讯接口:实现与上位机的通信连接; 7)看门狗电路:对单片机系统进行保护。

3 系统硬件设计

针对12V蓄电池系统进行设计,考虑到应尽量降低成本和避免复杂的硬件电路,主控器采用低功耗、高性能CMOS8位单片机AT89C51;信号采集单元采用专用的蓄电池监测芯片DS2438,芯片为单总线结构,大大简化了采样电路;工作所需要的+5V电源是通过蓄电池单体电压通过三端稳压器LM7805得到;显示器选用1602字符型液晶显示器;选用发光二极管和蜂鸣器实现报警输出,操作人员可以通过系统中的键盘来设定报警限值,以及显示数据的切换;看门狗电路选用X25045芯片;单片机可以将采集到的数据通过串行接口电路送到PC机进行数据显示。所以本设计硬件系统分为5个模块:单片机最小系统、信号采集电路、显示电路、声光报警与键盘电路、看门狗保护电路。下面对硬件电路作具体的设计。

3.1 单片机最小系统

AT89C51单片机芯片内集成了计算机的基本功能部件,已具备了很强的功能。一块芯片就是外加振荡电路和复位电路就是一个完整的最小微机系统,连线图如图3.1所示。

图3.1 最小系统接线图

3.1.1 微处理器介绍

本系统中的微控制器采用了AT89C51,AT89C51是美国ATMEL公司生产的,其内部包括一个8位的80C51微处理器(CPU)、256字节的数据存储器RAM/SFR、4K程序存储器Flash ROM、4个8位并行I/O端口P0-P3、1个全双工UART的串行I/O口、两个16位的定时器/计数器、具有5个中断源两个中断优先级的中断控制系统、片内振荡器和时钟产生电路(石英晶体和微调电容需外接,最高允许振荡频率为24MHz),与8051相比,具有节电工作方式,其封装引脚图如图3.2所示,下面分类介绍其引脚。

图3.2 AT89C51封装图

1)电源引脚VCC和VSS

VCC(40脚):电源端,为5V。 VSS(20脚):接地端。 2)时钟引脚XTAL1、XTAL2

时钟引脚外接晶体与片内的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。时钟引脚也可以外接晶体振荡器。

XTAL2(18脚):接外部晶体和微调电容的一端。在89C51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。

XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。

3)控制引脚

此类引脚提供控制信号,有的还具有复用功能。 RESET(9脚):当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位。此引脚与VSS引脚之间连接一个约10KΩ的下拉电阻,与引脚之间连接一个约10μF的电容,以保证可靠的复位。在单片机正常工作时,此引脚为≤0.5V的低电平。

ALE/PROG(30脚):当访问单片机外部存储器时,ALE(地址锁存器)输出脉冲的负跳沿用于16位地址的低8位的锁存信号。即使不访问外部存储器,ALE端仍有正脉冲信号输出,此频率为时钟振荡频率的1/6。但是,每当访问外部数据存储器时(即从程序存储器取来MOVX类指令),在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。因此,严格来说,用户不能用ALE做时钟源或定时。ALE端可以驱动(吸收或输出电流)8个TTL负载。

PSEN(29脚):此脚的输出是单片机访问外部存储器的读选通信号。在由外部存储器取指令(或常数)期间,每个机器周期PSEN两次有效。但在此期间,每当访问外部数据存储器时(即从程序存储器取来的指令是MOVX类指令),这两次有效的PSEN信号将不出现。PSEN可以驱动(吸收或输出电流)8个LSTTL负载。

EA/PROG(31脚):当EA端保持高电平时,单片机访问内部Flash ROM程序存储器,当PC(程序计数器)值超过0FFFH时,单片机将自动转向执行外部程序存储器内的程序。当EA接低电平时,则只访问外部程序存储器,而不管是否有内部程序存储器。 4)I/O口引脚

P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可带8个LSTTL负载。

P1口:8位准双向I/O口,可带4个LSTTL负载。

P2口:8位准双向I/O口,与地址总线(高8位)复用,可带4个LSTTL负载。

P3口:8位准双向I/O口,双工能复用口。 P1口、P2口、P3口各I/O口线片内均有固定的上拉电阻,故称为准双向I/O口。P0口线内无固定上拉电阻,由两个MOS管串接,即可开漏输出,又可处于高阻的“浮空”状态,故称为双向三态I/O口。 3.1.2 复位电路

复位电路采用了上电复位和手动复位相结合的方式。在通电瞬间,电容C通过电阻R2充电,RST端出现正脉冲,用以复位。只要电源的上升时间不超过1ms,就可以实现自动上电复位。手动复位就是通过按下按钮开关S,使单片机进入复位状态。

3.1.3 振荡电路

为满足需要,本振荡电路采用12MHz的晶体,与微调电容配合,外接于引脚

XTAL1和XTAL2之间。

3.2 信号采集单元

本单元采用DS2438单总线智能电池监测芯片完成对电池当前各种信号状态的监测,包括当前电池的电压、电流、温度、剩余电量等参数。DS2438芯片能够自动采集这些信号参数,并将其放在SRAM/EEPROM中, 51单片机根据需要发出命令读取这些参数,然后处理这些参数,软件编程比较困难,硬件电路的简单是以复杂的软件编程为代价的。 3.2.1 DS2438芯片介绍

DS2438是Dallas公司推出的智能电池监视器芯片。该器件是为了解决便携式电子产品电池工作状志的实时监测而推出的,具有功能强大、体积小、硬件接线简单等优点。

1)DS2438的管脚图及功能

DS2438采用SOIC表面贴装封装形式,其外形及引脚排列如图3.3所示,表3.1说明了DS2438各引脚的功能。

图3.3 DS2438封装

表3.1 DS2438引脚功能

引脚号 1 2 3 4 5 6,7 8

引脚名称 GND VSENS+ VSENS- VAD VDD NC DQ

功能描述 接地

电池测量电流输入(+) 电池测量电流输出(-) 通用电压A/D输入端 供电电压(2.4~10V)

悬空不接

数据输入输出、单总线、开漏

2)DS2438的性能特点:

a) 是单总线器件,仅用一根传输线便能实现电源与数据的双向传输; b) 芯片内部集成一13位的温度传感器,其分辨率可以达到O.03125℃; c) 具有10位的电流A/D转换器,可以实现对电池充放电电流的测量; d) 具有10位二通道的电压A/D转换器,可以实现对电池电压的测量; e) 芯片内部有40字节的用户存储器,方便用户存储信息;

f) 芯片内部有逝去时间计时器,可以对电池充放电时间进行统计;

g) 芯片内部具有充放电电流累加器,当芯片每27.46ms采样一次电池电流时,根据该值的正负加减入电流累加器寄存器中,并且还设置两个累加器分别就充电电流与放电电流进行累加;