ºÓ±±¹¤Òµ´óѧ±ÏÒµÂÛÎÄ
DS18CD5 EQU 46H DS18CD6 EQU 47H DS18CD7 EQU 48H DS18CD8 EQU 49H DS1864B EQU 4AH DS18ADS EQU 4BH
DS18DQ EQU P1.0 ;30H,31H,32H,33H: X ¸öλ ʮλ X MOD7: MOV SP,#60H
LCALL GET_TEMPER ;µ÷ÓöÁζÈ×Ó³ÌÐò LCALL READCODE AJMP MOD7
INIT_1820: ;DS18B20³õʼ»¯ SETB DS18DQ
CLR DS18DQ ;ÑÓʱ,500USµÍMC MOV R7,#250 DJNZ R7,$ MOV R7,#150 DJNZ R7,$
SETB DS18DQ ;ÊÍ·Å×ÜÏß
LCALL DELAY60US ;15-60USµÄµÈ´ýʱ¼ä MOV R6,#4 SETDSDQ: LCALL DELAY60US
JNB DS18DQ,SETDSDQFH ;60-240USÄÚÊÇ·ñÓзµ»ØÐźÅ,Ϊ0Ìø DJNZ R6,SETDSDQ MOV R7,#250 DJNZ R7,$ CLR DS18FIG RET
22
ºÓ±±¹¤Òµ´óѧ±ÏÒµÂÛÎÄ
SETDSDQFH: SETB DS18FIG MOV R7,#250 DJNZ R7,$ MOV R7,#100 DJNZ R7,$ RET;
Êý¾Ý´¦Àí³ÌÐò£º TEMP0: INC A AJMP TEMP1
TEMPCOV: MOV A,DS18SL ;Êý¾Ý´¦Àí×Ó³ÌÐò TEMPCOV MOV B,#16 DIV AB JB B.3,TEMP0
TEMP1: MOV 34H,A ;½«DS18SLµÄ¸ßËÄλÓÒÒÆËÄλ,´æÈë 34HÖУ¨Î¶ÈÖµ£©
MOV A,B ;½«DS18SLµÄµÍËÄλX10/16µÃСÊýºó һλÊý. MOV B,#10 MUL AB MOV B,#16 DIV AB
MOV 30H,A ;½«Ð¡ÊýºóһλÊý.´æÈë30HÖÐ MOV A,DS18SH ;DS18SHÖдæ·Å¸ß8λÊý,Ȩ ÖØ16 MOV B,#16 MUL AB
ADD A,34H ;34HÖдæÈëζÈÖµµÄÕûÊý²¿·Ö MOV B,#10
23
ºÓ±±¹¤Òµ´óѧ±ÏÒµÂÛÎÄ
DIV AB
MOV 31H,B ;¸öλ´æÈë31HÖÐ MOV B,#10 ; DIV AB ;
MOV 32H,B ;ʮλ´æÈë32HÖÐ MOV B,#10 ; DIV AB ;
MOV 35H,B ;°Ùλ´æÈë33HÖÐ MOV A,DS18SH MOV 33H,#10H ; JB ACC.7,EXIT7 MOV 33H,#00H EXIT7: RET
GET_TEMPER: ;¶Á³öת»»ºóµÄζÈÖµ,²¢ÏÔʾ SETB DS18DQ
LCALL INIT_1820 ;Ïȸ´Î»DS18B20 JB DS18FIG,TSS2
RET ;ÅжÏDS1820ÊÇ·ñ´æÔÚ?ÈôDS18B20²»´æÔÚÔò·µ TSS2: MOV DS18ADS,#0 DS18JX: LCALL DS18CODP MOV A,DS18ADS ADD A,#9 MOV DS18ADS,A CJNE A,#63,DS18JX RET DS18CODP:
LCALL MRCOVT ;ת»»Ö¸¶¨µÄDS18B20µÄÎÂ¶È LCALL MRRDTEDP ;ÏÔʾζÈ
24
ºÓ±±¹¤Òµ´óѧ±ÏÒµÂÛÎÄ
RET TEMP:
LCALL INIT_1820 JB DS18FIG,NEXT4 RET NEXT4: MOV DS18ADS,#9 MOV A,#0CCH ;SKIP ROM LCALL WRITE_1820 MOV A,#44H ;ζÈת»»ÃüÁî LCALL WRITE_1820 LCALL DELAY1S LCALL MRRDTEDP
RET;дDS18B20µÄ×Ó³ÌÐò(ÓоßÌåµÄʱÐòÒªÇó) WRITE_1820: ;дDS18B20 MOV R5,#8 DS18JXWE:
SETB DS18DQ ;³õʼ»¯ CLR DS18DQ CLR DS18DQ MOV R7,#5
DJNZ R7,$ ;ÀµÍ15USÄÚ,дÈëÊý¾Ý CLR C RRC A MOV DS18DQ,C
LCALL DELAY60US ;³ÖÐø60US SETB DS18DQ ;дÍêÒ»¸öλ DJNZ R5,DS18JXWE RET
READ_1820_CODE: ;¶ÁÈ¡CODE 64λ
25
ºÓ±±¹¤Òµ´óѧ±ÏÒµÂÛÎÄ
MOV R4,#8 ;¶Á8´ÎÊý
MOV R1,#DS18CD1 ;µÍλµØÖ·´æÔÚR1 DS18JXRD3:
MOV R5,#8 ;8λÊý¾Ý DS18JXRD2: SETB DS18DQ
CLR DS18DQ ;ǰÁ½¾äÍê³É³õʼ»¯ NOP
NOP ;ÑÓʱÖÁÉÙ1US
SETB DS18DQ ;ÉÏÉýÑØ,²¢ÔÚ,15USÄÚ¶ÁÊý MOV R7,#5 DJNZ R7,$ MOV C,DS18DQ RRC A
LCALL DELAY60US ;¶ÁʱÐò,×îÉÙ60US DJNZ R5,DS18JXRD2 MOV @R1,A INC R1
DJNZ R4,DS18JXRD3 SETB DS18DQ
RET;¶ÁDS18B20µÄ³ÌÐò,´ÓDS18B20ÖжÁ³öÁ½¸ö×Ö½ÚµÄζÈÊý ¾Ý
READ_18200:
MOV R4,#2 ;¶ÁÁ½´ÎÊý
MOV R1,#DS18SL ;µÍλµØÖ·´æÔÚR1 DS18JXRD1:
MOV R5,#8 ;8λÊý¾Ý DS18JXRD: SETB DS18DQ
CLR DS18DQ ;ǰÁ½¾äÍê³É³õʼ»¯
26
Ïà¹ØÍÆ¼ö£º