欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7831|回復: 13
收起左側

51單片機頻率精確測量C程序及Proteus仿真

  [復制鏈接]
ID:53417 發表于 2013-8-22 21:08 | 顯示全部樓層 |閱讀模式
測定脈沖頻率,附帶部分Proteus仿真結果和完整C語言程序,對于初學者或著急使用的電子愛好者來說,軟件硬件結合,十分方便移植。仿真結果十分精確,實際應用中可能會存在少許誤差,通過相應的電路處理,可以滿足使用要求。
很多場合需要用到對頻率的精確測量,譬如你用霍爾傳感器做測轉速系統,就需要用到此模塊,測量霍爾傳感器輸出的脈沖的頻率,然后稍作運算,就可以實現轉速的測量功能。本設計利用51單片機的外部中斷(INT0)的捕捉功能,實現對脈沖的計數,同時配以T08位自動裝入方式,實現準確計時1S,這1SINTO捕捉到的脈沖數即為頻率。通過Proteus仿真,證明這種方式誤差極小實例1、頻率設定為5K,顯示在49995000兩數之間跳動
file:///C:/Users/LA/AppData/Local/Temp/ksohtml/wps_clip_image-3042.pngfile:///C:/Users/LA/AppData/Local/Temp/ksohtml/wps_clip_image-23223.png
實例2、頻率設定為4321HZ,顯示結果
file:///C:/Users/LA/AppData/Local/Temp/ksohtml/wps_clip_image-19640.pngfile:///C:/Users/LA/AppData/Local/Temp/ksohtml/wps_clip_image-8615.png
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint time_count,count,sum;
sbit duan=P2^6;     //74HC573LE端  U5  LED的段選端
sbit wei=P2^7;      //74HC573LE端  U4  LED的位選端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰極數碼表
unsigned int dis[6];               
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; //定時器賦初值 計時0.25ms1000次為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 0
{
count++;
}
void timer0() interrupt 1
{
time_count++;
if(time_count==4000)
{
sum=count;
time_count=0;
count=0;
}
}
void display()
{
  uchar i;
    dis[0]=sum/10000; //獲取計數值的萬位
  dis[5]=sum%10000;
  dis[1]=dis[5]/1000;     // 獲取計數值的千位
  dis[5]=dis[5]%1000;
  dis[2]=dis[5]/100;    // 獲取計數值的百位
  dis[5]=dis[5]%100;
  dis[3]=dis[5]/10;    // 獲取計數值的十位
  dis[4]=dis[5]%10;    // 獲取計數值的個位
  for(i=0;i<5;i++)  //依次顯示萬、千、百、十、個位,動態顯示
   {
     // P0=0xff;
   P0=con[ i];
   wei=1;
   wei=0;
   P0=table[dis];
   duan=1;
   duan=0;
   delay(1);
   P0=0;
   duan=1;
   duan=0;
    }  
}
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:7485 發表于 2013-8-23 08:12 | 顯示全部樓層
如果每秒鐘是9.8個脈沖,這樣測量會得出什么結果?
回復

使用道具 舉報

ID:57620 發表于 2013-12-6 19:51 | 顯示全部樓層
P0=table[dis];這條出錯了
回復

使用道具 舉報

ID:58415 發表于 2013-12-31 20:14 | 顯示全部樓層
額~~~~~~
回復

使用道具 舉報

ID:61326 發表于 2014-5-4 08:53 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:61343 發表于 2014-5-14 17:52 | 顯示全部樓層
好,謝謝分享
回復

使用道具 舉報

ID:48413 發表于 2014-7-15 21:08 | 顯示全部樓層
回復

使用道具 舉報

ID:66181 發表于 2014-9-15 11:31 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:66338 發表于 2014-9-18 16:27 | 顯示全部樓層
好,謝謝分享
回復

使用道具 舉報

ID:66464 發表于 2014-9-21 21:11 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:51348 發表于 2014-9-22 01:57 | 顯示全部樓層
感謝樓主 .... 學習了
回復

使用道具 舉報

ID:74826 發表于 2015-4-29 15:40 | 顯示全部樓層
什么意思?、、??
回復

使用道具 舉報

ID:47652 發表于 2015-5-4 16:16 | 顯示全部樓層
頻率測量學習資料
回復

使用道具 舉報

15#
無效樓層,該帖已經被刪除
16#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表