資料介紹
#include
unsigned char t=0,yichu=0,fenpin;
sbit B153=P2^0;
sbit A153=P2^1;
sbit GATE=P2^6;
sbit CLR=P2^7;
sbit P33=P3^3;
void t0(void)interrupt 1
{t++;
yichu=2;????????//定時(shí)器0溢出,yichu=2
}
void t1(void)interrupt 3????//計(jì)數(shù)器1溢出,yichu=1
{TCON=0;
yichu=1;
TH1=0xff;
TL1=0xff;
}
void delay(void)??????//1s軟件延時(shí)
{unsigned int i=500,j;
while(i)
?{i--;
?j=250;
?while(j)
??{j--;}
?}
}
unsigned char table(unsigned char x)?//軟件查表輸出
{unsigned char code n[10]={0xee,0x82,0xdc,0xd6,0xb2,0x76,0x7e,0xc2,0xfe,0xf6};
return(n[x]);
}
display(float f)??????//以測(cè)出的頻率串行輸出
{unsigned long x;
unsigned char a[5]={0,0,0,0,0},i=0,j;
if(f!=0){
if((f<10000)&&(f>1))?????//正常顯示
?{if(f>1000)f=f-1;?????//軟件修正頻率偏差
?while(f<1000)
??{f=f*10;
??i++;
??}
?x=f*10;
?a[4]=x%10;
?if(a[4]>=5)f=f+1;;
?x=f;
?a[1]=x%10;
?a[2]=(x/10)%10;
?a[3]=(x/100)%10;
?a[4]=(x/1000)%10;
?for(j=0;j<5;j++)
??{a[j]=table(a[j]);}
?a[i+1]++;
?a[0]=0;
?}
else if(f>=10000)??????//以科學(xué)計(jì)數(shù)法顯示
?{while(f>=1000)
??{f=f/10;
??i++;
??}
?x=f;
?a[4]=(unsigned char)((float)((f-x))*10);
?if(a[4]>=5)x++;??????//四舍五入
?a[2]=x%10;
?a[3]=(x/10)%10;
?a[4]=(x/100)%10;
?a[0]=i+2;
?for(j=0;j<5;j++)
??{a[j]=table(a[j]);}
?a[4]++;
?a[1]=0x7c;
?}
else
?{x=f*10000;???????//頻率值小于1
?if((x%10)>=5)x=x+10;?//四舍五入
?x=x/10;
?a[1]=x%10;
?a[2]=(x/10)%10;
?a[3]=(x/100)%10;
?a[4]=(x/1000)%10;
?for(j=0;j<5;j++)??
??{a[j]=table(a[j]);}
?a[4]++;
?a[0]=0;
?}
?
}
for(j=0;j<5;j++)???//串行
?{SBUF=a[j];
?while(TI==0);}
}
cepin()
{unsigned char i;
float sj;
unsigned long js;//時(shí)間、計(jì)數(shù)的拼音首字母
float f;??//f為頻率
TMOD=0xd9;
t=0;
TH0=0;
TL0=0;
TH1=0;
TL1=0;
GATE=0;
TCON=0x50;
GATE=1;
delay();
GATE=0;
for(i=0;i<250;i++){}????//延時(shí)1ms
sj=((float)(TH0*256+t*65536+TL0))/1000000.0;
js=(long)TH1*256+TL1+1;
f=(js/sj)*fenpin;
display(f);
}
panduan()
{float zhouqi;
B153=1;
A153=1;
TMOD=0x51;??
TH0=0xce;??//定時(shí)器0=12.8ms
TL0=0;
TH1=0xff;??//計(jì)數(shù)器1=100個(gè)脈沖
TL1=0x9c;
TCON=0x50;
while(yichu==0);
TCON=0;
if(yichu==1)?//計(jì)數(shù)器先溢出:在12.8ms內(nèi)測(cè)得的脈沖過(guò)多,說(shuō)明頻率較高
?{fenpin=128;//轉(zhuǎn)為測(cè)128分頻后的頻率
?cepin();}
else ???//計(jì)時(shí)器先溢出:100個(gè)脈沖的時(shí)間比較短,即頻率較低,可以減少分頻數(shù)
?{yichu=0;
?B153=1;
?A153=0;
?TH0=0xc1;?//定時(shí)器0=16ms
?TL0=0x80;
?TH1=0xff;?//計(jì)數(shù)器1=100個(gè)脈沖
?TL1=0x9c;
?TCON=0x50;
?while(yichu==0);
?TCON=0;
?if(yichu==1)?? //計(jì)數(shù)器先溢出:在16ms內(nèi)測(cè)得的脈沖過(guò)多,說(shuō)明頻率較高
??{fenpin=16;//轉(zhuǎn)為測(cè)16分頻后的頻率
??cepin();}
?else?? //計(jì)時(shí)器先溢出:100個(gè)脈沖的時(shí)間比較短,即頻率較低,用2分頻測(cè)周期
??{B153=0; //以下是測(cè)周期部分
??A153=0;
??TH0=0;
??TL0=0;
??t=0;
??TMOD=0x09;
??TR0=1;
??GATE=1;
??while(P33==0);
??GATE=0;
??while(P33==1);
??TR0=0;
??zhouqi=(TH0*256+t*65536+TL0)/1000000.0;
??if(zhouqi<0.001)?//若周期太小,則轉(zhuǎn)為測(cè)原頻率
???{fenpin=1;
???B153=0;
???A153=0;
???cepin();}
??else{display((1.0/zhouqi));}
??}
?}
}
main()
{
IE=0x8a;
while(1)
?{
?panduan();?//判斷原頻率屬于哪個(gè)范圍,并調(diào)用相應(yīng)函數(shù)測(cè)其頻率
?delay();
?}
}
- 頻率計(jì)資料 0次下載
- 基于單片機(jī)的頻率計(jì)設(shè)計(jì) 單片機(jī) 仿真 頻率計(jì)
- 基于51單片機(jī)的頻率計(jì)源代碼下載 165次下載
- 無(wú)線遙控頻率計(jì)C語(yǔ)言源代碼下載 37次下載
- 頻率計(jì)的PCB原理圖免費(fèi)下載 66次下載
- 頻率計(jì)設(shè)計(jì)與仿真 134次下載
- 0.1-10hz放大器噪聲測(cè)量濾波器 11次下載
- 頻率計(jì)仿真 基于51單片機(jī)頻率計(jì)protues仿真程序設(shè)計(jì) 頻率 222次下載
- 數(shù)字頻率計(jì) 57次下載
- 頻率計(jì)英文文獻(xiàn) 4次下載
- 基于Multisim的數(shù)字頻率計(jì)的設(shè)計(jì) 135次下載
- 基于verilog語(yǔ)言的數(shù)字頻率計(jì)設(shè)計(jì) 0次下載
- 超高頻數(shù)字頻率計(jì)的設(shè)計(jì)
- 簡(jiǎn)易頻率計(jì)設(shè)計(jì)
- 基于FPGA的數(shù)字頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)
- 頻率計(jì)的使用方法 1364次閱讀
- 頻率計(jì)的工作原理和分類詳解 2598次閱讀
- 頻率計(jì)的基本概念和組成部分 1303次閱讀
- 頻率計(jì)的基本原理及分類 頻率計(jì)的功能特點(diǎn)及應(yīng)用場(chǎng)景 3799次閱讀
- 頻率計(jì)的使用方法和注意事項(xiàng) 2347次閱讀
- 頻率計(jì)有哪些作用 1497次閱讀
- 分享一個(gè)簡(jiǎn)單的模擬頻率計(jì)電路 3017次閱讀
- 頻率計(jì)數(shù)器的工作原理和發(fā)展 1.3w次閱讀
- 電子小信號(hào)數(shù)字頻率計(jì)的設(shè)計(jì)與制作 6404次閱讀
- 基于FPGA自適應(yīng)數(shù)字頻率計(jì)的設(shè)計(jì) 6745次閱讀
- cpu時(shí)鐘頻率計(jì)算公式_CPU頻率計(jì)算方法詳解 3.3w次閱讀
- 簡(jiǎn)易數(shù)字頻率計(jì)電路圖大全 6.6w次閱讀
- 基于單片機(jī)簡(jiǎn)易數(shù)字頻率計(jì)設(shè)計(jì)方案匯總 3.2w次閱讀
- AT89C51單片機(jī)頻率計(jì)的C源程序設(shè)計(jì) 5192次閱讀
- 0.1-10Hz放大器噪聲測(cè)量濾波器電路圖 2512次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論