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

📄 dq51.asm

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 ASM
字号:
BCDA:	MOV	A,R7
	MOV	R2,A
	ADD	A,R0
	MOV	R0,A
	MOV	A,R2
	ADD	A,R1
	MOV	R1,A
	CLR	C
BCD1:	DEC	R0
	DEC	R1
	MOV	A,@R0
	ADDC	A,@R1
	DA	A
	MOV	@R0,A
	DJNZ	R2,BCD1
	RET

BCDB:	LCALL	NEG1
	LCALL	BCDA
	CPL	C
	MOV	F0,C
	LCALL	NEG1
	MOV	C,F0
	RET

NEG1:	MOV	A,R0
	XCH	A,R1
	XCH	A,R0
	LCALL	NEG
	MOV	A,R0
	XCH	A,R1
	XCH	A,R0
	RET

NEG:	MOV	A,R7
	DEC	A
	MOV	R2,A
	MOV	A,R0
	MOV	R3,A
NEG0:	CLR	C
	MOV	A,#99H
	SUBB	A,@R0
	MOV	@R0,A
	INC	R0
	DJNZ	R2,NEG0
	MOV	A,#9AH
	SUBB	A,@R0
	MOV	@R0,A
	MOV	A,R3
	MOV	R0,A
	RET

BRLN:	MOV	A,R7
   	MOV	R2,A
	ADD	A,R0
	MOV	R0,A
	MOV	R3,#0
BRL1:	DEC	R0
	MOV	A,@R0
	SWAP	A
	MOV	@R0,A
	MOV	A,R3
	XCHD	A,@R0
	MOV	R3,A
	DJNZ	R2,BRL1
	RET

MULD:	MOV	A,R3
	MOV	B,R7
	MUL	AB
	MOV	R4,B
	MOV	R5,A
	MOV	A,R3
	MOV	B,R6
	MUL	AB
	ADD	A,R4
	MOV	R4,A
	CLR	A
	ADDC	A,B
	MOV	R3,A
	MOV	A,R2
	MOV	B,R7
	MUL	AB
	ADD	A,R4
	MOV	R4,A
	MOV	A,R3
	ADDC	A,B
	MOV	R3,A
	CLR	A
	RLC	A
	XCH	A,R2
	MOV	B,R6
	MUL	AB
	ADD	A,R3
	MOV	R3,A
	MOV	A,R2
	ADDC	A,B
	MOV	R2,A
	RET

MUL2:	MOV	A,R3
	MOV	B,A
	MUL	AB
	MOV	R4,B
	MOV	R5,A
	MOV	A,R2
	MOV	B,A
	MUL	AB
	XCH	A,R3
	XCH	A,B
	XCH	A,R2
	MUL	AB
	CLR	C
	RLC	A
	XCH	A,B
	RLC	A
	JNC	MU20
	INC	R2
MU20:	XCH	A,B
	ADD	A,R4
	MOV	R4,A
	MOV	A,R3
	ADDC	A,B
	MOV	R3,A
	CLR	A
	ADDC	A,R2
	MOV	R2,A
	RET

DIVD:	CLR	C
	MOV	A,R3
	SUBB	A,R7
	MOV	A,R2
	SUBB	A,R6
	JC	DVD1
	SETB	OV
	RET
DVD1:	MOV	B,#10H
DVD2:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	XCH	A,R2
	RLC	A
	XCH	A,R2
	MOV	F0,C
	CLR	C
	SUBB	A,R7
	MOV	R1,A
	MOV	A,R2
	SUBB	A,R6
	ANL	C,/F0
	JC	DVD3
	MOV	R2,A
	MOV	A,R1
	MOV	R3,A
	INC	R5
DVD3:	DJNZ	B,DVD2
	MOV	A,R4
	MOV	R2,A
	MOV	A,R5
	MOV	R3,A
	CLR	OV
	RET

D457:	CLR	C
	MOV	A,R4
	SUBB	A,R7
	JC	DV50
	SETB	OV
	RET
