资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
基于DS18B20温度测量的设计(汇编) DS18B20介绍1、 主要特性1.1、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯1.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温1.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内1.5、温范围55125,在-10+85时精度为0.51.6、可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温1.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快1.8、测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2、DS18B20的外形和内部结 表4-4 DS18B20功能命令命令描述协议此命令发出后1-Wire总线上的活动温 度 转 换 命 令Convert T开始温度转换44hDS18B20向主机传送转换状态(寄生电源不适用)存 储 器 命 令Read Scratchpad读暂存器完整的数据BEhDS18B20向主机传送总共9字节的数据Write Scratchpad向暂存器的2、3和4字节写入数据(TH, TL和精度)4Eh主机向DS18B20传送3个字节的数据Copy Scratchpad将TH, TL和配置寄存器的数据复制到EEPROM48h无Recall E2将TH, TL和配置寄存器的数据从EEPROM中调到暂存器中B8hDS18B20向主机传送调用状态Read Power Supply向主机示意电源供电状态B4hDS18B20向主机传送供电状态5、DS18B20的时序DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。 初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,5k的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线60s240s产生应答脉冲。初始化波形如图4-5所示。 图4-5 初始化脉冲 读和写时序在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。在每一个时序,总线只能传输一位数据。读/写时序如图3-6所示。写时序:存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s的恢复时间。两种写时序均以主机拉低总线开始。产生写1时序:主机拉低总线后,必须在15s内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机总线后,必须在整个时序期间保持低电平(至少60s)。在写时序开始后的15s60s期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。读时序:DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15s内有效,因此主机必须在读时序开始后的15s内释放总线,并且采样总线状态。图4-6 DS18B20读/写时序图主程序程序流程图NY开始初始化FLAG=0?显示“ERR”读取温度转换温度动态显示温度复位初始化 程序 BW EQU 32HSW EQU 33HGW EQU 34HTEML EQU 35HTEMH EQU 36HTEM EQU 37HFLAG BIT 00HDQ EQU P0.0ORG 00HAJMP STARTORG 0100HSTART: MOV P2,#0FFHMOV SP,#60HMOV BW,#1MOV SW,#2MOV GW,#3MOV TEML,#00hMOV TEMH,#00hMOV tem,#00hMAIN:LCALL GETTEM;读温度 LCALL GETCOV;转换温度 LCALL LED;动态显示 SJMP MAINFUWEI1820:SETB DQ;复位子程序 CLR DQMOV R0,#255DJNZ R0,$;510us的低电平延时 SETB DQMOV R0,#35DJNZ R0,$;70us的延时JNB DQ,FUWEI0;DQ=0则应答成功 clr flagsjmp fuwei1FUWEI0:SETB FLAG;标志位置1MOV R0,#255DJNZ R0,$;400us的延时FUWEI1: SETB DQ;释放总线RETGETTEM:SETB DQ;读温度子程序 GE1:LCALL FUWEI1820;调用复位程序 JB FLAG,GE2;为一转移 SJMP GE1GE2: MOV A,#0CCH;跳过匹配 LCALL WRITEMOV A,#44H;温度变换LCALL WRITE MOV R0,#250;延时 DJNZ R0,$GE3:LCALL FUWEI1820;复位 JB FLAG,GE4;为1转移SJMP GE3GE4:MOV R0,#32DJNZ R0,$ MOV A,#0CCH;跳过匹配 LCALL WRITEMOV A,#0BEH;读温度指令 LCALL WRITELCALL READ;读取温度 RETGETCOV:MOV A,TEML;温度转换子程序 ANL A,#0F0H SWAP AMOV TEM,Amov a ,temlJNB ACC.3,COV0 ;为0转移 INC TEMCOV0:MOV A,TEMHANL A,#07HSWAP AADD A,TEMMOV TEM,ACLR CCJNE A,#63H,COV1lcall bcdSJMP COVOUTCOV1:JB CY ,COV2MOV BW,#14;超出0099则显示err MOV SW,#16MOV GW,#16SJMP COVOUTCOV2:lcall bcdCOVOUT:RETbcd:MOV A,TEMMOV B,#100DIV ABMOV BW,AMOV a,bMOV B,#10DIV ABMOV SW,AMOV A,BMOV GW,Aretled:mov dptr,#tab MOV A,gw ;MOVC A,A+DPTRMOV P2,#00000001BMOV P1,ALCALL delay mov a,swMOVC A,A+DPTRMOV P2,#00000010B MOV P1,ALCALL delaymov a,bwmovc a,a+dptrmov p2,#00000100bmov p1,aLCALL delayret
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号