得科技术-单片机4.相关ds18b20中文_第1页
得科技术-单片机4.相关ds18b20中文_第2页
得科技术-单片机4.相关ds18b20中文_第3页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

Skyle整 有不对之处请来信指数字温度传感器DS1820(DS18B20)—单线数字温度计DSl820DSl8209位(二进制)温度读数指示器件的温度信息经过单线接口送DSl820DSl820送出因此从主机CPUDSl820仅需一条线(和地线)DSl820的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820在出厂时已经给定了唯一的序号因此任意多个DSl820可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件DSl820的测量范围从-55到+125增量值为0.5可在ls(典型值)DSl82064DSl820ROM(只读存贮器)中开始8位是产品类型编码(DSl82010H)48位是每个器件唯一的序号最后8位是前面56位的CRC(循环冗余校验)码DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM编号为0号和1号1号存贮器存放温度值的符号如果温度为负( 则1号存贮器8位全为1否则全为00号存贮器用于放温度值的补码LSB(最低位)的 表示 )DSl820的引脚如图 l所示每只D51820总线供电方式和外部供电方式采取数据总线供电方式可以节省一根导线但完成温度测量的时间较长采取外部供电方式则多用一根导线但测量速度较快Ds1820用9位存贮温值度最为符号位下图为18b20的温度方式负温S=1正温S=000AAH为 ,0032H为25FF92H Ds18b20用12位存贮温值度最为符号位下图为18b20的温度方式负温 正温度 0550H H为25.0625 ,FC90H为-二DSl820初始化RoM操作命令器操作命令处理数总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如 ReadROM(读ROM) [33H]MatchROM(匹配ROM)[55H] SearchROM(搜索ROM)[F0H]Alarmsearch(告警搜索 指 代WriteScratchpad(写暂存存储器)[4EH]ReadScratchpad(读暂存器) CopyScratchpad(暂存器)[48H]ConvertTemperature(温度变换) RecallEPROM(重新调出 ReadPowersupply(读电源 时初始2.25-2to时刻发送一复位脉冲(480us的低电平信号)接着tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接DS1820t2时刻发出存在脉冲(低电平持续60-240us)如图中虚线所示MCS51仿真机上通过其晶振为12M.PUSHB ;保存B寄存器PUSHA MOV CLRP1.0 MOVB,#250;250次DJNZ SETB ;释放MOV CLRC WAITL:JBPl.0,WH ;若总线释放跳出循环DJNZ ;总线 等SJMPSHORT ORLC,P1.0DJNZB,WH1 SHORT:POPAPOPB写时间当主机总线to时刻从至低电平时就产生写时间隙见图2253图24to15us之内应将所需写的位送到总线上DSl820t15-60us间对总线采样若低电平写入的位是02253若高电平写入的位是12254连续写2位间的间隙应大于1usPUSHMOVCLR;CWDLT:DJNZB,WDLT;56UsPOPBSETBPl.0 PUSH MOVB#8H WLOP:RRC ACALL ;1DJNZB WLOP;8位全写完?POPB读时间见图2 主机总线to时刻从至低电平时总线只须保持低电平l7ts之后在t1时刻将总线拉高产生读时间隙读时间隙在t1时刻后t2时刻前有效tz距to为15捍s也就是说tz时刻前主机必须完成读位并在to后的60尸s一120fzs内释放总线读位子程序(读得的位到C中)PUSHPUSHMOVCLR;读开 图 5的t0时SETBMOVMOVDJNZSETBPOPBPUSHB ;保存B MOVB,#8H ACALL RRCA DJNZB,RLOP ;8位读完?POPB 三多路测量DSl820ROM48ROM1820ROM(33H)l820的序列号读出当主机需要对众多1820的某一个进行操作时首先要发出匹配ROM命令(55H)紧接着主64位序列(182048位序列号)之1820ROM命令即为之后的操作是对所有1820的框图中先有ROM即是启动所有1820进行温度变换之后通过匹配ROM再逐一地读回每个1820的温1820组成的测温系统中主机在发出跳过ROM44H1820的统一转换再经过1s后就可以用很少的时间去逐一这种方式使其T值往往小于传统方式由于采AD转换器只能逐一转换显然通道数越多这种省时效应就越明四1|ds1820序列号应用程序,P1.6||

ORG0000HAJMPMAINORG0020HMOVCLR LCALLINT MOVA,#33HLCALLWRITE;送入读ds1820的ROM命令LCALLREAD ;开始读出当前ds1820序列号MOV40H,ALCALLREADMOV41H,ALCALLREADMOV42H,ALCALLREADMOV43H,ALCALLREADMOV44H,ALCALLREADMOV45H,ALCALLREADMOV46H,ALCALLREADMOV47H,ASETBEASJMP$ CLRL0:CLR ;ds1820总线为低复位电MOVR2,#200L1:CLRP1.6DJNZR2,L1 SETBP1.6 ;释放ds1820总线MOVL4:DJNZR2,L4 ;释放ds1820总线保持60usCLRC ORLJCL0 MOVR6,#80L5:ORLC,P1.6JCL3DJNZR6,L5SJMPL0L3:MOVR2,#240L2:DJNZR2,L2 CLRMOV WR1:SETBP1.6MOVRRCA ;把一个字节data(A)分成8个bit环移给CCLR ;开始写入ds1820总线要处于复位(低)状WR2:DJNZR4,WR2 ;ds1820总线复位保持16usMOVP1.6,C ;写入一个bitMOVWR3:DJNZ DJNZR3,WR1 ;写入下一个bitSETBP1.6 ;重新释放ds1820总线

CLRMOV RE1:CLRP1.6 MOVR4,#4SETB ;开始 RE2:DJNZ MOVC,P1.6 ;从ds1820总线读得一个bitRRCA ;把读得的位值环移给AMOVR5,#30RE3:DJNZ DJNZ SETBP1.6 获取单个ds1820转化的温度值的应用程序,P1.6接

ORG0000HAJMPMAINORG0020HMOVSP,#60HLCALLGET_TEMPSJMP$CLRSETB ;设置工作寄存器当前所在的区CLR ;使用ds1820一定要任何中断产LCALLINT MOVA,#0CCHLCALLWRITE MOVA,#44HLCALL ;送入温度转换命LCALLINT MOVA,#0CCHLCALLWRITE MOVA,#0BEHLCALLWRITE LCALLREADMOVR7,A LCALLREADMOVR6,A SETBEA CLRL0:CLR ;ds1820总线为低复位电MOVR2,#200L1:CLRP1.6DJNZR2,L1 SETBP1.6 ;释放ds1820总线MOVL4:DJNZR2,L4 ;释放ds1820总线保持60usCLRC ORLJCL0 MOVR6,#80L5:ORLC,P1.6JCL3DJNZR6,L5SJMPL0L3:MOVR2,#240L2:DJNZR2,L2 CLRMOVR3,#8 WR1:SETBP1.6MOVRRCA ;把一个字节data(A)分成8个bit环移给CCLR ;开始写入ds1820总线要处于复位(低)状WR2:DJNZR4,WR2 ;ds1820总线复位保持16usMOVP1.6,C ;写入一个bitMOVWR3:DJNZ DJ

温馨提示

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

评论

0/150

提交评论