标题: 求助51单片机频率计怎么做 [打印本页]

作者: 韦俊杰    时间: 2018-11-20 08:52
标题: 求助51单片机频率计怎么做
本帖最后由 韦俊杰 于 2018-11-20 09:03 编辑

要求是实现
(1)共阴数码显示
(2)频率超过2K报警。
(3)蜂鸣器报警。
(4)可测频范围: 1HZ~5KHZ。


要求用下列的元件完成
最小系统: stc89c52rc, 12M晶振, 2*30P电容,10K电阻,10U电容;
外围芯片:轻触按键*5, 4位共阴数码管*2,三极管8550*1,蜂鸣器*1,排阻

4K7*3,插针接口若干,LED*1, 74LS573*1。


还有程序怎么写啊
大佬们帮帮忙啊




作者: xuyaqi    时间: 2018-11-20 10:02
连自己搜一下都不愿意,直接想要答案,自己动手吧。
作者: znz43a    时间: 2018-11-20 10:07
中断对脉冲计数,定时器定时读出计数值,计算频率,同时计数清零,准备下次采样。
作者: 韦俊杰    时间: 2018-11-20 10:21
xuyaqi 发表于 2018-11-20 10:02
连自己搜一下都不愿意,直接想要答案,自己动手吧。

搜啦找不到!
作者: MMU_FS    时间: 2018-11-20 10:30
核心思想就是用T0计数器做脉冲集采,计数器根据脉冲递加由硬件实现,精度搞,然后再开启一个T1做时间定时,每次定时器T1中断后进入读取T0计数器的值进行计算,进入T1中断期间关闭计时器T0同时清零计数器,中断函数处理结尾开启,以提高测量精度
作者: zl2168    时间: 2018-11-20 11:57
本帖最后由 zl2168 于 2018-11-20 15:55 编辑

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

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行,可演示,可观测,程序语句条条有注解。

作者: 杨雪飞    时间: 2018-11-20 14:13
http://www.51hei.com/bbs/dpj-142333-1.html
这个应该是用的12C5A60S2AD做的,管脚自己对一下。

http://www.51hei.com/bbs/dpj-85932-1.html
这个是4位数码管的,带仿真的。

http://www.51hei.com/bbs/dpj-140781-1.html
自己在本坛搜一下
作者: ysandi    时间: 2018-11-20 14:17
这个频率计应该是最简单的了,只到5KHz,连分频都不需要了。
作者: netbeetle    时间: 2018-11-20 15:00
用定时器捕获功能。
作者: atm    时间: 2018-11-24 15:25
#include <reg51.h>
#include <intrins.h>
#include "delay.h"
#define uchar unsigned char
#define uint unsigned int
uchar code dis_duan[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uint a=0,b=0;
uint counter=0;
unsigned long number=0;

void init();
void main()
{       
        uchar num[6]={0,0,0,0,0,0};
        uchar i;
        init();
        while(1)
        {       
                num[0]=number/100000;
                num[1]=number%100000/10000;
                 num[2]=number%10000/1000;
                num[3]=number%1000/100;
                num[4]=number%100/10;
                num[5]=number%10;
               
                for(i=0;i<6;i++)
                {
                        P1=_crol_(0xfe,i);
                        P0=dis_duan[num[i]];
//                        delay_ms(1);
                       
                }
               
        }
}
void init()
{
  IE=0X8A;//1000 1010
  TMOD=0X25;//0010 0101
  TH0=TL0=0;
  TH1=256-250;
  TL1=256-250;
  TR1=TR0=1;
}
void t0() interrupt 1
{
  b++;
}
void t1()  interrupt 3
{
  a++;
  if(a==4000)
  {
         
        TR1=TR0=0;
        a=0;
        number=b*65536+TH0*256+TL0;
        TH0=TL0=0;
          b=0;
        TR1=TR0=1;
  }
}

作者: panhzo    时间: 2018-11-24 16:03
用计时器,对脉冲计数
作者: cra...    时间: 2018-11-24 17:42
stc89c52rc, 12M晶振, 2*30P电容,10K电阻,10U电容; 外围芯片:轻触按键*5, 4位共阴数码管*2,三极管8550*1,蜂鸣器*1,排阻  4K7*3,插针接口若干,LED*1, 74LS573*1。
作者: 黄先生1995    时间: 2018-12-1 15:45
cra... 发表于 2018-11-24 17:42
stc89c52rc, 12M晶振, 2*30P电容,10K电阻,10U电容; 外围芯片:轻触按键*5, 4位共阴数码管*2,三极管8550*1, ...

我也做这个。有原理图吗
作者: qu蛐蛐儿    时间: 2018-12-1 18:18
zl2168 发表于 2018-11-20 11:57
实例73  测量脉冲频率
先Proteus仿真一下,确认有效
以上摘自张志良编著《80C51单片机仿真设计实例教程— ...

这个好厉害
作者: 努力就好    时间: 2018-12-1 19:03
中断对脉冲计数,定时器定时读出计数值,计算频率,同时计数清零,准备下次采样
作者: 米读者    时间: 2019-11-6 14:49
我也做这个,现在有原理图和程序吗?我找了很久都找不到。
作者: 小兰兰    时间: 2020-11-30 00:42
米读者 发表于 2019-11-6 14:49
我也做这个,现在有原理图和程序吗?我找了很久都找不到。

找到了吗兄弟我想要




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