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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9220|回復: 8
收起左側

迷你音樂頻譜顯示器制作

  [復制鏈接]
ID:143374 發表于 2016-12-14 09:14 | 顯示全部樓層 |閱讀模式
剛參考一些資料,做的一個音樂頻譜,供大家參考
0.png 0.png
0.png

全部資料下載:
迷你音樂頻譜顯示.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 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:154628 發表于 2016-12-14 11:08 | 顯示全部樓層
6666樓主厲害啊
回復

使用道具 舉報

ID:95809 發表于 2016-12-14 11:56 | 顯示全部樓層
你說的是這個東西吧。
20161214115625.jpg
20161214115450.jpg
20161214115258.jpg
20161214115322.jpg
回復

使用道具 舉報

ID:143374 發表于 2016-12-14 14:46 | 顯示全部樓層
bxyyhan 發表于 2016-12-14 11:56
你說的是這個東西吧。

嗯,差不多
回復

使用道具 舉報

ID:197204 發表于 2017-5-12 17:59 | 顯示全部樓層
怎么我接完了,一個也不亮,求大神
回復

使用道具 舉報

ID:102282 發表于 2021-1-14 16:30 | 顯示全部樓層
有時間搞個玩一下
回復

使用道具 舉報

ID:1008454 發表于 2022-3-6 09:43 | 顯示全部樓層
好東西就要支持一下。
回復

使用道具 舉報

ID:977804 發表于 2022-3-6 21:59 來自觸屏版 | 顯示全部樓層
支持,很好看
回復

使用道具 舉報

ID:1066888 發表于 2023-4-10 11:03 | 顯示全部樓層
看了很簡單的設計哦,不知道實際精度如何?期待實驗一下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91在线观看视频 | 好姑娘高清在线观看电影 | 噜噜噜噜狠狠狠7777视频 | 亚洲精品一区二区网址 | 成人精品一区二区三区中文字幕 | 午夜寂寞网站 | 欧美福利精品 | 国产欧美精品一区二区色综合朱莉 | 午夜ww| 亚洲在线高清 | 精品免费在线 | 91精品一区 | 欧美激情一区二区三区 | 国户精品久久久久久久久久久不卡 | 欧美日韩一区二区三区视频 | 国产精品视频一区二区三区, | 精品国产一区一区二区三亚瑟 | 五月天婷婷综合 | 欧美精品一区二区在线观看 | 谁有毛片 | 久久久.com| 国产成人精品一区二区三区视频 | 日韩字幕 | 日韩视频中文字幕 | 亚洲伊人久久综合 | 视频一区在线观看 | 天天综合网天天综合 | 天堂综合 | 国产一区二区三区在线视频 | 国产羞羞视频在线观看 | 久久精品国产一区 | 国产激情91久久精品导航 | 毛片日韩 | 精品久久久久久久 | 成人超碰 | 久久久久久久久久久久久久国产 | 99在线精品视频 | 一级在线免费观看 | 久久久久久久久久久久一区二区 | 欧美成人a∨高清免费观看 色999日韩 | 精品久久久久久久久久久久 |