- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 单片机应用设计;11.1基于DS18B20设计数字温度计(1—Wire总线);引脚说明;DS18B20数据输出格式及温度计算DS18B20读出的温度结果为2字节,读数以16位,符号扩展的二进制补码读数形式提供。所以需要把补码转换为原码,才能计算出真实的温度值。这2个字节的数据格式如图11-2所示。;高8位前5位为符号位,表示温度是零上还是零下。高8位后三位和低8位中的高四位构成温度的整数部分。低2位的后四位为温度的小数部分。
正温度原码就是补码的本身,在12位分辨率的情况下:
温度值 = 读取值 x 0.0625
负温度原码是补码减一取反。在12位分辨率的情况下。
温度值 = -(读取值减一再取反)x 0.0625
;注意:DS18B20上电复位时的温度值固定为+85℃.;DS18B20相关操作指令集合;软件设计;DS18B20初始化程序如下。
/********************************************************
*函数名 :Ds18b20Init
*函数功能 :DS18B20初始化
*输入 :无
*输出 :初始化成功,返回1;初始化失败,返回0
********************************************************/
bit Ds18b20Init(void){
bit flag;
DQ = 1; //先将总线拉高,保持主从同步
for(time = 0 ; time 2;time++); // 短暂延时保持稳定
DQ = 0; //拉低总线
for(time = 0 ; time 200;time++);//总线低电平保持时间为480~960us
DQ = 1; //释放总线
for(time = 0 ; time 10;time++);//释放总线后让DS18B20等待15~60us
flag=DQ;
for(time = 0 ; time 100;time++);
DQ=1;
return flag; //初始化标志位 0:初始化成功 1:初始化失败
}
;向DS18B20写入1字节数据
如图11-6向DS18B20写时序图,从时序图我们可以看出写周期时间范围为60~120us。进行写操作时先把总线电平拉低,表示写周期开始,写操作一共分为两种,一种写“0”操作,另一种写“1”操作。DS18B20的采样周期为15~45us。
写“0”操作:先将总线置为低电平保持15us,并在随后的45us时间段内DS18B20开始对总线电平进行采样,45us过后采样结束,写周期结束后释放总线。
写“1”操作:先将总线置为低点平保持至少1us,随后恢复总线置为高电平,15us过后DS18B20在45us时间段内开始对总线进行采样,写周期结束后释放总线。
;DS18B20向DS18B20写入1字节数据程序如下。
/********************************************************
*函数功能 :向DS18B20写入1字节
*输入 :data
void Ds18b20WriteByte( unsigned char data)
{
unsigned char i;
DQ = 1; //先将总线拉高,保持主从同步
for(time = 0 ; time 2;time++); // 短暂延时保持稳定
for( i = 0; i 8 ; i++ )
{
DQ = 0; //总线置为低电平
_nop_(); //低电平保持至少1us
DQ = data 0x01 ; //开始写入第一位数据,从低位开始
for(time = 0 ; time 20;time++); //DS18B20采样时间不能少于45us
DQ = 1; //释放总线
for(time = 0 ; time 1;time++);
data=1; //数据右移一位,最高位补零
}
for(time = 0 ; time 1;time++);
}
;从DS18B20读出1字节数据
如图11-7从DS18B20读时序图。读周期期开始时,主机就要把总线电平拉低1us或2us,随后就得释放总线,在15us时范围内DS18B20把一位数据传送到总线上,因此主机必须在2~15us范围内对总线进行采样,15us后采样结束,直到读周期结束,释放总线,开始下一位数据传输。
;从DS18B20读出1字节数据程序如下。
unsigned char Ds18b20ReadByte( void)
{ unsigned char i,data;
DQ = 1; //先将总线拉高,
您可能关注的文档
最近下载
- 技能大赛视角下高职院校会计专业人才培养模式研究-来源:财会学习(第2018024期)-《中国建材报》社、中国会计学会建材分会.pdf VIP
- (驾驶证)科目一、科目四理论考试考试题库(必威体育精装版完整版含答案).docx VIP
- 2023年高考物理真题:浙江卷物理真题(6月)及答案.pdf VIP
- 2023年高考物理真题:山东卷物理真题及答案.docx VIP
- 医保科降低医保诊疗项目超限定范围违规数量持续改进案例PDCA.pptx
- 智能物流概述.ppt
- 【高考真题】浙江省2024年1月普通高校招生选考化学试题+答案.docx VIP
- 守正创新逐梦新时代.pptx VIP
- 2024人教版PEP英语三年级上册Unit 6 Useful numbers新课标单元整体教学设计.docx
- 2023年高考物理真题:湖北卷物理真题及答案.pdf VIP
文档评论(0)