打印

帮忙指点一下做数字频率计怎么做!

[复制链接]
5200|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雨天不打伞|  楼主 | 2007-4-5 19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要用MCS51做一个数字频率计怎么做,我没学过单片机。自己看书,但不是很理想,希望高手们能指点一下,方向该怎么走,谢谢!!!

相关帖子

沙发
ayb_ice| | 2007-4-5 19:27 | 只看该作者

没学过单片机

没学过单片机,可能做不出来...

使用特权

评论回复
板凳
tyw| | 2007-4-5 20:11 | 只看该作者

LZ大概是大头吧,下雨不愁,哈哈

测量方法;
1.较低频率用测周期的方法测周期再换算成频率
2.较高频率可直接用计数方法测量
3.高低频划分界限则要根据测量的精度要求及速度要求来决定
  例如要求1秒内完成测量工作,则对于50Hz,1秒钟只能计50个数,你的精度就是无小数的整数50Hz,若能允许采样10秒钟,就能计500个数,你的精度就是小数点后1位数50.0Hz.
  对于规定采样时间内计数精度不能满足要求的,就要改用测周期的方法来换算了.
  上例中若要求0.1秒完成测量,对于50Hz,0.1秒只能计5个数,显然太粗糙了,必需改成测周期,则50Hz一个完整波形的周期为(20*1)ms,再换算成50Hz频率,这是假设用1ms的定时中断来对测试周期计数.若用0.1ms的定时中断来对测试周期计数,则可测得(200*0.1)ms,可得50.0Hz的测量结果.

使用特权

评论回复
地板
王紫豪| | 2007-4-5 20:32 | 只看该作者

re

计数方式和等精度方式两种,搜吧,网上一大堆!

使用特权

评论回复
5
maychang| | 2007-4-5 20:35 | 只看该作者

指定用51单片机,当然按 tyw 指点的方法

如果没有这个限制条件,可以用专门的数字频率计芯片,电路很简单,不过价格比用单片机贵得多。

使用特权

评论回复
6
雨天不打伞|  楼主 | 2007-4-5 23:25 | 只看该作者

我毕业论文就写这个,请大家帮忙指点一下,谢谢!

以MCS51为基础设计一个数字频率计。
   要求:1、有完整的外围电路,包括对输入信号的放大、限幅、整形;
         2、十进制数字显示所测量结果;
         3、对频率1Hz~1MHz,幅度0.5V~5V的方波、正弦波进行频率和周期的测量;
      4、对脉冲宽度≥100μs,幅度0.5V~5V的脉冲波      进行频率和脉宽的测量;
         5、对三种测量功能分别用不同颜色的发光二极管指示;
      6、作测量误差分析。
这是我这次课题的要求,我的毕业论文就是写这个!请大家帮帮忙指导一下!谢谢!!!!

使用特权

评论回复
7
雨天不打伞|  楼主 | 2007-4-5 23:30 | 只看该作者

谢谢大家!

我对单片机不熟悉,不知道该怎么写,大家有什么好的建议吗?

使用特权

评论回复
8
maychang| | 2007-4-6 00:50 | 只看该作者

这个要求可比主帖里说的高得多

1、“对输入信号的放大、限幅、整形”,这完全是模拟电路的事情。如果仅要求“频率1Hz~1MHz,幅度0.5V~5V的方波、正弦波”和“对脉冲宽度≥100μs,幅度0.5V~5V的脉冲波”还容易一些,幅度再大再小或波形复杂就难了。
2、“对三种测量功能分别用不同颜色的发光二极管指示”比“十进制数字显示所测量结果”容易。可是,三种功能,单片机如何知道你要的是哪种?显然还要个小键盘输入,需要读键和键盘操作程序。
3、基本的51单片机无法直接测量1MHz频率,除“对输入信号的放大、限幅、整形”外,还需要对输入信号分频才能够测量。而1Hz频率显然应该测周期。按题目要求,应该是自动转换测量方式。

使用特权

评论回复
9
zhaoyu2005| | 2007-4-6 08:54 | 只看该作者

让老师考我们

毕业设计的题目吧!要求1、2、5、6自己解决,要求3建议加一级分频电路,当频率低于100K时不分频,高于100K时分频以后再测量效果会好一点,也可以全部分频,频率低的时候慢,如果对低频(1K以下)倍频的话会更好,测量方法采用定时计数好点,要求4好像就得采用测量高低电平的宽度,使用INT0和T0

