已经解决了,找到四字节无符号除法程序,
频率=1/周期(秒)
单片机测得是US周期,就有公式
频率=1000000/周期us
SZJCF:
MOV R2,20H ;被除数
MOV R3,21H ;被除数
MOV R4,22H ;被除数
MOV R5,23H ;被除数
MOV R6,24H ;除数
MOV R7,25H ;除数
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 ;计算(R2R3-R6R7)
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 ;计算完十六位商
|