【傻瓜51单片机讲义】 第14课 温度传感器18B20实验教学.ppt
文本预览下载声明
一气呵成学51 第14课 温度传感器DS18B20实验教学 温度传感器DS18S20概述 Dallas Semiconductor公司推出的DS18S20温度传感器即为单总线接口结构。由于其所需的引脚最少、接口简单、无需外部元件和精度高等优点,广泛应用于单片机系统中进行测温以及温度监控。 DS18S20是一种典型的单总线接口数字温度传感器,其提供了9位高精度的摄氏温度测量。同时,DS18S20具有非易失性、用户可编程上下触发门限的报警功能。由于其独特的单总线接口,使得其可以占用极少的I/O引脚资源,使用起来十分方便。DS18S20采用带隙温度检测结构,其内部有3个主要部件:64位激光刻制的唯一ROM序列号、温度传感器以及非易失性温度报警触发器。 DS18S20以其简单方便的单总线接口特点,而广泛应用于温度测量、温度控制、数字温度计以及热感测系统中。 2. DS18B20单线温度传感器 主要特征 全数字温度转换及输出。 1-wire总线数据通信。 最高12位分辨率,精度可达土0.5摄氏度。 12位分辨率时的最大工作周期为750毫秒。 检测温度范围为-55℃~+125℃。 内置EEPROM,限温报警功能。 64位光刻ROM,内置产品序列号,方便多机挂接。 多样封装形式,适应不同硬件系统。 3. DS18B20工作原理 三种形态的存储器资源 ROM 只读存储器,用于存放DS18B20ID编码。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。 EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据。 3.1 ROM 3.2 内部RAM的结构分析 4.温度传感器DS18B20操作过程 1.初始化 2.操作ROM 3.启动温度转换命令 4.读出温度值 5. DS18B20命令码 CCH 跳过ROM命令 44H 温度转换命令 BEH 读暂存器命令 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM中第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.06250C/LSB形式表示,温度值格式如下: 7.单总线概述 单总线结构是Dallas Semiconductor创造性的总线协议,也称为1-Wire总线结构。单总线接口将数据通信的引脚数目减少到最少,只需1个数据线便可以进行通信而无须时钟同步线。目前,已有多种器件选用了单总线结构,例如A/D转换器、D/A转换器、温度传感器等。 使用单总线结构大大简化了电路设计,节约了引脚的使用,因此特别适合于单片机系统中。本章以Dallas Semiconductor公司推出的DS18S20单总线结构温度传感器为例,介绍如何使用C51语言来实现单总线接口的模拟。 8.单总线接口概述 典型的单总线接口结构,如图所示。其中,除了公共的地线外,所有单总线设备共用一根数据总线。单总线主机包括一个开漏极I/O端口,需要外接上拉电阻。单总线结构中,外部可用包含一个单总线从机,也可以包含多个单总线从机。 单总线结构可以通过一条公共数据线实现主机与一个或多个从机之间的半双工、双向通信。在单总线结构中,单总线主机为数据传输的主控制器,单总线上的从机只能被动地和单总线主机通信。 10.复位函数分析 void Init_DS18B20(void) { DQ = 0; //单片机将DQ拉低 Write_595(); // 延时作用; DQ = 1; Write_595(); // 延时作用; Write_595(); // 延时作用; } 12.读字节函数 unsigned char ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i--) { DQ = 0; // 给脉冲信号 dat=1; _nop_(); //delay 1us DQ = 1; // 给脉冲信号 _nop_(); //delay 1us if(DQ) dat|=0x80; delay_18B20(4); //50us内 释放总线 } return(dat); } 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0
显示全部