新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于MATLAB的蓄电池充放电监测系统

基于MATLAB的蓄电池充放电监测系统

作者:时间:2012-03-07来源:网络收藏

其中A/D转换比较简单,不再赘述。主要注意一点,启动A/D后要等待转换完成再读结果,否则读出的是将上次转换结果。
e.jpg
f.jpg
3.2 DS18B20程序
DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。DS18B20的操作时序如图5所示。从时序图中可以得出,DS18B20对操作时序要求比较严格,否则将导致操作失败。

本文引用地址:http://www.eepw.com.cn/article/177783.htm

g.jpg


根据时序图所示,每读一位数据需要60us延时,为了延时精确,采用的方法是查看汇编语言,计算需要加入的空指令(NOP)个数。
根据时序要求编写代码后,有如下统计,启动温度转换时间约为2.5ms,读温度时间约为10.25ms,这些时间量都远小于一个时间片(20ms)的长度,符合要求。为达到12位精度,器件手册要求两次启动温度转换时间问隔不得低于750ms。温度采集1s一次可以实现。读取温度任务流程图如图6所示。

h.jpg


图6中,SenseNo是指DS18B20的序号,SENSE CNT为器件总数。读取不同DS18B20的方法是器件自身的ID,这个ID可以通过程序读出,但较为繁琐。为了减轻程序的负担,我们事先通过其他方式读出每个器件的ID,读温度时直接使用,简化了任务。



评论


相关推荐

技术专区

关闭