⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bike.asm

📁 通过霍尔传感器测量车轮转动的次数
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        	XCH	A,R3
        	MOV	B,R6
        	MUL	AB
        	ADD	A,R4
        	MOV	R4,A
        	MOV	A,B
        	ADDC	A,R3
        	MOV	R3,A
        	JB	ACC.7,MUL2
        	MOV	A,R7
        	RLC	A
        	MOV	R7,A
        	LCALL	RL1
MUL2:	        MOV	A,R7
        	JNB	ACC.7,MUL3
        	INC	R4
        	MOV	A,R4
        	JNZ	MUL3
        	INC	R3
        	MOV	A,R3
        	JNZ	MUL3
        	MOV	R3,#80H
        	INC	R2
MUL3:        	MOV	A,R2
        	ADD	A,R5
MD:	        MOV	R2,A
        	JB	ACC.7,MUL4
        	JNB	ACC.6,MUL6
        	MOV	R2,#3FH
        	SETB	OV
        	RET
MUL4:	        JB	ACC.6,MUL6
MUL5:        	CLR	A
        	MOV	R3,A
        	MOV	R4,A
        	MOV	R2,#41H
MUL6:        	CLR	OV
	        RET

FDIV:	        INC	R0
        	MOV	A,@R0
        	INC	R0
        	ORL	A,@R0
        	DEC	R0
        	DEC	R0
        	JNZ	DIV1
	        MOV	@R0,#41H
        	CLR	OV
	        RET
DIV1:	        INC	R1
	        MOV	A,@R1
	        INC	R1
	        ORL	A,@R1
	        DEC	R1
        	DEC	R1
	        JNZ	DIV2
        	SETB	OV
        	RET
DIV2:        	LCALL	MVR0
        	MOV	A,@R0
        	XRL	A,@R1
        	RLC	A
        	MOV	PFA,C
        	LCALL	MVR1
        	LCALL	DIV3
        	LJMP	MOV0
DIV3:        	CLR	C
        	MOV	A,R4
        	SUBB	A,R7
        	MOV	A,R3
        	SUBB	A,R6
        	JC	DIV4
        	LCALL	RR1
        	SJMP	DIV3
DIV4:        	CLR	A
        	XCH	A,R0
        	PUSH	ACC
        	CLR	A
        	XCH	A,R1
        	PUSH	ACC
        	MOV	A,R2
        	PUSH	ACC
        	MOV	B,#10H
DIV5:        	CLR	C
        	MOV	A,R1
        	RLC	A
        	MOV	R1,A
        	MOV	A,R0
        	RLC	A
        	MOV	R0,A
        	MOV	A,R4
        	RLC	A
        	MOV	R4,A
        	XCH	A,R3
        	RLC	A
        	XCH	A,R3
        	MOV	F0,C
        	CLR	C
        	SUBB	A,R7
        	MOV	R2,A
        	MOV	A,R3
        	SUBB	A,R6
        	ANL	C,/F0
        	JC	DIV6
        	MOV	R3,A
        	MOV	A,R2
        	MOV	R4,A
        	INC	R1
DIV6:        	DJNZ	B,DIV5
        	MOV	A,R6
        	CLR	C
	        RRC	A
        	SUBB	A,R3
        	CLR	A
        	ADDC	A,R1
                MOV	R4,A
        	CLR	A
        	ADDC	A,R0
        	MOV	R3,A
        	POP	ACC
        	MOV	R2,A
        	POP	ACC
        	MOV	R1,A
        	POP	ACC
        	MOV	R0,A
        	MOV	A,R2
        	CLR	C
        	SUBB	A,R5
        	LCALL	MD
        	LJMP	RLN

FCMP:	        MOV	A,@R0
        	XRL	A,@R1
        	JNB	ACC.7,CMP2
        	MOV	A,@R0
        	RLC	A
        	MOV	A,#0FFH
        	RET
CMP2:        	MOV	A,@R1
        	MOV	C,ACC.6
        	MOV	ACC.7,C
        	MOV	B,A
        	MOV	A,@R0
        	MOV	C,ACC.7
        	MOV	F0,C
        	MOV	C,ACC.6
        	MOV	ACC.7,C
        	CLR	C
        	SUBB	A,B
        	JZ	CMP6
        	RLC	A
        	JNB	F0,CMP5
        	CPL	C
CMP5:        	MOV	A,#0FFH
        	RET
CMP6:	        INC	R0
	        INC	R0
        	INC	R1
        	INC	R1
        	CLR	C
        	MOV	A,@R0
        	SUBB	A,@R1
        	MOV	B,A
        	DEC	R0
        	DEC	R1
        	MOV	A,@R0
        	SUBB	A,@R1
        	DEC	R0
        	DEC	R1
        	ORL	A,B
        	JZ	CMP7
        	JNB	F0,CMP7
	        CPL	C