DV50:	MOV	R6,#8
DV51:	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	F0,C
	CLR	C
	SUBB	A,R7
	ANL	C,/F0
	JC	DV52
	MOV	R4,A
DV52:	CPL	C
	MOV	A,R3
	RLC	A
	MOV	R3,A
	DJNZ	R6,DV51
	MOV	A,R4
	ADD	A,R4
	JC	DV53
	SUBB	A,R7
	JC	DV54
DV53:	INC	R3
DV54:	CLR	OV
	RET

DV31:	CLR	C
	MOV	A,R3
	SUBB	A,R7
	JC	DV30
	SETB	OV
	RET
DV30:	MOV	R2,#10H
DM23:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	MOV	F0,C
	CLR	C
	SUBB	A,R7
	ANL	C,/F0
	JC	DM24
	MOV	R3,A
	INC	R5
DM24:	DJNZ	R2,DM23
	MOV	A,R3
	ADD	A,R3
	JC	DM25
	SUBB	A,R7
	JC	DM26
DM25:	INC	R5
	MOV	A,R5
	JNZ	DM26
	INC	R4
DM26:	CLR	OV
	RET

MULS:	MOV	R4,#0
	MOV	R5,#0
	LCALL	MDS
	LCALL	MULD
	SJMP	MDSE

DIVS:	LCALL	MDS
	PUSH	PSW
	LCALL	DIVD
	JNB	OV,DVS1
	POP	ACC
	RET
DVS1:	POP	PSW
	MOV	R4,#0
	MOV	R5,#0
MDSE:	JB	F0,MDS2
	CLR	OV
	RET

MDS:	CLR	F0
	MOV	A,R6
	JNB	ACC.7,MDS1
	CPL	F0
	XCH	A,R7
	CPL	A
	ADD	A,#1
	XCH	A,R7
	CPL	A
	ADDC	A,#0
	MOV	R6,A
MDS1:	MOV	A,R2
	JNB	ACC.7,MDS3
	CPL	F0
MDS2:	MOV	A,R5
	CPL	A
	ADD	A,#1
	MOV	R5,A
	MOV	A,R4
	CPL	A
	ADDC	A,#0
	MOV	R4,A
	MOV	A,R3
	CPL	A
	ADDC	A,#0
	MOV	R3,A
	MOV	A,R2
	CPL	A
	ADDC	A,#0
	MOV	R2,A
MDS3:	CLR	OV
	RET

SH2:	MOV	A,R2
	ORL	A,R3
	JNZ	SH20
	RET
SH20:	MOV	R7,#0
	MOV	A,R2
SH22:	ANL	A,#0C0H
	JNZ	SQRH
	CLR	C
	MOV	A,R3
	RLC	A
	MOV	F0,C
	CLR	C
	RLC	A
	MOV	R3,A
	MOV	A,R2
	MOV	ACC.7,C
	MOV	C,F0
	RLC	A
	RLC	A
	MOV	R2,A
	INC	R7
	SJMP	SH22
SH4:	MOV	A,R2
	ORL	A,R3
	ORL	A,R4
	ORL	A,R5
	JNZ	SH40
	RET
SH40:	MOV	R7,#0
	MOV	A,R2
SH41:	ANL	A,#0C0H
	JNZ	SQRH
	MOV	R6,#2
SH42:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	MOV	A,R2
	RLC	A
	MOV	R2,A
	DJNZ	R6,SH42
	INC	R7
	SJMP	SH41
SQRH:	MOV	A,R2
	ADD	A,#57H
	JC	SQR2
	ADD	A,#45H
	JC	SQR1
	ADD	A,#24H
	MOV	B,#0E3H
	MOV	R4,#80H
	SJMP	SQR3
SQR1:	MOV	B,#0B2H
	MOV	R4,#0A0H
	SJMP	SQR3
SQR2:	MOV	B,#8DH
	MOV	R4,#0D0H
SQR3:	MUL	AB
	MOV	A,B
	ADD	A,R4
	MOV	R4,A
	MOV	B,A
	MUL	AB
	XCH	A,R3
	CLR	C
	SUBB	A,R3
	MOV	R3,A
	MOV	A,R2
	SUBB	A,B
	MOV	R2,A