使用特权

评论回复
10
雨天不打伞|  楼主 | 2007-4-6 11:23 | 只看该作者

能帮忙给点相关的资料吗

对于测量这块不太懂,能帮忙给点相关的资料吗

使用特权

评论回复
11
ayb_ice| | 2007-4-6 11:34 | 只看该作者

雨天不打伞

雨天不打伞,牛...

使用特权

评论回复
12
lyjian| | 2007-4-6 12:47 | 只看该作者

测1MHz,普通51足够了

使用特权

评论回复
13
ayb_ice| | 2007-4-6 13:17 | 只看该作者

500KHz

普通51足够了计数只能500KHz

使用特权

评论回复
14
lyjian| | 2007-4-6 13:30 | 只看该作者

89C52上24MHz没任何问题

现在一大堆普通51可跑在40MHz。
不要把普通51都想成是几年前的8051。
STC/Winbond/ICSI/ISSI/SST/NXP等等一大堆公司的通用51可上到40MHz。

使用特权

评论回复
15
jimoom| | 2007-4-6 15:09 | 只看该作者

怎么和我的毕业设计一样啊,^_^。

在“金孚电子论坛”上有详细的方法。

使用特权

评论回复
16
雨天不打伞|  楼主 | 2007-4-6 17:40 | 只看该作者

单片机难啊!

这次的毕业设计,我们组6个人一人一个题目,靠我的知识想做出来难了,这个星期看单片机书都快晕了,哪个MCS51的手册有中文的吗,英文的太难了!

使用特权

评论回复
17
雨天不打伞|  楼主 | 2007-4-6 17:45 | 只看该作者

15楼jimoom

jimoom你好,你说我们的毕业设计是一样吗?能不能把你写的哪论文给我参考一下,我现在是笔都动不了,还不知道怎么开始呢!谢谢啊!!!

使用特权

评论回复
18
tyw| | 2007-4-6 19:27 | 只看该作者

数字频率计的程序,可能是天书了拉,参考一下

你得先从程序中揣模原创的硬件,有耐心的话是可以画出原文原理图的.有一部分注解,哈哈,比没有好一点.嫌费劲就扔掉,俺可是花时间整理了一番. 

               
                ORG     0000H
                AJMP    MAIN
                ORG     000BH
                LJMP    SEVER1
                ORG     0030H

MAIN:
A8279_1         EQU    0FF82H
A8279_2         EQU    0FF80H

                MOV     DPTR,#A8279_1   ;8279初始化
                MOV     A,#0D1H
                MOVX    @DPTR,A
WAIT1:          MOVX    A,@DPTR
                JB      ACC.7,WAIT1                      
                MOV     A,#00H
                MOVX    @DPTR,A
                MOV     A,#2CH
                MOVX    @DPTR,A
            
                00H
                CLR     01H
                CLR     02H
                CLR     03H
                CLR     04H
                CLR     05H
                CLR     06H
                CLR     07H
                CLR     08H
                CLR     09H
            
            
START:          MOV     DPTR,#A8279_1
                MOVX    A,@DPTR
                ANL     A,#07H
                JZ      RETUN
                ACALL   KEY
                JBC     00H,MAIN
                JBC     01H,START1
                JBC     02H,START2
                JBC     03H,START3
                JBC     04H,START4
ETUN:           AJMP    START
TART1:          MOV     P1,#0EFH
                LCALL   SEACH1
                JBC     00H,MAIN
                JBC     06H,PINYU61
                JBC     07H,PINYU71
                JBC     08H,PINYU81
                JBC     09H,PINYU91
                AJMP    START1
PINYU61:        LJMP    PINYU6
PINYU71:        LJMP    PINYU7
PINYU81:        LJMP    PINYU8
PINYU91:        LJMP    PINYU9
START2:         MOV     P1,#2FH
                LCALL   SEACH1
                JBC     00H,MAIN
                JBC     06H,ZHOUQI11
                JBC     07H,ZHOUQI21
                JBC     08H,ZHOUQI31
                JBC     09H,RETUN4
RETUN4:         AJMP    START2
ZHOUQI11:       AJMP    ZHOUQI1
ZHOUQI21:       AJMP    ZHOUQI2
ZHOUQI31:       AJMP    ZHOUQI3