CMP7:	        RET

DTOF:        	MOV	R2,A
        	MOV	A,@R0
        	MOV	R3,A
        	INC	R0
        	MOV	A,@R0
        	MOV	R4,A
        	DEC	R0
        	LCALL	RLN
        	LJMP	MOV0

FTOD:        	LCALL	MVR0
        	MOV	A,R2
        	JZ	FTD4
        	JB	ACC.7,FTD4
        	SETB	C
        	SUBB	A,#10H
        	JC	FTD1
        	SETB	OV
        	RET
FTD1:        	SETB	C
        	MOV	A,R2
        	SUBB	A,#8
        	JC	FTD3
FTD2:        	MOV	B,#10H
        	LCALL	FTD8
        	SETB	F0
        	CLR	C
        	CLR	OV
        	RET
FTD3:	        MOV	B,#8
        	LCALL	FTD8
        	SETB	C
        	CLR	F0
        	CLR	OV
	        RET
FTD4:        	MOV	B,#0
        	LCALL	FTD8
        	CLR	OV
        	CLR	F0
        	CLR	C
        	RET
FTD8:        	MOV	A,R2
        	CJNE	A,B,FTD9
        	MOV	A,R3
        	MOV	@R0,A
        	INC	R0
        	MOV	A,R4
        	MOV	@R0,A
        	DEC	R0
        	RET
FTD9:	        CLR	C
	        LCALL	RR1
        	SJMP	FTD8

BTOF:	        INC	R0
	        INC	R0
        	MOV	A,@R0
        	MOV	R7,A
        	DEC	R0
        	MOV	A,@R0
        	MOV	R6,A
        	DEC	R0
        	ORL	A,R7
        	JNZ	BTF0
        	MOV	@R0,#41H
	        RET
BTF0:	        MOV	A,@R0
        	MOV	C,ACC.7
        	MOV	PFC,C
        	CLR	PFA
        	MOV	C,ACC.6
        	MOV	ACC.7,C
        	MOV	@R0,A
        	JNC	BTF1
        	ADD	A,#19
        	JC	BTF2
        	MOV	@R0,#41H
        	INC	R0
        	MOV	@R0,#0
        	INC	R0
        	MOV	@R0,#0
	        DEC	R0
        	DEC	R0
        	RET
BTF1:	        SUBB	A,#19
        	JC	BTF2
        	MOV	A,#3FH
        	MOV	C,PFC
        	MOV	ACC.7,C
        	MOV	@R0,A
        	INC	R0
        	MOV	@R0,#0FFH
        	INC	R0
        	MOV	@R0,#0FFH
        	DEC	R0
	        DEC	R0
	        RET
BTF2:	        CLR	A
        	MOV	R4,A
	        MOV	R3,A
        	MOV	R2,#10H
BTF3:        	MOV	A,R7
        	ADD	A,R7
	        DA	A
        	MOV	R7,A
        	MOV	A,R6
        	ADDC	A,R6
        	DA	A
        	MOV	R6,A
        	MOV	A,R4
        	RLC	A
        	MOV	R4,A
        	MOV	A,R3
	        RLC	A
        	MOV	R3,A
        	DEC	R2
        	JNB	ACC.7,BTF3
        	MOV	A,R6
	        ADD	A,#0B0H
        	CLR	A
        	ADDC	A,R4
        	MOV	R4,A
        	CLR	A
        	ADDC	A,R3
        	MOV	R3,A
        	JNC	BTF4
        	MOV	R3,#80H
	        INC	R2
BTF4:	        MOV	DPTR,#BTFL
        	MOV	A,@R0
        	ADD	A,#19
        	MOV	B,#3
        	MUL	AB
        	ADD	A,DPL
        	MOV	DPL,A
        	JNC	BTF5
        	INC	DPH
BTF5:	        CLR	A
        	MOVC	A,@A+DPTR
        	MOV	C,ACC.6
        	MOV	ACC.7,C
        	MOV	R5,A
        	MOV	A,#1
        	MOVC	A,@A+DPTR
        	MOV	R6,A
        	MOV	A,#2
        	MOVC	A,@A+DPTR
        	MOV	R7,A
        	LCALL	MUL1
        	MOV	C,PFC
        	MOV	PFA,C
        	LJMP	MOV0

FTOB:	        INC	R0
        	MOV	A,@R0
	        INC	R0
        	ORL	A,@R0
        	DEC	R0
        	DEC	R0
        	JNZ	FTB0
        	MOV	@R0,#41H
	        RET
