




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
芯片介绍DS18B20及示范程序数字温度传感器DS18B20芯片介绍单总线命令序列典型的单总线命令序列如下第一步:初始化;第二步:ROM 命令跟随需要交换的数据;第三步:功能命令跟随需要交换的数据;(每次访问单总线器件,必须严格遵守这个命令序列。)如果出现序列混乱,则单总线器件不会响应主机。但是这个准则对于搜索ROM 命令和报警搜索命令例外。在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。1 初始化基于单总线上的所有传输过程,都是以初始化开始的。初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道总线上有从机设备,且准备就绪,复位和应答脉冲的时间详见单总线信号部分。2 ROM命令在主机检测到应答脉冲后,就可以发出ROM 命令。每种命令长度为8 ,主机在发出功能命令之前必须送出合适的ROM 命令。ROM 命令的操作流程如图3 所示。ROM命令字如下:READROM命令代码33H:如果只有一片DS1820,可用此命令读出其序列号,若在线DS1820多于一个,将发生冲突。MATCHROM命令代码55H:多个DS1820在线时,可用此命令匹配一个给定序列号的DS1820,此后的命令就针对该DS1820。SKIPROM命令代码CCH:此命令执行后的存储器操作将针对在线的所有DS1820。 SEARCHRDH命令代码F0H:用以读出在线的DS1820的序列号。ALARMSEARCH命令代码ECH:当温度值高于TH或低于TL中的数值时,此命令可以读出报警的DS1820。3 功能命令(以DS18B20为例) WRITESCRATCHPAD命令代码4EH:写两个字节的数据到温度寄存器。 READSCRATCHPAD命令代码BEH:读取温度寄存器的温度值。COPYSCRATCHPAD命令代码48H:将温度寄存器的数值拷贝到EEROM中,保证温度值不丢失。RECALL EE命令代码B8H:将EEROM中的数值拷贝到温度寄存器中。READPOWERSUPPLY命令代码B4H:在本命令送到DS1280之后的每一个读数据间隙,指出电源模式:“0”为寄生电源;“1”为外部电源。CONVERT命令代码44H:启动在线DS1280做温度A/D转换图4.DS18B20引脚图1DS1820的特性单线接口:仅需一根口线与MCU 连接无需外围元件由总线提供电源测温范围为-5575,精度为0.5九位温度读数A/D 变换时间为200ms用户自设定温度报警上下限,其值是非易失性的图5.DS18B20内部结构 报警搜索命令可识别哪片DS1820 超温度限2DS1820 引脚及功能(见图4) GND:地; DQ:数据输入输出脚(单线接口,可作寄生供电); VDD:电源电压。4DS18B20内部结构DS1820的内部结构如图5所示。由图5可知,DS1820由三个主要数字器件组成: 64bit闪速ROM;温度传感器;非易失性温度报警触发器TH和TL。64bit闪速ROM的结构如下5. 温度寄存器格式7. DS18B20内部存储器结构8.DS18B20时序及信号方式 所有的单总线器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。所有这些信号,除了应答脉冲以外,都由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前,这一点与多数串行通信格式不同(多数为字节的高位在前)。8.1初始化序列:复位和应答脉冲图8.DS18B20复位与应答脉冲单总线上的所有通信都是以初始化序列开始,包括:主机发出的复位脉冲及从机的应答脉冲,如图8所示。当从机发出响应主机的应答脉冲时,即向主机表明它处于总线上,且工作准备就绪。在主机初始化过程,主机通过拉低单总线至少480s,以产生(Tx)复位脉冲。接着,主机释放总线,并进入接收模式(Rx)。当总线被释放后,5k上拉电阻将单总线拉高。在单总线器件检测到上升沿后,延时15-60s,接着通过拉低总线60-240s,以产生应答脉冲。82 读/写时隙在写时隙期间,主机向单总线器件写入数据;而在读时隙期间,主机读入来自从机的数据。在每一个时隙,总线只能传输一位数据。821 写时隙存在两种写时隙:“写1”和“写0”。主机采用写1时隙向从机写入1,而采用写0时隙向从机写入0。所有写时隙至少需要60s,且在两次独立的写时隙之间至少需要1s的恢复时间。两种写时隙均起始于主机拉低总线(图5所示)。产生写1时隙的方式:主机在拉低总线后,接着必须在15s之内释放总线,由5k上拉电阻将总线拉至高电平;而产生写0时隙的方式:在主机拉低总线后,只需在整个时隙期间保持低电平即可(至少60s)。在写时隙起始后15-60s期间,单总线器件采样总线电平状态。如果在此期间采样为高电平,则逻辑1被写入该器件;如果为0,则写入逻辑0。822 读时隙单总线器件仅在主机发出读时隙时,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时隙,以便从机能够传输数据。所有读时隙至少需要60s,且在两次独立的读时隙之间至少需要1s的恢复时间。每个读时隙都由主机发起,至少拉低总线1s(图5所示)。在主机发起读时隙之后,单总线器件才开始在总线上发送0或1。若从机发送1,则保持总线为高电平;若发送0,则拉低总线。当发送0时,从机在该时隙结束后释放总线,由上拉电阻将总线拉回至空闲高电平状态。从机发出的数据在起始时隙之后,保持有效时间15s,因而,主机在读时隙期间必须释放总线,并且在时隙起始后的15s之内采样总线状态。图9.DS18B20读/写时隙示范程序第 7 页 共 7 页temp equ 50hORG 000HSTART:MOV SP,#70HMOV 25H,#00HMOV 26H,#00HMOV 27H,#00HMOV 28H,#00HlCALL DIRlCALL DELAYMAIN:lCALL reset_pulselCALL PRESENCElCALL READ_TEMPmov a,51hanl a,#07hswap amov 51h,amov a,temp;Temperature LSBanl a,#0f0hswap aorl a,51hmov b,#100div abda amov 25h,amov a,bmov b,#10div abda amov 26h,amov a,bda amov 27h,amov a,tempanl a,#0fhmov b,#2div abda amov 28h,alCALL DIRmov a,26hcjne a,#5,compareacall alam_bellsjmp continucompare:jc continulcall alam_bellcontinu:lcall delayAJMP MAINwrite_alam:mov a,#0cchlcall write_bytemov a,#4ehlcall write_bytemov a,#32h;上限报警50度lcall write_bytemov a,#0a0hlcall write_bytemov a,#0efhjnb p1.1,$retread_temp: ;Read temperature DS1820 mov a,#0cch ;Skip ROM command acall write_byte mov a,#044h ;Initiates temperature conversion acall write_byte jnb p1.1,$ ;Read temperature busy status acall delay acall reset_pulse ;Tx reset pulse acall presence ;Rx presence pulse mov a,#0cch ;Skip ROM command acall write_byte mov A,#0beh ;Read scratchpad command acall write_byte acall read_byte ;Read EEprom byte 0 (Temperature LSB) mov temp,a acall read_bytemov 51h,a acall reset_pulse ;Tx reset pulse acall presence ;Rx presence pulse ret read_byte:;-Read scratchpad 1 byte- mov r3,#8 ;-count 8 bit -read1: clr p1.1 nop nop setb p1.1 nop nop nop nop mov c,p1.1 mov r2,#30 ;delay 60 uS djnz r2,$ rrc a djnz r3,read1 ret write_byte: ;write scratchpad 1 byte mov r3,#8;counter 8 bit write: rrc a jc write1 clr p1.1 ;p1.2 mov r2,#15 ;delay 60 uS djnz r2,$ setb p1.1 nop nop nop nop djnz r3,write ret write1: clr p1.1 nop nop nop nop setb p1.1 mov r2,#15 ;delay 60 uS djnz r2,$ djnz r3,write ret reset_pulse: ;Tx reset pulse clr p1.1 mov r2,#250 ;delay 500 uS djnz r2,$ setb p1.1 mov r2,#10 ;delay 20 uS djnz r2,$ ret presence: jb p1.1,$ ;Rx presence pulse jnb p1.1,$ ret alam_bell:setb p1.6mov 1eh,#10main2:mov r6,#200pp:mov r7,#50cc:djnz r7,cccpl p1.6djnz r6, ppmov r6,#200pp1:mov r7,#60cc1:djnz r7,cc1cpl p1.6djnz r6,pp1djnz 1eh,main2retdir:mov dptr,#tabmov a,25hmovc a,a+dptrmov 29h,amov dptr,#tabmov a,26hmovc a,a+dptrmov 2ah,amov dptr,#tabmov a,27hmovc a,a+dptrorl a,#01Hmov 2bh,amov dptr,#tabmov a,28hmovc a,a+dptrmov 2ch,aacall dir1ret;dir1:clr p1.5clr p1.4mov r6,#04hmov r0,#2Chdir1x:acall shiftDEC r0djnz r6,dir1xsetb p1.5nopNOP clr p1.5retshift:mov a,r0mov r7,#08hSHIFTx: RRC AMOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竹纤维实心吊顶施工方案
- 心外护理产品介绍
- 幼儿园个人工作总结中班
- 外贸服装行业年终总结
- 动脉取栓术的术后护理
- 劳动教育材料汇报
- 运输企业安全宣传培训课件
- 运输五个一安全培训课件
- 幼小衔接教学课件模板
- 环己酮(醇酮)装置操作工协同作业考核试卷及答案
- 燃气经营企业从业人员专业培训考核大纲(试行)
- 监狱医疗面试真题及答案
- 诉讼费承担合同协议
- 中国共产主义青年团纪律处分条例试行解读学习
- 中国LTCC用玻璃陶瓷粉行业市场前景预测及投资价值评估分析报告
- 国家能源集团陆上风电项目通 用造价指标(2024年)
- 2025年江西工业贸易职业技术学院单招职业倾向性考试题库附答案
- 医疗机构工作人员廉洁从业九项准则
- 弹个车合同协议
- 高标准农田建设项目主要施工方案与技术措施
- “十五五”期间新型公共文化空间建设趋势及展望
评论
0/150
提交评论