基于C語言和汇编语言混合编程的蓄电池在线测试仪.doc

基于C語言和汇编语言混合编程的蓄电池在线测试仪.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于C語言和汇编语言混合编程的蓄电池在线测试仪

基于C语言和汇编语言混合编程的蓄电池在线测试仪 文章发表于:2007-10-24 22:58 摘要:文章介绍了C语言与汇编语言之间的混合编程,开发了一个基于AT89C52单片机的蓄电池在线测试仪,重点介绍了系统的硬件组成和软件设计。系统具有方便、可靠、高精度等特点。 关键词:C语言; 汇编语言; 单片机; 蓄电池; 在线测试 1、C语言和汇编语言的混合编程 ??? 单片机用C语言编程具有开发周期短、可读性强、可移植性好和修改方便等特点,但是C语言反汇编生成的汇编代码往往较长。直接用汇编语言编程虽然编写的程序较短,在直接对机器配件进行控制方面具有相当的优势,但是开发周期长,修改也不方便。较好的解决办法是程序的框架或主体部分用C语言编写,要求执行效率高的部分用汇编语言编写。这种混合编程的方法将C语言和汇编语言的优点结合起来,所以成为目前单片机开发最流行的编程方法。 ??? 在把汇编语言程序加入到C语言程序中之前,必须使汇编程序和C程序一样具有明确的边界、参数、返回值和局部变量,必须为汇编语言编写的程序段指定段名并进行定义,如果要在它们之间传递参数,则必须保证汇编程序用来传递参数的存储区和C函数使用的存储区是一样的。 ??? 在C语言中使用汇编语言有两种情况:一种是嵌入式汇编,即在C语言程序中嵌入一段汇编语言程序。另一种是汇编程序部分和C程序部分分别为不同的模块,或不同的文件,通常由C程序模块调用汇编程序模块的变量和函数,这其中的关键问题在于C函数与汇编函数之间的参数传递,C语言中有两种参数传递方法:通过寄存器传递和通过固定存储区传递。 2、系统简介 ??? 蓄电池作为辅助供电装置,在航天、军工、通信、电力、金融等领域应用广泛。由于电池本身的设计、生产工艺及使用维护等原因,电池失效现象时有发生,严重影响了系统的正常运行。为保证系统的安全、正常运转,必须要对蓄电池的状况进行检测。 ??? 蓄电池检测的方法很多,主要有如下几种:密度法、开路电压法、放电法和阻抗检测法。阻抗检测法是目前在世界范围内认知度最高的蓄电池检测方法,得到了IEEE蓄电池组和INTELC国际通讯电源会议的认可,并在IEEEstd1188-1996中推荐使用。本文中的蓄电池在线测试系统主要也是采用了这种方法,同时测量蓄电池的端电压和温度,实现对蓄电池的在线检测。 2.1系统硬件结构设计 ??? 系统硬件结构框图如图1所示: ??? 系统采用AT89C52作为控制芯片,它内置8KROM和256字节的RAM,不用扩展ROM和RAM, P2口直接作为I/O口使用,使单片机外围电路大大减少。交流信号发生器利用运放LM358产生100HZ的低频交流信号,通过音频功放LM386对蓄电池进行耦合驱动。温度采集电路中采用的传感器是AD590。在内阻和端电压测试模块中,交流电流和电压信号较弱,因此在交流通道前端采用高精度的仪表放大器AD622对信号进行放大,低通滤波后,通过真均方根值-直流转换器AD736,将交流信号转换为直流信号。蓄电池的端电压经高精度电阻分压后,与温度采集值和交流信号的有效值一起进入数据采集模块。液显采用的是GDM12864E,它内嵌ST7920型中文字型点阵LCD控制/驱动器,接口简单,使用方便。电源部分采用了高效率的升压直流转换芯片MAX1675,通过两节5号电池供电,升压到+5V。采用MAX660实现+5V到-5V的转换,为系统提供负电源。 ??? 因为系统需要采集多路不同性质的信号,数据采集模块是系统硬件设计中的一个关键,包括前端调理电路和多路采集电路,其中多路采集电路具体电路如图2所示。CD4051是八选一模拟开关;MAX1240是一种新型的12位串行输出模数转换器,功耗低,转换速度快,15μs便可完成一次转换,并且外部只有八个管脚,占用电路板面积小。系统中利用三个I/O口实现数据的串行输入,因为MAX1240在数据传输时对时序要求较高,在软件设计中采用汇编语言实现对MAX1240的控制和数据采集。 ??? 硬件工作基本过程:交流信号发生器产生固定频率的正弦交流信号,作为内阻和端电压测试模块测量蓄电池交流内阻时的驱动信号; 温度测试模块直接测量蓄电池的温度; 内阻和端电压测试模块测量蓄电池的端电压、交流信号通过蓄电池时的电流和在蓄电池两端产生的交流电压,以及交流电流与交流电压之间的相移角,其中交流电流值通过采样电阻获得; 数据采集模块将蓄电池温度、端电压、交流电流和交流电压值模数转换后输入计算机,交流电流与电压之间的相移角通过调理电路转换为方波信号,利用单片机的INT1口直接进行采集; 单片机系统利用蓄电池内阻计算公式计算出蓄电池的交流内阻,将蓄电池的端电压、温度、交流内阻等参数在LCD上显示; 按键部分则实现人机交互。 2.2 系统软件设计

文档评论(0)

fglgf11gf21gI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档