單片機頻率精確測量C程序_第1頁
單片機頻率精確測量C程序_第2頁
單片機頻率精確測量C程序_第3頁
單片機頻率精確測量C程序_第4頁
單片機頻率精確測量C程序_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、測定脈沖頻率,附帶部分PROTUES仿真結果和C語言程序,希望能給廣大電子愛好者帶來方便。仿真結果十分精確,實際應用中可能會存在少許誤差,通過相應的電路處理,可以滿足使用要求。很多場合需要用到對頻率的精確測量,譬如你用霍爾傳感器做測轉速系統,就需要用到此模塊,測量霍爾傳感器輸出的脈沖的頻率,然后稍作運算,就可以實現轉速的測量功能。本設計利用51單片機的外部中斷(INT0)的捕捉功能,實現對脈沖的計數,同時配以T0的8位自動裝入方式,實現準確計時1S,這1S內INTO捕捉到的脈沖數即為頻率。通過PROUES仿真,證明這種方式誤差極小(與網上流行的用定時器工作方式1定時1S的程序相比,誤差大大縮小

2、,尤其是對于頻率在2K以上信號的測量)。實例1、頻率設定為5K,顯示在4999和5000兩數之間跳動實例2、頻率設定為4321HZ,顯示結果#include <reg52.h>#define uchar unsigned char#define uint unsigned int uint time_count,count,sum;sbit duan=P26; /74HC573的LE端 U5 LED的段選端sbit wei=P27; /74HC573的LE端 U4 LED的位選端uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

3、0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共陰極數碼表unsigned int dis6; uchar con=0xfe,0xfd,0xfb,0xf7,0xef; /共陰型數碼管控制端 void initial(void);void delay(uint z);void display();main()initial();while(1) display();void initial()count=0;time_count=0; sum=0;TMOD=0x02; /定時器0工作方式2,8位自動裝入計數TH0=0x06;TL0=0x06; /定時

4、器賦初值 計時0.25ms,1000次為0.25s,4000次為一秒IT0=1;/ 外部中斷0工作方式(下降沿有效)EA=1;ET0=1;EX0=1;TR0=1; /開中斷void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=20;y>0;y-);void exter0() interrupt 0count+;void timer0() interrupt 1time_count+;if(time_count=4000)sum=count;time_count=0;count=0;void display() uchar i; dis0=sum/10000; /獲取計數值的萬位 dis5=sum%10000; dis1=dis5/1000; / 獲取計數值的千位 dis5=dis5%1000; dis2=dis5/100; / 獲取計數值的百位 dis5=dis5%100; dis3=dis5/10; / 獲取計數值的十位 dis4=dis5%10; / 獲取計數值的個位 for(i=0;i<5;i+) /依次顯示萬、千、百、十、個位,動態顯示 / P0=0xff; P0=coni; w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論