START3:
                LCALL   SEACH1
                JBC     00H ,RETUN16
                LCALL   CEMK
                AJMP    START3
ETUN16:         LJMP    MAIN
START4:         LCALL   SEACH1
                JBC     00H,RETUN15
                LCALL   CEZHANKB
                AJMP    START4
RETUN15:        LJMP    MAIN
INYU6:          LCALL   SEACH1
                JBC     00H,RETUN11
                MOV     P1,#1EH
                LCALL   ZHQI
                LCALL   PINYU1
                LCALL   TRANS
                LCALL   LED
                AJMP    PINYU6
RETUN11:        AJMP    MAIN
INYU7:          LCALL   SEACH1
                JBC     00H,RETUN12
                MOV     P1,#1DH
                LCALL   CZS

                LCALL   PINYU2
                LCALL   TRANS
                LCALL   LED
                AJMP    PINYU7
RETUN12:        AJMP    MAIN
INYU8:          LCALL   SEACH1
                JBC     00H,RETUN13
                MOV     P1,#1BH
                LCALL   CZS
                MOV     35H,#08H
                LCALL   PINYU
                LCALL   TRANS
                LCALL   LED
                AJMP    PINYU8
ETUN13:         AJMP    MAIN
INYU9:          LCALL   SEACH1
                JBC     00H,RETUN14
                MOV     P1,#17H
                LCALL   CZS
                MOV     35H,#32
                LCALL   PINYU
                LCALL   TRANS
                LCALL   LED
                AJMP    PINYU9
RETUN14:        LJMP    MAIN
HOUQI1:         MOV     P1,#2EH
                LCALL   ZHQI
                LCALL   MUL4
                LCALL   ADD1
                MOV     60H,R2
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5
                LCALL   TRANS
                LCALL   LED
                AJMP    ZHOUQI1
HOUQI2:         MOV     P1,#2DH
                LCALL   SEACH1
                JBC     00H ,RETUN9
                LCALL   ZHOUQI2_2
                MOV     36H,R3
                MOV     37H,R4
                MOV     38H,R5
                LCALL   HB4             ;转换后的三字节BCD码整数在R2,R3、R4、R5中。
                MOV     60H,R2
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5
                LCALL   TRANS
                LCALL   LED
                AJMP    ZHOUQI2
ETUN9:          LJMP    MAIN
HOUQI3:         MOV     P1,#2BH
                LCALL   SEACH1
                JBC     00H,RETUN10
                LCALL   ZHOUQI2_2
                MOV     36H,R3
                MOV     37H,R4
                MOV     38H,R5
                MOV     R0,#36H
                MOV     R7,#08H         ;分频系数
                LCALL    MULD3_1
                MOV     60H,R2
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5
                LCALL   TRANS
                LCALL   LED
                AJMP    ZHOUQI3
RETUN10:        AJMP    MAIN
HOUQI2_2:
                LCALL   CZS
                MOV     A,76H
;               CJNE    A,#00H,NEXT12
;               AJMP    NEXT13

                LCALL   MUL4
                LCALL   ADD1
                MOV     60H,R2
                LCALL   MUL4
                MOV     61H,R3
                LCALL   ADD1
                MOV     62H,R4
                MOV     63H,R5
                CJNE    R3,#00H,NEXT14
                MOV     76H,#01H
                MOV     69H,76H
                AJMP    NEXT15
NEXT14:         JC      NEXT15
                MOV     76H,#08H
                MOV     69H,76H
                MOV     R7,#08H
                LCALL   DV31            ;双字节商在R4、R5中
                MOV     62H,R4
                MOV     63H,R5
NEXT15:
                MOV     A,R4
                MOV     R6,A
                MOV     A,R5
                MOV     R7,A
                
                MOV     R2,#00H
                MOV     R3,#0FH
                MOV     R4,#42H
                MOV     R5,#40H
                LCALL   DIVD            ; 双字节商在R2、R3中,OV=1 时溢出
                MOV     62H,R2
                MOV     63H,R3 
                MOV     R6,#00H
                MOV     R7,76H
                JNB     OV,NEXT16
                MOV     R6,62H
                MOV     R7,63H
                MOV     R2,#00H         ;存入10000
                MOV     R3,#00H
                MOV     R4,#27H
                MOV     R5,#10H
                LCALL   DIVD            ; 双字节商在R2、R3中,OV=1 时溢出
                
