久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 17年電賽 遠(yuǎn)程幅頻特性測試裝置 (H題)基礎(chǔ)部分430源程序 [打印本頁]

作者: 脫然有懷    時間: 2017-12-4 23:02
標(biāo)題: 17年電賽 遠(yuǎn)程幅頻特性測試裝置 (H題)基礎(chǔ)部分430源程序
(分享資料)17年電賽 遠(yuǎn)程幅頻特性測試裝置 (H題)基礎(chǔ)部分--  用ADS9834做頻率輸出-資源有點(diǎn)少 補(bǔ)充補(bǔ)充


單片機(jī)源程序如下:
AD9834.h文件:
  1. #define  uint unsigned int
  2. #define  uchar unsigned char
  3. #define  ulong unsigned long

  4. #define   AD_9834_DIR   P3DIR

  5. #define   FSYNC_H   P3OUT |= BIT0//輸入數(shù)據(jù)的幀同步信號,為低時載入新的字節(jié)
  6. #define   FSYNC_L   P3OUT &= ~BIT0

  7. #define   SCLK_H    P3OUT |= BIT1//串行時鐘輸入,每個下降沿寫入一位數(shù)據(jù)
  8. #define   SCLK_L    P3OUT &= ~BIT1

  9. #define   SDATA_H   P3OUT |= BIT2//數(shù)據(jù)串口輸入端
  10. #define   SDATA_L   P3OUT &= ~BIT2  

  11. long freq=1000000;
  12. long kuandu;
  13. long zhongxin;

  14. /**************初始化**************************/
  15. void AD_9834_init()
  16. {
  17.   AD_9834_DIR |= BIT0 + BIT1 +BIT2;//設(shè)置為輸出
  18.   FSYNC_H;
  19.   SCLK_H;
  20.   SDATA_H;
  21. }

  22. /*********向9834寫入16位頻率數(shù)據(jù)***********************/
  23. void write_AD9834(uint dat)
  24. {
  25.     uchar i;
  26.     FSYNC_H;
  27.     SCLK_H;
  28.     _NOP();
  29.     _NOP();
  30.     FSYNC_L;     //FSYNC拉低時,SCLK必須為高
  31.     for(i=0;i<16;i++)//16位數(shù)據(jù)寫入
  32.     {
  33.         SCLK_H; //先置高為下降沿做準(zhǔn)備
  34.         if(dat & 0x8000)
  35.         {
  36.             SDATA_H;//寫入
  37.         }
  38.         else
  39.         {
  40.             SDATA_L;//不寫入
  41.         }
  42.         SCLK_L;     //下降沿向dds寫入數(shù)據(jù)
  43.         dat <<= 1;
  44.     }
  45.     _NOP();
  46.     FSYNC_H;    //傳輸完數(shù)據(jù)置高
  47. }

  48. /***********正弦波頻率設(shè)置******************/
  49. //寄存器為28位,所以分高14位低14位寫入
  50. void AD_9834_output(ulong freq)
  51. {
  52.     ulong dds;
  53.     uint dds_l,dds_h;
  54.     //dds = (long)(freq * 1.7895697666);  //150M晶振  **** 2^28/150M=1.7895697666
  55.     //ΔPhase=f×2^28/fMCLK  一共28位所以2的28次方
  56.   //  dds = (long)(freq * 2.147483648); //125m晶振
  57.    dds = (long)(freq * 2.68435456); //100m晶振
  58.      // dds = (long)(freq * 3.579139413);   //75M晶振;   
  59.     //dds = (long)(freq * 11.184810); //24m晶振
  60.     dds_l =(uint)(dds & 0x3fff);     //取出數(shù)據(jù)的低十四位(LSB)11 1111 1111 1111
  61.     dds = dds >>14;                 //將MSB的高十四位移到低十四位
  62.     dds_h = (uint)(dds &0x3fff);   //取出MSB的十四位數(shù)據(jù)

  63. /*****16位碼的前兩位規(guī)定頻率寄存器的字節(jié)寫入,在兩個連續(xù)的寫操作是一樣的*********************/
  64.     dds_l = dds_l | 0x4000; //對十四位的LSB/MSB加上兩位的地址(01),所以變成
  65.     dds_h = dds_h | 0x4000; //了是十六位的數(shù)據(jù)(地址01是頻率寄器0,10是頻率寄存器1)

  66.     write_AD9834(dds_l);    //寫入低14位
  67.     write_AD9834(dds_h);   //寫入高14位
  68. }


