DS18B20引脚图及功能中文资料_第1页
DS18B20引脚图及功能中文资料_第2页
DS18B20引脚图及功能中文资料_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

18B20温度传感器应用解析温度传感器的种类众多,在应用与高精度、高可靠性的场合时达拉斯DS18B20DS18B20DS18B20的主要特征:??最高12位分辨率,精度可达土0.5摄氏度。??12位分辨率时的最大工作周期为750毫秒。??可选择寄生工作方式。??检测温度范围为–55°C~+125°C(–67°F~+257°F)??内置EEPROM,限温报警功能。??64位光刻ROM,内置产品序列号,方便多机挂接。??多样封装形式,适应不同硬件系统。DS18B20芯片封装结构:DS18B20引脚功能:·GND电压地·DQ单数据总线·VDD电源电压·NC空引脚DS18B20工作原理及应用:DS18B2018B2018B20资源,它们分别是:ROMDS18B20ID8(DS18B2048856(冗余校验)。数据在出产时设置不由用户更改。DS18B2064ROMRAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B2098123、4常用于温度报警值储存53EEPROM6、7、898CRCEEPROM3RAMRAMEEPROM2我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20产的投入,是一种较好的节约之道。控制器对18B20操作流程:1,DS18B20(单片机DS18B20480uS18B202,存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS60~240uS18B20要注意意外情况的处理。3,ROM5ROMROM、芯片搜索、报警芯片搜索。ROM864ROMID18B20ROM(注意:此处指ROMROM”)。ROM指令在下文有详细的介绍。4,ROM18B20(不间断86RAMRAMRAMEEPROMEEPROMRAM、工作方式切换。存储器操作指令的功能是命令B205,执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读(单片机18B20500uS。如执行数据读写指令则需18B20500uSROMRAM(最92DS18B20芯片与单片机的接口:34(单片机)的一个I/O4.7KVDD态有一些特殊的要求。图5DS28B20芯片ROM指令表:ReadROM(读ROM)[33H](方括号中的为16进制的命令字)DS18B2064ROMS18B20MatchROM(指定匹配芯片)[55H]64DS18B20位。这条指令适应单芯片和多芯片挂接。SkipROM(跳跃ROM指令)[CCH]ROM出现。SearchROM(搜索芯片)[F0H]4ROM。AlarmSearch(报警芯片搜索)[ECH]THTL度什达不到报警条件为止。DS28B20芯片存储器操作指令表:WriteScratchpad(向RAM中写数据)[4EH]这是向RAM(RAMTH)3(RAMTL)。写入过程中可以用复位信号中止写入。ReadScratchpad(从RAM中读数据)[BEH]RAM09,RAM不需要的字节以减少读取时间。CopyScratchpad(将RAM数据复制到EEPROM中)[48H]RAMEEPROMEEPROM作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用10MS,来维持芯片工作。ConvertT(温度转换)[44H]RAM1、2500MS,来维持芯片工作。RecallEEPROM(将EEPROM中的报警值复制到RAM)[B8H]EEPROMRAM34制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”RAMEEPROMReadPowerSupply(工作方式切换)[B4H]此指令发出后发出读时间隙,芯片会返回它的电源状态字,“0”为寄生电源状态,“1”为外部电源状态。DS18B206编程。DS18B20读写时间隙:DS18B20写时间隙:图7写时间隙分为写“0”和写“1”,715uS15~60uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将15uS随后的数据“0”45uS60~120uS,否则不能保证通信的正常。读时间隙:图81uS15uSDS18B201”,如果总线为低电平则表示读出数据“0815uS保证通信的正确。8为一个字节,字节的读或写是从高位开始的,即A7A0.2//实验目的:熟悉DS18B20的使用//六位数码管显示温度结果,其中整数部分2位,小数部分4位//每次按下RB0键后进行一次温度转换。//硬件要求:把DS18B20插在18B20插座上// S101ONOFF// S5、S6ON,OFF#include<pic.h>// CONFIG(0x1832);//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡#defineuchunsignedchar名uch//unsignedchar#defineDQRA0#defineDQ_DIRTRISA0//定义18B20数据端口//18B20D存器#defineDQ_HIGH()DQ_DIR=1//设置数据口为输入#defineDQ_LOW()DQ=0;unsignedcharTLV=0;unsignedcharTHV=0;DQ_DIR=0//设置数据口为输出//8//8unsignedcharTZ=0;分unsignedcharTX=0;分unsignedintwd;形式//转换后的温度值整数部//转换后的温度值小数部//BCDunsignedcharshi;//整数十位unsignedcharge;//整数个位unsignedcharshifen;//十分位unsignedcharbaifen;//百分位unsignedcharqianfen;//千分位unsignedcharwanfen;//万分位unsignedchartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9的显示代码//------------------------------------------------//延时函数voiddelay(charx,chary){charz;do{z=y;do{;}while(--z);}while(--x);}//其指令时间为:7+(3*(Y-1)+7)*(X-1)如果再加上函数调用的call指令、页面设定、传递参数花掉的7个指令。//则是:14+(3*(Y-1)+7)*(X-1)。//--------------------------------------------------//voiddisplay(){TRISA=0X00;delay(5,100); //APORTD=table[shi]; //PORTA=0x3e;delay(10,100);PORTD=table[ge]&0X7F; //PORTA=0x3d;delay(10,100);PORTD=table[shifen]; //PORTA=0x3b;delay(10,100);PORTD=table[baifen]; //PORTA=0x37;delay(10,100);PORTD=table[qianfen]; //PORTA=0x2f;delay(10,100);PORTD=table[wanfen]; //PORTA=0x1f;delay(10,100);}//------------------------------------------------//系统初始化函数voidinit(){ADCON1=0X07; //ATRISA=0X00; //ATRISD=0X00; //D}//-----------------------------------------------//复位DS18B20函数reset(void){charpresence=1;while(presence){DQ_LOW(); //主机拉至低电平delay(2,70); //503usDQ_HIGH(); //15~60usdelay(2,8); //70usif(DQ==1)presence=1; //续复位elsepresence=0; //接收到应答信号delay(2,60); //430us}}//-----------------------------------------------//写18b20写字节函数voidwrite_byte(uchval){uchi;uchfor(i=8;i>0;i--){temp=val&0x01; //最低位移出DQ_LOW();NOP();NOP();NOP();NOP();NOP(); //从高拉至低电平,产生写时间隙if(temp==1)delay(2,7);DQ_HIGH();DQ_HIGH();//1,拉高电平//延时63usNOP();NOP();val=val>>1;//右移一位}}//------------------------------------------------//18b20读字节函数uchread_byte(void){uchi;uchvalue=0; //读出温度staticbitj;for(i=8;i>0;i--){value>>=1;DQ_LOW();NOP();NOP();NOP();NOP();NOP();NOP();DQ_HIGH();NOP();//6us//拉至高电平NOP();NOP();NOP();NOP();j=DQ;//4us}if(j)value|=0x80;delay(2,7);//63usreturn(value);}//-------------------------------------------------//启动温度转换函数voidget_temp(){inti;DQ_HIGH();reset(); //复位等待从机应答write_byte(0XCC); //ROMwrite_byte(0X44); //for(i=50;i>0;i--){display(); //转换完成所需要的时间}reset(); //再次复位,等待从机应答write_byte(0XCC); //ROMwrite_byte(0XBE); //发送读温度命令TLV=read_byte(); //8THV=read_byte(); //8DQ_HIGH(); //释放总线TZ=(TLV>>4)|(THV<<4)&0X3f; //温度整数部分TX=TLV<<4; //温度小数部分if(TZ>100)TZ/100; //不显示百位ge=TZ%10;//个位 //整数部分个位shi=TZ/10;//十位 //整数十wd=0;ifif(TX(TX&&0x80)0x40)wd=wd+5000;wd=wd+2500;ifif(TX(TX&&0x20)0x10)wd=wd+1250;wd=wd+625;//4为BCD码形式shifen=wd/10

温馨提示

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

评论

0/150

提交评论