教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

单片机控制的恒温箱的设计(10)

来源:网络收集 时间:2026-08-26
导读: ds18b20_writeByte(0xcc); //写指令:跳过rom检测 ds18b20_writeByte(0x44); //写指令:温度转换 //delayms(750);// 转换延时需要750ms以上,我们不等它 //首次转换未完成时,得到的初始化数据是85度,处理一下就可以了

ds18b20_writeByte(0xcc); //写指令:跳过rom检测 ds18b20_writeByte(0x44); //写指令:温度转换 //delayms(750);// 转换延时需要750ms以上,我们不等它

//首次转换未完成时,得到的初始化数据是85度,处理一下就可以了 //温度转换电路是硬件独立的,不会阻塞初始化功能 if(ds18b20_init()) {

ds18b20_writeByte(0xcc); //写指令:跳过检测rom ds18b20_writeByte(0xbe); //写指令:读取温度值 temp=ds18b20_readByte(); //先读低8位数据

temp|=(uint)ds18b20_readByte()<<8; //再读高8位数据,然后合并

temp&= 0x0FFF; //高4位数据反正没用上,我们用来存放错误码

} }

return temp; }

uchar ds18b20_init() //初始化 {

uchar checkState=0;

DQ=1; //总线初始状态 _nop_();_nop_();

DQ=0; //mcu先将总线拉低

delayXus(80); //延时530us,要求480us~960us的低电平信号

//当ic接受到此复位信号后会回发一个存在信号 //mcu若要接收此存在信号则先要释放总线,让ic控制该总线

//当mcu释放总线后的15~60us之后,ic才向总线发一个低电平信号

//该信号存在时间为60~240us DQ=1; //mcu释放总线

delayXus(10); //mcu释放15~60us以上,(8+6*10)*1.085=73us, //这时DS18B20已经拉低信号,大约60~240us应答保持时间,

checkState=DQ; //在这段60~240us时间内,mcu采样是否有器件响应,0表示有响应

delayXus(70); //延时464us,加上之前的73us,共537us

//虽然ic在拉低电平60~240us之后,会释放总线,但整个时间至少480us

//故我们共用时537us,这样是为了不影响后续的操作

return 1; //初始化成功 }

单片机控制的恒温箱的设计(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444099.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)