標題: AD9850 DDS信號發(fā)生器 程序 原理圖 pcb 設計報告都有 [打印本頁]

作者: 51黑ff    時間: 2016-9-25 12:33
標題: AD9850 DDS信號發(fā)生器 程序 原理圖 pcb 設計報告都有

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

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

圖1-1
二、理論分析、計算與各模塊設計
(1)DDS波形產(chǎn)生電路設計
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,輸出頻率分辨率可達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輸出電流的最大值。對于典型應用(IOUTmax=10mA)時,RSET的值為3.9kΩ,另一端連接到地線。外接電阻RSET與DAC輸出電流 IOUT的關(guān)系為
輸出信號頻率、參考時鐘、頻率控制碼之間的關(guān)系
                              控制字
                  輸入?yún)⒖紩r鐘頻率(MHz)。
電路原理圖如圖2-2所示:

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

圖2-4 AM信號產(chǎn)生電路
(4)模擬FM電路的設計
頻率調(diào)頻信號的基本特點是它的瞬時頻率按調(diào)制信號規(guī)律變化,因而,一種最容易想到的方法是用調(diào)制信號直接控制振蕩器的振蕩頻率,使其不失真地反映調(diào)制信號的變化。通常將這種直接調(diào)變振蕩器頻率的方法稱為直接調(diào)頻法。本設計中,使用鎖相環(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點陣寬屏液晶,可以顯示不同模式下的頻率及波形,達到直觀、形象的效果。
此模塊如圖所示:
圖2-6 控制與顯示電路
三、電路與程序設計
1、總體電路
總體電路圖見附錄1。
2、軟件設計
程序全部由C語言編寫,可實現(xiàn)波形類型的選擇、頻率檔位(低檔、高檔)電壓輸入、頻率步進值和電壓步進值的設定,顯示部分可實時顯示輸出信號的類型、幅度、頻率和頻率步進值。主程序的流程如圖3-1所示。
圖3-1 程序流程圖
四、測試方案與測試結(jié)果
1、測試儀器
雙蹤示波器   TDS3012B         
頻率計       PD1631
2、測試數(shù)據(jù)
                              (1)輸出波形頻率范圍測試,測試數(shù)據(jù)如表1所示:
預置頻率/Hz
輸出頻率/Hz
負載電阻(Ω)
正弦波
方波

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)定度方面,正弦波、三角波、方波在帶負載的情況下均十分穩(wěn)定,這正是DDS專用芯片AD9834的特點。
(2)輸出波形幅度范圍測試
預置幅度(V)
輸出幅度(V)(負載50Ω)
輸出幅度(V)(負載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)定度方面:電壓的絕對值和預置值之差,及帶載和不帶載的情況下輸出電壓均符合要求。
(3)幅度(VP-P)步進值測量(測試對象:1KHz正弦波,單位:V,步進值0.1V)
預置值
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
由表可以看出,在步進值的精確度方面,符合設計要求。
五、結(jié)論
我們設計的系統(tǒng)以STC89C52芯片為核心控制,通過可編程放大電路實現(xiàn)了正弦波、方波的輸出功能,其頻率步進值和幅度步進值達到了題目的設計要求。在系統(tǒng)的設計過程中,力求硬件電路簡單,充分發(fā)揮軟件編程方便靈活的特點,并最大限度挖掘單片機的資源,來滿足系統(tǒng)設計要求。因比賽時間有限,該系統(tǒng)還有許多值得改進的地方。
六、參考文獻:
[1]劉建成,鄒應全,行鴻彥.基于DDS的函數(shù)發(fā)生器設計.現(xiàn)代電子技術(shù)2007
[2]劉春生,李小波. AD603在信號采集系統(tǒng)中的應用.國外電子元器件.2000(11)
[3]胡煜.MAX038在精密頻率合成波形發(fā)生器中的應用. 現(xiàn)代電子技術(shù)2007(1)
[4]劉建成,鄒應全,行鴻彥.基于DDS9850的函數(shù)發(fā)生器設計. 2007(2)

