ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:21.03KB ,
资源ID:4057469      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4057469.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DS18B20单总线多点式测温系统资料讲解.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DS18B20单总线多点式测温系统资料讲解.docx

1、DS18B20单总线多点式测温系统资料讲解DS18B20单总线多点式测温系统DS18B20单总线多点式测温系统1(2011-01-15 19:53:40) 转载标签: ds18b20多点测量分类: DS18B20 主文件:#include#includeunsigned int shu=0x30,0x31,0x32,0x33,0x34,0X35,0x36,0x37,0x38,0x39;unsigned long t; void flcd_1602() /当为负温度时,液晶显示可以高位为0屏蔽. init(0x80);write_data(0x4e);/NO init(0x81);write_d

2、ata(0x4f); init(0x82);write_data(0x80); init(0x85);write_data(0x74);/temperature init(0x86);write_data(0x65); init(0x87);write_data(0x6d); init(0x88);write_data(0x70); init(0x89);write_data(0x65); init(0x8a);write_data(0x72); init(0x8b);write_data(0x61); init(0x8c);write_data(0x74); init(0x8d);write

3、_data(0x75); init(0x8e);write_data(0x72); init(0x8f);write_data(0x65); init(0xc0);write_data(0x80); init(0xc1);write_data(0x80); init(0xc2);write_data(0x69); /is: init(0xc3);write_data(0x73); init(0xc4);write_data(0x3a);if(t/1000)!=0)init(0xc5);write_data(0x2d); init(0xc6);write_data(shut/1000); ini

4、t(0xc7);write_data(shut/100);elseinit(0xc5);write_data(0xfe); init(0xc6);write_data(0x2d); init(0xc7);write_data(shut/100);init(0xc8);write_data(0x2e); init(0xc9);write_data(shu(t0)/10);init(0xca);write_data(shut);init(0xcb);write_data(0x27);init(0xcc);write_data(0x43);init(0xcd);write_data(0x80);in

5、it(0xce);write_data(0x80);init(0xcf);write_data(0x80);void lcd_1602() /当为正温度时,液晶显示可以高位为0屏蔽. init(0x80);write_data(0x4e);/NO init(0x81);write_data(0x4f); init(0x82);write_data(0x80); init(0x84);write_data(0x80); init(0x85);write_data(0x74); /temperature init(0x86);write_data(0x65); init(0x87);write_d

6、ata(0x6d); init(0x88);write_data(0x70); init(0x89);write_data(0x65); init(0x8a);write_data(0x72); init(0x8b);write_data(0x61); init(0x8c);write_data(0x74); init(0x8d);write_data(0x75); init(0x8e);write_data(0x72); init(0x8f);write_data(0x65); init(0xc0);write_data(0x80); init(0xc1);write_data(0x80);

7、 init(0xc2);write_data(0x69); /is: init(0xc3);write_data(0x73); init(0xc4);write_data(0x3a); if(t/10000!=0)init(0xc5);write_data(shut/10000); init(0xc6);write_data(shut/1000); init(0xc7);write_data(shut/100); else if(t/1000)!=0) init(0xc5);write_data(0xfe); init(0xc6);write_data(shut/1000); init(0xc

8、7);write_data(shut/100); else init(0xc5);write_data(0xfe); init(0xc6);write_data(0xfe); init(0xc7);write_data(shut/100); init(0xc8);write_data(0x2e);init(0xc9);write_data(shu(t0)/10);init(0xca);write_data(shut);init(0xcb);write_data(0x27);init(0xcc);write_data(0x43);init(0xcd);write_data(0x80);init(

9、0xce);write_data(0x80);init(0xcf);write_data(0x80);void jiance() /初始化,即检测是否存在DS18B20.unsigned char k=0; loop:DS=1; DS=0; /主机将总线从高电平拉到低电平 del(100); /持续400us960us DS=1; /然后释放总线 del(10); /DS18B20检测到总线上升沿后,等待15us60u后发低电平。 k=DS; del(20); /低电平至少要持续60240us if(k=1) / 60240us内若为高电平则要重新检测。 goto loop;read() /从

