ds18b2详解及程序(活动za)_第1页
ds18b2详解及程序(活动za)_第2页
ds18b2详解及程序(活动za)_第3页
ds18b2详解及程序(活动za)_第4页
ds18b2详解及程序(活动za)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、最近都在学习和写单片机的程序,今天有空又模仿温度测量显示实验写了一个与基于单总线通信的程序.数字温度传感器(参考:智能温度传感器的原理与应用)是公司生产的一,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度 计。产品的特点:()、只要求一个口即可实现通信。()、在中的每个器件上都有独一无二的序列号。()、实际应用中不需要外部任何元器件即可实现测温。()、测量温度范围在一到十之间;在 范围内误差为;()、数字温度计的分辨率用户可以从位到位选择。将位的温度值转换为数字量所需进度不超过;()、内部有温度上、下限告警设置。引脚分

2、布图E1E3EIE1NCNC,DD凶VE1E3EIE1NCNC,DD凶VDS18B20NCNCNCGNEJEIEJE1详细引脚功能描述:、地信号。、数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下,此引脚可以向器件提供电源。漏极开路,常 太下高电平.通常要求外接一个约C的上拉电阻.、可选择的弓I脚。电压范围;当工作于寄生电源时,此引脚必须接地。存储器结构图中间结果暂存RAM字节海帝侑低位字节0非易失性电可擦除RAM温渔仙岛位?节1TH:用户使用字节1TH;用户使用字节1TU用户使用字邛231W用户使用字节2配置字节4配簧字节俣司宇节5保宙学节6保例字节7CRC字节X暂存储器的头两个字节为

