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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

迷你音樂頻譜顯示器制作

  [復制鏈接]
跳轉到指定樓層
樓主
剛參考一些資料,做的一個音樂頻譜,供大家參考



全部資料下載:
迷你音樂頻譜顯示.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. /*****************************************************************************/

復制代碼


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:154628 發表于 2016-12-14 11:08 | 只看該作者
6666樓主厲害啊
回復

使用道具 舉報

板凳
ID:95809 發表于 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
回復

使用道具 舉報

地板
ID:143374 發表于 2016-12-14 14:46 | 只看該作者
bxyyhan 發表于 2016-12-14 11:56
你說的是這個東西吧。

嗯,差不多
回復

使用道具 舉報

5#
ID:197204 發表于 2017-5-12 17:59 | 只看該作者
怎么我接完了,一個也不亮,求大神
回復

使用道具 舉報

6#
ID:102282 發表于 2021-1-14 16:30 | 只看該作者
有時間搞個玩一下
回復

使用道具 舉報

7#
ID:1008454 發表于 2022-3-6 09:43 | 只看該作者
好東西就要支持一下。
回復

使用道具 舉報

8#
ID:977804 發表于 2022-3-6 21:59 來自手機 | 只看該作者
支持,很好看
回復

使用道具 舉報

9#
ID:1066888 發表于 2023-4-10 11:03 | 只看該作者
看了很簡單的設計哦,不知道實際精度如何?期待實驗一下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美大片在线观看 | 亚洲免费在线 | 一区二区三区在线看 | 欧美视频三区 | 日韩欧美国产一区二区三区 | 免费久久精品 | 国产一区影院 | 农夫在线精品视频免费观看 | 欧美久久一级特黄毛片 | 一二三四在线视频观看社区 | 欧美色性 | 欧美一级片在线看 | 成人国产精品久久久 | 国产精品免费小视频 | 欧美乱大交xxxxx另类电影 | 人人干人人干人人干 | 国产高清无av久久 | 欧美精品一区二区三区在线播放 | 精品国产一区二区三区久久狼黑人 | 日本一道本视频 | 黄视频网址 | 91亚洲国产精品 | 国产99久久精品 | 一级片在线观看 | 国产欧美一级二级三级在线视频 | 亚洲性网 | 欧洲视频一区 | 日韩欧美福利视频 | 国产精品久久久久久久久久免费 | 亚洲精品在 | 亚洲 欧美 日韩在线 | 97中文视频 | 男女深夜网站 | 91精品国产色综合久久 | 亚洲伊人精品酒店 | 97精品国产手机 | 自拍视频国产 | 在线第一页 | 国产精品亚洲一区二区三区在线 | 日韩av在线一区二区 | 美女在线国产 |