作者: 51黑ff    時間: 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種步進頻率值
  13. unsigned char freq[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


  14. /********************
  15. **函數(shù):AD9850Reset
  16. **功能:AD9850的復位函數(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;//復位腳置高電平(10個AD9850的時鐘周期)
  26. //        _nop_();_nop_();_nop_();_nop_();_nop_();
  27. //        _nop_();_nop_();_nop_();_nop_();_nop_();//延時,其實不用這么長
  28. //        AD9850ReSet = 0;//復位完成,再拉低
  29. }

  30. /*步進按鍵函數(shù)*/
  31. void f10Mhz(void)                                                                                                                                                //10Mhz步進
  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步進
  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步進
  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步進
  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步進
  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步進
  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步進
  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步進
  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ù)
  122. **參數(shù):Fre,float型,要設定的頻率,單位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ù)
  169. **參數(shù):Fre,float型,要設定的頻率,單位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. }
復制代碼
主程序:
  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.                     /***************頻率確認***************/
  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. }

復制代碼



作者: 小文01    時間: 2016-9-29 09:56
非常不錯,剛好用到,學習學習,感謝樓主
作者: 1534545848    時間: 2016-9-30 03:26
畢業(yè)設計就是這樣啊,明白的是9850缺說這就是9834的特點。。。
作者: wangwo    時間: 2016-11-22 14:25
樓主發(fā)帖辛苦了,謝謝分享!。。。!
作者: wxc941112    時間: 2016-12-29 21:41
軟件是用的哪個呢
作者: zhang001    時間: 2017-1-3 10:57
很不錯
作者: chickii    時間: 2017-3-20 23:56
謝謝樓主的分享
作者: ashinay    時間: 2017-4-13 21:53
好資料 有幫助 謝謝樓主
作者: 大樹啊    時間: 2017-6-7 21:44
好,非常有用
作者: 大樹啊    時間: 2017-6-7 22:06
確實是好資料  就是黑幣不夠不能下載
作者: 大樹啊    時間: 2017-6-7 23:04
下載的文件怎么打開

作者: JohnZhu    時間: 2017-10-20 00:03
向大神學習
作者: mashangduoda    時間: 2017-12-20 20:12
謝謝樓主恩想
作者: mashangduoda    時間: 2017-12-20 20:15
很牛逼
作者: mashangduoda    時間: 2017-12-20 20:17
沒有其他文件了嗎
作者: xiaojunqiang558    時間: 2018-3-7 03:43
不錯哦,還行,厲害了
作者: FDGFDG    時間: 2018-4-9 14:45
感謝樓主分享
作者: weidaolai    時間: 2018-4-13 17:30
用的哪個軟件呀?急用誰知道了告訴一聲
作者: 我愛信號發(fā)生器    時間: 2019-3-28 13:00
謝謝樓主分享,正在做信號發(fā)生器
作者: anyi123    時間: 2019-4-13 08:04
謝謝分享呢
作者: hey12345678    時間: 2019-4-13 18:30
感謝,受益匪淺
作者: 大栗子TL    時間: 2019-5-15 16:26
我愛信號發(fā)生器 發(fā)表于 2019-3-28 13:00
謝謝樓主分享,正在做信號發(fā)生器

你打開了嗎,有原理圖嗎
作者: cmyldd    時間: 2021-9-30 10:01
這個資料要好了,已經(jīng)實現(xiàn)了基本功能,在在這里再修改更好
作者: Su丿nice    時間: 2021-10-4 00:11
如果增加一個屏幕就牛B了
作者: HJ_S    時間: 2021-12-12 15:17
謝謝樓主分享,看這個不是為了別的什么目的,主要是學習一下思維和文筆,提升一下創(chuàng)作水平和閱讀視野。
作者: 王蘇凱ly    時間: 2022-1-15 16:46
51黑ff 發(fā)表于 2016-9-25 12:38
AD9850的驅(qū)動程序C文件:
主程序:

在哪下載?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1