EXT16:          MOV     A,69H
                CJNE    A,#01H,NEXT32
                AJMP    NEXT33  
NEXT32:         MOV     R6,#00H
                MOV     R7,#69H
                LCALL   DIVD 
EXT33:          MOV     R7,#64H
                MOV     R6,#00H
                LCALL   MULD            ;:乘积在R2、R3、R4、R5中。
                RET


CEMK:           MOV     P1,#4DH
                LCALL   MAIKUAN
                LCALL   HB4             ;转换后的三字节BCD码整数在R2,R3、R4、R5中。
                MOV     60H,R2
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5

                LCALL   TRANS
                LCALL   LED
                RET 
                
EZHANKB:        MOV     P1,#8DH
                LCALL   ZHQI
                LCALL   MUL4
                LCALL   ADD1            ; ;结果在R2.R3.R4.R5中
                MOV     70H,R2
                MOV     71H,R3
                MOV     72H,R4
                MOV     73H,R5


                LCALL   MAIKUAN         ;;结果在36,37,38H中
                MOV     R6,37H
                MOV     R7,38H
                MOV     R2,#03H
                MOV     R3,#0E8H
                LCALL   MULD            ; 乘积在R2、R3、R4、R5中。
                MOV     R6,72H
                MOV     R7,73H
                LCALL   DIVD            ; 双字节商在R2、R3中,OV=1 时溢出。
                MOV     R2,72H
                MOV     R3,73H
                MOV     R6,72H
                MOV     R7,73H
                LCALL   HB2             ;转换后的三字节BCD码整数在R3、R4、R5中。
                MOV     60H,#00H
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5
                LCALL   TRANS
                LCALL   LED
                RET

EY:             MOV     DPTR,#A8279_1
                MOV     A,#40H
                MOVX    @DPTR,A
                MOV     DPTR,#A8279_2
                MOVX    A,@DPTR
                ANL     A,#3FH

                CJNE    A,#00H,KEY1
                SETB    00H
                LJMP    RETUN1
KEY1:           CJNE    A,#01H,KEY2
                SETB    01H
                LJMP    RETUN1
KEY2:           CJNE    A,#02H,KEY3
                SETB    02H
                AJMP    RETUN1
KEY3:           CJNE    A,#03H,KEY4
                SETB    03H
                LJMP    RETUN1

KEY4:           CJNE    A,#04H,KEY5
                SETB    04H
                LJMP    RETUN1
KEY5:           CJNE    A,#05H,RETUN1
                SETB    05H

RETUN1:         RET
KEY_1:          MOV     DPTR ,#A8279_1
                MOV     A,#40H
                MOVX    @DPTR,A
                MOV     DPTR,#A8279_2
                MOVX    A,@DPTR
                ANL     A,#3FH

                CJNE    A,#00H,KEY_11
                SETB    00H
                LJMP    RETUN2
KEY_11:         CJNE    A,#06H,KEY_12
                SETB    06H
                LJMP    RETUN2
KEY_12          :CJNE   A,#07H,KEY_13
                SETB    07H
                AJMP    RETUN2
KEY_13:         CJNE    A,#08H,KEY_14
                SETB    08H
                LJMP    RETUN2

KEY_14:         CJNE    A,#09H,RETUN2
                SETB    09H

RETUN2:         RET
        
ZHQI:                                   ;0.1hz_1khz测量,测周期  ;16进制
                MOV     TMOD,#01H
                MOV     TL0,#00H
                MOV     TH0,#00H
                SETB    EA
                SETB    ET0
                MOV     76H,#00H
                SETB    P3.5
GDP1:           MOV     C,P3.5
                JC      GDP1
DDP1:           MOV     C,P3.5
                JNC     DDP1
                SETB    TR0

GDP2:           MOV     C,P3.5
                JC      GDP2
DDP2:           MOV     C,P3.5
                JNC     DDP2
                CLR     TR0
                CLR     TR1
                MOV     A,TH0
                MOV     TH1,A
                MOV     A,TL0
                MOV     TL1,A  
                RET

