找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6989|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

AD9834信號(hào)發(fā)生器程序,按鍵設(shè)置頻率 AD603放大

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140725 發(fā)表于 2016-10-17 21:07 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
AD9834信號(hào)發(fā)生器程序,按鍵設(shè)置頻率,輸出波形和幅度增益,用nokia5110液晶顯示,增益是通過(guò)DA控制AD603對(duì)AD9834的輸出進(jìn)行程控放大。界面效果好。程序模塊化,方便移植,學(xué)習(xí).


全部完整代碼下載:
AD9834.rar (66.99 KB, 下載次數(shù): 139)

單片機(jī)源程序(部分預(yù)覽):
  1. #include<common.h>
  2. #include<ad9834.h>

  3. /*****************************************************  
  4. AD9834波形產(chǎn)生程序  
  5. *****************************************************/   
  6.   

  7. /**************************  
  8. 發(fā)送控制字  
  9. **************************/   
  10. void Send_Con(uint Con_word)   
  11. {   
  12.    uchar i;   
  13.    FSYNC =0;                              //低電平使數(shù)據(jù)有效
  14.    for(i=0;i<16;i++)              //傳輸16位控制字
  15.    {   
  16.       SDATA =Con_word&0x8000;   //最高位不變,最高位賦給SDATA
  17.       Con_word<<=1;                           //控制字左移一位,準(zhǔn)備下一次
  18.       SCLK =0;                                   //產(chǎn)生下降沿,傳輸SDATA
  19.       SCLK =1;   
  20.    }   
  21.    FSYNC =1;                                    //高電平,無(wú)效
  22. }   
  23.    
  24. /****************************  
  25. 發(fā)送頻率字  
  26. ****************************/   
  27. void Send_Freq(uint Freq_word)   
  28. {   
  29.    uchar i;     
  30.    FSYNC =0;                              //低電平使數(shù)據(jù)有效
  31.    for(i=0;i<16;i++)              //傳輸16位頻率字
  32.    {   
  33.       SDATA =Freq_word&0x8000;  //最高位不變,最高位賦給SDATA
  34.       Freq_word<<=1;                           //頻率字左移一位,準(zhǔn)備下一次
  35.       SCLK =0;                                   //產(chǎn)生下降沿,傳輸SDATA
  36.       SCLK =1;   
  37.    }   
  38.    FSYNC =1;                                    //高電平,無(wú)效
  39. }   
  40.    
  41. /*****************************  
  42. 發(fā)送相位字  
  43. 注:根據(jù)情況可設(shè)定入口參數(shù),設(shè)置相位  
  44. *****************************/   
  45. void Send_Phase()   
  46. {   
  47.    Send_Con(0xC000);   //設(shè)置初相位為0   
  48. }   
  49.    
  50.    
  51. /*******************************************************  
  52. 設(shè)置頻率值   
  53. Freq_value(value)=Freq_data(data)*FCLK/2^28  
  54. 2^28=268435456=0x10000000  
  55. *******************************************************/   
  56. void writing_Freq(uchar freq_number, ulong Freq_value)   
  57. {  
  58.     ulong FREQREG = (ulong)(268435456.0/FCLK*Freq_value);
  59.    
  60.     uint LSB_D = (uint)FREQREG;
  61.     uint MSB_D = (uint)(FREQREG>>14);
  62.    
  63.     if(freq_number == FREQ_0)
  64.     {
  65.         LSB_D &= ~(1U<<15);
  66.         LSB_D |= 1<<14;
  67.         MSB_D &= ~(1U<<15);
  68.         MSB_D |= 1<<14;
  69.     }
  70.     else
  71.     {
  72.         LSB_D &= ~(1<<14);
  73.         LSB_D |= 1U<<15;
  74.         MSB_D &= ~(1<<14);
  75.         MSB_D |= 1U<<15;
  76.     }
  77.    
  78.     Send_Freq(LSB_D);
  79.     Send_Freq(MSB_D);
  80.      
  81. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:194533 發(fā)表于 2017-5-8 12:37 | 只看該作者
請(qǐng)問(wèn)有仿真電路圖嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:194533 發(fā)表于 2017-5-8 12:38 | 只看該作者
有仿真電路圖嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:205335 發(fā)表于 2017-5-27 10:54 | 只看該作者
請(qǐng)問(wèn)有仿真電路圖嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:296658 發(fā)表于 2018-3-25 22:04 | 只看該作者
15927493959 發(fā)表于 2017-5-8 12:37
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

有仿真電路圖嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:328502 發(fā)表于 2018-5-14 18:27 | 只看該作者
你好,想請(qǐng)問(wèn)一下有ad9834信號(hào)發(fā)生器的仿真電路圖嗎
回復(fù)

使用道具 舉報(bào)

7#
ID:442274 發(fā)表于 2021-4-24 11:48 | 只看該作者
學(xué)習(xí)學(xué)習(xí) 確實(shí)需要由硬件連接最好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表