标题: 51单片机周期测频率,周期如何求倒数,汇编 [打印本页]

作者: 新乡家电维修    时间: 2018-4-28 10:11
标题: 51单片机周期测频率,周期如何求倒数,汇编
本帖最后由 新乡家电维修 于 2018-5-19 16:06 编辑

我会用1秒闸门定时计数脉冲个数做频率,不用计算,直接转换成十进制就行了,
现在想做周期测低频,汇编语言如何做周期倒数(1/T=F)
谁有字节转换方法,比如移位方法汇编


结束此贴,我已经写好了,测量范围5--1500转/分钟
测一个周期:第一个下降沿启动定时器,第二个下降沿停止定时。读出定时值
转换公式(这个很重要):1/定时值*60=转速
周期法测转速,越低转速越准确,整好和闸门法定时测频率相反,闸门定时高频率比低频准确前提是不接近上限,误差是不大的

用的下面网上找的字节除法解决的
入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
影响资源:PSW、A、B、R1~R7 堆栈需求: 2字节

DIVD: CLR C ;比较被除数和除数
        MOV A,R3
        SUBB A,R7
        MOV A,R2
        SUBB A,R6
        JC DVD1
        SETB OV ;溢出
        RET
DVD1: MOV B,#10H ;计算双字节商(双字节移动10H=16次)
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 ;计算完十六位商(R4R5)
        MOV A,R4 ;将商移到R2R3中
        MOV R2,A
        MOV A,R5
        MOV R3,A
        CLR OV ;设立成功标志
        RET

得到商就是转速,
还要用双字节转BCD码程序
最后调用显示程序,
完成。

作者: yzwzfyz    时间: 2018-4-28 22:19
去书上找汇编除法程序,就可以求倒数了。

作者: dbsai    时间: 2018-4-28 22:51
去书上找汇编除法程序,就可以求倒数了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1