- 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; //先将总线拉高,
您可能关注的文档
- 《基础化学》课件—06认识电解质溶液.ppt
- 《基础化学》课件—07认识重要烃类.ppt
- 《基础化学》课件—08-烃的衍生物.ppt
- 《基础化学》课件—09生命活动的物质基础.ppt
- 《基础图案》教学课件—02中国传统吉祥图案意味.pptx
- 《基础图案》教学课件—03图案的构图原理及形式美法则.ppt
- 《基础图案》教学课件—04图案的写生与变化.ppt
- 《基础图案》教学课件—07装饰图案色彩.ppt
- 《基础写作训练教程》课件—记事作文.pptx
- 《基础写作训练教程》课件—看图作文.pptx
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)