『壹』 利用89C51單片機設計多功能低頻函數信號發生器,能產生方波、正弦波、三角波等信號波形,信號的頻率、幅度
這個不難吧。第一種方案:在單片機裡面構造各種波形的數據表,然後用數組來保碼悉帆存。單片機控制給DA的數據的時間間隔就可以控制輸出的頻率了,為了得到比較精確的頻率,可以用定時器控制數據的輸出頻率啦。幅度的調節可遲雹以用雙DA來做啊,也就是用另外一塊DA來控制數據轉換DA的基準電壓。第二種方案:用單陸液片機控制DDS晶元啊,比如用單片機控制AD9834,可以產生正弦波、方波、三角波,頻率的調節就更簡單了。幅度的調節也可以用雙DA來實現,也可以先用電阻衰減再用運放放大,這樣幅度就可以連續可調了。電路圖和程序你確定了方案就可以很容易搞定了,實在不行再聯系我吧
『貳』 51單片機與DAC0832連接輸出三角波
給你個參考
建三角波的斜線函數,設三角波的幅值=2V,采樣10個點(紅色斜線段),那麼 K=2/10;
如此即可計算出Uo數列:0.2、0.4、0.6、。。。1.8、2.0,按順序送到0832,下降線段就是反過來送。送數的快慢,反映在輸出波形上的頻率,采樣點的多少,就決定了輸出波形的相似度,也叫失真度;
正弦波的計算同理。
這里是交流平台,有問有答。你的問題沒有唯一答案,也沒有標准答案,我的回答算是一個思路,你有不同的想法可以提出來,才知道你想要什麼;
你提出新要求並加分,可以,一聲不吭直接加分的形式就不是個好方法
『叄』 基於單片機的信號發生器的設計,輸出方波,正弦波,三角波,鋸齒波,頻率可調。原理是如何噠怎麼取點
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模塊,可配置成定時翻轉模式,比較方便~
鋸齒波是不是和方波類似啊?