導航:首頁 > 操作系統 > 51單片機正弦波數據

51單片機正弦波數據

發布時間:2024-01-15 06:21:05

㈠ 51單片機怎樣採集正弦波的頻率

用比較器將正弦波變為方波,用單片機中的T0或T1口配合測頻率,T0可以用來計時,T1用來計算脈沖的個數,當定時1時間到了,計算T1的脈沖個數。calc()函數就是計算頻率的函數。
#include "reg51.h"
#define uchar unsigned char
uchar disp[8]={0,0,0,0,0,0,0,0};
uchar T0count,T1count;

void delay(void)
{
uchar i;
for(i=250;i>0;i--);
}

void display()
{
//uchar i,j,k=0x80;
uchar dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar i,k;
k=0x80;
for(i=0;i<8;i++)
{
P2=0;
P0=dispcode[disp[i]];
P0=~P0;
P2=k;
k=k>>1;
delay();
}
P2=0;
}
void calc()
{
uchar i;
long frequency;
frequency=(T0count*256+TH0)*256+TL0;
for(i=7;i>0;i--)
{
disp[i]=frequency%10;
frequency=frequency/10;
}
disp[0]=frequency;
}
void init()
{
T0count=0;
T1count=0;
TH0=0;
TL0=0;
}

void main()
{
init();
TMOD=0x15;
TH1=(65536-5*110592/12)/256;
TL1=(65536-5*110592/12)/256%10;
ET1=1;
ET0=1;
EA=1;
TR1=1;
TR0=1;
//以下四句的作用是在P1.0引腳上形成1000Hz的脈沖,用導線連接到P3.4作為測試用,如果是AT89S51,則四句不用。將其中
//高8位和低8位的初始值更改後可輸出不同頻率的脈沖。
/*
T2MOD=0x2;
RCAP2H=245;
RCAP2L=74;
TR2=1;
*/
while(1)
{
display();
}
}
void time0() interrupt 1
{
T0count++;
}
void time1() interrupt 3
{
TH1=(65536-5*110592/12)/256;
TL1=(65536-5*110592/12)/256%10;
if(T1count==19)
{
calc();
init();
}
else T1count++;
}

㈡ 我現在用了個51單片機要怎麼樣才能弄出個正弦波 不加DA轉換晶元的情況下可以辦到嗎

很簡單啊,單片IO輸出1的時候接近電源,輸出0的時候接近0V,取3個以上的IO口,假如IO全輸出1的時候那麼這個埠是電源電壓,每個I0用不同的電阻分壓,依次將IO值1,就可以得到上升的電平。依次值0就是下降的電平,輸出用電容平滑下,就是正弦波了。

㈢ 51單片機控制DAC0832產生正弦波,如何用定時器改變頻率,求代碼!

可以用一個定時器中斷,在中斷服務程序裡面,直接把對應的正弦采樣數據置入P1口,通過修改定時器的中斷間隔,達到調整輸出頻率的目的;
假設你的采樣數據的原始采樣率為1KHz, 被采樣正弦波頻率為100Hz,當Timer中斷間隔為1ms時,DAC那裡輸出處理後輸出即為100Hz, 如果中斷間隔為500us,輸出就是200Hz

static unsigned char byIndex=0;
中斷函數裡麵包含如下兩句

P1 = Sin[byIndex++];
byIndex &= 0x7f;

㈣ 怎麼用51單片機編寫正弦波,有程序的更好,謝謝!!!

方法1: 用PWM功能,定時器中斷,定時按照正弦波的規律數據不斷改變PWM脈寬,PWM輸出引腳用100K和104電容兩級濾波,最後用運放跟隨輸出一下,得到近似正弦波。
方法2: 單片機+DA轉換器,同樣定時器中斷,按正弦波數據不斷刷新DA數據,使DA輸出正弦電壓。改變定時器中斷時間,即可改變頻率,注意DA器件的速度要足夠快才行。

閱讀全文

與51單片機正弦波數據相關的資料

熱點內容
安卓下載東西怎麼弄 瀏覽:520
我的世界伺服器地址13 瀏覽:309
機修編程原理 瀏覽:720
手機點開app反應慢是哪裡的問題 瀏覽:772
數控銑床g代碼編程圖案 瀏覽:129
lan是指什麼伺服器 瀏覽:769
php匹配手機號 瀏覽:444
火狐app攔截窗口如何解除 瀏覽:902
javaapichm下載 瀏覽:162
如何用代理伺服器玩cf 瀏覽:999
java對象轉jsonobject 瀏覽:370
怎麼刪除app里的更新提示 瀏覽:422
日月單片機 瀏覽:152
airports在安卓上如何查看電量 瀏覽:252
北京回收全新伺服器硬碟雲主機 瀏覽:517
php空間搭建ss 瀏覽:507
phparray轉string 瀏覽:673
powermill編程培訓班 瀏覽:493
pdf與word文檔區別 瀏覽:61
MC你如何將材質包裝進伺服器 瀏覽:703