最后采用单片机自带的硬件除法器计算,只保留整数
;用硬件16位除法器计算16位/16位
MOV P_SW2,#80h
MOV A,#2fh;被除数装入2f99H
MOV DPTR,#MD1
MOVX @DPTR,A
MOV A,#99H;
MOV DPTR,#MD0
MOVX @DPTR,A
MOV A,ADC_RES;除数装入
MOV DPTR,#MD5
MOVX @DPTR,A
MOV A,ADC_RESL;
MOV DPTR,#MD4
MOVX @DPTR,A
MOV A,#10100000B;16/16模式
MOV DPTR,#ARCON
MOVX @DPTR,A
MOV A,#00000001B;开始计算
MOV DPTR,#OPCON
MOVX @DPTR,A
TTT:
MOV DPTR,#OPCON
MOVX A,@DPTR
ANL A,#01H
JNZ TTT ;不为0转移,查询
MOV DPTR,#MD1
MOVX A,@DPTR
MOV 35H,A
MOV DPTR,#MD0
MOVX A,@DPTR
MOV 34H,A
MOV P_SW2,#00h
MOV A,35H;解压成BCD码供显示验证
SWAP A
ANL A,#0FH
MOV 33H,A
MOV A,35H
ANL A,#0FH
MOV 32H,A
MOV A,34H
SWAP A
ANL A,#0FH
MOV 31H,A
MOV A,34H
ANL A,#0FH
MOV 30H,A
RET
结果正确,那就这样吧,该帖结束!
|