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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9208|回復: 5
打印 上一主題 下一主題
收起左側

調幅信號處理(ADF4351 24M+ads8344+掃頻步進1M)MSP430軟件部分-國賽F題

[復制鏈接]
跳轉到指定樓層
樓主
(分享文件)(ADF4351 24M+ads8344+掃頻步進1M)調幅信號處理實驗電路-TFT屏ILI9341(可用) - 固定輸出 5個按鍵
全國大學生電子設計大賽F題-調幅信號處理實驗電路-軟件部分-MSP430
  模塊由本振和ADS8344以及液晶TFT屏ILI9341組成

單片機源程序如下:
  1. #include "msp430x54x.h"
  2. #include "string.h"//strlen函數頭文件
  3. #include "sys.h"//延時
  4. #include "font.h"
  5. #include "lcd.h"//液晶設置基本配置
  6. #include "XT2.h"
  7. #include "gui.h"
  8. #include "test.h"
  9. #include "ADF4351.c"
  10. #include"ADS8344.h"
  11. #include"timer.h"

  12. uchar flag_key=0;


  13. #define key1   (P2IN&BIT2)
  14. #define key2   (P2IN&BIT3)
  15. #define key3   (P2IN&BIT4)
  16. #define key4   (P2IN&BIT5)
  17. #define key5   (P2IN&BIT6)
  18. #define key6   (P2IN&BIT7)



  19. void KEY_Fun(void);
  20. void saopin_chuli(void);
  21. unsigned long voltage_Trans( unsigned long num);

  22. void keyscan1_init()
  23. {
  24.    P2DIR &= ~(BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);                   //按鍵初始化
  25.    P2REN |= (BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);                    //上拉/下拉電阻使能(高)
  26.    P2OUT |= (BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);      //REN上拉/下拉電阻使能寄存器需和輸出寄存器配合使用
  27. }



  28. //主函數
  29. void main()
  30. {
  31.        WDTCTL = WDTHOLD + WDTPW;  
  32.        XT2_Init();        
  33.        P8_DIR=0xff;
  34.        P10_DIR=0xff;
  35.        P9_DIR=BIT3+BIT4+BIT5+BIT6+BIT7;
  36.        P11_DIR=BIT0;
  37.        LCD_Init();//液晶屏初始化
  38.        LCD_Clear(GBLUE);
  39.        timerB_init();
  40.       
  41.        ADF_Init();
  42.        ADS8344_init();
  43.        keyscan1_init();
  44.        display();//液晶固定顯示
  45.        while(1)
  46.         {       
  47.                KEY_Fun();
  48.            switch(flag_key)
  49.           {
  50.               case 1:
  51.                       saopin_chuli();     //掃頻處理            
  52.                       break;

  53.               case 2:   
  54.                          TBCCTL0&=~CCIE;
  55.                          freq=264300;
  56.                          WriteFreq(freq);
  57.                      
  58.                         break;

  59.       
  60.       }
  61.          
  62.               //WriteFreq(freq);        //直接寫入頻率值,就可以得到輸出頻率了,單位是KHZ
  63.               LCD_ShowNum(122,92,freq,8,16);
  64.               play_voltage(voltage_Trans(ads(0xF7)));//電壓顯示)//電壓顯示
  65.         }   
  66. }


  67. void saopin_chuli(void)
  68. {
  69.     Show_Str(40,170,BLUE,GBLUE,"掃頻模式",24,1);
  70.     //LCD_ShowNum(50,90,freq,4,16);
  71.     while(number<=130)              //掃頻(9M到20M,中斷兩次(0.2s)步進0.1M,110次步進,number至少220次)
  72.     {
  73.         WriteFreq(freq);
  74.         LCD_ShowNum(122,92, freq,8,16);
  75.         //LCD_ShowNum(50,90,ads(0xF7),4,16);
  76.           while(flag1==1)            //有載波的時候
  77.            {
  78.                     TBCCTL0&=~CCIE;     //關掉中斷處理電壓
  79.                      play_voltage(voltage_Trans(ads(0xF7)));//電壓顯示)//電壓顯示
  80.                       //LCD_ShowNum(50,130,ads(0xF7),4,16);
  81.                      TBCCTL0|=CCIE;
  82.                      TBR=0;
  83.                      flag1=0;               //回到無載波正常狀態
  84.                   
  85.                                 
  86.            }
  87.     }

  88.            // freq=239300;                  //回到最初的狀態
  89.             number=0;
  90.                   
  91.    
  92. }


  93. void KEY_Fun(void)
  94. {
  95.    if(key1==0)
  96.    {
  97.       delay_ms(10);
  98.       if(key1==0)
  99.       {
  100.           while(!key1);       
  101.            TBCCTL0|=CCIE;          //重新打開使能,重新掃頻
  102.            flag_key=1;
  103.          
  104.       }
  105.    }
  106.    if(key2==0)
  107.    {
  108.       delay_ms(10);
  109.       if(key2==0)
  110.       {
  111.          while(!key2);
  112.          freq+=10000;
  113.          WriteFreq(freq);
  114.         // TBCCTL0&=~CCIE;
  115.       }
  116.    }
  117.    if(key3==0)
  118.    {
  119.       delay_ms(10);
  120.       if(key3==0)
  121.       {
  122.          while(!key3);
  123.          freq-=10000;
  124.          WriteFreq(freq);
  125.       }
  126.    }
  127.    if(key4==0)
  128.    {
  129.       delay_ms(10);
  130.       if(key4==0)
  131.       {
  132.          while(!key4);
  133.          freq+=1000;
  134.          WriteFreq(freq);
  135.       }
  136.    }
  137.      if(key5==0)
  138.    {
  139.       delay_ms(10);
  140.       if(key5==0)
  141.       {
  142.          while(!key5);
  143.          freq-=1000;
  144.          WriteFreq(freq);
  145.       }
  146.    }
  147.    if(key6==0)
  148.    {
  149.       delay_ms(10);
  150.       if(key6==0)
  151.       {
  152.          while(!key6);
  153. ……………………

  154. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
test.h:

  1. #define uchar unsigned char
  2. #define uint unsigned int
  3. #define ulong unsigned long

  4. //#define LCD     ((LCD_TypeDef *) LCD_BASE)


  5. void display();
  6. void play_voltage(ulong zhi);//電壓顯示
  7. void play_dB(uint temp);//增益顯示

  8. void display()
  9. {
  10.       Show_Str(100,10,BLACK,GBLUE,"2017年國賽F題",24,1);
  11.       Show_Str(40,50,BLACK,GBLUE,"調幅信號處理實驗電路",24,1);
  12.       Show_Str(50,90,BLUE,GBLUE,"本振:",24,1);
  13.       Show_Str(195,90,BLUE,GBLUE,"KHZ",16,0);
  14.       Show_Str(50,130,BLUE,GBLUE,"幅度:",24,1);
  15.       
  16.       
  17.      /*Show_Str(50,130,BLUE,GBLUE,"高性能射頻寬帶放大器",24,1);
  18.      Show_Str(50,170,RED,GBLUE,"當前增益值",24,1);
  19.      Show_Str(30,75,RED,YELLOW,"Company shortens the miles.",25,1);*/
  20.       
  21.       //Show_Str(30,135,BLUE,YELLOW,"dfsdsgfueuewui",16,1);
  22.       //Show_Str(30+5,155,BLUE,YELLOW,"123456789",16,1);
  23.       //Show_Str(30+5,175,BLUE,YELLOW,"123456789",17,1);
  24.       //delay_ms(1200);
  25.       //LCD_ShowChar(70,0,WHITE,YELLOW,' ',16,0);
  26.       //LCD_ShowChar(80,200,BLUE,YELLOW,0x30+1,16,1);
  27.       //LCD_ShowChar(96,200,BLUE,YELLOW,0x30+2,16,1);
  28.       //LCD_ShowChar(112,200,BLUE,YELLOW,0x30+1,16,1);
  29.       
  30.       
  31. }

  32. void play_voltage(ulong zhi)//電壓顯示
  33. {
  34.     uint i=0,j;
  35.    
  36.     unsigned long a0,a2,a3,a4;   
  37.     a0=zhi/1000;  
  38.     a2=zhi/100%10;  
  39.     a3=zhi/10%10;
  40.     a4=zhi%10;
  41.     uint table[4]={a0,a2,a3,a4};
  42.    
  43.     for(j=150;j<230;j+=16)                   //一個字符x占16個點,8個數128個點,116+16*7=228
  44.     {
  45.       if(j==166){LCD_ShowChar(166,130,BLUE,GBLUE,'.',16,0);}
  46.       else
  47.       {LCD_ShowChar(j,130,BLUE,GBLUE,0x30+table[i++],16,0);}
  48.     }
  49.     Show_Str(230,130,BLUE,GBLUE,"V",16,0);        
  50. }

  51. void play_dB(uint temp)//增益顯示
  52. {
  53.    uint i=0,j;

  54.     unsigned int a3,a4;
  55.     a3=temp/10%10;
  56.     a4=temp%10;
  57.     uint table[4]={a3,a4};
  58.    
  59.     for(j=174;j<196;j+=16)                   //一個字符x占16個點,2個數128個點,96+16*1=208
  60.     {
  61.       LCD_ShowChar(j,220,RED,GBLUE,0x30+table[i++],16,0);
  62.     }
  63.     Show_Str(150,220,RED,GBLUE,":",24,0);
  64.    Show_Str(215,220,RED,GBLUE,"dB",16,0);      
  65. }


  66. void play_freq(uint temp)//頻率顯示
  67. {
  68.    uint i=0,j;

  69.     unsigned int a3,a4,a5,a6,a7,a8;
  70.    // a3=temp/10%10;
  71.    // a4=temp%10;
  72.    
  73.     a3=temp/100000;
  74.     a4=temp/10000%1000;
  75.     a5=temp/1000%100;
  76.     a6=temp/100%10;
  77.     a7=temp/10%10;
  78.     a8=temp%10;
  79.     uint table[6]={a3,a4,a5,a6,a7,a8};
  80.    
  81.     for(j=174;j<270;j+=16)                   //一個字符x占16個點,2個數128個點,96+16*1=208
  82.     {
  83.       LCD_ShowChar(j,175,RED,GBLUE,0x30+table[i++],16,0);
  84.     }
  85.   //  Show_Str(150,175,RED,GBLUE,":",24,0);
  86. //  Show_Str(215,175,RED,GBLUE,"dB",16,0);      
  87. }



  88. void play_Freq(ulong freq)//頻率顯示
  89. {
  90.     uint i=0,j;
  91.    
  92.     unsigned long a3,a4,a5,a6,a7,a8;    //a0,a1,a2,
  93.     //a0=freq/100000000;  
  94.     //a1=freq/10000000%1000000;  
  95.    // a2=freq/1000000%100000;
  96.     a3=freq/100000%10000;
  97.     a4=freq/10000%1000;
  98. ……………………

  99. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼




所有資料51hei提供下載:
(ADF4351 24M ads8344 掃頻步進1M)調幅信號處理實驗電路-TFT屏ILI9341(可用) - 固.rar (92.08 KB, 下載次數: 568)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:379185 發表于 2018-7-25 22:32 | 只看該作者
感謝分享。。下載看看
回復

使用道具 舉報

板凳
ID:480011 發表于 2019-7-12 21:20 | 只看該作者
好像很強大
回復

使用道具 舉報

地板
ID:588788 發表于 2019-7-25 09:25 | 只看該作者
調幅信號處理實驗電路軟件部分
回復

使用道具 舉報

5#
ID:213187 發表于 2019-8-5 23:48 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:702262 發表于 2020-3-4 13:32 | 只看該作者
感謝分享
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久久久久久久 | 精品区一区二区 | 四色永久 | 国产精品久久久久久久久免费 | 在线播放国产一区二区三区 | 亚洲精品日韩在线 | 国产综合久久久 | 操人网| 狠狠干av| 国产日产欧产精品精品推荐蛮挑 | 成年人免费看的视频 | 成人在线一区二区 | 亚洲 中文 欧美 日韩 在线观看 | 国产成人精品网站 | 亚洲午夜一区二区 | 理论片免费在线观看 | 日韩国产精品一区二区三区 | 亚洲一区免费 | 亚洲国产高清高潮精品美女 | 国产色黄 | 国产一区二区三区四区hd | 亚洲精品68久久久一区 | 国产精品无码久久久久 | 视频在线亚洲 | 免费久久精品 | 国产精品久久 | 国产毛片在线看 | 中文字幕亚洲欧美日韩在线不卡 | 日本不卡一区二区三区 | 国产精品久久国产精品久久 | 国产亚洲第一页 | 九九av| 羞羞网站在线免费观看 | 精品在线一区 | 精品久久香蕉国产线看观看亚洲 | 国产精品污www一区二区三区 | 老头搡老女人毛片视频在线看 | 男人天堂网址 | 亚洲黄色一区二区三区 | 国产精品中文字幕在线 | 久草视频在线播放 |