标题: 51单片机测信号周期,如何转换成频率 [打印本页]

作者: 新乡家电维修    时间: 2018-4-25 18:32
标题: 51单片机测信号周期,如何转换成频率
用51单片机做过闸门1s测频率,现在测低频,想用周期法测量,周期测出了,不知道如何求倒数,T=1/f,汇编程序

作者: zl2168    时间: 2018-4-25 19:32
本帖最后由 zl2168 于 2018-4-25 19:39 编辑

51单片机计算倒数,很复杂繁琐。但可预先计算好,然后查表,这样既方便又快速。不过,你用一秒作周期测试,就不必计算了。频率的单位就是Hz,只要计数每秒有多少脉冲就行。
作者: zl2168    时间: 2018-4-25 19:33
本帖最后由 zl2168 于 2018-4-25 19:36 编辑

实例73  测量脉冲频率
Proteus仿真一下,确认有效。
实例73 测量脉冲频率.rar (52.74 KB, 下载次数: 44)

以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。

作者: 1353314846    时间: 2018-4-25 19:40
测频法,1/200=0.5% 测周,200/10M=2*10^-5=0.003%
作者: GTY123    时间: 2018-4-25 19:44
还是对照表查吧
作者: 飙风玫瑰    时间: 2018-4-25 20:02
简单,这个书上有
作者: yzwzfyz    时间: 2018-4-25 22:30
除法程序是是属于基本功一类的程序,范例很多。建议自己写一写。
作者: 新乡家电维修    时间: 2018-4-26 08:51
1353314846 发表于 2018-4-25 19:40
测频法,1/200=0.5% 测周,200/10M=2*10^-5=0.003%

不懂,解释下好吗

作者: 新乡家电维修    时间: 2018-4-28 11:12
zl2168 发表于 2018-4-25 19:32
51单片机计算倒数,很复杂繁琐。但可预先计算好,然后查表,这样既方便又快速。不过,你用一秒作周期测试, ...

1秒是以前做闸门频率计用的,现在想做测周期的频率计,周期时间好测,就是转换倒数不会
作者: zl2168    时间: 2018-4-28 21:28
本帖最后由 zl2168 于 2018-4-28 21:39 编辑

求倒数,用c编程,比较方便;用汇编,很麻烦,提示你到专门的汇编函数库去找,不要自己编,自己编99%错。
作者: zl2168    时间: 2018-4-28 21:33
你是大学生,不会编程,还可理解。数学式子不会列么?周期是us,倒数后乘上10的6次方;周期是ms,倒数后乘上10的3次方。
作者: tiandailan    时间: 2018-12-24 19:34
想知道你是如何测周期的,使用的汇编还是C?
作者: 新乡家电维修    时间: 2019-5-15 08:17
zl2168 发表于 2018-4-25 19:32
51单片机计算倒数,很复杂繁琐。但可预先计算好,然后查表,这样既方便又快速。不过,你用一秒作周期测试, ...

我定时1秒测频率我会用,现在要测低频,周期法测低频效果最好,现在想用周期测,程序麻烦很多了,要计算
作者: 黄冬梅    时间: 2020-12-27 21:28
楼主想要你的测周期的
作者: 新乡家电维修    时间: 2021-4-25 17:08
黄冬梅 发表于 2020-12-27 21:28
楼主想要你的测周期的

低频用测周期法测频率,高频直接闸门测频率。总的来说还是用来测频的
作者: wangyuejia2015    时间: 2021-4-25 18:01
汇编得查表 用c语言就一句话的事
作者: gegregeg    时间: 2021-4-25 19:44
周期法测量为:Tx=NTc=N/Fc通过这个公式来测就可以其中Tc是固定的
作者: 心想事成1    时间: 2021-5-17 11:34
51单片机计算倒数,很复杂繁琐。但可预先计算好,然后查表,这样既方便又快速。不过,你用一秒作周期测试,就不必计算了。频率的单位就是Hz,只要计数每秒有多少脉冲就行。
作者: 新乡家电维修    时间: 2022-8-28 10:39
已经解决了,找到四字节无符号除法程序,
频率=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 ;计算完十六位商







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