復(fù)制代碼


  1. #include<msp430F5438A.h>
  2. #include"TX2.h"
  3. #include"AD9834.h"
  4. #include"12864.h"
  5. #include"key.h"


  6. #define  uint unsigned int
  7. #define  uchar unsigned char
  8. #define  ulong unsigned long
  9. //void display(void);


  10. void main(void)
  11. {
  12.     WDTCTL = WDTPW + WDTHOLD;
  13.     P9DIR |= 0x0f;            //P9方向寄存器
  14.     P8DIR |= 0xff;            //P9輸出寄存器   
  15.     LCD_init();                //液晶初始化
  16.     LCD_display();
  17.     keyscan1_init();
  18.     initclock();
  19.     AD_9834_init();
  20.     write_AD9834(0x2100);//控制寄存器
  21.     write_AD9834(0x2038);//這里很關(guān)鍵!!
  22. /*9834的控制寄存器是16位       0x2000(01 0000 0000 0000)表示bit13為1
  23.   即允許一個完整字節(jié)在兩個連續(xù)的寫操作寫入頻率寄存器。第一次寫操作包括
  24.   14LSBs的頻率字節(jié),下一個寫操作包括14MSBs*/
  25.     AD_9834_output(freq);
  26.         
  27.         
  28.     while(1)
  29.     {  
  30.        KEY_Fun();
  31.        if(flag_key==1)
  32.        {
  33.          
  34.           freq += 1000000;
  35.           delay_ms(1000);
  36.           AD_9834_output(freq);//把頻率寫入頻率寄存器
  37.           if(freq>40000000)
  38.           for(;freq>1000000;)
  39.          {
  40.             freq -= 1000000;
  41.             delay_ms(1000);
  42.             AD_9834_output(freq);//把頻率寫入頻率寄存器
  43.         }
  44.       
  45.        }
  46. ……………………

  47. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
17年電賽 遠(yuǎn)程幅頻特性測試裝置 (H題)基礎(chǔ)部分.rar (36.85 KB, 下載次數(shù): 99)






作者: 倒裝的根號    時間: 2018-7-14 09:31
樓主,請問你這個程序,只能完成頻率輸出是啥意思啊?幅度的輸出可調(diào)嗎?
作者: 天才小能貓    時間: 2018-7-14 16:51
挺好的,可以做參考
作者: 作品小子    時間: 2019-3-7 13:32
挺好的
作者: 脫然有懷    時間: 2019-7-30 10:27
倒裝的根號 發(fā)表于 2018-7-14 09:31
樓主,請問你這個程序,只能完成頻率輸出是啥意思啊?幅度的輸出可調(diào)嗎?

幅度不可調(diào) 通過可調(diào)電阻調(diào)節(jié)
作者: liangxin123    時間: 2019-8-7 18:02
不錯,參考參考
作者: 醬蘇果    時間: 2019-9-12 15:54
有用DDS實(shí)現(xiàn)的嗎
作者: xzcpw    時間: 2020-7-9 13:36
有文檔說明 嗎 然后你這個是用什么仿真出來的






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕av亚洲精品一部二部 | 国产分类视频 | 国产日韩一区二区三区 | 久久午夜精品福利一区二区 | 午夜精品久久久 | 亚洲a毛片 | 欧美日韩在线免费观看 | 久久久精彩视频 | 国产成人99av超碰超爽 | 日本黄色短片 | 久色 | 成人网av | 精品国产欧美日韩不卡在线观看 | 国产欧美一区二区三区在线播放 | 国产午夜精品久久久 | 熟女毛片| 成年男女免费视频网站 | 欧美一区二区三区视频在线观看 | 午夜久久久久 | 国产精品一区一区 | 久久日韩精品一区二区三区 | 中文字幕亚洲一区二区三区 | 中文字幕91av | 久久久久久久一区 | 老妇激情毛片免费 | 麻豆一区一区三区四区 | 草久在线视频 | 免费国产一区 | 久久久国产一区 | 午夜精品一区二区三区在线视频 | 成人二区 | 欧美又大粗又爽又黄大片视频 | 国内精品伊人久久久久网站 | 欧美日韩综合 | 中文字幕二区 | 国产精品国产a级 | 黄色免费av | 国外激情av | 国产一区视频在线 | 久久精品国产一区二区电影 | 亚洲精品99 |