ORG 0000H
LJMP MAIN
ORG 0100H
;*********************************************
DAT BIT P1.0
TEMPER_L EQU 40H
TEMPER_H EQU 41H
A_BIT EQU 60H
B_BIT EQU 61H
C_BIT EQU 62H
D_BIT EQU 63H
;***主程序****************************************
MAIN:
MOV A,#7FH
LCALL WRITE_1820
LCALL INIT_1820
LCALL GET_TEMPER
LCALL CONVER
LCALL DISPLAY
LJMP MAIN
;***初始化db18b20**************************************************** INIT_1820:
CLR EA
INI10:
SETB DAT
MOV R2,#200
INI11:
CLR DAT
DJNZ R2,INI11
SETB DAT
MOV R2,#30
INT12:
DJNZ R2,INT12
CLR C
ORL C,DAT
JC INI10
MOV R6,#80
INI13:
ORL C,DAT
JC INI14
DJNZ R6,INI13
SJMP INI10
INI14:
MOV R2,#240
INT15:
DJNZ R2,INT15
RET
;**读温度子程序*********************************************************
GET_TEMPER:
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#44H
LCALL WRITE_1820
SETB DAT
LCALL DISPLAY
LCALL INIT_1820
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#0BEH
LCALL WRITE_1820
LCALL READ_1820
MOV TEMPER_L,A
LCALL READ_1820
MOV TEMPER_H,A
RET
;***写ds18b20的程序*********************************************************** WRITE_1820:
CLR EA
MOV R3,#8
WR11:
SETB DAT
MOV R4,#8
RRC A
CLR DAT
WR12:
DJNZ R4,WR12
MOV DAT,C
MOV R4,#30
WR13:
DJNZ R4,WR13
DJNZ R3,WR11
SETB DAT
RET
;***读ds18b20的程序*********************************************************************
READ_1820:
MOV R6,#8
RD11:
CLR DAT
MOV R4,#8
NOP
SETB DAT
RD12:
DJNZ R4,RD12
MOV C,DAT
RRC A
MOV R5,#30
RD13:
DJNZ R5,RD13
DJNZ R6,RD11
SETB DAT
RET
;***计算温度子程序************************************************ CONVER:
MOV A,#0F0H
ANL A,TEMPER_H
MOV 64H,A
JZ UNSIGN
DEC TEMPER_L
MOV A,TEMPER_H
CPL A
MOV TEMPER_H,A
MOV A,TEMPER_L
CPL A
MOV TEMPER_L,A
UNSIGN:
MOV A,#0FH
ANL A,TEMPER_L
MOV B,#10
MUL AB
MOV B,#16
DIV AB
MOV A_BIT,A
MOV A,#0F0H
ANL A,TEMPER_L
SWAP A
MOV B,A
MOV A,#0FH
ANL A,TEMPER_H
ADD A,B
MOV 32H,A
BCD:
MOV B,#100
DIV AB
MOV 30H,A
MOV D_BIT,A
MOV A,#10
XCH A,B
DIV AB
MOV C_BIT,A
MOV B_BIT,B
SWAP A
ADD A,B
MOV 31H,A
RET
;****显示温度子程序***********************************************************
DISPLAY:
MOV 5FH,#00H
MOV 5EH,#03H
MOV DPTR,#TAB
MOV R3,#100
S3: MOV R1,#20
S2: MOV R2,#08H
MOV R0,#63H
MOV R4,#4
SETB C
S1: MOV P2,R2
CJNE R4,#4,DLP3
CJNE @R0,#00H,DLP6
MOV A,#0FFH
LJMP DLP1
DLP3:CJNE R4,#3,DLP6
CJNE @R0,#00H,DLP6
MOV A,63H
CJNE A,#00H,DLP3
MOV A,#0FFH
LJMP DLP1
DLP6:MOV A,@R0
MOVC A,@A+DPTR
CJNE R4,#2,DLP1
ANL A,#7FH
DLP1:
MOV R5,64H
CJNE R5,#0F0H,DLP2
CJNE R4,#4,DLP5
MOV R6,62H
CJNE R6,#0,DLP4
MOV A,#0FFH
LJMP DLP2
DLP4:MOV A,#0BFH
LJMP DLP2
DLP5:CJNE R4,#3,DLP2
CJNE @R0,#0,DLP2
MOV A,#0BFH
DLP2:MOV P0,A
LCALL DELAY
MOV A,R2
RR A
MOV R2,A
DEC R0
DJNZ R4,S1
DJNZ R1,S2
DJNZ R3,S3
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DELAY:
MOV R7,#118
DJNZ R7,$
RET
END
本文档为【51单片机数字温度计汇编程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。