SQR4:	SETB	C
	MOV	A,R4
	RLC	A
	MOV	R6,A
	CLR	A
	RLC	A
	MOV	R5,A
	MOV	A,R3
	SUBB	A,R6
	MOV	B,A
	MOV	A,R2
	SUBB	A,R5
	JC	SQR5
	INC	R4
	MOV	R2,A
	MOV	R3,B
	SJMP	SQR4
SQR5:	MOV	A,R4
	XCH	A,R2
	RRC	A
	MOV	F0,C
	MOV	A,R3
	MOV	R5,A
	MOV	R4,#8
SQR6:	CLR	C
	MOV	A,R3
	RLC	A
	MOV	R3,A
	CLR	C
	MOV	A,R5
	SUBB	A,R2
	JB	F0,SQR7
	JC	SQR8
SQR7:	MOV	R5,A
	INC	R3
SQR8:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	F0,C
	DJNZ	R4,SQR6
	MOV	A,R7
	JZ	SQRE
SQR9:	CLR	C
	MOV	A,R2
	RRC	A
	MOV	R2,A
	MOV	A,R3
	RRC	A
	MOV	R3,A
	DJNZ	R7,SQR9
SQRE:	RET

HASC:	MOV	B,A
	LCALL	HAS1
	XCH	A,B
	SWAP	A
HAS1:	ANL	A,#0FH
	ADD	A,#90H
	DA	A
	ADDC	A,#40H
	DA	A
	RET

ASCH:	CLR	C
	SUBB	A,#30H
	JNB	ACC.4,ASH1
	SUBB	A,#7
ASH1:	RET

HBCD:	MOV	B,#100
	DIV	AB
	MOV	R3,A
	MOV	A,#10
	XCH	A,B
	DIV	AB
	SWAP	A
	ORL	A,B
	RET

HB2:	CLR	A
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
	MOV	R2,#10H
HB3:	MOV	A,R7
	RLC	A
	MOV	R7,A
	MOV	A,R6
	RLC	A
	MOV	R6,A
	MOV	A,R5
	ADDC	A,R5
	DA	A
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R3
	MOV	R3,A
	DJNZ	R2,HB3
	RET

HBD:	MOV	B,#100
	MUL	AB
	RLC	A
	CLR	A
	ADDC	A,B
	MOV	B,#10
	DIV	AB
	SWAP	A
	ADD	A,B
	DA	A
	RET

HBD2:	MOV	R4,#4
HBD3:	MOV	A,R3
	MOV	B,#10
	MUL	AB
	MOV	R3,A
	MOV	R5,B
	MOV	A,R2
	MOV	B,#10
	MUL	AB
	ADD	A,R5
	MOV	R2,A
	CLR	A
	ADDC	A,B
	PUSH	ACC
	DJNZ	R4,HBD3
	POP	ACC
	MOV	R3,A
	POP	ACC
	SWAP	A
	ORL	A,R3
	MOV	R3,A
	POP	ACC
	MOV	R2,A
	POP	ACC
	SWAP	A
	ORL	A,R2
	MOV	R2,A
	RET

BCDH:	MOV	B,#10H
	DIV	AB
	MOV	R4,B
	MOV	B,#10
	MUL	AB
	ADD	A,R4
	RET

BH2:	MOV	A,R3
	LCALL	BCDH
	MOV	R3,A
	MOV	A,R2
	LCALL	BCDH
	MOV	B,#100
	MUL	AB
	ADD	A,R3
	MOV	R3,A
	CLR	A
	ADDC	A,B
	MOV	R2,A
	RET

BHD:	MOV	R2,#8
BHD0:	ADD	A,ACC
	DA	A
	XCH	A,R3
	RLC	A
	XCH	A,R3
	DJNZ	R2,BHD0
	ADD	A,#0B0H
	JNC	BHD1
	INC	R3
BHD1:	MOV	A,R3
	RET
