DS18b20温度传感器教学文案.doc

上传人:1595****071 文档编号:51578235 上传时间:2022-10-18 格式:DOC 页数:8 大小:134.50KB
返回 下载 相关 举报
DS18b20温度传感器教学文案.doc_第1页
第1页 / 共8页
DS18b20温度传感器教学文案.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《DS18b20温度传感器教学文案.doc》由会员分享,可在线阅读,更多相关《DS18b20温度传感器教学文案.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。DS18b20温度传感器-最小的温度显示程序-c51(2010-12-0700:45:27)转载标签:杂谈分类:51单片机#include#includesbitDQ=P20;bitpresence;unsignedchartempl,temph;chararray10=0x7e,0x48,0x3d,0x6d,0x4b,0x67,0x73,0x4c,0x7f,0x4f;voidDelay(unsignedintnum)/可定义延时while(-num);bitInit_DS18B20(void)DQ=1

2、;/DQ复位Delay(8);/稍做延时DQ=0;/单片机将DQ拉低Delay(90);/精确延时大于480usDQ=1;/拉高总线Delay(8);presence=DQ;/如果=0则初始化成功=1则初始化失败Delay(100);DQ=1;return(presence);/返回信号,0=presence,1=nopresenceunsignedintReadOneChar(void)unsignedchari=0;unsignedchardat=0;for(i=8;i0;i-)DQ=0;/给脉冲信号dat=1;/位右移DQ=1;/给脉冲信号等待传感器返回脉冲if(DQ)dat|=0x80

3、;Delay(4);return(dat);voidWriteOneChar(unsignedchardat)unsignedchari=0;for(i=8;i0;i-)DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat=1;voidRead_Temperature(void)Init_DS18B20();WriteOneChar(0xcc);/跳过读序号列号的操作WriteOneChar(0x44);/启动温度转换Init_DS18B20();WriteOneChar(0xCC);/跳过读序号列号的操作WriteOneChar(0xBE);/读取温度寄存器templ=Rea

4、dOneChar();/温度低8位temph=ReadOneChar();/温度高8位voidmain()floattemp;chara;Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);/启动温度转换Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);/读取温度寄存器templ=ReadOneChar();/温度低8位temph=ReadOneChar();/温度高8位temph&=0x07;temp=(templ4)|(temph4);temp+=(templ&0x0f)*0.06

5、25;a=temp/10;P1=arraya;a=temp-10*a;P0=arraya;/*DS18b20温度传感器p3.4作为数据传输口晶振:11.0592M*/#includesbitDQ=P34;inttemperature;voiddelay(intus)ints;for(s=0;sus;s+);voidrst(void)DQ=1;delay(2);DQ=0;delay(30);/精确延时480960usDQ=1;delay(8);unsignedintread(void)inti=0;unsignedintu=0;for(i=0;i=1;DQ=1;if(DQ)u|=0x8000;d

6、elay(4);return(u);voidwrite(unsignedcharku)inti=0;for(i=0;i=1;voidread0(void)/inttemperature;unsignedinttp;unsignedintlsb;rst();write(0xCC);write(0x44);rst();write(0xCC);write(0xBE);tp=read();lsb=(unsignedint)(tp*6.25);/temperature=lsb/100;voidmain(void)while(1)read0();/读温度子程序读到的温度放在全局变量temperature中可以直接显示这个的内容-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