欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: AD9850 DDS信號(hào)發(fā)生器 程序 原理圖 pcb 設(shè)計(jì)報(bào)告都有 [打印本頁(yè)]

作者: 51黑ff    時(shí)間: 2016-9-25 12:33
標(biāo)題: AD9850 DDS信號(hào)發(fā)生器 程序 原理圖 pcb 設(shè)計(jì)報(bào)告都有

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

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

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

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

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

圖2-5 FM、FSK信號(hào)產(chǎn)生電路
(5)控制與顯示電路
輸入控制采用紅外遙控器控制,通過HS0038紅外一體化接收頭解碼、放大,將控制碼發(fā)送給單片機(jī),再由單片機(jī)控制DDS模塊、程控衰減模塊產(chǎn)生不同的波形。
顯示部分使用128*64點(diǎn)陣寬屏液晶,可以顯示不同模式下的頻率及波形,達(dá)到直觀、形象的效果。
此模塊如圖所示:
圖2-6 控制與顯示電路
三、電路與程序設(shè)計(jì)
1、總體電路
總體電路圖見附錄1。
2軟件設(shè)計(jì)
程序全部由C語(yǔ)言編寫,可實(shí)現(xiàn)波形類型的選擇、頻率檔位(低檔、高檔)電壓輸入、頻率步進(jìn)值和電壓步進(jìn)值的設(shè)定,顯示部分可實(shí)時(shí)顯示輸出信號(hào)的類型、幅度、頻率和頻率步進(jìn)值。主程序的流程如圖3-1所示。
圖3-1 程序流程圖
四、測(cè)試方案與測(cè)試結(jié)果
1、測(cè)試儀器
雙蹤示波器   TDS3012B         
頻率計(jì)       PD1631
2、測(cè)試數(shù)據(jù)
                              (1)輸出波形頻率范圍測(cè)試,測(cè)試數(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的特點(diǎn)。
(2)輸出波形幅度范圍測(cè)試
預(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)定度方面:電壓的絕對(duì)值和預(yù)置值之差,及帶載和不帶載的情況下輸出電壓均符合要求。
(3)幅度(VP-P)步進(jìn)值測(cè)量(測(cè)試對(duì)象: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
實(shí)測(cè)值
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è)計(jì)要求。
五、結(jié)論
我們?cè)O(shè)計(jì)的系統(tǒng)以STC89C52芯片為核心控制,通過可編程放大電路實(shí)現(xiàn)了正弦波、方波的輸出功能,其頻率步進(jìn)值和幅度步進(jìn)值達(dá)到了題目的設(shè)計(jì)要求。在系統(tǒng)的設(shè)計(jì)過程中,力求硬件電路簡(jiǎn)單,充分發(fā)揮軟件編程方便靈活的特點(diǎn),并最大限度挖掘單片機(jī)的資源,來滿足系統(tǒng)設(shè)計(jì)要求。因比賽時(shí)間有限,該系統(tǒng)還有許多值得改進(jìn)的地方。
六、參考文獻(xiàn):
[1]劉建成,鄒應(yīng)全,行鴻彥.基于DDS的函數(shù)發(fā)生器設(shè)計(jì).現(xiàn)代電子技術(shù)2007
[2]劉春生,李小波. AD603在信號(hào)采集系統(tǒng)中的應(yīng)用.國(guó)外電子元器件.2000(11)
[3]胡煜.MAX038在精密頻率合成波形發(fā)生器中的應(yīng)用. 現(xiàn)代電子技術(shù)2007(1)
[4]劉建成,鄒應(yīng)全,行鴻彥.基于DDS9850的函數(shù)發(fā)生器設(shè)計(jì). 2007(2)

作者: 51黑ff    時(shí)間: 2016-9-25 12:38
AD9850的驅(qū)動(dòng)程序C文件:
  1. /************************************************************
  2. *                                        AD9850.c                                                                *
  3. *                                        AD9850的驅(qū)動(dòng)程序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個(gè)AD9850的時(shí)鐘周期)
  26. //        _nop_();_nop_();_nop_();_nop_();_nop_();
  27. //        _nop_();_nop_();_nop_();_nop_();_nop_();//延時(shí),其實(shí)不用這么長(zhǎng)
  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. /***計(jì)算控制字************/
  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);//計(jì)算頻率控制字(公式: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);//計(jì)算頻率控制字(公式: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///定時(shí)器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          實(shí)驗(yàn)板U1
  38.                                                         pce2=0;                   //片選AD9850 I          實(shí)驗(yàn)板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ù)制代碼



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

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

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

在哪下載?




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