BHD2:	MOV	R6,#10H
BHD3:	MOV	A,R5
	ADD	A,R5
	DA	A
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	MOV	A,R2
	RLC	A
	MOV	R2,A
	DJNZ	R6,BHD3
	MOV	A,R4
	ADD	A,#0B0H
	JNC	BHD4
	INC	R3
	MOV	A,R3
	JNZ	BHD4
	INC	R2
BHD4:	RET

MM:	MOV	B,R7
	MOVX	A,@DPTR
	MOV	R6,A
	MOV	R7,A
	MOV	A,DPL
	MOV	R3,A
	MOV	R5,A
	MOV	A,DPH
	MOV	R2,A
	MOV	R4,A
	MOV	A,B
	DEC	A
	JZ	MME
	MOV	R1,A
	PUSH	DPL
	PUSH	DPH
MM1:	INC	DPTR
	MOVX	A,@DPTR
	MOV	B,A
	SETB	C
	SUBB	A,R6
	JC	MM2
	MOV	R6,B
	MOV	R2,DPH
	MOV	R3,DPL
	SJMP	MM3
MM2:	MOV	A,B
	CLR	C
	SUBB	A,R7
	JNC	MM3
	MOV	R7,B
	MOV	R4,DPH
	MOV	R5,DPL
MM3:	DJNZ	R1,MM1
	POP	DPH
	POP	DPL
MME:	RET

MMS:	MOV	B,R7
	MOVX	A,@DPTR
	MOV	R6,A
	MOV	R7,A
	MOV	A,DPL
	MOV	R3,A
	MOV	R5,A
	MOV	A,DPH
	MOV	R2,A
	MOV	R4,A
	MOV	A,B
	DEC	A
	JZ	MMSE
	MOV	R1,A
	PUSH	DPL
	PUSH	DPH
MMS1:	INC	DPTR
	MOVX	A,@DPTR
	MOV	B,A
	SETB	C
	SUBB	A,R6
	JZ	MMS4
	JNB	OV,MMS2
	CPL	ACC.7
MMS2:	JB	ACC.7,MMS4
	MOV	R6,B
	MOV	R2,DPH
	MOV	R3,DPL
	SJMP	MMS7
MMS4:	MOV	A,B
	CLR	C
	SUBB	A,R7
	JNB	OV,MMS6
	CPL	ACC.7
MMS6:	JNB	ACC.7,MMS7
	MOV	R7,B
	MOV	R4,DPH
	MOV	R5,DPL
MMS7:	DJNZ	R1,MMS1
	POP	DPH
	POP	DPL
MMSE:	RET

FDS1:	MOV	B,A
	MOV	R2,#0
	MOV	A,R7
	MOV	R6,A
FD11:	MOV	A,R2
	MOVC	A,@A+DPTR
	CJNE	A,B,FD12
	CLR	OV
	MOV	A,R2
	RET
FD12:	INC	R2
	DJNZ	R6,FD11
	SETB	OV
	RET

FDS2:	MOV	A,R7
	MOV	R6,A
	MOV	R2,#0
FD21:	CLR	A
	MOVC	A,@A+DPTR
	XRL	A,R4
	JNZ	FD22
	MOV	A,#1
	MOVC	A,@A+DPTR
	XRL	A,R5
	JNZ	FD22
	CLR	OV
	MOV	A,R2
	RET
FD22:	INC	DPTR
	INC	DPTR
	INC	R2
	DJNZ	R6,FD21
	SETB	OV
	RET

FDD1:	MOV	B,A
	MOV	R2,#0
	MOV	A,R7
	DEC	A
	MOV	R3,A
FD61:	CLR	C
	MOV	A,R3
	SUBB	A,R2
	JC	FD69
	RRC	A
	ADD	A,R2
	MOV	R4,A
	MOVC	A,@A+DPTR
	CJNE	A,B,FD65
	CLR	OV
	MOV	A,R4
	RET
FD65:	JC	FD68
	MOV	A,R4
	DEC	A
	MOV	R3,A
	SJMP	FD61
FD68:	MOV	A,R4
	INC	A
	MOV	R2,A
	SJMP	FD61
FD69:	SETB	OV
	RET

