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

標題: 迷你音樂頻譜顯示器制作 [打印本頁]

作者: wzx8023zy    時間: 2016-12-14 09:14
標題: 迷你音樂頻譜顯示器制作
剛參考一些資料,做的一個音樂頻譜,供大家參考



全部資料下載:
迷你音樂頻譜顯示.rar (1.8 MB, 下載次數: 116)

部分源碼預覽:
  1. /********************************************************************************************
  2. 程序名:    迷你音樂頻譜顯示器
  3. 編寫人:   
  4. 編寫時間:  
  5. 硬件支持:  2個8*8點陣  STC12C5A60S2 外部32.768MHz晶振
  6. 接口說明:  見說明文檔 
  7. *********************************************************************************************/
  8. #include "src\STC12C5A.h"                 
  9. #include <intrins.h>    //51基本運算(包括_nop_空函數)
  10. #include <math.h>
  11. #include "src\Define.h"
  12. ///////全局變量///////
  13. uchar data DelayTime=10;
  14. uchar data INTTime=0x45;
  15. uchar data gain=1;
  16. uchar data Menu=0;
  17. uchar idata  refreshflag[40];
  18. //////////////////////
  19. void Delays(uint t)
  20. {  
  21.         uint j;
  22.         while(--t)
  23.                 for(j=0;j<5;j++);   
  24. }
  25. uchar data LEDBuf[35];                         //15列;從左到右;亮的位為真(1);
  26. #include "src\ADC.c"
  27. #include "src\fft.h"
  28. #include "src\LED168D.h"

  29. void LIOINIT( )
  30. {
  31.         P4SW = 0xff;                                  //啟動I/O:P4;

  32.         P0M1 = 0x00;            P0M0 = 0xff;          //I/O強上拉模式;
  33.         P1M1 = B(00000001);        P1M0 = B(11111110);   //P10(光敏電阻:AD:高阻或開漏)
  34.         P4M1 = 0x00;             P4M0 = 0xff;        
  35.         P2M1 = B(00000000); P2M0 = B(11111001);   //P21,P20(強上拉);P22(傳統IO);
  36.         P3M1 = 0x00;               P3M0 = 0xff;          //!!!

  37.         P0 = 0xff;                                          //初始化;
  38.         P1 = B(11111110);
  39.         P4 = 0xff;
  40.         P2 = B(11111100);
  41.         P3 = 0xff;       
  42.         ////////////////////////////////
  43.         P04=0;P26=0;  //LY;
  44.         P01=0;P45=0;
  45.         P06=0;P24=0;
  46.         P00=0;P46=0;
  47.         P15=0;P34=0;
  48.         P07=0;P23=0;
  49.         P13=0;P32=0;
  50.         P47=0;P37=0;
  51.         ////////////////////////////////
  52.         P14=1; P33=1;  //LX0; //LX1;
  53.         P02=1; P44=1;         
  54.         P03=1; P27=1;         
  55.         P17=1; P36=1;         
  56.         P05=1; P25=1;         
  57.         P16=1; P35=1;         
  58.         P12=1; P31=1;         
  59.         P11=1; P30=1;                        
  60. }

  61. //////////////////////////////////////////////////////
  62. void LEDRefresh() interrupt 3 //using 3   
  63. {
  64.     TL1 = 0x00;      
  65.     TH1 = INTTime;   //0x50~0x80 //0x6A
  66.         BuftoLED168_Refresh();
  67. }  
  68. /////////////////////////////////////////////////////

  69. /*SFR中與定時/計數器工作方式有關的設計]
  70. -----------------------------------------------------------------------------
  71. M1        M0        方式        說明
  72. 0        0        0        13位T/C,由TL低5位和TH的8位組成13位計數器
  73. 0        1        1        16位T/C,TL和TH共16位計數器
  74. 1        0        2        8位T/C,TL用于計數,當TL溢出時將TH中的值自動寫入TL
  75. 1        1        3        兩組8位T/C
  76. -----------------------------------------------------------------------------
  77. */
  78. void Timer_INT()
  79. {
  80.         TMOD = 0x11; //高4位控制T/C1 [ GATE,C/T,M1,M0,GATE,C/T,M1,M0 ]
  81.         EA = 1;        //中斷總開關

  82.         TH1 = 0x00; //16位計數寄存器T1高8位(寫入初值)
  83.         TL1 = 0x00; //16位計數寄存器T1低8位
  84.         ET1 = 1; //T/C1中斷開關
  85.     TR1 = 1; //T/C1啟動開關
  86. }

  87. void Main()
  88. {  
  89.         uint data Count=700;
  90.         uchar data i,Cgain,LED=0,num=0;
  91.         LIOINIT();          //I/O強上拉模式
  92.         InitADC();    //Init ADC sfr         
  93.         for(i=0;i<40;i++) refreshflag[i]=0x09;
  94.         P20=0;                  //LED負極
  95.         Timer_INT();  //定時器初始化
  96.         while(1)
  97.         {
  98.                 for(i=0;i<65;i++)
  99.                 {  
  100.                         dd[i].real=(GetADCResult(0))<<gain;
  101.                         dd[i].imag=0; //清零虛部
  102.                 }
  103.                  processfft();//傅立葉變化及處理
  104.                  LED=!LED;
  105.                  if(dd[2].real<32)
  106.                  {
  107.                          LED=1;
  108.                  }
  109.                  else
  110.                  {
  111.                          Count=1;
  112.                          if(++num==0xAF)                                 //播放時,Auto gain;
  113.                          {
  114.                                 num=0;

  115.                                 P2M0 = B(11111011);
  116.                                 P21=1;                          //LED正極
  117.                                 Delays(2000);
  118.                                 P21=0;                         //LED正極
  119.                                 P2M0 = B(11111001);

  120.                                 //自動增益;Automatic gain;
  121.                                 Cgain=dd[2].real/32;
  122.                                 if(7<Cgain<=8)
  123.                                 {
  124.                                         gain=2;
  125.                                        
  126.                                 }
  127.                                 else if(4<Cgain<=6)
  128.                                 {
  129.                                         gain=3;               
  130.                                 }
  131.                                 else if(2<Cgain<=4)
  132.                                 {
  133.                                         gain=4;
  134.                                 }
  135.                                 else
  136.                                 {
  137.                                         gain=5;
  138.                                 }
  139.                          }
  140.                   }

  141.                   P21=LED;         //LED正極         
  142.         }
  143. }
  144. /*****************************************************************************/
  145. //
  146. /*****************************************************************************/

