ultra.asm

来自「适用于基于8051的超声波测距仪的汇编程序」· 汇编 代码 · 共 70 行

ASM
70
字号
	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 + =
减小字号Ctrl + -
显示快捷键?