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

周測法測頻率單片機程序

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

閱讀全文

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

熱點內容
噴油螺桿製冷壓縮機 瀏覽:577
python員工信息登記表 瀏覽:375
高中美術pdf 瀏覽:159
java實現排列 瀏覽:511
javavector的用法 瀏覽:980
osi實現加密的三層 瀏覽:230
大眾寶來原廠中控如何安裝app 瀏覽:912
linux內核根文件系統 瀏覽:241
3d的命令面板不見了 瀏覽:524
武漢理工大學伺服器ip地址 瀏覽:147
亞馬遜雲伺服器登錄 瀏覽:523
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:249
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348