專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機模擬dds信號發(fā)生器

作者:huqin   來源:本站原創(chuàng)   點擊數:  更新時間:2014年03月01日   【字體:
         剛開始想用單片機做個頻率連續(xù)可調的信號發(fā)生器,后來就聯(lián)想到了當時用FPGA做的DDS信號發(fā)生器了。然后上網搜資料,哈哈,這個還真有人做過,大概看了一下人家的講解,就開始干活啦!
        DDS信號發(fā)生器的頻率計算公式如下:
 

 
 
           其中fout為輸出頻率,    M為累加器每次的步進值,N為累加器的位數,我這里采用的是unsigned int 16位的累加器。在FPGA系統(tǒng)中這個fc為系統(tǒng)時鐘,也就是有源晶振經過分頻后的頻率。但是在單片機中我們只能用單片機進中斷的頻率來作為fc。
           fc的設置需要注意的是1、進中斷的周期要大于中斷程序執(zhí)行的時間  2、進中斷的周期也要大于DAC兩次寫入數據的時間。
           我采用的硬件stc12c5a08s2  24m晶振  dac0832
           上最終效果圖

   
 
幾個頻率的測試波形
10Hz頻率測試




 
正弦波
                                      


 
方波


 
三角波


 
鋸齒波
 
制作經歷:
      昨天用單片機模擬個DDS信號發(fā)生器,畫了個板子。從開始做板子就各種不順。。。。。。打印時打印機沒墨啦,地線我用的鋪銅,悲催的是鋪地墨太淺,沒法只好拿著油性筆把地線重新描了下。好吧,做板去,腐蝕順利。然后拿到板子測量電源和地沒短路,開始焊接,一切順利。再次檢測電源和地是否短路,萬用表討厭的滴滴聲想起來啦。。。。。。啊蒼天啊,短路啦,我焊接水平沒那么差吧,一個小板子竟然焊短路 啦!好吧開始檢查電路,把電源線從頭看到尾看不出來短路啊,好吧再看兩遍,還是沒短路啊。沒法開始上刀子割電源線,割了兩刀短路范圍縮小啦,然后就逮著那一小段電源線左看右看上看下看沒短路啊,當時就有點崩潰。然后打開pcb,就沿著這條線對電路,暈死。。。。。。問題是我描地線時把復位按鍵當做獨立按鍵啦,本來接電源的線硬給畫到了地上,割開不短路啦�?墒俏液附忧皽y試啦啊,沒短路啊親,怎么突然蹦出來電路缺陷短路啊,見鬼。上電,電源燈不亮。。。。。。趕緊拔下電源,摸摸芯片不熱啊,準備好萬用表,直接接在單片機的地和vcc上,上電,電壓正常,懷疑電源燈電路可能斷啦,一摸led焊盤直接翹起來啦,這的歸功于那沒墨的打印機。然后補線,硬件搞定
      下載測試程序,咦,下不進去!我一開始懷疑下載管腳沒接緊,我就輕微晃晃它,咦,怎么這么活絡,翻過啦瞅瞅,下載的兩條插針焊盤全完蛋啦,好吧使用替換法,在其他板子上下載程序試試,可以下進去,片子沒問題,然后把片子裝到原來那個板子上,檢測程序不運行。上示波器測試晶振管腳,沒波形,哈哈,問題鎖定,晶振沒工作。這個晶振是在其他板子上拆的,是不是拆時間長燒壞啦,換晶振,還不工作,好吧,我換30p電容,檢測晶振有波形,程序運行,一切搞定�。�!
     總結越悲催越是小問題不斷。。。。。。
     注:中間來回拔單片機,一不留神,單片機兩根管腳硬生生鉆進手指里!
關閉窗口

相關文章