FTB0:	        MOV	A,@R0
	        MOV	C,ACC.7
	        MOV	PFC,C
        	CLR	ACC.7
        	MOV	@R0,A
        	LCALL	MVR0
        	MOV	DPTR,#BFL0
        	MOV	B,#0
        	MOV	A,R2
        	JNB	ACC.7,FTB1
        	MOV	DPTR,#BTFL
        	MOV	B,#0EDH
        	ADD	A,#16
        	JNC	FTB1
        	MOV	DPTR,#BFLN
        	MOV	B,#0FAH
FTB1:        	CLR	A
	        MOVC	A,@A+DPTR
        	MOV	C,ACC.6
        	MOV	ACC.7,C
        	MOV	R5,A
        	MOV	A,#1
        	MOVC	A,@A+DPTR
        	MOV	R6,A
                MOV	A,#2
        	MOVC	A,@A+DPTR
                MOV	R7,A
        	MOV	A,R5
        	CLR	C
        	SUBB	A,R2
        	JB	ACC.7,FTB2
        	JNZ	FTB3
        	MOV	A,R6
        	CLR	C
        	SUBB	A,R3
        	JC	FTB2
        	JNZ	FTB3
        	MOV	A,R7
        	CLR	C
        	SUBB	A,R4
        	JC	FTB2
        	JNZ	FTB3
        	MOV	R5,B
        	INC	R5
        	MOV	R6,#10H
        	MOV	R7,#0
        	SJMP	FTB6
FTB2:        	INC	DPTR
        	INC	DPTR
        	INC	DPTR
        	INC	B
        	SJMP	FTB1
FTB3:        	PUSH	B
        	LCALL	DIV3
FTB4:        	MOV	A,R2
        	JZ	FTB5
        	CLR	C
        	LCALL	RR1
        	SJMP	FTB4
FTB5:        	POP	ACC
        	MOV	R5,A
        	LCALL	HB2
        	MOV	R6,A
        	LCALL	HB2
                MOV	R7,A
        	MOV	A,R3
        	RLC	A
        	CLR	A
        	ADDC	A,R7
                DA	A
        	MOV	R7,A
        	CLR	A
        	ADDC	A,R6
        	DA	A
        	MOV	R6,A
        	JNC	FTB6
        	MOV	R6,#10H
	        INC	R5
FTB6:	        INC	R0
	        INC	R0
	        MOV	A,R7
        	MOV	@R0,A
        	DEC	R0
        	MOV	A,R6
        	MOV	@R0,A
        	DEC	R0
        	MOV	A,R5
        	MOV	C,PFC
        	MOV	ACC.7,C
        	MOV	@R0,A
        	RET
HB2:        	MOV	A,R4
        	MOV	B,#100
        	MUL	AB
        	MOV	R4,A
        	MOV	A,B
        	XCH	A,R3
        	MOV	B,#100
        	MUL	AB
        	ADD	A,R3
        	MOV	R3,A
        	JNC	HB21
        	INC	B
HB21:        	MOV	A,B
        	MOV	B,#10
        	DIV	AB
        	SWAP	A
        	ORL	A,B
        	RET
BTFL:   DB	41H,0ECH,1EH
	DB	45H,93H,93H
	DB	48H,0B8H,78H
	DB	4BH,0E6H,96H
	DB	4FH,90H,1DH
	DB	52H,0B4H,25H
	DB	55H,0E1H,2EH
	DB	59H,8CH,0BDH
	DB	5CH,0AFH,0ECH
	DB	5FH,0DBH,0E7H
	DB	63H,89H,70H
	DB	66H,0ABH,0CCH
	DB	69H,0D6H,0C0H
BFLN:	DB	6DH,86H,38H
	DB	70H,0A7H,0C6H
	DB	73H,0D1H,0B7H
	DB	77H,83H,12H
	DB	7AH,0A3H,0D7H
	DB	7DH,0CCH,0CDH
BFL0:	DB	1,80H,00H
	DB	4,0A0H,00H
	DB	7,0C8H,00H
	DB	0AH,0FAH,00H
	DB	0EH,9CH,40H
	DB	11H,0C3H,50H
	DB	14H,0F4H,24H
	DB	18H,98H,97H
	DB	1BH,0BEH,0BCH
	DB	1EH,0EEH,6BH
	DB	22H,95H,03H
	DB	25H,0BAH,44H
	DB	28H,0E8H,0D5H
	DB	2CH,91H,85H
	DB	2FH,0B5H,0E6H
	DB	32H,0E3H,60H
	DB	36H,8EH,1CH
	DB	39H,31H,0A3H
	DB	3CH,0DEH,0BH
	DB	40H,8AH,0C7H


START:          SETB    SDA
                NOP
                SETB    SCL     			 ;起始条件建立时间大于4.7us
                NOP
                NOP
                NOP
                NOP
                NOP
                CLR     SDA
                NOP           		 	;起始条件锁定时大于4us
                NOP
                NOP
                NO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -