資源簡介
用51單片機DIY音頻頻譜顯示(使用A/D轉換器對輸入的音頻信號采樣以后,進過FFT變換,然后取某些頻率項的幅值,量化顯示,驅動LED點陣,點亮相應的LED燈)

代碼片段和文件信息
/*------------------------------------------------------------------*/
/*?---?STC?MCU?International?Limited?-------------------------------*/
/*?---?STC?1T?Series?MCU?A/D?Conversion?Demo?-----------------------*/
/*------------------------------------------------------------------*/
//#include?“reg51.h“
#include?“intrins.h“
#define?FOSC????18432000L
#define?BAUD????9600
typedef?unsigned?char?BYTE;
typedef?unsigned?int?WORD;
/*Declare?SFR?associated?with?the?ADC?*/
//sfr?ADC_CONTR???=???0xBC;???????????//ADC?control?register
//sfr?ADC_RES?????=???0xBD;???????????//ADC?high?8-bit?result?register
sfr?ADC_LOW2????=???0xBE;???????????//ADC?low?2-bit?result?register
//sfr?P1ASF???????=???0x9D;???????????//P1?secondary?function?control?register
/*Define?ADC?operation?const?for?ADC_CONTR*/
#define?ADC_POWER???0x80????????????//ADC?power?control?bit
#define?ADC_FLAG????0x10????????????//ADC?complete?flag
#define?ADC_START???0x08????????????//ADC?start?control?bit
#define?ADC_SPEEDLL?0x00????????????//420?clocks
#define?ADC_SPEEDL??0x20????????????//280?clocks
#define?ADC_SPEEDH??0x40????????????//140?clocks
#define?ADC_SPEEDHH?0x60????????????//70?clocks
void?InitUart();
void?InitADC();
void?SendData(BYTE?dat);
BYTE?GetADCResult(BYTE?ch);
void?Delay(WORD?n);
void?ShowResult(BYTE?ch);
/*----------------------------
Send?ADC?result?to?UART
----------------------------*/
void?ShowResult(BYTE?ch)
{
????SendData(ch);???????????????????//Show?Channel?NO.
????SendData(GetADCResult(ch));?????//Show?ADC?high?8-bit?result
//if?you?want?show?10-bit?result?uncomment?next?line
//????SendData(ADC_LOW2);?????????????//Show?ADC?low?2-bit?result
}
/*----------------------------
Get?ADC?result
----------------------------*/
BYTE?GetADCResult(BYTE?ch)
{
????ADC_CONTR?=?ADC_POWER?|?ADC_SPEEDLL?|?ch?|?ADC_START;
????_nop_();????????????????????????//Must?wait?before?inquiry
????_nop_();
????_nop_();
????_nop_();
????while?(!(ADC_CONTR?&?ADC_FLAG));//Wait?complete?flag
????ADC_CONTR?&=?~ADC_FLAG;?????????//Close?ADC
????return?ADC_RES;?????????????????//Return?ADC?result
}
/*----------------------------
Initial?UART
----------------------------*/
void?InitUart()
{
????SCON?=?0x5a;????????????????????//8?bit?data?no?parity?bit
????TMOD?=?0x20;????????????????????//T1?as?8-bit?auto?reload
????TH1?=?TL1?=?-(FOSC/12/32/BAUD);?//Set?Uart?baudrate
????TR1?=?1;????????????????????????//T1?start?running
}
/*----------------------------
Initial?ADC?sfr
----------------------------*/
void?InitADC()
{
????//P1ASF?=?0xff;???????????????????//Open?8?channels?ADC?function
????ADC_RES?=?0;????????????????????//Clear?previous?result
????ADC_CONTR?=?ADC_POWER?|?ADC_SPEEDLL;
????Delay(2);???????????????????????//ADC?power-on?and?delay
}
/*----------------------------
Send?one?byte?data?to?PC
Input:?dat?(UART?data)
Output:-
----------------------------*/
void?SendData(BYTE?dat)
{
????whi
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????2347361??2012-10-17?18:57??DIY音樂頻譜顯示\10080245829186.pdf
?????文件??????60861??2012-10-17?18:50??DIY音樂頻譜顯示\1336636707.jpg
?????文件???????5319??2011-03-13?09:29??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\FFT.i
?????文件??????92240??2011-03-13?09:29??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\FFT.lst
?????文件??????37720??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\Prj
?????文件??????14052??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\Prj.hex
?????文件????????123??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\Prj.lnp
?????文件??????39585??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\prj.obj
?????文件????????256??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\Prj.ORC
?????文件????????214??2011-12-05?15:46??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\Prj.plg
?????文件????????819??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Hex\STARTUP.obj
?????文件??????21846??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\prj.I
?????文件?????189490??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\prj.lst
?????文件??????40306??2011-04-25?20:57??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj.m51
?????文件???????7272??2011-01-04?16:18??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj.plg
?????文件??????62309??2011-12-05?15:46??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj.uvopt
?????文件??????13404??2011-03-26?07:59??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj.uvproj
?????文件??????63473??2011-04-25?21:49??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj_uvopt.bak
?????文件??????13404??2011-03-23?11:44??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\Prj_uvproj.bak
?????文件????????100??2011-03-13?16:00??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\SerilPort?ADC.i
?????文件????????706??2011-03-13?16:00??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\SerilPort?ADC.lst
?????文件???????3826??2011-03-13?09:29??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\ShowSpectrum.i
?????文件??????17332??2011-03-13?09:29??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\ShowSpectrum.lst
?????文件???????3386??2011-04-02?16:33??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\ADC.c
?????文件????????568??2011-04-18?20:25??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\Define.h
?????文件???????4056??2011-04-02?16:32??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\fft.h
?????文件???????1209??2011-04-02?16:33??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\Font.c
?????文件???????5321??2011-04-18?19:47??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\prj.c
?????文件???????6376??2009-05-07?14:37??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\STARTUP.A51
?????文件??????46005??2011-04-02?16:33??DIY音樂頻譜顯示\DIY音樂頻譜顯示源代碼\DIY音樂頻譜顯示源代碼\src\STC12C5A.h
............此處省略9個文件信息
- 上一篇:CodePro Analytix
- 下一篇:灰色預測軟件 數學建模
評論
共有 條評論