1、毕业设计(论文)题 目一种高性能的蓄电池监测管理系统系 别专 业班 级姓 名指导教师下达日期 2010 年 2 月 26 日设计时间自 2010 年 3 月 1 日 至 2010 年 7 月 3 日山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统2毕业设计(论文)任务书一、设计题目:1、题目名称一种高性能的蓄电池监测管理系统2、题目来源 自拟二、目的和意义基于现场总线技术和蓄电池智能监测专用芯片 DS2438 实现蓄电池管理系统。它具有低成本、高性能的优点。适用于移动通讯基站蓄电池检测管理系统设计方案。对移动基站后备电源的监测与管理,延长蓄电池使用寿命,节约维修费用起到关键作用。移
2、动通讯基站蓄电池用量较大,每个基站至少使用一组 48V 蓄电池组,且移动基站分布分散,工作环境恶劣,这就造成对移动基站蓄电池维护量很大,一块电池出现故障会使整组电池瘫痪。设计一套集监测与管理为一体的,蓄电池监测管理系统非常必要。由于蓄电池充放电过程的复杂性,该系统应能全程监测蓄电池的端电压、电流、温度和充放电安时累计值,确保蓄电池不会因过度充电和过度放电而折寿,还应给出比较准确的蓄电池剩余电量(SOCState 0f Charge) 估计。要实现上述功能,一般方案比较复杂,成本太高,不适于当前竞争激烈的市场。国外推出了用于监测蓄电池的智能型专用芯片,如美国的DALLAS 系列芯片,它们具有集成
3、度高、价格低廉(只十元人民币一片)和功能很强的优势。依托它能够开发出性能价格比很高的,适用于移动通讯市场需求的新型蓄电池监测管理系统。三、原始资料1蓄电池端电压 42V54V,对其电压进行监测。2蓄电池放电电流的监测3蓄电池温度监测,测量温度范围为 55到125 ,温度分辨能力为 0.03125 。4可测量电池 Ah 数。四、设计说明书应包括的内容1设计任务书2摘要及其英文翻译山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统33各单元电路工作原理及参数计算4相关英文翻译资料5相关程序五、设计应完成的图纸1系统原理框图2系统完整电路原理图3系统 PCB 版图六、主要参考资料1DS24
4、38 编程手册2DS18B20 温度检测程序3 凌阳单片机编程手册4.蓄电池监控七、进度要求1、实习阶段 第 8 周( 4 月 19 日)至第 10 周( 5 月 8 日)共 3 周2、设计阶段 第 1 周( 3 月 1 日)至第 7 周( 4 月 17 日)共 7 周3、设计阶段 第 11 周( 5 月 8 日)至第 18 周(7 月 3 日)共 7 周4、答辩日期 第 周( 2010 年 7 月 3 日) 八、其它要求山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统4一种高性能的蓄电池检测管理系统摘 要被人们称作信息时代的二十一世纪,电子信息科学技术飞速发展。作为信息的传输,通
5、信就显得尤为重要。为了保障通信的不间断,通信基站使用 UPS 电源就成为了必要。而蓄电池的工作状态将直接影响 UPS 系统的稳定性,所以必须对电池组的工作状态进行实时监测。本文将利用 DALLAS 公司生产的单总线器件 DS2438 对电池的电压、电流、温度、电量等主要参数进行采样,通过 SPCE061A 单片机与在线器件通讯获得采样数据,并处理采样数据,在 lcd1602 上显示电池状态。单总线器件的好处是:一条通信线路上可以挂载多个器件,可以对一组电池的多节电池分别进行监测,同时降低了硬件的复杂程度,具有成本低、易安装维护等优点。该系统提高了电池的可靠性、延长了蓄电池的使用寿命、节约了维修
6、费用。关键词:蓄电池;监测系统;DS2438;单总线;移动基站山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统5A high Performance Battery Monitoring And Management SystemABSTRACTBeen called the information age, the twenty-first century, the rapid development of electronic information science and technology.As information transmission, communicatio
7、n is particularly important.In order to protect the ongoing communication, communication base station becomes the necessary UPS power supply.The battery status will directly affect the work of the UPS system stability, so must the working status of the battery pack monitors.This article will use the
8、 companys single-DALLAS DS2438 devices on the battery bus voltage, current, temperature, electricity and other main parameters of sampling, by SPCE061A MCU and online access to sampling data communications devices, and process sample data, lcd1602 display battery status.The benefits of a single bus
9、device is: a communication line can mount multiple devices, can be a multi-cell battery monitor respectively, while reducing hardware complexity, low cost, ease of installation to maintain.The system improves the reliability of the battery, extended battery life, save maintenance costs.Key words:Bat
10、tery;Monitoring system;DS2438;1-wire;Mobile base stations山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统6目 录引言 .8第 1章 概论 91.1 蓄电池检测技术 91.1.1 蓄电池的监测 .91.1.2 蓄电池检测现状 .91.2 单总线技术 91.2.1 单总线简介 .91.2.2 单总线通信过程 .102.1.3 功能命令集 .101.3 程序编译环境 .131.4 研究目的与意义 .13第 2章 蓄电池监控系统总体设计思路 .142.1 系统功能需要 142.2 系统总体设计方案 .142.2.1 系统整体结构 .
11、142.2.2 采集模块 .152.2.3 数据处理模块 .152.2.4 显示报警模块 15第 3章 蓄电池检测系统硬件设计 .163.1 总论 .163.2 采集部分 .163.2.1 5V DS2438 供电电路 163.2.2 A/D 转换分压电路 163.2.3 低通滤波器电路 .173.2.4 光电耦合隔离电路与 ID 读取控制部分 .173.3 单片机系统与报警电路 .17第 4章 蓄电池检测系统软件设计 .184.1 ID 初始化程序 .184.2 主循环程序 .194.3 DS2438 采集程序 .204.4 LCD 显示效果 21第 5章 总结与展望 .21山西大学工程学院
12、本科毕业论文:一种高性能的蓄电池监测管理系统7参考文献 22附录 23翻译原文 36翻译原文译文 42山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统8引 言随着通信技术的发展,如何安全可靠的通信越来越突出。其中移动基站的不间断供电是安全可靠通信的基础。承载着这一使命的就是蓄电池。据统计,近八成移动基站掉站事故由蓄电池故障造成,因此有效地对蓄电池进行监控,及早的发现蓄电池故障是保障通信安全的关键。同时可以节约维修成本,延长电池的使用寿命。本次设计采用DALLAS 公司的单总线器件 DS2438 实现对蓄电池状态的采集,然后主机通过与单总线器件通信获取状态信号,并处理这些数据从而实现
13、了对蓄电池状态的检测。根据电池状态能有效地对基站蓄电池管理。山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统9山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统10第 1 章 概论1.1 蓄电池检测技术1.1.1 蓄电池的监测蓄电池作为备用电源在通信系统中起着极其重要的作用,在交流电失电或其它事故状态下蓄电池组一旦出现问题,供电系统将面临瘫痪,造成设备停运及其它重大运行事故。所以有必要对蓄电池进行监测,检测的主要内容是检测蓄电池的温度、端电压、电流、容量等主要参数。目前使用较多的蓄电池监测装置是电池巡检仪,电池巡检仪又分为测量蓄电池单体电压的巡检仪和智能巡检仪。前种检测仪
14、功能单一,只能实现蓄电池的温度电压的监测。智能巡检仪增加了对电池容量的检测。其中蓄电池的容量指蓄电池目前充电状况的等级,相当于蓄电池实际能够放出容量的大小,也就是对蓄电池保有容量(剩余容量)的多少进行检测,主要有密度法(比重法)、安时计、内阻法(电导法)等。1.1.2 蓄电池检测现状在我国蓄电池的实际应用中,蓄电池的使用寿命是否终结的主要依据为电池的剩余容量是否满足机房的工作要求,或者满足有关维护规程的要求。随着广大电池维护工作者对电池构造、工艺、工作原理认识的逐步深入,早期的那种纯靠测试端电压来了解电池性能的方法已经被淘汰,而依据在线监测法对电池进行容量测试的手段还不够成熟。我国现行的蓄电池
15、的检测,主要是通过放电检测的手段来进行,但由于风险大,时间过长、工作量大、不宜作为日常检测的检测手段,只宜作为电池组以一年一度或者三年一度的核对放电测试。针对目前的实际情况,包括广大蓄电池制造厂家、蓄电池检测技术研究机构、以及广大蓄电池维护人员,都在积极探索一种快速、准确、可靠、安全的蓄电池检测技术。特别对于广大现场维护工程师而言,这种需求更显得迫切。1.2 单总线技术1.2.1 单总线简介1-wire 单总线是 Maxim 全资子公司 Dallas 的一项专有技术。与目前多数标准串行数据通信方式,如 SPI/I2C/MICROWIRE 不同,它采用单根信号线,既传输时钟,又传输数据。而且数据
16、传输是双向的它具有节省 I/O 口线资源结构简单成本低廉便于总线扩展和维护等诸多优点。山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统111.2.2 单总线通信过程每次与单总线器件通信都需要进行以下的单总线命令:第一步初始化;第二步 ROM 命令;第三步功能命令;初始化:其中初始化包括复位与应答。主机发送复位命令,如果有从机(单总线器件)接收到复位命令,从机发送应答命令给主机,表示连接成功,随后进行 ROM 命令。ROM 命令:单总线器件出厂前被赋予了唯一的 ID 识别号,ROM 命令就是对此 ID 号进行的操作。包括读 ROM、匹配 ROM、找寻 ROM、跳过 ROM 操作。读
17、ROM 命令用于读取单总线器件的 ID 识别号(仅当在线器件为一的时候使用) ;匹配 ROM 命令用于在线器件不唯一的情况下,主机发送 ID 号与在线器件进行匹配,选中与该 ID 号相同的在线器件,随后进行功能命令;找寻 ROM 命令用于使用分叉树的方法读取器件的 ID 号(不能与器件的物理位置对应,只能通过程序读取全部在线器件的 ID 号) ;跳过 ROM 命令用于只有单个器件在线的情况,直接跳过执行功能命令。功能命令:功能命令用于对单总线器件进行各种功能操作,使其实现各项功能。2.1.3 功能命令集各功能命令使用流程如下:表 1.1 各标志位读写主机模式 数据(地位在前) 功能介绍TX 复
18、位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX 4Eh00h 发出写SP 00h命令TX 0Fh 设置ICA, CA, EE, AD位状态TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX BEh00h 发出读暂存器SP 00h命令RX 读暂存器数据和校验位TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX 48h00h 发出复制暂存器SP 00h命令山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统12RX 读子机 当复制暂存器完成时,DS2438返回“1”TX 复位 复位脉冲RX 应答 应答脉冲,完成表 1.2转化温度
19、电压、读取温度电压主机模式 数据(地位在前) 功能介绍TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX 44h 发出转换温度命令,读子机TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX B4h 发出转换温度命令,读子机TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX BEh00h 发出重读存储页00h命令TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX BEh00h 发出读暂存器SP 00h命令RX 读取暂存器数据和校验位。此网页包含温度,电压和电流测量。TX 复位 复位脉冲RX 应答 应答脉冲,完
20、成表 1.3存储页功能命令主机模式 数据(地位在前) 功能介绍TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX B8h01h 发出重读存储页00h命令TX 复位 复位脉冲山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统13RX 应答 应答脉冲TX CCh 跳过ROM命令TX Beh01h 发出读存储页00h命令RX 读取暂存器数据和校验位。电流累加器位于字节04h。TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX B8h07h 发出重读暂存器SP 07h命令TX 复位 复位脉冲RX 应答 应答脉冲TX CCh 跳过ROM命令TX B8
21、h07h 发出读暂存器SP 07h命令RX 读取暂存器数据和校验位。CCA位于字节04h-05h,DCA位于字节06h-07h。TX 复位 复位脉冲RX 应答 应答脉冲,完成主机对从机的操作过程就为上表所述过程。图 1.1 为温度电压电流寄存器在存储器中的位置。图 1.1存储器 00页与 01页图 1.2 为各功能命令集山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统14图 1.2功能命令集1.3 程序编译环境nSP 集成开发环境,它集程序的编辑、编译、链接、调试以及仿真等功能为一体。下图为调试状态界面。图 1.3程序编译环境1.4 研究目的与意义电池组中出现单节落后电池是造成电池
22、组损坏的诸多因素中的主要原因。电池组损坏会造成移动基站掉站事故。这里设计制作了检测电池组中落后单节和检测蓄电池状态的系统。通过采用这种检测技术,可大幅度减少掉站事故的发生,从而提升设备的运行质量。山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统15第 2章 蓄电池监控系统总体设计思路2.1 系统功能需要按题目要求需设计一套集监测与管理为一体的蓄电池监测管理系统。该系统应能全程监测蓄电池的端电压、电流、温度和充放电安时累计值,确保蓄电池不会因过度充电和过度放电而折寿,还应给出比较准确的蓄电池剩余电量(SOCState 0f Charge) 估计。具体要求如下:(1)蓄电池端电压 42
23、V54V,测量单节电池电压。(2)蓄电池放电电流的监测。(3)蓄电池温度监测,测量范围为 55到125,温度分辨能力为 0.03125 。(4)可测量电池 Ah 数。2.2 系统总体设计方案分析设计要求,将系统分为三大模块,采集模块、数据处理模块、显示报警模块。2.2.1 系统整体结构基站蓄电池每组为 48 伏,由四节 12V 电池组成。由于各单节电池存在差异,而电池组的性能由最差的单节电池决定,所以检测系统需要检测每节蓄电池的状态。由于串联的各个蓄电池的直流电位不共地,不能直接挂在单一总线上传输数据,所以每个 DS2438 数据采集板要采取光耦隔离措施,并将单线制改为收、发两线制,分别挂在收
24、、发两根线上与单片机进行通信。电池采样数据送至单片机处理,处理结果通过液晶显示,当检测到单节电池异常,通过蜂鸣器报警。整体结构图如下:图 2.1系统整体结构图山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统16主要名词解释:电池:蓄电池组中单节电池采样板:核心器件使用 DS2438 进行电池状态采样,芯片需紧贴电池。单片机:采用凌阳公司的十六位单片机。键盘:设置三个按键,功能分别为选择、确定、跳过。按键主要用在 ID 识别部分,可以与采样板上的开光组合应用,实现采样器件与电池物理位置的对应。显示:使用 lcd1602 液晶显示电池的状态。报警:使用蜂鸣器实现,当有单节电池出现故障,
25、显示故障发生在几号单节电池,并实施报警。2.2.2 采集模块采集模块主要使用 DS2438 进行电池状态采集。光耦解决蓄电池不共地,收发信号不能在单根总线上传输的问题。设计使用 TLP521-1 单光耦实现,其管脚如图 2.2 所示。自锁开关辅助程序实现 ID 号的读取功能,使单节电池的物理地址与其 ID 号对应。2.2.3 数据处理模块该模块采用 SPCE061A 单片机为控制核心,实现对 DS2438 中采集的数据进行读取、处理,然后将处理结果传至显示模块。2.2.4 显示报警模块低压高温报警蜂蜜器如图 2.4 所示。显示部分为 LCD1602液晶显示器如图 2.5。图 2.5LCD160
26、2图 2.2图 2.4蜂鸣器山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统17第 3章 蓄电池检测系统硬件设计3.1 总论采样器件使用的是具有单总线技术的器件,从而大大的减少了硬件电路的复杂程度。硬件部分主要包括采集电路、单片机最小系统、报警电路。整体设计框图如图 3.1。图 3.1整体框图各部分硬件电路实现如下各节论述。3.2 采集部分核心器件为 DS2438,需要对蓄电池电压,电流进行采样。采用光耦隔离,处理单片机与目标电池地的隔离问题。ID 识别控制部分与程序结合实现单总线器件与电池的对应问题,同时该设计为后续采样板维护提供了便利。3.2.1 5V DS2438 供电电路单
27、节蓄电池电压为 12V,供给 DS2438 器件电压需要 5V 电,采用 7805 稳压器给器件供电。3.2.2 A/D 转换分压电路单节蓄电池端电压 12V,DS2438 芯片转范围 010V,给蓄电池端电压两伏的波动余量。选定一个电阻 1M,未知分压电阻设为 R 计算公式如下:14*1M/ (1M+R )=10V得 R=390k, U 实际 为实际单节蓄电池的电压,U 测量 为 DS2438 测量的电压值,根据如下公式,可以在单片机中完成测量值转换为实际值。目标电池电压采样低通滤波5V 供电 开关DS2438显示报警单片机光耦图 3.2图 3.3图 3.4山西大学工程学院本科毕业论文:一种
28、高性能的蓄电池监测管理系统18U 实际 =U 测 *(1M+0.39M)/1M 3.2.3 低通滤波器电路对电流的采集电阻的选择,应不影响电池的使用,顾选择小阻值电阻,且电阻精度要求高。设计采用 Rsens=0.025 电阻。为了抵抗电池干扰,设计 RC 低通滤波器。通过计算选择 R:100K,C : 0.1uF,截至频率为:F=1/(2RC)=15.9HzAD 转换频率 36.41Hz,可以有效地滤除剑锋脉冲,保障电流累加器准确获取采样信号。3.2.4 光电耦合隔离电路与 ID 读取控制部分隔离电路图 3.5 所示。电路图中的 R_26 为 DQ 总线的上拉电阻。光耦采用非线性光耦 TPL5
29、21_1。图 3.5光耦隔离 ID读取控制部分电路将读取的 ID 号与电池的物理位置相对应是 ID读取要实现的功能。图 3.5 中 K2 按键为自锁按键。ID 读取时,不被读取的器件断开,只允许单个器件在线。不需要进行 ID 读取时,按键闭合,循环检测单节电池。配合图 3.6 所示按键实现 ID 读取功能。图 3.6按键山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统193.3 单片机系统与报警电路单片机采用凌阳十六位单片机,报警电路主要是用蜂鸣器实现,当采集数据显示需要报警时,单片机发出脉冲信号使得蜂鸣器报警。如图 3.7 所示。图 3.7单片机系统第 4章 蓄电池检测系统软件设
30、计4.1 ID 初始化程序源代码见附录,程序流程如图 4.1 所示:开始选择器件确定?读取 ID 号Skip=1?山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统20图 4.14.2 主循环程序图 4.2主循环程序当温度高于 50时系统报警提示,以便及时处理。当单节蓄电池检测所得电压低于 9.58V 时系统报警提示,表明该蓄电池需充电或替换。下图为某场生产的蓄电池电压与容量的对应值。循环显示开始显示 选择下一个器件作为显示对象读取电压温度电流电量十进制转化故障?显示报警结束山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统21图 4.3某厂 3种规格的电池检测对应表4.3
31、 DS2438采集程序图 4.4电量采集程序流程图(上图)开始复位应答?ROM 匹配复制 01 页至暂存器复位应答?ROM 匹配读取暂存器命令读取电量复位应答?ROM 匹配复制 07 页至暂存器复位应答?ROM 匹配读取 CCA DCA返回测量值开始复位复位应答?应答?ROM 匹配ROM 匹配转化温度复位应答?ROM 匹配读取暂存器命令山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统22图 4.5 温度电压电流采集程序流程图4.4 LCD显示效果显示效果如图 4.5 所示。图 4.6显示效果第 5章 总结与展望本蓄电池监控系统,实现了对蓄电池的数据采集与处理、并能够在液晶屏上显示。
32、当电池温度高于五十度或单节电压低于预置电压值(9.85)屏幕显示警告,并发出蜂鸣报警,提醒工作人员进行电池的更换。单节蓄电池容量的不均衡会造成基站掉站事故,如果控制充电装置对单节电池有的放矢的充放电则可以延长蓄电池的使用,使系统更加合理,有效。所以后续电池监测管理系统还可以加入充放电控制功能,现对课题完成的主要工作及成果总结如下:(1)完成了监测集成系统硬件和软件的设计,使系统能够按照预期的目标通过电压监测控制其充电程序。(2)数据采集器采用专用电池监测芯片DS2438和单片机为核心组成,实现数据的传输,复位应答?ROM 匹配转换电压复制 00 页至暂存器读取温度电压电流返回温度电压电流值山西
33、大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统23开发成本低,通信质量可靠。(3)本系统采用nSP集成开发环境,它集程序的编辑、编译、链接、调试以及仿真等功能为一体。具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使人们的编程、调试工作更加方便且高效。(4)全部程序均采用模块化设计思想,程序的注释和文档也比较充足,不仅在设计时结构清晰,易于检查和修改,而且为以后软件的维护和改进提供了方便。需要说明的是,尽管系统设计已经完成。但是由于时间以及经验的限制,研究中还存在诸多不足,该系统还有待进一步完善和深入研究:(1)进一步学习单总线技术理论,掌握单总线程序设计的思想和方法,在今
34、后的工作中能将其更灵活地运用。(2)深入学习单片机原理,在程序编写方向作深入研究。(3)了解蓄电池的在线监测手段。参考文献1肖秀玲、王贵明、王金灿基于DS2438芯片的电动车蓄电池在线监测系统制造业自动化V0124 No11 P15182002年11月2杨振江智能仪器与数据采集系统中的新器件及应用陕西:西安电子科技大学出版社20013沙占友、王彦朋、孟志永单片机外围电路设计北京:电子工业出版社20034Mark Nelson串行通信开发指南(第二版)中国水利水电出版社2001年3月5朱元、韩晓东电动汽车动力电池80C预测技术研究电源技术V0124 No3 J U n20 00P1531586韩
35、晓东、傅春江等判断电动车电池放电终止状态的新标准电池V0132 No2 p r200 2P 1171207郊航电动车电池电擞监测系统的研究与实现清华大学硕士学位论文1996年6月8胡汉才单片机原理及其接口技术清华大学出版社2001年1月9DS243 Smart Batery Monitr DALLAS SEMICONDUCTOR.10Altera FPGAACEXK Programmable Logic Device Family Datasheet2003311DaiY uewei,Caihu a,MoW ei ,WangS nirong, YangL inThe design and re
36、alization ofrealtime surveillance systemJounral of Shanhai Maritime University 20013山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统24附录1系统完整电路原理图(参见大图)2采集电路 PCB 图3. 总程序/=/ 工程名称: ds2438_1602.spj/ 组成文件: main.c/ISR.c/ds2438.c/=/=/ 文件名称: main.c/ 功能描述: 工程的主文件山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统25/=#include “ds2438_1602.h“#incl
37、ude “ds2438.h“#include “SPCE061A.h“#include “LCD1602_User.h“int IDs=0;int IDtem;int num=1;int skip=0;int IDu=0;float uiTemperature,uiVoltage,uiCurrent,uiICA,uiCCA,uiDCA;unsigned int Data_TVC3; unsigned int ACCU3; /0:ica 1:cca 2:dcaunsigned int ID_one8,ID_two8,ID_three8,ID_four8;#define Ah 3000 /单节电池
38、容量#define Vsingle 9.85 /单节电池能量不均衡电压 /=/ 语法格式: int main(void)/ 实现功能: 工程的主函数/=int main(void) unsigned int i;*P_SystemClock = 0x0018; /初始化,调整系统时钟 24.576MHz/1,强振模式*P_IOA_Attrib = 0xffff;*P_IOA_Dir = 0xfff8;*P_IOA_Data = 0x0000;*P_IOB_Attrib = 0xffff; /初始化 IOB 同相低电平输出口*P_IOB_Dir = 0xffff;*P_IOB_Data = 0x
39、0000;*P_TimerA_Ctrl=C_TMA1_4KHz; /定时器初始化 *P_INT_Ctrl =C_IRQ1_TMA; /定时器中断 *P_TimerA_Data=0xff88; /定时器初值 定时中断 30 秒LCD1602_Initial(); /调用初始化程序,包括进行端口初始化和 LCD初始化while(skip=0)inidisply(); int key,IDtemp;key=*P_IOA_Dataswitch(key)case 0x0001:if(num3 )num=1;else num+;break;case 0x0002:skip=1;break;case 0x0
40、004:for(i=0;50)Show_OT(); Bell(); break;case 2: while(uiVoltage9.85)Show_OV();Bell();break;/=/ 语法格式: void Bell(void)实现功能: 蜂鸣器报警器/=void Bell(void)*P_IOA_Data=0x0080;*P_IOA_Data=0x0000;return;/=/ 语法格式: void inidisplay()山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统27/=void inidisplay()unsignedint Data10 = 0x0030,0x00
41、31,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039;int i;LCD1602_Initial(); /调用初始化程序,包括进行端口初始化和 LCD 初始化Write_Command(0x0080); Write_Data(d);Write_Data(e);Write_Data(v);Write_Data( );Write_Data(Datanum);Write_Data( );Write_Data(s);Write_Data(k);Write_Data(i);Write_Data(p);Write_Data( );Write_
42、Data(o);Write_Data(k);Write_Data( );Write_Data( );Write_Command(0x00c0); /在第二行显示Write_Data(D);Write_Data(S);Write_Data(2);Write_Data(4);Write_Data(3);Write_Data(8);Write_Data(_);Write_Data(0);Write_Data(_);Write_Data(0);Write_Data(_);Write_Data(0);Write_Data(_);Write_Data(0);Write_Data(_);Write_Data
43、(_);Write_Command(0x0001);/=/ 语法格式: void Display(unsigned int)/ 实现功能: 显示,将温度显示在 1602 液晶屏上/=void Display(unsigned int uiData)unsigned int Data10 = 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039;float Tint,Vint,Cint,TDec,CDec,VDec;unsigned int uiResidue;Tint=uiTemperature;uiTBai
44、 = int(Tint)/100; /温度小数点前面部分uiResidue = Tint%100;Tint = uiResidue;uiTShi = Tint/10;uiResidue = Tint%10;uiTGe = uiResidue;TDec=uiTemperature;TDec=TDec*100000;TDec=TDec%100000;uiTShi_d = TDec/1000; uiResidue = TDec%1000;TDec = uiResidue;uiTBai_d = TDec/100;uiResidue = TDec%100;TDec = uiResidue;uiTQian
45、_d = TDec/10;uiTWan_d = TDec%10;/万分位Vint=uiVoltage;uiVShi = int(Vint)/10; /电压 uiVShi uiVGeuiResidue = Vint%10;uiVGe = uiResidue;VDec=uiVoltage;山西大学工程学院本科毕业论文:一种高性能的蓄电池监测管理系统28VDec=VDec*100; /电压小数 uiVShi_d uiVGe_dVDec=VDec%100;uiVShi_d=VDec/10;uiResidue=VDec%10;uiVBai_d=uiResidue;Cint=uiCurrent; /电流整
46、数部分 uiCBai uiCShi uiCGeuiCBai=int(Cint)/100;uiResidue=Cint%100;Cint=uiResidue;uiCShi=Cint/10;uiResidue=Cint%10;uiCGe=uiResidue;CDec=uiCurrent; /电流小数部分 uiCShi_d uiCBai_d uiCQian_d uiCWan_dCDec=CDec*10000;CDec=CDec%10000;uiCShi_d=CDec/1000;CDec=CDec%1000;uiCBai_d=CDec/100;uiCurrent=CDec%100;uiCQian_d=CDec/10;uiCWan_d=CDec%10;/显示Write_Command(0x0080); /设置显示地址 显示地址的对应问题Write_Data(D); /根据 data 显示,当 data5则显示为 5Write_Data(e);Write_Data(v);Write_Data(Datanum);Write_Data( );Write_Data(T);Write_D