復制代碼



作者: cyc    時間: 2016-12-14 11:08
6666樓主厲害啊
作者: bxyyhan    時間: 2016-12-14 11:56
你說的是這個東西吧。

20161214115625.jpg (78.83 KB, 下載次數: 131)

20161214115625.jpg

20161214115450.jpg (69.76 KB, 下載次數: 126)

20161214115450.jpg

20161214115258.jpg (112.66 KB, 下載次數: 128)

20161214115258.jpg

20161214115322.jpg (97.29 KB, 下載次數: 135)

20161214115322.jpg

作者: wzx8023zy    時間: 2016-12-14 14:46
bxyyhan 發表于 2016-12-14 11:56
你說的是這個東西吧。

嗯,差不多
作者: 13756176595    時間: 2017-5-12 17:59
怎么我接完了,一個也不亮,求大神
作者: djnz    時間: 2021-1-14 16:30
有時間搞個玩一下
作者: auxccc    時間: 2022-3-6 09:43
好東西就要支持一下。
作者: 3花木城    時間: 2022-3-6 21:59
支持,很好看
作者: 許玩童    時間: 2023-4-10 11:03
看了很簡單的設計哦,不知道實際精度如何?期待實驗一下。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品色 | 精品久久国产 | 婷婷中文字幕 | 国产精品午夜视频 | 成人日韩在线 | 黄色毛毛片 | 一区在线播放 | 欧美在线观看一区二区 | 嫩草在线观看 | 一级片久久久 | 国产日韩欧美一区 | 中文字幕超清在线观看 | 国产视频一区在线播放 | 黄色成人在线视频 | 国产精自产拍久久久久久蜜 | h片在线 | 亚洲视频免费看 | 在线视频福利 | 日韩午夜在线 | 天天干狠狠干 | 中文字幕一区二区在线播放 | 日韩精品久久久久久久酒店 | 日韩成人一区二区 | 欧美亚洲视频 | 久久中文网 | 亚洲免费专区 | 欧美精品日韩 | 国产在线色 | 官场少妇尤物雪白高耸 | 午夜色播| 天天躁日日躁狠狠躁av麻豆男男 | 精品国产乱码一区二区三 | 欧美日韩视频在线 | 成年人免费在线观看 | 精品国产乱码久久久久久蜜柚 | 成人免费黄色片 | 亚洲天堂中文字幕 | 人人插人人爱 | 99黄色 | 亚洲视频在线看 | h片免费看 |