导航:首页 > 操作系统 > 周测法测频率单片机程序

周测法测频率单片机程序

发布时间:2022-07-07 21:56:44

1. 用单片机测频率的程序

我只有51的程序,没有MSP430的,但是我可以告诉您的思路:
1、你将输入信号输入外部中断引脚。
2、开启您的定时器T0;
3、使用定时器T0计时5S,然后读取外部中断了多少次。
4、计算外部中断的次数N,这样你就得到你所需要的频率了。那就是N*12=1分钟的次数。

2. 测周法测频率怎么用单片机实现。

主要是利用单片机的定时器计时,测量2个时间参数t1和t2,即如下所示:

计算信号的一个波形的周期t=t1+t2 则可以求出频率f=1/t

3. 基于89c51单片机实现测频,利用测频法以及测周法(两种方法测不同频率但是需要在同一个程序中)

先说测脉冲个数,用于频率较高场合,直接测周期用于频率较低场合。先默认计数法,当算得频率低于某一值时,改为测周期法,当频率高于某一值时,采用测脉冲个数法。

4. 51单片机测周C程序怎么写,计算两个脉冲之间的时间,程序怎么写!

或是低电平脉冲则直接接到单片机外部中断的引脚上就行了,一个低脉冲过来,进入中断,启动定时器/计数器,再来一个脉冲,再进入中断,关闭定时器/计数器,取得这个时间段的时钟周期,根据晶振频率算出时间就OK了。是不是很简单?

5. 51单片机制作频率计,测周法如何测量(用T0和T1两个就可以了吗),求大虾帮忙啊,最好详细点

#include<REG51.H>

#defineU8unsignedchar

U8codetab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};

U8codescn[]={0x7f,0xbf,0xdf,0xef};//先点亮左边一个数码管

U8buf[4]={0,0,0,0};//显示缓冲区

U8cnt=0;//扫描计数

unsignedintfreq=0;

unsignedintF;

voidmain(void)

{EA=1;//允许中断

TMOD=0x01;//设定时器0为模式1(16位)

ET0=1;//定时器0中断允许

TH0=(65536-5000)/256;//晶振12MHz,中断周期5mS

TL0=(65536-5000)%256;;

TR0=1;//开始计数

PX0=1;//外部中断优先级高

EX0=1;//允许外部中断

IT0=1;//外部中断下降沿触发

while(1);

}

voidexint0(void)interrupt0//外部中断0服务程序

{freq++;

}

voidtimeint(void)interrupt1//定时器0中断服务程序

{chari;

TH0=(65536-5000)/256;//晶振12MHz,中断周期5mS

TL0=(65536-5000)%256;;

i=cnt&0x03;//求应点亮的LED号(从左到右依次为0,1,2,3)

P0=tab[buf[i]];//笔划代码送P0口

P2=scn[i];//控制扫描码送P2口

cnt++;

if(cnt==200)

{cnt=0;//到1秒钟,显示的数字加一

F=freq;freq=0;

buf[0]=F/1000;

buf[1]=(F/100)%10;

buf[2]=(F/10)%10;

buf[3]=F%10;

}

}

6. 51单片机测频率的程序

测频率时,频率高的时候,采用“定时计数法”。
楼上给出的“开启一个定时器,计算一定时间t内的count值”,就是这种方法。
但是,频率低的时候,这种方法是不适用的。
因为想要计几个数,就要花费很长的时间。
故此,频率低的时候,应该使用“测量周期法”,再换算成频率。

阅读全文

与周测法测频率单片机程序相关的资料

热点内容
ipad怎么把app资源库关了 浏览:299
量柱比前一天多源码 浏览:416
电子书app怎么上传 浏览:66
国家反诈中心app注册怎么开启 浏览:804
全波差分傅里叶算法窗长 浏览:41
程序员如何讲自己做过的项目 浏览:7
程序员要看的书颈椎 浏览:946
php文章cms 浏览:553
CSS权威指南第三版PDF 浏览:496
android怎么搭建框架 浏览:184
正宗溯源码大燕条一克一般多少钱 浏览:917
电脑感染exe文件夹 浏览:916
wpsppt怎么转pdf格式 浏览:88
腾讯文档在线编辑怎么添加密码 浏览:880
本地不能访问服务器地址 浏览:865
访问服务器命令 浏览:835
华为云服务器分销商 浏览:954
Linux定位内存泄露 浏览:198
工程加密狗视频 浏览:720
不在内网怎么连接服务器 浏览:664