温传感器DSB学习教案.pptx
会计学1温传感器温传感器DSB第一页,共17页。温度传感器温度传感器DS18B20DS18B20DS18B20 的管脚排列如图:DQ 为数字信号输入(shr)/输出端;GND 为电源地;VDD 为外接供电电源输入(shr)端(在寄生电源接线方式时接地)。第1页/共17页第二页,共17页。DS18B20 内部结构主要由四部分(b fen)组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。温度传感器温度传感器DS18B20DS18B20第2页/共17页第三页,共17页。DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达(biod),其中S为符号位。LS Byte:MS Byte:BitBit7 7BitBit6 6BitBit5 5BitBit4 4BitBit3 3BitBit2 2BitBit1 1BitBit0 02 23 32 22 22 21 12 20 02 2-1-12 2-2-22 2-3-32 2-4-4BitBit1 15 5BitBit1 14 4BitBit1 13 3BitBit1 12 2BitBit1 11 1BitBit1 10 0BitBit9 9BitBit8 8S SS SS SS SS S2 26 62 25 52 24 4温度传感器DS18B20DS18B20第3页/共17页第四页,共17页。这是这是 12 12 位转化后得到的位转化后得到的 12 12 位数据,存储在位数据,存储在 18B20 18B20 的两个的两个 8 8 比特的比特的 RAM RAM 中,二进制中的前面中,二进制中的前面(qin mian)5(qin mian)5 位是符号位,如果测得的温度位是符号位,如果测得的温度大于大于 0 0,这,这 5 5 位为位为 0 0,只要将测到的数值乘于,只要将测到的数值乘于 0.0625 0.0625 即可得到实际温即可得到实际温度;如果温度小于度;如果温度小于 0 0,这,这 5 5 位为位为 1 1,测到的数值需要取反加,测到的数值需要取反加 1 1 再乘于再乘于 0.0625 0.0625 即可得到实际温度。即可得到实际温度。Bit7Bit7Bit6Bit6Bit5Bit5Bit4Bit4Bit3Bit3Bit2Bit2Bit1Bit1Bit0Bit02 23 32 22 22 21 12 20 02 2-1-12 2-2-22 2-3-32 2-4-4Bit15Bit15Bit14Bit14Bit13Bit13Bit12Bit12Bit11Bit11Bit10Bit10Bit9Bit9Bit8Bit8S SS SS SS SS S2 26 62 25 52 24 4 例如例如(lr)(lr):+125+125的数字输出为的数字输出为 07D0H 07D0H,+25.0625+25.0625的数字输出为的数字输出为 0191H0191H,-25.0625-25.0625的数字输出为的数字输出为 FF6FH FF6FH,-55-55的数字输出为的数字输出为 FC90H FC90H。第4页/共17页第五页,共17页。控制器对控制器对控制器对控制器对DS18B20DS18B20操作操作操作操作(cozu)(cozu)流程流程流程流程 n n复位:由单片机给复位:由单片机给DS18B20DS18B20单总线单总线500uS500uS的低电平信号。当的低电平信号。当18B2018B20接到此接到此复位信号后则会在复位信号后则会在1560uS1560uS后回发一个芯片的存在脉冲后回发一个芯片的存在脉冲(michng)(michng)。n n存在脉冲存在脉冲(michng)(michng):在复位电平结束之后,控制器应该将数据单总:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在线拉高,以便于在1560uS1560uS后接收存在脉冲后接收存在脉冲(michng)(michng),存在脉冲,存在脉冲(michng)(michng)为一个为一个60240uS60240uS的低电平信号。的低电平信号。n n控制器发送控制器发送ROMROM指令:双方打完了招呼之后最要将进行交流了,指令:双方打完了招呼之后最要将进行交流了,ROMROM指令共有指令共有5 5条,每一个工作周期只能发一条,条,每一个工作周期只能发一条,ROMROM指令分别是读指令分别是读ROMROM数数据、指定匹配芯片、跳跃据、指定匹配芯片、跳跃ROMROM、芯片搜索、报警芯片搜索。、芯片搜索、报警芯片搜索。ROMROM指令指令在下文有详细的介绍。在下文有详细的介绍。n n控制器发送存储器操作指令:在控制器发送存储器操作指令:在ROMROM指令发送给指令发送给18B2018B20之后,紧接着之后,紧接着(不间断)就是发送存储器操作指令了。存储器操作指令的功能是命(不间断)就是发送存储器操作指令了。存储器操作指令的功能是命令令18B2018B20作什么样的工作,是芯片控制的关键。作什么样的工作,是芯片控制的关键。n n执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待则控制器(单片机)必须等待18B2018B20执行其指令,一般转换时间为执行其指令,一般转换时间为500uS500uS。如执行数据读写指令则需要严格遵循如执行数据读写指令则需要严格遵循18B2018B20的读写时序来操作。的读写时序来操作。第5页/共17页第六页,共17页。控制器对控制器对DS18B20操作操作(cozu)流程流程 若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作(cozu)指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作(cozu)指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。第6页/共17页第七页,共17页。DS28B20DS28B20芯片芯片芯片芯片(xn pin)ROM(xn pin)ROM指令表指令表指令表指令表 n nRead ROM(读ROM)33H(方括号中的为16进制的命令字)n nMatch ROM(指定匹配芯片)55Hn nSkip ROM(跳跃(tioyu)ROM指令)CCHn nSearch ROM(搜索芯片)F0Hn nAlarm Search(报警芯片搜索)ECH第7页/共17页第八页,共17页。DS28B20DS28B20芯片芯片芯片芯片(xn pin)(xn pin)存储器操作指令表存储器操作指令表存储器操作指令表存储器操作指令表 n nWrite Scratchpad Write Scratchpad(向(向RAMRAM中写数据中写数据(shj)(shj))4EH4EHn nRead Scratchpad Read Scratchpad(从(从RAMRAM中读数据中读数据(shj)(shj))BEHBEHn nCopy Scratchpad Copy Scratchpad(将(将RAMRAM数据数据(shj)(shj)复制到复制到EEPROMEEPROM中)中)48H48Hn nConvert TConvert T(温度转换)(温度转换)44H44Hn nRecall EEPROMRecall EEPROM(将(将EEPROMEEPROM中的报警值复制到中的报警值复制到RAMRAM)B8HB8Hn nRead Power SupplyRead Power Supply(工作方式切换)(工作方式切换)B4HB4H第8页/共17页第九页,共17页。DS18B20DS18B20写时间隙写时间隙写时间隙写时间隙(jin x)(jin x)写时间隙分为写写时间隙分为写“0”“0”和写和写“1”“1”,时序如图。在写数据时间隙的前,时序如图。在写数据时间隙的前15uS15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在的采样时间,采样时间在1560uS1560uS,采样时间内如果控制器将总线拉,采样时间内如果控制器将总线拉高则表示写高则表示写“1”“1”,如果控制器将总线拉低则表示写,如果控制器将总线拉低则表示写“0”“0”。每一位的发送。每一位的发送(f sn(f sn)都应该有一个至少都应该有一个至少15uS15uS的低电平起始位,随后的数据的低电平起始位,随后的数据“0”“0”或或“1”“1”应该在应该在45uS45uS内完成。整个位的发送内完成。整个位的发送(f sn(f sn)时间应该保持在时间应该保持在60120uS60120uS,否则不能保证通信的正常。,否则不能保证通信的正常。第9页/共17页第十页,共17页。DS18B20DS18B20读时间隙读时间隙读时间隙读时间隙(jin x)(jin x)读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少是必须先由主机产生至少1uS1uS的低电平,表示读时间的起始。随后的低电平,表示读时间的起始。随后(suhu)(suhu)在总线被释放后的在总线被释放后的15uS15uS中中DS18B20DS18B20会发送内部数据位,这时控制会发送内部数据位,这时控制如果发现总线为高电平表示读出如果发现总线为高电平表示读出“1”“1”,如果总线为低电平则表示读出数,如果总线为低电平则表示读出数据据“0”“0”。每一位的读取之前都由控制器加一个起始信号。注意:如图所。每一位的读取之前都由控制器加一个起始信号。注意:如图所示,必须在读间隙开始的示,必须在读间隙开始的15uS15uS内读取数据位才可以保证通信的正确。内读取数据位才可以保证通信的正确。第10页/共17页第十一页,共17页。实验实验实验实验(shyn)(shyn)电路电路电路电路 第11页/共17页第十二页,共17页。实验实验实验实验(shyn)(shyn)要求与任务要求与任务要求与任务要求与任务 本实验要求示例程序为读取本实验要求示例程序为读取 DS18B20 DS18B20 温度转换数据,并在数码管上以温度转换数据,并在数码管上以十进制形式显示。十进制形式显示。提示:这里用两位数码管来显示温度。显示范围提示:这里用两位数码管来显示温度。显示范围0000到到9999度,显示精度度,显示精度为为1 1度。因为度。因为1212位转化时每一位的精度为度位转化时每一位的精度为度,我们不要求显示小数我们不要求显示小数(xi(xi osh)osh)所以可以抛弃低所以可以抛弃低4 4位,将高位中的低位,将高位中的低4 4位和低位中的高位和低位中的高4 4位合并获得一个新位合并获得一个新字节,这个字节就是实际测量获得的温度。这个转化温度的方法非常简字节,这个字节就是实际测量获得的温度。这个转化温度的方法非常简洁无需乘于系数洁无需乘于系数 第12页/共17页第十三页,共17页。实验实验实验实验(shyn)(shyn)流程流程流程流程图图图图 第13页/共17页第十四页,共17页。DS18B20DS18B20参考参考(cnk(cnk o)o)子程序子程序1 1INIT_1820:;INIT_1820:;这是这是DS18B20DS18B20复位初始化子程序复位初始化子程序 NOP NOP MOV R1,#3 ;MOV R1,#3 ;主机发出延时复位低脉冲主机发出延时复位低脉冲TSR1:MOV R0,#163TSR1:MOV R0,#163 DJNZ R0,$DJNZ R0,$DJNZ R1,TSR1 DJNZ R1,TSR1 SETB P1.0 ;SETB P1.0 ;然后拉高数据线然后拉高数据线 NOP NOP NOP NOP NOP NOP MOV R0,#25H MOV R0,#25HTSR2:JNB P1.0,TSR3 ;TSR2:JNB P1.0,TSR3 ;等待等待DS18B20DS18B20回应回应 DJNZ R0,TSR2 DJNZ R0,TSR2 LJMP TSR4 ;LJMP TSR4 ;延时延时TSR3:SETB FLAG1 ;TSR3:SETB FLAG1 ;置标志位置标志位,表示表示DS1820DS1820存在存在 LJMP TSR5 LJMP TSR5TSR4:CLR FLAG1 ;TSR4:CLR FLAG1 ;清标志位清标志位,表示表示DS1820DS1820不存在不存在 LJMP TSR7 LJMP TSR7TSR5:MOV R0,#117TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ;TSR6:DJNZ R0,TSR6 ;时序时序(sh x)(sh x)要求延时一段时间要求延时一段时间 RET RET第14页/共17页第十五页,共17页。DS18B20参考(cnko)子程序2WRITE_1820:;WRITE_1820:;写写DS18B20DS18B20的子程序的子程序(有具体有具体(jt(jt)的时序要求的时序要求)MOV R2,#8 ;MOV R2,#8 ;一共一共8 8位数据位数据 CLR C CLR C MOV R3,#6 MOV R3,#6 DJNZ R3,$DJNZ R3,$RRC A RRC A MOV P1.0,C MOV P1.0,C MOV R3,#23 MOV R3,#23 DJNZ R3,$DJNZ R3,$NOP NOP DJNZ R2,WR1 DJNZ R2,WR1 RET RET第15页/共17页第十六页,共17页。DS18B20DS18B20参考参考(cnk(cnk o)o)子程序子程序3 3READ_18200:;READ_18200:;读读DS18B20DS18B20的程序,从的程序,从DS18B20DS18B20中读出两个字节的温度数据中读出两个字节的温度数据 MOV R4,#2 ;MOV R4,#2 ;将温度高位将温度高位(o wi)o wi)和低位从和低位从DS18B20DS18B20中读出中读出 MOV R1,#28H ;MOV R1,#28H ;低位存入低位存入28H(TEMPER_L),28H(TEMPER_L),高位高位(o wi)o wi)存入存入29H(TEMPER_H)29H(TEMPER_H)RE00:MOV R2,#8 ;RE00:MOV R2,#8 ;数据一共有数据一共有8 8位位RE01:CLR CRE01:CLR C NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOV R3,#9 MOV R3,#9RE10:DJNZ R3,RE10RE10:DJNZ R3,RE10 MOV R3,#23 MOV R3,#23RE20:DJNZ R3,RE20RE20:DJNZ R3,RE20 RRC A RRC A DJNZ R2,RE01 DJNZ R2,RE01 MOV R1,A MOV R1,A INC R1 INC R1 DJNZ R4,RE00 DJNZ R4,RE00 RET RET第16页/共17页第十七页,共17页。