導航:首頁 > 操作系統 > 周測法測頻率單片機程序

周測法測頻率單片機程序

發布時間: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值」,就是這種方法。
但是,頻率低的時候,這種方法是不適用的。
因為想要計幾個數,就要花費很長的時間。
故此,頻率低的時候,應該使用「測量周期法」,再換算成頻率。

閱讀全文

與周測法測頻率單片機程序相關的資料

熱點內容
機器人編程方法 瀏覽:990
表盤編程gt 瀏覽:7
java源代碼閱讀 瀏覽:734
程序員用什麼鍵盤羅技 瀏覽:167
為什麼安卓手機每天都要更新app 瀏覽:705
java怎麼成為程序員 瀏覽:288
西門子s7200編程電纜怎麼連接 瀏覽:530
下載網頁中的pdf文件 瀏覽:87
音樂緩存文件夾的軟體 瀏覽:394
Dkms編譯列印機驅動 瀏覽:992
解壓縮文件操作異常 瀏覽:556
等待代碼編譯時你會幹嘛 瀏覽:493
單片機c語言中變數右移8位 瀏覽:81
解壓的一個小短片 瀏覽:831
二級壓縮空壓機哪家好排行 瀏覽:743
基於單片機超聲波測距 瀏覽:130
模擬隨機紅包演算法 瀏覽:387
程序員接外包網站 瀏覽:136
哪裡可以買拆車件app 瀏覽:992
限流演算法漏桶和令牌桶區別 瀏覽:316