10、DS18B20中读出数据 unsigned char i; unsigned long date=0; for(i=0;i=1;DS=1; del(3); /保持15us将总线拉到高电平,产生读时间隙 if(DS) date|=0x8000; del(8); /读数据需要持续35us60us. return(date);void main() unsigned long flag=0; EA=0; SP=0X60; init(0x01); /对液晶屏初始化 init(0x38); init(0x0c); init(0x06); while(1) jiance(); /对DS18B20初始化 m

11、atchrom(); write(0x44); /启动温度变换del(100); jiance(); matchrom(); if(f=1) f=0; else write(0xbe); / 读暂存存储器 t=read(); flag=t&0x8000; /对读取的数据进行处理 if(flag=0x8000) t=t; t=t+1; t=t*25; t=2; flcd_1602(); else t=t*25; t=2; lcd_1602(); 头文件:#include#ifndef _XUANZE_H_#define _XUANZE_H_unsigned char k,f=0;sbit RS=

12、P20;sbit RW=P21;sbit E=P22;sbit DS=P11;void del( int count ) /延时程序while(count-) ;void delay(unsigned int count)/延时程序int p;while(count-)for(p=0;p125;p+);void write(unsigned char date)/向DS18B20中写入数据 int i; for(i=0;i=1; void init(unsigned int n)/ RW=0,RS=0;向指令寄存器中写入命令,即对1602初始化。 delay(10); E=0; RS=0; R

13、W=0; E=1; P0=n; E=0;void write_data(unsigned char n)/RS=1,RW=0;向数据寄存器中写入数据,即显示的数符。delay(10); E=0;RS=1;RW=0;E=1;P0=n; E=0; void matchrom()/匹配ROM k=P3; switch(k) case 0: f=1; init(0x80);write_data(0x57);/which init(0x81);write_data(0x68); init(0x82);write_data(0x69); init(0x83);write_data(0x63); init(

14、0x84);write_data(0x68); init(0x85);write_data(0x80); init(0x86);write_data(0x4e);/NO init(0x87);write_data(0x4f); init(0x88);write_data(0x79);/you init(0x89);write_data(0x6f); init(0x8a);write_data(0x75); init(0x8b);write_data(0x80); init(0x8c);write_data(0x57);/want init(0x8d);write_data(0x61); ini

15、t(0x8e);write_data(0x6e); init(0x8f);write_data(0x74); init(0xc0);write_data(0x70); /press init(0xc1);write_data(0x72); init(0xc2);write_data(0x65); init(0xc3);write_data(0x73); init(0xc4);write_data(0x73); init(0xc5);write_data(0x80); init(0xc6);write_data(0x57);/which init(0xc7);write_data(0x68);

16、init(0xc8);write_data(0x69); init(0xc9);write_data(0x63); init(0xca);write_data(0x68); init(0xcb);write_data(0x80); init(0xcc);write_data(0x6b);/key init(0xcd);write_data(0x65); init(0xce);write_data(0x79); init(0xcf);write_data(0x80); break; case 1: init(0x83);write_data(0x31);/NO 1 write(0x55); wr

17、ite(0x28); write(0x30); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0x8e); break; case 2: init(0x83);write_data(0x32);/NO 2 write(0x55); write(0x28); write(0x31); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0xb9); break; case 4: init(0x83);write_

18、data(0x33); /NO 3 write(0x55); write(0x28); write(0x32); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0xe0); break; case 8: init(0x83);write_data(0x34); /NO 4 write(0x55); write(0x28); write(0x33); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0xd7)

19、; break; case 16: init(0x83);write_data(0x35); /NO 5 write(0x55); write(0x28); write(0x34); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0x52); break; case 32: init(0x83);write_data(0x36);/ NO 6 write(0x55); write(0x28); write(0x35); write(0xc5); write(0xb8); write(0x00); w

20、rite(0x00); write(0x00); write(0x65); break; case 64: init(0x83);write_data(0x37); /NO 7 write(0x55); write(0x28); write(0x36); write(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0x3c); break; case 128: init(0x83); write_data(0x38);/NO 8 write(0x55); write(0x28); write(0x37); wri

21、te(0xc5); write(0xb8); write(0x00); write(0x00); write(0x00); write(0x0b); break; default: f=1; init(0x80);write_data(0x50); /please init(0x81);write_data(0x6c); init(0x82);write_data(0x65); init(0x83);write_data(0x61); init(0x84);write_data(0x73); init(0x85);write_data(0x65); init(0x86);write_data(

22、0x80); init(0x87);write_data(0x70); /press init(0x88);write_data(0x72); init(0x89);write_data(0x65); init(0x8a);write_data(0x73); init(0x8b);write_data(0x73); init(0x8c);write_data(0x80); init(0x8d);write_data(0x6f); /one init(0x8e);write_data(0x6e); init(0x8f);write_data(0x65); init(0xc0);write_data(0x80); init(0xc1);write_data(0x80); init(0xc2);write_data(0x80); init(0xc3);write_data(0x6b);/key init(0xc4);write_data(0x65); init(0xc5);write_data(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1