找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3209|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机周期测频率,周期如何求倒数,汇编

[复制链接]
跳转到指定楼层
楼主
ID:72088 发表于 2018-4-28 10:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 新乡家电维修 于 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码程序
最后调用显示程序,
完成。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2018-4-28 22:19 | 只看该作者
去书上找汇编除法程序,就可以求倒数了。
回复

使用道具 举报

板凳
ID:318684 发表于 2018-4-28 22:51 | 只看该作者
去书上找汇编除法程序,就可以求倒数了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表