📄 ad7416的温度测量.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0030H
;T_SDA BIT P1.7
;T_SCL BIT P1.6
MAIN:MOV SP,#70H
MOV TMOD,#20H;设置定时破1工作方式2。
MOV TH1,#250
MOV TL1,#250
;SETB TR1
MOV SCON,#0F8H;设置行口工作方式3。
SETB TR1
CLR TI
MAIN1: LJMP MAIN11
MAIN11:
MOV R1,#57H
MOV R0,#40H
MOV R7,#0AH
SDA:
LCALL STA
MOV A,#10010001B
LCALL WBYT
LCALL CACK
LCALL RBYT
MOV A,R2
MOV @R0,A
LCALL MACK
INC R0
LCALL RBYT
MOV A,R2
MOV @R0,A
INC R0
LCALL MNACK
LCALL STOP
;DEC R0
;DEC R0
;MOV A, @R0
; CLR C
; RRC A
; MOV @R0, A
;INC R0
;MOV A, @R0
; RRC A
; MOV @R0, A
INC R0
LCALL DL1S
DJNZ R7, SDA
;
;
TEMP11: MOV R0,#40H
MOV R2,#0AH
CHU: MOV A,@R0
MOV B,#10
DIV AB
MOV @R1,B
MOV @R0,A
INC R0
INC R0
INC R1
DJNZ R2,CHU ;十个数据的前八位除以10,商放回原处,余数防到57H~60H
MOV R0,#40H
MOV R1,#57H
JIA: MOV A,@R0
INC R0
INC R0
MOV R5,#9
JIA1: ADD A,@R0
INC R0
INC R0
DJNZ R5,JIA1;十位数整数相加
MOV R3,A
RR A
RR A
MOV B,#10
DIV AB
MOV 33H,A;十位数存33H
MOV 34H,B
XIAOSHU:MOV R0,#41H
MOV R2,#0AH
LOOP: MOV A,@R0
ANL A,#0C0H
SWAP A
MOV @R0,A
INC R0
INC R0
DJNZ R2,LOOP
XJ: MOV R0,#41H
MOV R2,#0AH
XJ1: MOV A,@R0
INC R0
INC R0
ADD A,@R0
INC R0
INC R0
DJNZ R2,XJ1
MOV B,#10
DIV AB
RR A
RR A
MOV 35H,A
LCALL DELAY
;///////////////////////////////
FS: ;;LCALL DELAY
MOV A,#55H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,33H
;MOV A, #01H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,34H
; MOV A, #02
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,35H
; MOV A, #04
MOV SBUF,A
JNB TI,$
CLR TI
; RET
LJMP MAIN
DELAY: MOV 36H,#100
D3: MOV 37H,#100
D2: MOV 38H,#100
D1: NOP
NOP
NOP
DJNZ 38H,D1
DJNZ 37H,D2
DJNZ 36H,D3
RET
DL1S: MOV 36H,#08H
DL1S1: MOV 37H,#100
DL1S2: MOV 38H,#100
DL1S3: NOP
NOP
NOP
DJNZ 38H,DL1S3
DJNZ 37H,DL1S2
DJNZ 36H,DL1S1
RET
RDATA: MOV R0,#31H
MOV R7,#08H
MOV R6,#00H
RDATA1: MOV A,R6
MOV P1,A
LCALL SDA
INC R0
INC R0
INC R0
INC R6
DJNZ R7,RDATA1
RET
;
STA:
SETB P1.7
SETB P1.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR P1.7
NOP
NOP
NOP
NOP
NOP
NOP
CLR P1.6
RET
WBYT:
MOV R2,#08H
WLP: RLC A
MOV P1.7,C
SETB P1.6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR P1.6
DJNZ R2,WLP
RET
CACK: SETB P1.7
SETB P1.6
NOP
NOP
CACK1: MOV C,P1.7
JC CACK1
CLR P1.6
RET
RBYT: MOV R3,#08H
RLP: SETB P1.7
NOP
NOP
NOP
NOP
NOP
NOP
SETB P1.6
MOV 36H, #10H
DJNZ 36H, $
MOV C,P1.7
MOV A,R2
RLC A
MOV R2,A
CLR P1.6
DJNZ R3,RLP
RET
MACK: CLR P1.7
SETB P1.6
NOP
NOP
CLR P1.6
NOP
SETB P1.7
RET
MNACK: SETB P1.7
SETB P1.6
NOP
NOP
CLR P1.6
NOP
CLR P1.7
RET
STOP: CLR P1.7
NOP
NOP
SETB P1.6
NOP
NOP
SETB P1.7
NOP
NOP
NOP
CLR P1.7
CLR P1.6
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -