INTT0:CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0
SETBTR1
OUT:RET
;T1中断,发超声波用:
INTT1:CPLVOUT
DJNZR4,RETIOUT
CLRTR1
CLRET1
MOVR4,#04H
SETBEX0
RETIOUT:RETI
;外中断0,收到回波时进入
PINT0:CLRTR0
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0
MOV45H,TH0
SETB00H
RETI
;*****显示程序:**********
DISPLAY:MOVR1,#40H;G
MOVR5,#0F7H;G
PLAY:MOVA,R5
MOVP0,#0FFH
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.0,ENDOUT;G
RRA
MOVR5,A
AJMPPLAY
ENDOUT:MOVR2,#0FFH
MOVP0,#0FFH
RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共阳段码管"0","1","2","3","4","5","6","7","8","9","不亮","A","-"
;延时程序:
DL1MS:MOVR6,#14H
DL1:MOVR7,#19H
DL2:DJNZR7,DL2
DJNZR6,DL1
RET
;*** ****距离计算程序**********
WORK: PUSH ACC
PUSH PSW
PUSH B
MOV PSW,#18H
MOV R3,45H
MOV R2,44H
MOV R1,00D
MOV R0,17D
LCALL MUL2BY2
MOV R3,#03H
MOV R2,0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H,R4
MOV A,40H
JNZ JJ0
MOV 40H,#0AH
JJ0: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, 00D
MOV R2, #100D
LCALL DIV4BY2
MOV 41H,R4
MOV A,41H
JNZ JJ1
MOV A,40H
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH
JJ1: MOV A,R0
MOV R4,A
MOV A,R1
MOV R5,A
MOV R3,#00D
MOV R2,10D
LCALL DIV4BY2
MOV 42H,R4
JNZ JJ2
MOV A,41H
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH
JJ2: MOV 43H,R0
POP B
POP PSW
POP ACC
RET
来源:仪表技术