❶ 函數信號發生器用單片機和DAC032做的程序
程序很簡單的,關鍵在寫程序的時候要注意DAC0832的保持時間和轉換速度。
建議你先弄個單緩沖或者直接控制的。
接著控制的會比較簡單:
就是DAC8032
1,2,3,10,17,18腳GND。20,19,8腳VCC
能明白吧!程序自己寫比較好,這樣能學到更多東西
給你點參考,這個程序能讓你對它的工作方式更熟悉!!
ORG
0000H
MAIN:MOV
A,P1
MOV
R0,A
;設置高電平
MOV
R1,#00H
;設置低電平
LCALL
BOXING
SJMP
MAIN
BOXING:
JNB
P1.0,SANJIAO
;P1.0控制三角波的輸出
JNB
P1.1,JUXING
;P1.1控制矩形波的輸出
JNB
P1.2,JUCHI
;P1.2控制鋸齒波的輸出
RET
;三角波
SANJIAO:
MOV
DPTR,#7FFFH
;
選中DA0832
MOV
A,#00H
UP1:
MOVX
@DPTR,A
;
向0832輸出數據
INC
A
JNZ
UP1
;
A=!0
跳轉反之順序執行
DOWN1:DEC
A
MOVX
@DPTR,A
JNZ
DOWN1
RET
;矩形波
JUXING:
MOV
DPTR,#7FFFH
LP:MOV
A,R0
;設置輸出上限
MOVX
@DPTR,A
LCALL
DEL_H
;調高電平延時程序
MOV
A,R1
MOVX
@DPTR,A
LCALL
DEL_L
;調低電平延時程序
RET
;鋸齒波
JUCHI:
MOV
DPTR,#7FFFH
MOV
A,#00H
LOOP:MOVX
@DPTR,A
INC
A
;SJMP
LOOP
RET
;延時程序
DEL_H:
;高電平
MOV
R7,#250
DE:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
DEL_L:
;低電平
MOV
R7,#250
DEL:MOV
R6,#4
DJNZ
R6,$
DJNZ
R7,DE
RET
;
END
❷ 基於單片機的信號發生器的設計,輸出方波,正弦波,三角波,鋸齒波,頻率可調。原理是如何噠怎麼取點
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模塊,可配置成定時翻轉模式,比較方便~
鋸齒波是不是和方波類似啊?
❸ 基於單片機、ADC0832信號發生器設計
智能函數發生器設計
設計的要求如下
設計要求
1. 信號頻率范圍1HZ~100kHZ;
2. 輸出波形應有: 方波、三角形、正弦波;
3. 輸出信號幅值范圍0~10V;
4. 具有數字顯示輸出信號頻率和電壓幅值功能。
第一章 方案設計與論證
方案一:本方案直接採用凌陽SPCE061A作為波形發生器。波形的具體產生是通過兩路DAC來產生,凌陽SPCE061A在這方面的設計為我們提供了極大的方便,用它實現的好處在於,外圍電路極其簡單,另外在DAC的編程方面又提供及其便利的編程環境。外圍電路的設計包括三大部分,第一是鍵盤控制電路的設計,這里採用4*4鍵盤,由IOA的低八位進行控制,把鍵盤上的行和列分別接在IOA0~IOA3和IOA4~IOA7上,採用外部中斷二來中斷所顯示波形,以便進入下一波形的編輯和輸出,在波形輸出的同時利用外部中斷一來實現同步的頻率調節。第二是顯示電路的設計,這里為了在波形輸出依然有顯示,由於單片機的局限性這里採用通常的動態LED顯示行不通,因為波形輸出時要求CPU不停地為其服務而沒有空閑來為LED進行不停更新,解決方案是採用帶數據緩存器和驅動的LCD來提供顯示,這樣只佔用八個I/O口即可完成設計要求,也可放棄適時顯示功能採用LED顯示,這里將提供兩種顯示方案。第三是濾波和電壓轉換電路的設計,濾波採用低通濾波器,濾除DAC轉換過程中形成的高頻小鋸齒波。另外由於凌陽SPCE061A單片機DAC輸出為電流輸出,為滿足達到5V的電壓輸出,外接OP07運算放大器進行放大,加1千歐姆電阻進行電流信號到電壓信號的轉換。本設計的特點是全面採用數字電路方案,因而工作穩定可靠。利用單片機控制管理,使頻率設置和占空比調整等操作可用鍵盤輸入,十分方便.由於方案中涉及到SPCE061A單片機現簡介如下:
SPCE061A單片機概述
SPCE061A是繼u'nSP系列產品SPCE500A等之後凌陽科技推出的又一個16位結構的微控制器。目前有兩種封裝形式:84引腳的PLCC84封裝和80引腳的LQFP80貼片封裝。主要性能如下:
16位m』nSP微處理器;
工作電壓:VDD為2.4~3.6V(cpu), VDDH為2.4~5.5V(I/O);
CPU時鍾:32768Hz~49.152MHz ;
內置2K字SRAM、內置32K FLASH;
可編程音頻處理;
32位通用可編程輸入/輸出埠;
32768Hz實時時鍾,鎖相環PLL振盪器提供系統時鍾信號;
2個16位可編程定時器/計數器(可自動預置初始計數值);
2個10位DAC(數-模轉換)輸出通道;
7通道10位電壓模-數轉換器(ADC)和單通道語音模-數轉換器;
聲音模-數轉換器輸入通道內置麥克風放大器自動增益控制(AGC)功能;
系統處於備用狀態下(時鍾處於停止狀態)耗電小於[email protected];
具備觸鍵喚醒的功能;
14個中斷源:定時器A / B,2個外部時鍾源輸入,時基,鍵喚醒等;
使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數據;
具備非同步、同步串列設備介面;
具有低電壓復位(LVR)功能和低電壓監測(LVD)功能;
內置在線模擬電路介面ICE(In- Circuit Emulator);
具有保密能力;
具有WatchDog功能(由具體型號決定)
❹ 單片機函數信號發生器
DAC0832可以的,但是速度比較慢,如果信號頻率比好基較高的話友槐謹建議用高速DAC,另外DA出來的波形是「階梯」明滑狀的,所以後面建議加一個低通濾波器
❺ 如何用單片機作可編程30MHZ函數發生器設計
添加一個外部的頻率發生晶元就好了,用單片機控制,這種根據不同晶元電路就不同,你可以查一下AD98系列的晶元看看,電路布線要注意點!1