① 用51單片機和dac0832實現階梯波,用c語言實現
這個簡單,定義一個梯形波數組,然後用定時器定時去輸出數組的數據就可以了。
懂事電子設計 Vgz
② 用單片機DAC產生階梯狀的三角波,如何 能夠使其平滑,成為近似的直線呢
就是普通的低通濾波,濾除階梯部分的高頻
③ 單片機利用定時器輸出矩形波
這個問題我似乎答過:可以借鑒輸出PWM波的一般方法,要用到兩個定時器,第一個用來確定整個波的周期,例如你這里的2ms,第二個用來確定高電平的時間,例如你這里的1/3ms,過程大概是這樣的:啟動第一個定時器,把電平拉高,緊接著啟動第二個定時器,當第二個計數滿了之後,把電平拉低,關閉第二個定時器,這時就出來了一個周期的波,你重復這個過程就出來連續波了,關於定時器初值和中斷向量那些你再去找找資料吧,一言兩語說不清楚
④ 怎麼用單片機實現一個特定的波形,波形如下
上升沿和下降沿的時間也有要求嗎?
如果沒有要求就好辦!
用一個單片機的I/O口上下各拉一個相同阻值的電阻
1.IO設為輸入
2.延時,
3.I/O設置為輸出,輸出高
4.延時,
5.I/O設為輸入
6.延時
7.I/O設置為輸出,輸出高
8.延時
8.I/O設置為輸出,輸出底
9.延時
1-9步循環輸出就是所要波形了
1.如果上升和下降沿時間都有要求,要產生如果後面那個波形那樣相同時間上升下降沿的斜邊,那就上面的方法不行,就得用D/A轉換才能產生。
2.如果對波形的幅值有所要求,上面的方法也不行,也只能用D/A轉換才能產生。
3.上面的方法只能產生5V 1/2的偏壓,因為單片機I/O口輸出是5V的,即產生0V,+5V和-5V
⑤ 單片機與0832輸出梯形波,分別用c語言和匯編編寫
這個需要硬體支持。暫時不清楚你的電路。用偽代碼表示。
// C code
#define dotNum 128 //一個周期的采樣點數.
const int Keystone[dotNum] ={....}; //梯形波的采樣值
int main()
{
int i = 0;
int data;
for(;;)
{
i %= dotNum ;
data = Keystone[i];
i++;
DAC0832_convert(data);
}
return 0;
}
;asm code
org 0000H
main:
;點數
mov R1,#7FH
LOOP:
;獲取地址
MOV DPTR,#Keystone
move A,R1
MOVC A,@A+DPTR
mov R2,A
LCALL DAC0832 ;調用DAC0832函數
mov P.x,R2
DEC R1
DJNC R1,#LOOP
SJMP main
;梯形波的采樣值
Keystone: DB ..........
DAC0832:
......
RET
⑥ 單片機8051 D/A轉換實驗 利用DAC0832,編製程序產生三角波和梯形波 單片機編程
用定時器來實現吧,三角波其實也可以用積分器實現。
⑦ 請單片機高手幫忙寫一份DAC0832的梯形波C程序 51單片機
#include<absacc.h>
#define DAC0832 XBYTE[0x7FFF]
void delay() /*延時函數*/
{
unsigned int n,i;
for (n=0; n<100; n++);
for (i=0; i<300; i++);
}
void main()
{
unsigned char i,n=20;
while(1)
for(i=0;i<10;i++)
{
DAC0832=i*n;
delay();//延時1ms
}
}
程序模擬都有,望採納!
⑧ 正弦波經過單片機AD采樣得到的是一個階梯形狀的正弦波波,如何把這個梯形波轉換成平滑的正弦波呢
如果你是將采樣得到的數據再經D/A輸出,從而得到正弦波,就是輸出加個濾波器就行了;
如果你是將采樣得到的數據送到上位機,如PC顯示,則你將采樣到的數據送給PC,其餘和事情讓上位機來做,當然,如果采樣率能提高那是再好不過了。
⑨ 設計梯形波測量系統,可以在單片機中模擬對象,通過編程產生波形,在計算機上用LABVIEW輸出。
基於LabVIEW平台的任意波形發生器計算機控制
儀器控製程序包括儀器初始化模塊、儀器管理模塊波形調制選取、設置模塊和波形輸出模塊。
初始化模塊:執行儀器的初始化,自檢,清零功能。
儀器管理模塊:執行儀器運行模式,鎖定與解鎖通道,是否恢復出廠設置等儀器管理操作。
波形調制模塊:設置SWP、FM、AM、FSK等各種調制參數及調制波形。
波形輸出模塊:由於儀器硬體只能識別ASCII字元,所以本模塊將用戶交互操作產生的任意波形通過轉換,下載到任意波形發生器的內部存儲器,並打到儀器輸出通道,輸出所需波形。
以上儀器控製程序是通過主程序調用艾訊公司提供的GPIB.DLL動態鏈接庫中的介面函數實現的。
2.3任意波形編輯模塊
該模塊採用三種途徑產生任意波形:函數庫編輯、公式輸入和滑鼠繪制。任意波形函數庫中存放了23個生產實踐中常用的函數波形,用戶只要從中選取,修改函數,設置波形頻率,幅值等參數,就可以產生波形;公式輸入法支持用戶輸入一個公式來表徵任意波形,用戶還可將專用波形加入到任意波形函數庫中存放;還設計了滑鼠繪制任意波形的功能.
當用戶需要繪制任意波形時,首先將滑鼠移到畫圖區的移動游標上,然後按住滑鼠左鍵拖動滑鼠,滑鼠的移動軌跡即形成任意波形。用戶還可點擊畫圖區下面的按鈕來選擇是畫任意曲線還是畫直線。移動游標的坐標通過X、Y指示值可知。也可通過修改游標坐標達到精確描繪所需要的任意波形。繪制完成後,單擊停止按鈕則返回到主界面,主界面如圖2.3.2所示。用戶可通過提供的編輯工具,放大、縮小、平移波形,還可對波形的顏色、位置、是否適應坐標的狀態等屬性進行設置。
⑩ 利用單片機產生梯形波,高手進!
你所說的"梯形波",大部分是由電路中一些器件的容性導致的,導致電平不能突變,上升沿和下降沿不夠陡。
如果的確需要很精確的梯形波,用DA就好了,輸出逐步增大的AD值。
或者可以增加一些容性器件。
具體就看自己的需求了。
不了解具體情況,單看圖可能是控制CW和CCW脈沖的開關信號。