DS18B20数字温度计的设计(一)(第5页)
本文共计10691个字,预计阅读时长36分钟。【 字体:大 中 小 】
另外,-55~~+125 ℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电性能可做成用电池供电的手持电子温度计。
DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题:
DS18B20工作时电流高达1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。
连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。
在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
第 五 章 程序清单
DS18B20采用4位LED共阳显示器显示测温值,显示精度为0.1 ℃,测温范围为-55~~+125 ℃,用AT89C2051单片机,12MHz晶振
TIMEL EQU 0E0H
TIMEN EQU 0B1H
TEMPHEAD EQU 36H
BITST DATA 20H
TIME1SOK BIT BITST.1
TEMPONEOK BIT BITST.2
TEMPL DATA 26H
TEMPH DATA 27H
TEMPHC DATA 28H
TEMPLC DATA 29H
TEMPDIN DIT P3.7
ORG 0000H
LJMP START
ORG 00BH
LJMP T0IT
ORG 100H
START: MOV SP , #60H
CLSMEM: MOV R0 , #20H
MOV R1 , #60H
CLSMEM1: MOV @R0,#00H
INC R0
DJNZ R1 , CLSMEM1
MOV TMOD ,#00100001B
MOV TH0, #TIMEL
MOV TL0, #TIMEH
SJMP INIT
ERROR: NOP
LJMP START
NOP
INIT: NOP
SETB ET0
SETB TR0
SETB EA
MOV PSW, #00H
CLR TEMPONEOK
LJMP MAIN
T0IT: PUSH PSW
MOV PSW,#10H
MOV TH0,#TIMEH
MOV TL0,#TIMEL
INC R7
CJNZ R7, #32H,T0IT1
MOV R7, #00H
SETB TIMEISOK
T0IT1: POP PSW
RETI
MAIN: LCALL DISP1
JNB TINE1SOK, MAIN
CLR TIME1SOK
JNB TEMPONEOK ,MAIN2
LCALL READTEMP1
LCALL CONVTEMP
LCALL DISPBCD
LCALL DISP1
MAIN: LCALL READTEMP
SETB TEMPONEOK
LJMP MAIN
INITDS1820: SETB TEMPDIN
NOP
NOP
CLR TEMPDIN
MOV R6 , #0A0H
DJNZ R6 ,$
MOV R6 ,#0A0H
DJNZ R6 ,$
SETB TEMPIND
MOV R6 ,#32H
DJNZ R6 ,$
MOV R6,#3CH
LOOP1820: MOV C , TEMPDIN
JC INITDS1820OUT
DJNZ R6, LOOP1820
MOV R6 , #064H
DJNZ R6 ,$
SJMP TNITDS1820
RET
