• 大小: 2MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-14
  • 语言: 其他
  • 标签: 相关资料  

资源简介

用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个文件信息

评论

共有 条评论