FDD2:	MOV	R2,#0
	MOV	A,R7
	DEC	A
	MOV	R3,A
	MOV	R6,DPH
	MOV	R7,DPL
FD81:	CLR	C
	MOV	A,R3
	SUBB	A,R2
	JC	FD89
	RRC	A
	ADD	A,R2
	MOV	R1,A
	MOV	DPH,R6
	CLR	C
	RLC	A
	JNC	FD82
	INC	DPH
FD82:	ADD	A,R7
	MOV	DPL,A
	JNC	FD83
	INC	DPH
FD83:	CLR	A
	MOVC	A,@A+DPTR
	MOV	B,R4
	CJNE	A,B,FD84
	MOV	A,#1
	MOVC	A,@A+DPTR
	MOV	B,R5
	CJNE	A,B,FD84
	MOV	A,R1
	CLR	OV
	RET
FD84:	JC	FD86
	MOV	A,R1
	DEC	A
	MOV	R3,A
	SJMP	FD81
FD86:	MOV	A,R1
	INC	A
	MOV	R2,A
	SJMP	FD81
FD89:	MOV	DPH,R6
	MOV	DPL,R7
	SETB	OV
	RET

DDM1:	MOV	A,R7
	MOV	R2,A
	PUSH	DPH
	PUSH	DPL
	CLR	A
	MOV	R4,A
	MOV	R5,A
DM11:	MOVX	A,@DPTR
	ADD	A,R5
	MOV	R5,A
	JNC	DM12
	INC	R4
DM12:	INC	DPTR
	DJNZ	R2,DM11
	LCALL	D457
	MOV	A,R3
	POP	DPL
	POP	DPH
	RET
DDM2:	MOV	A,R7
	MOV	R2,A
	PUSH	DPL
	PUSH	DPH
	CLR	A
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
DM20:	MOVX	A,@DPTR
	MOV	B,A
	INC	DPTR
	MOVX	A,@DPTR
	INC	DPTR
	ADD	A,R5
	MOV	R5,A
	MOV	A,B
	ADDC	A,R4
	MOV	R4,A
	JNC	DM21
	INC	R3
DM21:	DJNZ	R2,DM20
	POP	DPH
	POP	DPL
	LJMP	DV31

XR1:	MOV	R4,DPH
	MOV	R5,DPL
	MOV	A,R7
	JZ	XR10
	INC	R6
XR10:	MOV	B,#0
XR11:	MOVX	A,@DPTR
	XRL	B,A
	INC	DPTR
	DJNZ	R7,XR11
	DJNZ	R6,XR11
	MOV	DPH,R4
	MOV	DPL,R5
	MOV	A,B
	RET

XR2:	MOV	R4,DPH
	MOV	R5,DPL
	MOV	A,R7
	JZ	XR20
	INC	R6
XR20:	CLR	A
	MOV	R2,A
	MOV	R3,A
XR21:	MOVX	A,@DPTR
	XRL	A,R2
	MOV	R2,A
	INC	DPTR
	MOVX	A,@DPTR
	XRL	A,R3
	MOV	R3,A
	INC	DPTR
	DJNZ	R7,XR21
	DJNZ	R6,XR21
	MOV	DPH,R4
	MOV	DPL,R5
	RET

SORT:	MOV	A,R7
	MOV	R5,A
SRT1:	CLR	F0
	MOV	A,R5
	DEC	A
	MOV	R5,A
	MOV	R2,A
	JZ	SRT5
	MOV	A,R0
	MOV	R6,A
SRT2:	MOV	A,@R0
	MOV	R3,A
	INC	R0
	MOV	A,@R0
	MOV	R4,A
	CLR	C
	SUBB	A,R3
	JNC	SRT4
	SETB	F0
	MOV	A,R3
	MOV	@R0,A
	DEC	R0
	MOV	A,R4
	MOV	@R0,A
	INC	R0
SRT4:	DJNZ	R2,SRT2
	MOV	A,R6
	MOV	R0,A
	JB	F0,SRT1
SRT5:	RET

	END

⌨️ 快捷键说明

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