導航:首頁 > 操作系統 > 51單片機信號發生器

51單片機信號發生器

發布時間:2025-01-20 04:48:49

① 基於單片機信號發生器設計重點研究問題是什麼

利用單片機做信號發生器,其重點就是單片機的主頻啦

因為主頻代表著程序運行的時間,這個時間是完成一次程序的從頭到尾單片機內部所需的時間,而運行一次只能輸出一種埠狀態,那麼需要方波輸出,則需要單片機運行兩次才能真正輸出一個方波信號,所以主頻才是重中之重。

另外還有程序的整體步數,就是程序的長度或多少,程序語句越多,運行速度也越慢,輸出的信號頻率也越低

例如想做一個1MHz的方波發生器,那麼51單片機的最高主頻是12MHz,然而真正輸出的最高只能達到12分之一,那就是1MHz,勉勉強強算是可以

如果超過1MHz的波形,51類單片機是達不到效果了,只能選擇其它單片機

下面是本人曾經利用單片機做的PMW信號發生器程序,僅供參考
/***************************************************************************/
#include<reg51.h>//頻率約為 2.37 KHz
//根據按鍵來控制輸出波形
sbit D=P2^0 ; //埠定義
int h,m,s,f;
/***************************************************************************/
void main(void)
{
TMOD=0x22; EA=1; ET0=1; ET1=1; TR0=1;//定時器初始化

while(1)
{
switch(P0)
{
case 0xfe : h=1; break;
case 0xfd : h=2; break;
case 0xfb : h=3; break;
case 0xf7 : h=4; break;
case 0xef : h=5; break;
case 0xdf : h=6; break;
case 0xbf : h=7; break;
case 0x7f : h=8; break;
default : h=9; break;
}
m=10-h;
}
}
/***************************************************************************/
void int0() interrupt 1 //定時器 0 中斷
{
TH0=0xff; s++;

if(s>=h){ TR0=0; TR1=1; D=0; s=0; }//開始時間
}
/***************************************************************************
/void int1() interrupt 3 //定時器 1 中斷
{
TH1=0xff; s++;

if(s>=m){ TR1=0; TR0=1; D=1; s=0; }//休止時間
}
/***************************************************************************/

② 51單片機做信號發生器,怎樣才能提高頻率

羅輯混亂,定時器只定時0.1us,而向DAC傳送數據要花時間遠大於0.1us.
應該定時時間大於DAC(sin[i])的時間。
理論上可產生幾百HZ的正弦波。
一次轉換需12.5us,假設20US更新一次,把一個正弦波分成256份。
那麼產生的正弦波頻率可達195HZ。

③ 利用89C51單片機設計多功能低頻函數信號發生器,能產生方波、正弦波、三角波等信號波形,信號的頻率、幅度

這個不難吧。第一種方案:在單片機裡面構造各種波形的數據表,然後用數組來保碼悉帆存。單片機控制給DA的數據的時間間隔就可以控制輸出的頻率了,為了得到比較精確的頻率,可以用定時器控制數據的輸出頻率啦。幅度的調節可遲雹以用雙DA來做啊,也就是用另外一塊DA來控制數據轉換DA的基準電壓。第二種方案:用單陸液片機控制DDS晶元啊,比如用單片機控制AD9834,可以產生正弦波、方波、三角波,頻率的調節就更簡單了。幅度的調節也可以用雙DA來實現,也可以先用電阻衰減再用運放放大,這樣幅度就可以連續可調了。電路圖和程序你確定了方案就可以很容易搞定了,實在不行再聯系我吧

④ 基於單片機的信號發生器的設計,輸出方波,正弦波,三角波,鋸齒波,頻率可調。原理是如何噠怎麼取點

51單片機硬體有PCA模塊的,或者是PWM發生器的型號,也有沒有的,你採用的晶元有沒有這些硬體?
正弦波:
如果有,以PCA模塊為例,可以作為DA使用,使用前根據datasheet配置好PCA。在51頭文件中有math.h,裡面有sin(X)函數,可以在程序中直接使用,使用前在主函數重要包含math.H這個文件。然後每個點采樣輸出即可,頻率可調可以通過不同方法實現,如果是要做信號發生器,推薦使用一個電位器,通過AD採集電壓,將採集值作為你輸出函數的系數即可,亦可以通過串口發送指令等方式實現,前提要在使用前將AD或者串口配置好。
如果沒有硬體模塊,也可以用普通IO口模擬,思路如下,經過y=sinx函數求得的結果,經過演算法轉化成二進制(主要是將小數轉化成二進制的演算法),推薦轉化成8的整數倍位,比如8位二進制或者16位二進制。轉化結束後將結果給IO口輸出即可,頻率也可採取上述方法設定。
三角波:
如果有DA,將DA的輸入值按一定時間自增,到達峰值後按一定時間自減。前文中的「一定時間」設定的足夠小,可以近似認為是三角波。三角波輸出頻率就是周期,在具體到操作層面時,可以將輸出函數前加上一個時間系數,還是通過調節正弦波的頻率的方式調節。
木有DA···還是和正弦波類似,通過演算法將輸出值轉化成二進制,然後送給IO口
方波:
這個最簡單,將IO口定時切換高低電平即可,你定的時間就將成為你輸出的頻率。
如果有PCA模塊,可配置成定時翻轉模式,比較方便~
鋸齒波是不是和方波類似啊?

⑤ 急求!!!在c51單片機上的三角波信號發生器,求原理圖與c程序代碼.

**************************************/
/* 信號發生器 (正弦波,方波,三角波)
*/
/*************************************/ #include<reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int
sbit cs=P2^0; //tlc5615片選埠 sbit clk=P2^1; //tlc5615時鍾線 sbit din=P2^2;
//tlc5615傳輸埠

sbit key1=P1^0; sbit key2=P1^1;
//按鍵的單片機介面

uchar keydat;
uchar flag;

//波形發生終止信號的標志位 一旦
被置零立馬停止發信號
uchar flagsqu; //方波高低電平控制為(運用定時器1
中斷控制)

uchar m,num; uchar dat=0xff;
uchar code tosin[141]={ //正弦波的編碼
0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,<a href="http://www.jsykyy.com/" target="_blank">塗料加盟</a>0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b, 0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45, 0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63, 0x66,0x69,0x6c,0x6f,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e, 0x7f,0x80,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79, 0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x6f,0x6c,0x69, 0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c, 0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30, 0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a, 0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a, 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,
0x00};

閱讀全文

與51單片機信號發生器相關的資料

熱點內容
壓縮機模型下載 瀏覽:333
伺服器怎麼登錄root 瀏覽:242
手機主頁設文件夾 瀏覽:956
安卓投屏極米用什麼 瀏覽:415
老程序員總結的16條經驗教訓 瀏覽:194
linux修改伺服器時間 瀏覽:446
檢查文件夾新增文件 瀏覽:287
代理伺服器和腳本地址 瀏覽:529
如何讓寬頻一直連接網路連接伺服器 瀏覽:718
編譯階段形成邏輯地址 瀏覽:328
設置中應用加密是哪個 瀏覽:682
php當前函數名 瀏覽:161
程序員睡眠不好心跳快 瀏覽:232
python怎麼將電腦作為伺服器 瀏覽:779
腰椎壓縮性骨折算幾級傷殘 瀏覽:302
傳統資產配置策略加密貨幣市場 瀏覽:990
id加密門禁卡可以復制到手機嗎 瀏覽:674
路由器如何控制某個app 瀏覽:45
C51編譯器在標准C的基礎上 瀏覽:262
銀行卡掉了可以辦車貸解壓嗎 瀏覽:317