PINYU1:                                 ;0.1hz_1khz测量;结果在让,r4,r5 中 ;16进制
                LCALL   MUL4
                LCALL   ADD1
                MOV     30H,#00H
                MOV     31H,#00H
                MOV     32H,#0FFH
                MOV     33H,#0FFH
      
                LCALL   BIJIAO
                JB      20H,BIJIAO2 
                MOV     34H,R4
                MOV     35H,R5
                MOV     R6,34H
                MOV     R7,35H
                MOV     R2,#00H
                MOV     R3,#0FH
                MOV     R4,#42H
                MOV     R5,#40H
                LCALL   DIVD            ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
                MOV     A,R2 
                MOV     R6,A
                MOV     A,R3    
                MOV     R7,A
                AJMP    NEXT30 
IJIAO2:         MOV     30H,#00H
                MOV     31H,#0FH
                MOV     32H,#42H
                MOV     33H,#40H  
                LCALL   BIJIAO  
                JB      20H,BIJIAO3
                MOV     R7,#100
                LCALL   DV31           ;OV=0 时,双字节商在R4、R5中,OV=1 时溢出。
                MOV     34H,R4
                MOV     35H,R5
                MOV     R6,34H
                MOV     R7,35H
                MOV     R2,#00H
                MOV     R3,#0FH
                MOV     R4,#42H
                MOV     R5,#40H
     
                LCALL   DIVD            ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
                MOV     34H,R2 
                MOV     35H,R3 
                MOV     R6,34H
                MOV     R7,35H
                MOV     R3,#00H
                MOV     R4,34H
                MOV     R5,35H
                MOV     R7,#100
                LCALL   DV31            ;OV=0 时,双字节商在R4、R5中,OV=1 时溢出。
                MOV     34H,R4
                MOV     35H,R5
                MOV     R6,34H
                MOV     R7,35H
                AJMP    NEXT30 
IJIAO3:                 
                MOV     R7,#0E8H
                MOV     R6,#03H
                LCALL   DIVD            ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
                MOV     34H,R2 
                MOV     35H,R3 
                MOV     R6,34H
                MOV     R7,35H
                MOV     R2,#00H
                MOV     R3,#98H
                MOV     R4,#96H
                MOV     R5,#80H
                
                LCALL DIVD              ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
      
                MOV     34H,R2 
                MOV     35H,R3 
                MOV     R6,34H
                MOV     R7,35H
                MOV     R2,#00H
                MOV     R3,#00H
                MOV     R4,34H
                MOV     R5,35H
                MOV     R7,#0E8H
                MOV     R6,#03H
                LCALL   DIVD            ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
      
                MOV     34H,R2 
                MOV     35H,R3 
                MOV     R6,34H
                MOV     R7,35H
      
NEXT30:         LCALL   HB2
                MOV     60H,#00H
                MOV     61H,R3
                MOV     62H,R4
                MOV     63H,R5
                CLR     ET0
                RET
                                                                                                                                                        
SEVER1:         INC                                                                                                                                     76H
                RETI
ZS:                                     ;测1秒钟的周期数
                MOV     TMOD,#51H
                MOV     TL0,#00H
                MOV     TH0,#4CH
                MOV     76H,#00H
                MOV     R7,#14H

                MOV     TL1,#00H
                MOV     TH1,#00H
                SETB    TR1
                SETB    TR0
HERE:           JBC     TF0 ,NEXT1
                JBC     TF1,NEXT20 
                SJMP    HERE
EXT20:          INC     76H
                AJMP    HERE
EXT1:           MOV     TL0,#00H
                MOV     TH0,#4CH
     
                DJNZ    R7,HERE
                CLR     TR0
                CLR     TR1
                RET


PINYU2:                                 ;测频率1k_0.5mhz
                MOV     A,76H
                CJNE    A,#00H,NEXT2
                MOV     65H,#00H
                MOV     66H,#00H
                MOV     67H,#00H
                AJMP    NEXT3
EXT2:
                MOV     R6,76H
     
                MOV     R0,#65H
                MOV     R7,#03H
                MOV     R1,#50H
            &

使用特权

评论回复
19
miqi1986| | 2007-4-6 21:06 | 只看该作者

看看书

书上应该有的吧
抄抄
自己试试吧
印象深

使用特权

评论回复
20
雨天不打伞|  楼主 | 2007-4-7 16:56 | 只看该作者

太感谢了!谢谢大家!

在误差分析这边,该怎么做呢,是不应该有个什么标准值作参考!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