3、测得温度信息的低位和高位字节; 第,字节是和的易失性拷贝,在每次电复位时都会被刷新; 第字节是配置寄存器的易失性拷贝,同样在电复位时被刷新; 第字节是前面个字节的检验值.配置寄存器的命令内容如下:改进代码:扩大测量范围,使可测量范围为:度 度,严格按照上面的进程安排进行软件设计 修正()函数中的下一位显示对上一位的影响田目改进代码 要用到取绝对值函数。通过测试当前环境温度,并通过数码管显示当前温度值,目前显示范围:度人;数码管位选人;数码管段选人. 1数码管的编码(共阴极)日田口国L ;数码管的编码(共阴极),带小数点日田口目,L ,延时函数,对于时钟,例,那么大概延时.()日到I 0帕臼(I

4、 (;);产生一个上升沿,进入等待应答状态I0;();检测到应答脉冲I ;();向读取一位数据读一位,让一小周期低电平,然后两小周期高电平, 之后那么会输出持续一段进度的一位数据0eie!同;延时约,符合协议要求至少保持;延时约,符合协议要求的至少延时以上();延时约,符合读时隙不低于要求 f L读取一字节数据,通过调用()来实现0日I (; ;)由由闻I 0;最先读出的是最低位数据( );卜 ,向写入一字节数据()日I (; ;写“:将拉低后,在内将拉高,即完成写I 0由由 国 /I;拉低约,符号要求内;();延时约,符合写时隙不低于耍求?写”。将拉低由由 目 fI;();拉低约,符号要求I

5、;整个写时隙过程已经超过,这里就不用像写那样,再延时了卜卜向发送温度转换命令 ();初始化,无论什么命令,首先都要发起初始化();等待应答I (); 延时,因为会拉低作为应答信号I ();写入跳过序列号命令字I ();写入温度转换命令字向发送读取数据命令 日I 0;I 0;I 0;();写入跳过序列号命令字I ();写入读取数据令字L获取当前温度值0日田|_曰I ;I ;存放温度数值0;连续读取两个字节数据0;0;将高低两个字节合成一个整形变量计算机中对于负数是利用补码来表示的假设是负值,读取出来的数值是用补码表示的,可直接赋值给型的使用的默认分辨率位,精确度为度,即读回数据的最低位代表度*

6、-将它放大倍,使显示时可显示小数点后两位,并对小数点后第三进行舍入 如,进行计数后,得到,即度如,进行计数后,得到,即度* (?:);大于加,小于减;动态扫描的进度间隔显示当前温度值,精确到小数点后一位假设先位选再段选,由于口默认输出高电平,所以领先位选会使数码管出现乱码() 日田I同白由凤,I 0;I ;()关位选,去除对上一位的影响;翻开锁存,给它一个下降沿量段选;显示“”号;翻开锁存,给它一个下降沿量 位选 ;翻开锁存,给它一个下降沿量0;卜(;)关位选,去除对上一位的影响;翻开锁存,给它一个下降沿量7段选()*()()()II;当最高位为时.,不作显示I卜*1;显示数字卜I 加 区I;

7、显示带小数点数字卜I;翻开锁存,给它一个下降沿量I;I I位选I(,);选择第()个数码管I;翻开锁存,给它一个下降沿量。同;E。同;EI 0由由国I启动温度转换I 0;I 显示次(; 0 )响应:检测到该上升沿后,延时,通过拉低总线来产生应答脉冲.:()()接收响应:主机接收到从机的应答脉冲后,说明有单线器件在线.至此,初始化完成.内存操作命令在成功乃行操W命令后,才可使用内存操作命令,共有种内存操作命令: 命令类命令命令类 型命令 字节功能写暂存 器写暂存器中地址地址的个字节(和配置寄存器)在发起复位脉冲之前个字节都必须要写.读暂存 器读取暂存器内容,从字节一直到字节,共个字节,主机可随时

8、发起复位脉冲,停止此操作,通常我们只 需读前个字节.复制暂 存器将暂存器中的内容复制进,以便将温度告警触发字节存入非易失内存.如果此命令后主机产生读 时隙,那么只要器件还在进行复制都会输出,复制完成后输出.温度转 换开始温度转换操作,假设在此命令后主机产生时隙,那么只要器件还在进行温度转换就会输出,转 换完成后输出.重调暂 存器将存储在中的温度告警触发值和配置寄存器值重新拷贝到暂存器中,此操作在加电时自动产生.读供电 方式主机发起此命令后每个读数时隙内会发信号通知它的供电方式寄生电源,外部供电.,操作命令当主机检测到应答脉冲,便可发起操作命令,共有类操作命令,如下表命令类 型命令 字节功能读读

9、取激光中的位,只能用于总线上单个器件情况,多挂时会发生数据冲突匹配此命令后跟位序列号,寻址多挂总线上的对应,只有序列号完全匹配的才能响应后面的内存操作命 令,其他不匹配的将等待复位脉冲,可用于单挂或多挂两种情况.跳过可无须提供位序列号即可运行内存操作命令,只能用于单挂.搜索通过一个排除法过程,识别出总线上所有器件的序列号告警搜 索命令进程安排与相同,但只有最近的一次温度测量时满足了告警触发条件的,才会响应此命令.,数据处理要求有严格的时序来保证数据的完整性.在单线上,有复位脉冲,应答脉冲,写,写,读,读这种信号类型. 除了应答脉冲外,其它都由主机产生.数据位的读和写是通过读、写时隙实现的.)写

10、时隙:当主机将数据线从高电平拉至低电平时,产生写时隙.所有写时隙都必须在以上,各写时隙间必 须保证的恢复进度.写心:主机将数据线先拉低,然后释放后,将数据线拉高;写”“:主机将拉低并至少保持以上.)读时隙:当主机将数据线从高电平拉至低电平时,产生读时隙,所有读时隙最短必须持续,各读时隙间必 须保证的恢复进度.读:主机将拉低至少,.此时主机马上将拉高,然后就可以延时后,读取即可.源代码:(测量范围:度)田日 V 通过测试当前环境温度,并通过数码管显示当前温度值人;数码管位选八;数码管段选A .1数码管的编码(共阴极)日田口国,;数码管的编码(共阴极),带小数点延时函数,例,那么大概延时.() )

11、; L)读取一字节数据,通过调用()来实现0日0日I (; ;)白由I 0;I 最先读出的是最低位数据 ( );卜I ;4向写入一字节数据)0 :(0日)0 :(0日I (; );卜I写”。让低电平持续个小延时,高电平持续个小延时由由 E卜卜?向发送温度转换命令()白();初始化(); 延时();写入跳过序列号命令字();写入温度转换命令字向发送读取数据命令()日田I 0;I 0;();写入跳过序列号命令字I();写入读取数据令字获取当前温度值0日 eI ;存放温度数值0;连续读取两个字节数据0;0;将高低两个字节合成一个整形变量f ; /的精确度为度,即读回数据的最低位代表度* r将它放大倍,使显示时可显示小数点后一位,并对小数点后第二进行舍入 如,进行计数后,得到,即度显示当前温度值,精确到小数点后一位()日由由臼,I ;I ;I ;I (; ;)由由囚I片选 TOC o 1-5 h z I;I( ();选择第()个数码管I;翻开锁存,给它一个下降沿量I;I段选I;I()由中国I;显示数字卜)I 施 区I;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论