?? sta.h
字號:
#ifndef _STA_H
#define _STA_H
//I2C定義
#define GENERATE_STOP 0x54 /* 置位 STO, 復位 STA 、 SI */
#define RELEASE_BUS_ACK 0x44 /* 復位 STO,STA,SI 并置位 AA (ack) */
#define RELEASE_BUS_NOACK 0x40 /* 復位 STO,STA,SI 并置位 AA (noack) */
#define RELEASE_BUS_STA 0x64 /* 起動總線/重新起動總線, 置位 STA */
//引腳定義:復位,數據請求,數據使能端
sbit RESET = P3^2;
sbit DATA_REQ = P3^3;
//sbit BIT_EN = P1^7;
sbit SDI = P3^0;
sbit SCKR = P3^1;
//聲道參數
#define STA_CHANNEL_RIGHT 0xF0
#define STA_CHANNEL_LEFT 0xF1
#define STA_CHANNEL_MIX 0xF2
#define STA_CHANNEL_STEREO 0xF3
//音色模式
#define STA_TIMBRE_NORMAL 0xE0 //普通
#define STA_TIMBRE_METAL 0xE1 //金屬
#define STA_TIMBRE_LOCAL 0xE2 //現場
#define STA_TIMBRE_BASS 0xE3 //重低音
#define STA_TIMBRE_SPEECH 0xE4 //語音
///////////////////////////////////////////////////////////////////////////////////
// STA013 I2C address
#define STA_I2C_DEV 0x86
#define STA_IDENT 0xAC
// STA013 register (sub)address
#define STA_REG_VERSION 0x00
#define STA_REG_IDENT 0x01
#define STA_REG_PLLCTL_1 0x05
#define STA_REG_PLLCTL_2 0x06
#define STA_REG_PLLCTL_3 0x07
#define STA_REG_REQ_POL 0x0c
#define STA_REG_SCLK_POL 0x0d
#define STA_REG_ERROR_CODE 0x0f
#define STA_REG_SOFT_RESET 0x10
#define STA_REG_PLAY 0x13
#define STA_REG_MUTE 0x14
#define STA_REG_CMD_INTERRUPT 0x16
#define STA_REG_DATA_REQ_ENABLE 0x18
#define STA_REG_SYNCSTATUS 0x40
#define STA_REG_ANCCOUNT_L 0x41
#define STA_REG_ANCCOUNT_H 0x42
#define STA_REG_HEAD_H 0x43
#define STA_REG_HEAD_M 0x44
#define STA_REG_HEAD_L 0x45
#define STA_REG_DLA 0x46
#define STA_REG_DLB 0x47
#define STA_REG_DRA 0x48
#define STA_REG_DRB 0x49
#define STA_REG_MFSDF_441 0x50
#define STA_REG_PLLFRAC_441_L 0x51
#define STA_REG_PLLFRAC_441_H 0x52
#define STA_REG_PCMDIVIDER 0x54
#define STA_REG_PCMCONF 0x55
#define STA_REG_PCMCROSS 0x56
#define STA_REG_ANC_DATA_1 0x59
#define STA_REG_ANC_DATA_2 0x5a
#define STA_REG_ANC_DATA_3 0x5b
#define STA_REG_ANC_DATA_4 0x5c
#define STA_REG_ANC_DATA_5 0x5d
#define STA_REG_MFSDF 0x61
#define STA_REG_DAC_CLK_MODE 0x63
#define STA_REG_PLLFRAC_L 0x64
#define STA_REG_PLLFRAC_H 0x65
#define STA_REG_FRAME_CNT_L 0x67
#define STA_REG_FRAME_CNT_M 0x68
#define STA_REG_FRAME_CNT_H 0x69
#define STA_REG_AVERAGE_BITRATE 0x6a
#define STA_REG_SOFTVERSION 0x71
#define STA_REG_RUN 0x72
#define STA_REG_TREBLE_FREQUENCY_LOW 0x77
#define STA_REG_TREBLE_FREQUENCY_HIGH 0x78
#define STA_REG_BASS_FREQUENCY_LOW 0x79
#define STA_REG_BASS_FREQUENCY_HIGH 0x7a
#define STA_REG_TREBLE_ENHANCE 0x7b
#define STA_REG_BASS_ENHANCE 0x7c
#define STA_REG_TONE_ATTEN 0x7d
#define MIN_VOLUME_ATTENUATION 0
#define MAX_VOLUME_ATTENUATION 96
#define MIN_TONE_ATTENUATION 0
#define MAX_TONE_ATTENUATION 96
#define MIN_BASS_FREQUENCY 100
#define MAX_BASS_FREQUENCY 500
#define MIN_BASS_ENHANCE -12 // -18dB in 1.5 dB steps
#define MAX_BASS_ENHANCE +12 // +18dB in 1.5 dB steps
#define MIN_TREBLE_FREQUENCY 1000
#define MAX_TREBLE_FREQUENCY 5000
#define MIN_TREBLE_ENHANCE -12 // -18dB in 1.5 dB steps
#define MAX_TREBLE_ENHANCE +12 // +18dB in 1.5 dB steps
#define SOFTMUTE_VOLUME_CHANGE 20
// volume is expected as 0-100 value
// Note:
#define MIN_VOLUME_ATTENUATION 0
#define MAX_VOLUME_ATTENUATION 96
//Functions
//硬復位
void STA_Reset(void);
//求最大值
signed char MAX(signed char, signed char);
//求最小值
signed char MIN(signed char, signed char);
//讀寄存器
unsigned char STA_ReadReg(unsigned char);
//寫寄存器
void STA_WriteReg(unsigned char, unsigned char);
//寫配置文件
void STA_DownloadUpdate(void);
//設置音調
void STA_SetTone(signed char, unsigned int, signed char, unsigned int);
//配置STA013并開始解壓
void STA_STArtDecoder();
//停止解壓
void STA_StopDecoder();
//暫停解壓
void STA_PauseDecoder();
//恢復解壓
void STA_ResumeDecoder();
//STA013初始化
unsigned char STA_Init();
//設置音量
void STA_SetVolume(unsigned char volume, signed char balance);
//設置音色
STA_SetTimbre(unsigned char uchVol,unsigned char uchTimbre);
//設置聲道
void STA_SetChannel(unsigned char uchChannel);
//設置MP3 Header相關寄存器
//void STA_SetHead(unsigned char,unsigned char,unsigned char);
//發送MP3數據到STA013
void STA_SendToDecoder(unsigned char xdata *,unsigned int);
#endif //_STA_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -