DS18B20--避免盲目关中断(750ms之间是可以处理中断的)

引言:单线总线系统包括一个总线控制器和一个或多个从机。

DS18B20是单总线通信器件,现在我们只讨论点对点的控制---通过一个DS18B20测得温度值

****先引述一个至关重要的问题:温度转换750ms的时间单片机是可以干其他事情的,比如说处理中断,温度转换是DS18B20自己的事情,但是以下四条指令绝对不能被中断:

Write_DS18B20(0xcc); //忽略地址
Write_DS18B20(0xbe);  //读取温度数据命令;
	
LSB = Read_DS18B20(); //读取低八位(EEPROM的第0字节)
MSB = Read_DS18B20(); //读取高八位(EEPROM的第1字节)

(注:读写一个字节的数据大概几十微秒,相比750ms以及很好了)

       这是理论上的操作,实际操作过程中,我们其实不需要关中断,因为一直在重复执行温度测量的函数,就算一次没有成功,多测几次就行(实测有效)。实际上对时间要求不是特别高的程序来说,整个发送指令到温度数据传回单片机的过程是不需要延时的,(初始化等要求时序的步骤还是要精确延时),如果是对温度采集时间要求很高的项目,也不会用ds18b20,毕竟750ms的温度转换时间。。。。。。

首先,我们要知道它的原理以及它的内部结构:

1.***EEPROM :由两个字节组成,TL,TH,分别是温度下限和温度上限(都是用户字节);

2.高速暂存器(RAM):第0,1字节为温度数据的低八位和高八位,第2,3字节为从EEPROM的TL 和 TH 复制过来的温度下限和温度上限;

(未完待续);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值