導航:首頁 > 編程語言 > 51測試程序

51測試程序

發布時間:2025-09-05 02:10:54

⑴ 求51單片機測量正弦波(20~100hz)的頻率的c程序,最好是已經通過測試過的

首先使用電壓比較器電路將正弦波轉化成方波,以方便單片機接收,參考下圖(該電路可接收峰峰值正負12V的正弦波),如果你的正弦波電路和單片機電路使用了不同的電源,則還需進行隔離處理

#include<AT89X51.H>

//********數碼管位代碼表(P0口)**********//

unsignedcharcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

//********數碼管段代碼表(P2口,共陰且高位接a,低位接h筆段)**********//

unsignedcharcodedispcode[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,

0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00};

//********8位數據緩沖器**********//

unsignedchardispbuf[8];

unsignedchartemp[8];

unsignedchardispcount;

unsignedcharT0count;

unsignedchartimecount;

bitflag;

unsignedlongx;

//*********初始化模塊**********//

voidinitial(void){

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=0;

TR0=0;

ET0=1;

ET1=1;

EA=1;

}

//******************************************************//

//*********顯示模塊**********//

voiddataDisplay(){

unsignedchari;

for(i=0;i<8;i++){

temp[i]=0;

}

i=0;

while(x/10){

temp[i]=x%10;

x=x/10;

i++;

}

temp[i]=x;

for(i=0;i<8;i++){

dispbuf[i]=temp[i];

}

P2=dispcode[dispbuf[dispcount]];

P0=dispbit[dispcount];

dispcount++;

if(dispcount==8){

dispcount=0;

}

}

//******************************************************//

//*********信號頻率測量模塊**********//

floatfrequency(floatfreq){

initial();

TR0=1;TR1=1;

if(timecount==250){

TR0=0;

freq=T0count*65536+TH0*256+TL0;

return(freq);

}

}

//******************************************************//

//*********信號周期測量模塊**********//

floatcycle(floatcount){

initial();

if(P3_4==1){

TR0=1;TR1=1;

if(P3_4==0){

TR0=0;

count=1000000/(timecount*4000+TH1*256+TL1-61536);

}

}

return(count);

}

//******************************************************//

//*********定時中斷服務程序1**********//

voidt1(void)interrupt3using0{

//initial();

//TR0=1;

//TR1=1;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

timecount++;

}

//******************************************************//

//*********定時中斷服務程序2**********//

voidt0(void)interrupt1using0{

//initial();

//TR0=1;

//TR1=1;

T0count++;

}

//******************************************************//

//*********主函數**********//

voidmain(void){

while(1){

x=frequency(x);

if(x<100){

x=cycle(x);

}

dataDisplay();

}

}

//******************************************************//

閱讀全文

與51測試程序相關的資料

熱點內容
全國兒童編程加盟有哪些 瀏覽:55
打包文件名怎麼弄 瀏覽:732
qq帥氣頭像動漫冷酷 瀏覽:337
微信歷史版本63 瀏覽:842
ps手繪板勾線教程視頻 瀏覽:989
微信java框架 瀏覽:924
手機上怎麼p圖word文件 瀏覽:937
nodejs入門經典pdf 瀏覽:811
note3升級442教程 瀏覽:145
安裝移動網路電視要哪些設備 瀏覽:24
蘋果和平精英怎麼刪除游戲數據 瀏覽:180
怎麼找到網站的照片和視頻 瀏覽:217
手機里存圖片的文件 瀏覽:382
請選擇正確的文件夾什麼意思 瀏覽:35
電腦和iphone共享文件夾 瀏覽:3
可愛的文件夾 瀏覽:102
數據流有哪些特徵 瀏覽:645
pc機網路安全檢查 瀏覽:894
51測試程序 瀏覽:861
安卓手機如何打開daf文件 瀏覽:534

友情鏈接