📄 ultra.asm
字号:
ORG 0000H
JMP START
START:
MOV A,#0FFH
MOV P1,A
MOV TMOD,#02H
TIMER0_LOAD:
MOV TH0,#0F4H
MOV TL0,#0F4H
RESEND_PULSE:
MOV R2,#40
SEND_PULSE:
SETB TR0
TIMER0_CHECK:
JNB TF0,TIMER0_CHECK
CLR TR0
CLR TF0
CPL P1.0
DJNZ R2,SEND_PULSE
WAITECHO:
MOV TMOD,#12H
TIMER1_LOAD:
MOV TL1,#00H
MOV TH1,#00H
SETB TR1
ECHO_CHECK:
JB P1.2,RECORD
JNB TF1,ECHO_CHECK
CLR TR1
CLR TF1
JMP RESEND_PULSE
RECORD:
CLR TR1
CLR TF1
MOV 30H,TL1
MOV 31H,TH1
MOV R0,#00H
MOV R1,#00H
MOV SP,#50H
CLR C
METER:
PUSH 30H
MOV A,30H
SUBB A,#0FAH
MOV 30H,A
MOV A,31H
SUBB A,#16H
JC DECIMETER
INC R0
MOV 31H,A
JMP METER
DECIMETER:
POP 30H
DECIMETER_1:
MOV A,30H
SUBB A,#4CH
MOV 30H,A
MOV A,31H
SUBB A,#02H
JC DISPLAY
INC R1
MOV 31H,A
JMP DECIMETER_1
DISPLAY:
MOV A,R0
SWAP A
ADD A,R1
MOV P0,A
JMP START
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -