找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AD9850 DDS信號發(fā)生器 程序 原理圖 pcb 設(shè)計報告都有

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:137190 發(fā)表于 2016-9-25 12:33 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

以上所有資料下載:
DDS.rar (745.5 KB, 下載次數(shù): 581)

下面是設(shè)計報告預(yù)覽:
一、方案設(shè)計與論證
本設(shè)計采用直接數(shù)字頻率合成。單片機從鍵盤獲得控制信息,控制兩路DDS芯片AD9850產(chǎn)生的兩路設(shè)定頻率的正弦波和方波。輸出信號經(jīng)過調(diào)整后輸入AD7524可以在單片機的控制下完成對信號的程控誤差。從DDS模塊輸出的兩路信號經(jīng)過低通濾波和直流偏置將兩路信號輸入模擬乘法器AD835,一路作為載波,一路作為調(diào)制波,從AD835產(chǎn)生調(diào)制波。同時可以將DDS信號輸入到CD4046B芯片進(jìn)行振蕩輸出調(diào)頻信號。
   方案選擇
1、信號發(fā)生部分
方案一:采用單片壓控函數(shù)發(fā)生器,如MAX038。MAX038可以方便地產(chǎn)生頻率(0.1Hz~20MHz)可變的正弦波、方波、三角波及實現(xiàn)數(shù)控頻率調(diào)整。但是,其輸出頻率的穩(wěn)定度低,頻率的步長控制難以達(dá)到理想的結(jié)果。
方案二:采用DDS波形發(fā)生技術(shù),采用FPGA和單片機相結(jié)和的方式實現(xiàn)頻率控制,由于本信號源只產(chǎn)生三種常見波形,不需要大規(guī)模的FPGA。
方案三:采用專用的DDS芯片,因為AD9850可以直接產(chǎn)生正弦波等常見波形用單片機的控制字可以方便地進(jìn)行控制輸出不同的波形,故本方案采用DDS專用芯片AD9850來實現(xiàn)。
2、信號放大部分
方案一:采用分立器件對信號進(jìn)行放大,此方法制作復(fù)雜,且干擾較大
方案二:采用運算放大器進(jìn)行放大,要改變放大倍數(shù)時,則可以采用外部電位器阻值的方式,因此可以得到可以調(diào)節(jié)的增益。在溫度和電源電壓變化時有很高的穩(wěn)定性,完全可以滿足本方案的要求。綜合考慮本系統(tǒng)的精度要求,選擇方案2。
3、模擬FM電路的設(shè)計
方案1:使用變?nèi)荻䴓O管和適當(dāng)?shù)碾姀S構(gòu)成VCO電路。變?nèi)荻䴓O管通過改變外加反向電壓可以改變電容的大小,從而改變VCO輸出的信號頻率。
方案2:采用鎖相環(huán)器件,直接對調(diào)制信號進(jìn)行相位比較,外部電路簡單,實現(xiàn)方便。最終選擇方案2。
4、輸入控制部分
方案一:獨立按鍵控制,制作簡單,編程易于實現(xiàn),但占用單片機I/O口較多。
方案二:矩陣4*4鍵盤,采用行列掃描的方式,最少要占用8個I/O口。
方案三:紅外遙控解碼控制,采用紅外一體化接收頭,制作簡單,僅占用一個I/O口。在本設(shè)計中控制端較多,綜合考慮采用方案三。
5、顯示部分
方案一:數(shù)碼管顯示,由于本題要求實時顯示輸出信號的類型、幅度、頻率和頻率步進(jìn)值等,而數(shù)碼管不能顯示字符。
方案二:LED點陣顯示,LED點陣顯示雖然能顯示字符和數(shù)字,但顯示效果不好,且不易編程。
方案三:LCD液晶顯示,LCD液晶不但能顯示字符和數(shù)字,而且顯示效果較好,容易編程實現(xiàn)。
根據(jù)題目的要求,經(jīng)過仔細(xì)分析,充分考慮各種因素,制定了整體設(shè)計方案:以單片機STC89C52為核心,完成四方面的功能:采用DDS專用芯片AD9850產(chǎn)生正弦波和方波,高帶DA轉(zhuǎn)換器AD7524控制AM調(diào)制度,接收紅外遙控的控制碼,同進(jìn)LCD液晶顯示所有數(shù)據(jù)。其系統(tǒng)如圖1-1所示。

圖1-1
二、理論分析、計算與各模塊設(shè)計
(1)DDS波形產(chǎn)生電路設(shè)計
DDS基本原理:正弦波形一個周期離散樣點的幅值數(shù)字量存于ROM(或RAM)中,按一定的地址間隔(相位增量)讀出,由D/A轉(zhuǎn)換成模擬正弦信號,經(jīng)過低通濾波,濾除D/A帶來的小臺階和數(shù)字電路產(chǎn)生的毛刺,即可獲得所需要的正弦信號。AD9850可以產(chǎn)生正弦波、方波。AD9834內(nèi)部的相位累加器的字寬為32位,SIN函數(shù)表有4096樣點值,因此32位的相位累加器輸出僅截取12位用于查表。其內(nèi)部原理框圖如下:
圖2-1 AD9850內(nèi)部原理框圖
AD9850參數(shù):
最高參考時鐘為125MHz,輸出頻率分辨率可達(dá)0.0291Hz,允許產(chǎn)生最高輸出頻率62.5MHz。芯片內(nèi)部提供5bits數(shù)字控制相位調(diào)制,
輸出的相位變化增量可為
AD9850有32位相位累加器,而ROM為14位,將32位累加器的輸出截高位的14位輸入正弦(ROM)查詢表,從查詢表輸出給D/A。D/A的輸出是兩個互補的模擬電流,在12腳處接一個電阻Rset,使?jié)M量程輸出為10~20mA電流,經(jīng)過濾波器輸出正弦波。
AD9850主要引腳說明:
1、(D0~D7):8bit數(shù)據(jù)輸入端。用于下載32bit頻率調(diào)節(jié)字和8bit相位控制字。
2、(W-CLK):字裝載時鐘,用于裝載并行或串行的頻率/相位/控制字
3、(RSET):DAC外接電阻,該電阻決定DAC輸出電流的最大值。對于典型應(yīng)用(IOUTmax=10mA)時,RSET的值為3.9kΩ,另一端連接到地線。外接電阻RSET與DAC輸出電流 IOUT的關(guān)系為
輸出信號頻率、參考時鐘、頻率控制碼之間的關(guān)系
                              控制字
                  輸入?yún)⒖紩r鐘頻率(MHz)。
電路原理圖如圖2-2所示:

圖2-2 DDS波形產(chǎn)生電路
(2)程控衰減電路設(shè)計
程控衰減電路由D/A轉(zhuǎn)換芯片AD7524構(gòu)成,主要利用此D/A芯片的可程控電阻網(wǎng)絡(luò)構(gòu)成基于AD7524構(gòu)成的程控衰減器,而在其輸出端得到幅度可控的正弦波。由AD7524的8位數(shù)據(jù)輸入端進(jìn)行控制,可實現(xiàn)1~1/56級衰減。其相關(guān)電路如圖2-3所示:
圖2-3 程控衰減電路
(3)模擬AM電路設(shè)計
該電路選用AD835作為乘法器,將載波和調(diào)制信號相乘得AM信號,其兩路輸入信號幅值可達(dá)到-1V—+1V,對噪聲可形成較強的抑制能力。另外,普通雙邊帶調(diào)制需要調(diào)制信號疊加直流成分,因此調(diào)制信號在輸入到乘法器前需經(jīng)過電平轉(zhuǎn)換電路為調(diào)制信號疊加適當(dāng)?shù)闹绷。由于前級的調(diào)制信號是由程控衰減器輸出,所以在程控衰減器初始輸出的情況下,可以通過調(diào)節(jié)電平轉(zhuǎn)換電路的直流偏置,使模擬AM電路的初始輸出的調(diào)幅波形的調(diào)制度調(diào)整至1。這樣設(shè)置可以為之后的程控調(diào)制帶來方便。通過P8的跳線可以選擇調(diào)制波為方波,從面實現(xiàn)ASK調(diào)制。其電路如圖所示。

圖2-4 AM信號產(chǎn)生電路
(4)模擬FM電路的設(shè)計
頻率調(diào)頻信號的基本特點是它的瞬時頻率按調(diào)制信號規(guī)律變化,因而,一種最容易想到的方法是用調(diào)制信號直接控制振蕩器的振蕩頻率,使其不失真地反映調(diào)制信號的變化。通常將這種直接調(diào)變振蕩器頻率的方法稱為直接調(diào)頻法。本設(shè)計中,使用鎖相環(huán)集成電路CD4046內(nèi)部自帶的VCO產(chǎn)生FM波。通過P10 的跳線可以選擇方波為調(diào)制波,從而實現(xiàn)FSK。其電路如5所示。

圖2-5 FM、FSK信號產(chǎn)生電路
(5)控制與顯示電路
輸入控制采用紅外遙控器控制,通過HS0038紅外一體化接收頭解碼、放大,將控制碼發(fā)送給單片機,再由單片機控制DDS模塊、程控衰減模塊產(chǎn)生不同的波形。
顯示部分使用128*64點陣寬屏液晶,可以顯示不同模式下的頻率及波形,達(dá)到直觀、形象的效果。
此模塊如圖所示:
圖2-6 控制與顯示電路
三、電路與程序設(shè)計
1、總體電路
總體電路圖見附錄1。
2、軟件設(shè)計
程序全部由C語言編寫,可實現(xiàn)波形類型的選擇、頻率檔位(低檔、高檔)電壓輸入、頻率步進(jìn)值和電壓步進(jìn)值的設(shè)定,顯示部分可實時顯示輸出信號的類型、幅度、頻率和頻率步進(jìn)值。主程序的流程如圖3-1所示。
圖3-1 程序流程圖
四、測試方案與測試結(jié)果
1、測試儀器
雙蹤示波器   TDS3012B         
頻率計       PD1631
2、測試數(shù)據(jù)
                              (1)輸出波形頻率范圍測試,測試數(shù)據(jù)如表1所示:
預(yù)置頻率/Hz
輸出頻率/Hz
負(fù)載電阻(Ω)
正弦波
方波

10
10.005
10.005
100
25
25.005
25.005
100
50
50.01
50.01
100
100
100.02
100.02
100
150
150.04
150.04
100
300
300.07
300.07
100
500
500.09
500.09
100
1000
1000.2
1000.2
100
2000
2000.5
2000.5
100
5000
5001
5001
100
10000
100003
100003
100
50000
500007
500007
100
100000
100010
100010
100
200000
200030
200030
100
500000
500060
500060
100
1000000
1000090
1000090
100
表1
由表可以看出,在頻率穩(wěn)定度方面,正弦波、三角波、方波在帶負(fù)載的情況下均十分穩(wěn)定,這正是DDS專用芯片AD9834的特點。
(2)輸出波形幅度范圍測試
預(yù)置幅度(V)
輸出幅度(V)(負(fù)載50Ω)
輸出幅度(V)(負(fù)載1KΩ)
頻率與波形
0.1
0.098990
0.098990
250KHz、正弦波
0.2
0.197642
0.197667
250KHz、正弦波
0.5
0.490125
0.490002
250KHz、正弦波
1.0
0.989946
0.989932
250KHz、正弦波
1.5
1.496254
1.496425
250KHz、正弦波
2.5
2.489632
2.487032
250KHz、正弦波
3.5
3.480263
3.480142
250KHz、正弦波
4.0
3.943521
3.936721
250KHz、正弦波
5.0
4.905241
4.901482
250KHz、正弦波
表2
由表可見,在電壓穩(wěn)定度方面:電壓的絕對值和預(yù)置值之差,及帶載和不帶載的情況下輸出電壓均符合要求。
(3)幅度(VP-P)步進(jìn)值測量(測試對象:1KHz正弦波,單位:V,步進(jìn)值0.1V)
預(yù)置值
0
0.10
0.20
0.50
1.00
1.50
2.00
2.50
3.50
4.50
5.00
實測值
0
0.10
0.20
0.49
1.00
1.52
2.01
2.48
3.46
4.53
5.00

表3
由表可以看出,在步進(jìn)值的精確度方面,符合設(shè)計要求。
五、結(jié)論
我們設(shè)計的系統(tǒng)以STC89C52芯片為核心控制,通過可編程放大電路實現(xiàn)了正弦波、方波的輸出功能,其頻率步進(jìn)值和幅度步進(jìn)值達(dá)到了題目的設(shè)計要求。在系統(tǒng)的設(shè)計過程中,力求硬件電路簡單,充分發(fā)揮軟件編程方便靈活的特點,并最大限度挖掘單片機的資源,來滿足系統(tǒng)設(shè)計要求。因比賽時間有限,該系統(tǒng)還有許多值得改進(jìn)的地方。
六、參考文獻(xiàn):
[1]劉建成,鄒應(yīng)全,行鴻彥.基于DDS的函數(shù)發(fā)生器設(shè)計.現(xiàn)代電子技術(shù)2007
[2]劉春生,李小波. AD603在信號采集系統(tǒng)中的應(yīng)用.國外電子元器件.2000(11)
[3]胡煜.MAX038在精密頻率合成波形發(fā)生器中的應(yīng)用. 現(xiàn)代電子技術(shù)2007(1)
[4]劉建成,鄒應(yīng)全,行鴻彥.基于DDS9850的函數(shù)發(fā)生器設(shè)計. 2007(2)

評分

參與人數(shù) 1黑幣 +10 收起 理由
YJGG + 10 贊一個!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:137190 發(fā)表于 2016-9-25 12:38 | 只看該作者
AD9850的驅(qū)動程序C文件:
  1. /************************************************************
  2. *                                        AD9850.c                                                                *
  3. *                                        AD9850的驅(qū)動程序C文件                                        *
  4. *                                        Copyright (c)2009---MJC                                 *
  5. *                                        Free to Copy and Modify.                                *
  6. *                                        Author:Worrior                                                        *
  7. *                                        Date:2009-9-1                                                        *
  8. ************************************************************/

  9. #include<intrins.h>
  10. #include "AD9850I.h"
  11. #include "lcd12864.h"

  12. //unsigned char freq[8];                                //液晶顯示8種步進(jìn)頻率值
  13. unsigned char freq[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


  14. /********************
  15. **函數(shù):AD9850Reset
  16. **功能:AD9850的復(fù)位函數(shù)
  17. **作者:Worrior
  18. **日期:2009-9-1
  19. ********************/
  20. void AD9850Reset(void)
  21. {
  22.         AD9850WCLK = 1;
  23.         AD9850FQUD = 1;
  24. //        AD9850ReSet = 0;
  25. //        AD9850ReSet = 1;//復(fù)位腳置高電平(10個AD9850的時鐘周期)
  26. //        _nop_();_nop_();_nop_();_nop_();_nop_();
  27. //        _nop_();_nop_();_nop_();_nop_();_nop_();//延時,其實不用這么長
  28. //        AD9850ReSet = 0;//復(fù)位完成,再拉低
  29. }

  30. /*步進(jìn)按鍵函數(shù)*/
  31. void f10Mhz(void)                                                                                                                                                //10Mhz步進(jìn)
  32. {
  33.         freq[0]=freq[0]+1;
  34.         if(freq[0]>=10)
  35.         {
  36.                 freq[0]=0;
  37.         }
  38.         display_led();
  39. }

  40. void f1Mhz(void)                                                                                                                                                //1Mhz步進(jìn)
  41. {
  42.         freq[1]=freq[1]+1;
  43.         if(freq[1]>=10)
  44.         {
  45.                 freq[1]=0;
  46.         }
  47.         display_led();       
  48. }

  49. void f100Khz(void)                                                                                                                                                //100Khz步進(jìn)
  50. {       
  51.         freq[2]=freq[2]+1;
  52.         if(freq[2]>=10)
  53.         {
  54.                 freq[2]=0;
  55.         }
  56.         display_led();
  57. }

  58. void f10Khz(void)                                                                                                                                                //10Khz步進(jìn)
  59. {
  60.         freq[3]=freq[3]+1;
  61.         if(freq[3]>=10)
  62.         {
  63.                 freq[3]=0;
  64.         }
  65.         display_led();
  66. }

  67. void f1Khz(void)                                                                                                                                                //1Khz步進(jìn)
  68. {
  69.         freq[4]=freq[4]+1;
  70.         if(freq[4]>=10)
  71.         {
  72.                 freq[4]=0;
  73.         }
  74.         display_led();
  75. }

  76. void f100Hz(void)                                                                                                                                                //100hz步進(jìn)
  77. {
  78.         freq[5]=freq[5]+1;
  79.         if(freq[5]>=10)
  80.         {
  81.                 freq[5]=0;
  82.         }
  83.         display_led();

  84. }

  85. void f10Hz(void)                                                                                                                                                //10hz步進(jìn)
  86. {
  87.         freq[6]=freq[6]+1;
  88.         if(freq[6]>=10)
  89.         {
  90.                 freq[6]=0;
  91.         }
  92.         display_led();

  93. }

  94. void f1Hz(void)                                                                                                                                                        //1hz步進(jìn)
  95. {
  96.         freq[7]=freq[7]+1;
  97.         if(freq[7]>=10)
  98.         {
  99.                 freq[7]=0;       
  100.         }
  101.         display_led();
  102. }

  103. /***計算控制字************/
  104. /***入口:頻率數(shù)組指針***出口,控制字值*****/
  105. unsigned long jisuan(unsigned char data *fno)//*fno-0>freq[0...7]
  106. {
  107.     unsigned long dds_no ;
  108.     dds_no=
  109.     (*(fno+7))*FF0+
  110.     (*(fno+6))*FF1+
  111.     (*(fno+5))*FF2+
  112.     (*(fno+4))*FF3+
  113.     (*(fno+3))*FF4+
  114.     (*(fno+2))*FF5+
  115.     (*(fno+1))*FF6+
  116.     (*fno)*FF7 ;
  117.     return(dds_no);               
  118. }

  119. /********************
  120. **函數(shù):AD9850SetFre
  121. **功能:AD9850設(shè)定頻率控制字函數(shù)
  122. **參數(shù):Fre,float型,要設(shè)定的頻率,單位Hz
  123. **作者:Worrior
  124. **日期:2009-9-1
  125. ********************/
  126. void AD9850ISetFre()
  127. {
  128.         unsigned long FTW = 0;//要寫入的32位頻率控制字(AD9850一次需要寫入40位控制字)
  129.         unsigned char part1,part2,part3,part4;

  130.         FTW=jisuan(freq);       
  131. //        if(FTW > 30000000)
  132. //                FTW = 30000000;
  133. //        FTW = (unsigned long) (Fre * AD9850_125M);//計算頻率控制字(公式:FTW=(2^32/fosc)*Fre)
  134.         /*以下將32位頻率控制字分解*/
  135.         part1 = (unsigned char) (FTW>>24);//取32~25位
  136.         part2 = (unsigned char) (FTW>>16);//取24~17位
  137.         part3 = (unsigned char) (FTW>>8); //取16~9位
  138.         part4 = (unsigned char) (FTW);          //取8~1位
  139.         /*以上將32位頻率控制字分解*/

  140.         AD9850FQUD = 1;
  141.         AD9850WCLK = 1;
  142.         AD9850DATAPORT = 0x00;//寄存器最高的八位只送0x00
  143.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  144.         _nop_();

  145.         AD9850WCLK = 1;
  146.         AD9850DATAPORT = part1;
  147.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  148.         _nop_();
  149.        
  150.         AD9850WCLK = 1;
  151.         AD9850DATAPORT = part2;
  152.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  153.         _nop_();
  154.        
  155.         AD9850WCLK = 1;
  156.         AD9850DATAPORT = part3;
  157.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  158.         _nop_();
  159.        
  160.         AD9850WCLK = 1;
  161.         AD9850DATAPORT = part4;
  162.         AD9850WCLK = 0;//AD9850WCLK上升沿送數(shù)據(jù)
  163.         _nop_();
  164.         AD9850FQUD = 0;//AD9850FQUD上升沿將AD9850緩沖區(qū)的40位數(shù)據(jù)送入DDS Core
  165. }

  166. /********************
  167. **函數(shù):AD9850SetFre
  168. **功能:AD9850設(shè)定頻率控制字函數(shù)
  169. **參數(shù):Fre,float型,要設(shè)定的頻率,單位Hz
  170. **作者:Worrior
  171. **日期:2009-9-1
  172. ********************/
  173. void AD9850IISetFre(float Fre)
  174. {       
  175.         unsigned long FTW = 0;//要寫入的32位頻率控制字(AD9850一次需要寫入40位控制字)
  176.         unsigned char part1,part2,part3,part4;

  177.         if(Fre > 30000000)
  178.                 Fre = 30000000;
  179.         FTW = (unsigned long) (Fre * 34.3597384);//計算頻率控制字(公式:FTW=(2^32/fosc)*Fre)
  180.         /*以下將32位頻率控制字分解*/
  181.         part1 = (unsigned char) (FTW>>24);//取32~25位
  182.         part2 = (unsigned char) (FTW>>16);//取24~17位
  183.         part3 = (unsigned char) (FTW>>8); //取16~9位
  184.         part4 = (unsigned char) (FTW);          //取8~1位
  185.         /*以上將32位頻率控制字分解*/

  186.         AD9850FQUD = 1;
  187.         AD9850WCLK = 1;
  188.         AD9850DATAPORT = 0x00;//寄存器最高的八位只送0x00
  189.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  190.         _nop_();

  191.         AD9850WCLK = 1;
  192.         AD9850DATAPORT = part1;
  193.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  194.         _nop_();

  195.         AD9850WCLK = 1;
  196.         AD9850DATAPORT = part2;
  197.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  198.         _nop_();

  199.         AD9850WCLK = 1;
  200.         AD9850DATAPORT = part3;
  201.         AD9850WCLK = 0;//WCLK上升沿送數(shù)據(jù)
  202.         _nop_();

  203.         AD9850WCLK = 1;
  204.         AD9850DATAPORT = part4;
  205.         AD9850WCLK = 0;//AD9850WCLK上升沿送數(shù)據(jù)
  206.         _nop_();
  207.         AD9850FQUD = 0;//AD9850FQUD上升沿將AD9850緩沖區(qū)的40位數(shù)據(jù)送入DDS Core

  208. }
復(fù)制代碼
主程序:
  1. #include <reg52.h>
  2. #include "AD9850I.h"
  3. #include "hs0038.h"
  4. #include "lcd12864.h"


  5. void main()
  6. {
  7.         hs0038_init();               //HS0038初始化,使用了外部中斷0///定時器1
  8.         lcd12864_init();
  9.         AD9850Reset();
  10.         while(1)
  11.         {
  12.                 Get_Ircode_And_Dis();
  13.                 switch (ircode[2])
  14.                 {        /**************模式選擇****************/
  15.                                 case 0x07:xuanzekey();break;         
  16.                                 case 0x15:quedingkey();break;                
  17.                                  case 0x09:fanhuikey();break;               
  18.                         /*************頻率調(diào)整區(qū)***************/
  19.                                 case 0x0c:if(flag1==1) {f10Mhz();}; break;         
  20.                                 case 0x18:if(flag1==1) {f1Mhz(); };break;         
  21.                                  case 0x5e:if(flag1==1) {f100Khz();};break;         
  22.                                  case 0x08:if(flag1==1) {f10Khz(); };break;         
  23.                                  case 0x1c:if(flag1==1) {f1Khz(); } ;break;               
  24.                                 case 0x5a:if(flag1==1) {f100Hz();} ;break;                 
  25.                                  case 0x42:if(flag1==1) {f10Hz(); } ;break;                 
  26.                                 case 0x52:if(flag1==1) {f1Hz();  } ;break;
  27.                     /***************頻率確認(rèn)***************/
  28.                                 case 0x4a:        if(flag1==1)
  29.                                                         {
  30.                                                         pce1=0;
  31.                                                         pce2=1;
  32.                                                         pce3=1;
  33.                                                         AD9850ISetFre();
  34.                                                         };
  35.                                                         break;
  36.                         /***************AM調(diào)制*********************/
  37.                                 case 0x16:        pce1=1;                   //片選AD9850 I          實驗板U1
  38.                                                         pce2=0;                   //片選AD9850 I          實驗板U2
  39.                                                         pce3=1;
  40.                                                         AD9850IISetFre(1000.0);break;
  41.                                 case 0x44:if(flag2==1)
  42.                                                         {
  43.                                                     pce1=1;
  44.                                                         pce2=1;
  45.                                                         pce3=0;
  46.                                                         pwr=0;
  47.                                                         AM_mastepdown();
  48.                                                         };
  49.                                                         break;
  50.                                 case 0x40:  if(flag2==1)
  51.                                                         {
  52.                                                         pce1=1;
  53.                                                         pce2=1;
  54.                                                         pce3=0;
  55.                                                         pwr=0;
  56.                                                         AM_mastepup();
  57.                                                         };
  58.                                                         break;
  59.                         /***************FM調(diào)制*********************/
  60.                             case 0x19:AD9850IISetFre(5000.0);break;                        
  61.                                  default:break;
  62.                 }
  63.                 ircode[2]=0;                                                                            //注意一定要把ircode[2]清零。。。。。
  64. //                AD9850SetFre();
  65.         }
  66. }

復(fù)制代碼


回復(fù)

使用道具 舉報

板凳
ID:134803 發(fā)表于 2016-9-29 09:56 | 只看該作者
非常不錯,剛好用到,學(xué)習(xí)學(xué)習(xí),感謝樓主
回復(fù)

使用道具 舉報

地板
ID:140275 發(fā)表于 2016-9-30 03:26 | 只看該作者
畢業(yè)設(shè)計就是這樣啊,明白的是9850缺說這就是9834的特點。。。
回復(fù)

使用道具 舉報

5#
ID:85606 發(fā)表于 2016-11-22 14:25 | 只看該作者
樓主發(fā)帖辛苦了,謝謝分享!。。。!
回復(fù)

使用道具 舉報

6#
ID:158454 發(fā)表于 2016-12-29 21:41 | 只看該作者
軟件是用的哪個呢
回復(fù)

使用道具 舉報

7#
ID:159531 發(fā)表于 2017-1-3 10:57 | 只看該作者
很不錯
回復(fù)

使用道具 舉報

8#
ID:175611 發(fā)表于 2017-3-20 23:56 | 只看該作者
謝謝樓主的分享
回復(fù)

使用道具 舉報

9#
ID:153236 發(fā)表于 2017-4-13 21:53 | 只看該作者
好資料 有幫助 謝謝樓主
回復(fù)

使用道具 舉報

10#
ID:208987 發(fā)表于 2017-6-7 21:44 | 只看該作者
好,非常有用
回復(fù)

使用道具 舉報

11#
ID:208987 發(fā)表于 2017-6-7 22:06 | 只看該作者
確實是好資料  就是黑幣不夠不能下載
回復(fù)

使用道具 舉報

12#
ID:208987 發(fā)表于 2017-6-7 23:04 | 只看該作者
下載的文件怎么打開
回復(fù)

使用道具 舉報

13#
ID:241140 發(fā)表于 2017-10-20 00:03 | 只看該作者
向大神學(xué)習(xí)
回復(fù)

使用道具 舉報

14#
ID:263298 發(fā)表于 2017-12-20 20:12 | 只看該作者
謝謝樓主恩想
回復(fù)

使用道具 舉報

15#
ID:263298 發(fā)表于 2017-12-20 20:15 | 只看該作者
很牛逼
回復(fù)

使用道具 舉報

16#
ID:263298 發(fā)表于 2017-12-20 20:17 | 只看該作者
沒有其他文件了嗎
回復(fù)

使用道具 舉報

17#
ID:284869 發(fā)表于 2018-3-7 03:43 來自觸屏版 | 只看該作者
不錯哦,還行,厲害了
回復(fù)

使用道具 舉報

18#
ID:303059 發(fā)表于 2018-4-9 14:45 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

19#
ID:307389 發(fā)表于 2018-4-13 17:30 | 只看該作者
用的哪個軟件呀?急用誰知道了告訴一聲
回復(fù)

使用道具 舉報

20#
ID:497723 發(fā)表于 2019-3-28 13:00 | 只看該作者
謝謝樓主分享,正在做信號發(fā)生器
回復(fù)

使用道具 舉報

21#
ID:508300 發(fā)表于 2019-4-13 08:04 來自觸屏版 | 只看該作者
謝謝分享呢
回復(fù)

使用道具 舉報

22#
ID:511084 發(fā)表于 2019-4-13 18:30 | 只看該作者
感謝,受益匪淺
回復(fù)

使用道具 舉報

23#
ID:538474 發(fā)表于 2019-5-15 16:26 來自觸屏版 | 只看該作者
我愛信號發(fā)生器 發(fā)表于 2019-3-28 13:00
謝謝樓主分享,正在做信號發(fā)生器

你打開了嗎,有原理圖嗎
回復(fù)

使用道具 舉報

24#
ID:65369 發(fā)表于 2021-9-30 10:01 | 只看該作者
這個資料要好了,已經(jīng)實現(xiàn)了基本功能,在在這里再修改更好
回復(fù)

使用道具 舉報

25#
ID:966104 發(fā)表于 2021-10-4 00:11 | 只看該作者
如果增加一個屏幕就牛B了
回復(fù)

使用道具 舉報

26#
ID:579406 發(fā)表于 2021-12-12 15:17 | 只看該作者
謝謝樓主分享,看這個不是為了別的什么目的,主要是學(xué)習(xí)一下思維和文筆,提升一下創(chuàng)作水平和閱讀視野。
回復(fù)

使用道具 舉報

27#
ID:810461 發(fā)表于 2022-1-15 16:46 | 只看該作者
51黑ff 發(fā)表于 2016-9-25 12:38
AD9850的驅(qū)動程序C文件:
主程序:

在哪下載?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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