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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

DS18B20的报告附带程序Word下载.docx

1、主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。 图1.1.364 位闪速ROM的结构如下:8bit检验CRC48bit序列号8bit工厂代码(10H)MSB LSB MSB LSB MSB LSB开始8位是产品类型的编号,接着共有48 位是DS18B20 唯一的序列号。最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。高速暂存存储器:高速暂存存储器由9个字节组成,其分配如图所示。高速暂存存储器字节01

2、 温度寄存器当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。温度值格式如下图:DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625。BIT15BIT11 是符号位,为了就是表示转换的值是正数还是负数。DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625LSB形式表示。表2是部分温度值对应的二进制温度表示数据。DS18B20温度与表示值对应表字节 23:TH 和TL配置

3、TH 与TL 就是所谓的温度最高界限,和温度最低界限的配置。字节 4:配置寄存器R1 与R0 位组合了四个不同的转换精度,00 为9 位转换精度而转换时间是93.75ms,01 为10 位转换精度而转换时间是187.5ms,10 为11 位转换精度而转换时间是375ms,11 为12 位转换精度而转换时间是750ms(默认)。DS18B20时序图:DS18B20 的复位时序如下:1.单片机拉低总线480us950us, 然后释放总线(拉高电平)。2.这时DS18B20 会拉低信号,大约60240us 表示应答。3.DS18B20 拉低电平的60240us 之间,单片机读取总线的电平,如果是低电

4、平,那么表示复位成功。4.DS18B20 拉低电平60240us 之后,会释放总线。DS18B20读写时序:DS18B20 写逻辑0 的步骤如下:1.单片机拉低电平大约1015us,。2.单片机持续拉低电平大约2045us 的时间。3.释放总线DS18B20 写逻辑1 的步骤如下:2.单片机拉高电平大约2045us 的时间。DS18B20 读逻辑0 的步骤如下:1.在读取的时候单片机拉低电平大约1us2.单片机释放总线,然后读取总线电平。3.这时候DS18B20 会拉低电平。4.读取电平过后,延迟大约4045 微妙DS18B20 读逻辑1 的步骤如下:3.这时候DS18B20 会拉高电平。DS

5、18B20温度计C程序/使用AT89s52单片机,12MHZ晶振,用共阳LED数码管/P0口输出段码,P2口扫描/#pragma src(d:aa.asm)#include reg51.hintrins.h /_nop_();延时函数用#define Disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /温度输入口sbit DIN=P07; /LED小数点控制uint h;/*温度小数部分用查表法*/uchar code ditab16=0

6、x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf;/* 共阳LED段码表 0 123456789不亮- */ uchar code scan_con4=0xef,0xdf,0xbf,0x7f; / 列扫描控制字uchar data temp_data2=0x00,0x00; / 读出温度暂放uchar data display5=0

7、x00,0x00,0x00,0x00,0x00;/显示单元数据,共4个数据,一个运算暂存用/*11微秒延时函数*/void delay(uint t)for(;t0;t-);/*显示扫描函数*/scan()char k; for(k=0;k i-) /DQ = 0;/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1);/*18B20读1个字节函数*/从总线上读取一个字节uchar read_byte(void)uchar value = 0;ii-)value=1; /4us /4us if(DQ)val

8、ue|=0x80;return(value);/*读出温度函数*/read_temp()ow_reset(); /总线复位write_byte(0xCC); / 发Skip ROM命令write_byte(0xBE); / 发读命令temp_data0=read_byte(); /温度低8位temp_data1=read_byte(); /温度高8位 / Skip ROMwrite_byte(0x44); / 发转换命令/*温度数据处理函数*/work_temp()uchar n=0;if(temp_data1127) temp_data1=(256-temp_data1);temp_data

9、0=(256-temp_data0);n=1;/负温度求补码display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4);display3=display4/100;display1=display4%100;display2=display1/10;display1=display1%10;if(!display3)display3=0x0A;display2)display2=0x0A;/最高位为0时都不显示if(n)display3=0x0B;/负温度时最高位显示/ /*主函数*/main()Disdata=0xff; /初始化端口for(h=0;hh+)displayh=8;/开机显示8888 / 开机先转换一次

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

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