⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regsnd1.h

📁 用89C51SND1C实现MP3播放器的源代码.用KEIL c51编写.
💻 H
字号:
/*-------------------------------------------------------------------------
REGSND1.H

Header file for AtmelWM T8xC51SND1
  
Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
-------------------------------------------------------------------------*/

#ifndef _REGSND1_H_
#define _REGSND1_H_

/*_____ I N C L U D E S ____________________________________________________*/


/*_____ M A C R O S ________________________________________________________*/


/* C51 CORE */

sfr ACC = 0xE0;
sfr B   = 0xF0;
sfr PSW = 0xD0;
sfr SP  = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;

sbit CY  = PSW^7;
sbit AC  = PSW^6;
sbit F0  = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV  = PSW^2;
sbit F1  = PSW^1;
sbit P   = PSW^0;


/* SYSTEM MANAGEMENT */

sfr PCON = 0x87;
sfr AUXR = 0x8E;
sfr AUXR1 = 0xA2;
sfr NVERS = 0xFB;


/* PLL & CLOCK */

sfr CKCON   = 0x8F;
sfr PLLCON  = 0xE9;
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////by custom
#define R1 		(0x80)
#define R0		(0x40)
#define PLLRES	(0x08)
#define PLLEN	(0x02)
#define	PLOCK	(0x01)

sfr PLLDIV0 = 0xEE;
sfr PLLNDIV = 0xEE;
sfr PLLDIV1 = 0xEF;
sfr PLLRDIV = 0xEF;


/* INTERRUPT */

sfr IEN0    = 0xA8;
sfr IPL0    = 0xB8;
sfr IPH0    = 0xB7;
sfr IEN1    = 0xB1;
sfr IPL1    = 0xB2;
sfr IPH1    = 0xB3;


sbit EA     = IEN0^7;
sbit EAUD   = IEN0^6;
sbit EMP3   = IEN0^5;
sbit ES     = IEN0^4;
sbit ET1    = IEN0^3;
sbit EX1    = IEN0^2;
sbit ET0    = IEN0^1;
sbit EX0    = IEN0^0;

sbit IPLAUD = IPL0^6;
sbit IPLMP3 = IPL0^5;
sbit IPLS   = IPL0^4;
sbit IPLT1  = IPL0^3;
sbit IPLX1  = IPL0^2;
sbit IPLT0  = IPL0^1;
sbit IPLX0  = IPL0^0;


/* PORTS */

sfr P0      = 0x80;
sfr P1      = 0x90;
sfr P2      = 0xA0;
sfr P3      = 0xB0;
sfr P4      = 0xC0;
sfr P5      = 0xD8;

sbit P0_7   = P0^7;
sbit P0_6   = P0^6;
sbit P0_5   = P0^5;
sbit P0_4   = P0^4;
sbit P0_3   = P0^3;
sbit P0_2   = P0^2;
sbit P0_1   = P0^1;
sbit P0_0   = P0^0;

sbit P1_7   = P1^7;
sbit P1_6   = P1^6;
sbit P1_5   = P1^5;
sbit P1_4   = P1^4;
sbit P1_3   = P1^3;
sbit P1_2   = P1^2;
sbit P1_1   = P1^1;
sbit P1_0   = P1^0;

sbit SDA    = P1^7;
sbit SCL    = P1^6;
sbit KIN3   = P1^3;
sbit KIN2   = P1^2;
sbit KIN1   = P1^1;
sbit KIN0   = P1^0;

sbit P2_7   = P2^7;
sbit P2_6   = P2^6;
sbit P2_5   = P2^5;
sbit P2_4   = P2^4;
sbit P2_3   = P2^3;
sbit P2_2   = P2^2;
sbit P2_1   = P2^1;
sbit P2_0   = P2^0;

sbit P3_7   = P3^7;
sbit P3_6   = P3^6;
sbit P3_5   = P3^5;
sbit P3_4   = P3^4;
sbit P3_3   = P3^3;
sbit P3_2   = P3^2;
sbit P3_1   = P3^1;
sbit P3_0   = P3^0;

sbit RD     = P3^7;
sbit WR     = P3^6;
sbit T1     = P3^5;
sbit T0     = P3^4;
sbit INT1   = P3^3;
sbit INT0   = P3^2;
sbit TXD    = P3^1;
sbit RXD    = P3^0;

sbit P4_7   = P4^7;
sbit P4_6   = P4^6;
sbit P4_5   = P4^5;
sbit P4_4   = P4^4;
sbit P4_3   = P4^3;
sbit P4_2   = P4^2;
sbit P4_1   = P4^1;
sbit P4_0   = P4^0;

sbit SS_    = P4^3;
sbit SCK    = P4^2;
sbit MOSI   = P4^1;
sbit MISO   = P4^0;

sbit P5_3   = P5^3;
sbit P5_2   = P5^2;
sbit P5_1   = P5^1;
sbit P5_0   = P5^0;


/* FLASH MEMORY */

sfr FCON    = 0xD1;


/* TIMERS */

sfr TCON    = 0x88;
sfr TMOD    = 0x89;
sfr TL0     = 0x8A;
sfr TL1     = 0x8B;
sfr TH0     = 0x8C;
sfr TH1     = 0x8D;

sbit TF1    = TCON^7;
sbit TR1    = TCON^6;
sbit TF0    = TCON^5;
sbit TR0    = TCON^4;
sbit IE1    = TCON^3;
sbit IT1    = TCON^2;
sbit IE0    = TCON^1;
sbit IT0    = TCON^0;


/* WATCHDOG */

sfr WDTRST  = 0xA6;
sfr WDTPRG  = 0xA7;


/* MP3 DECODER */

sfr MP3CON  = 0xAA;
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////by custom
#define MPEN			(0x80)
#define MPBBST		(0x40)
#define CRCEN		(0x20)
#define	MSKANC		(0x10)
#define	MSKREQ		(0x08)
#define	MSKLAY		(0x04)
#define	MSKSYN		(0x02)
#define	MSKCRC		(0x01)

sfr MP3STA  = 0xC8;
sfr MP3STA1 = 0xAF;
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////by custom
#define	MPFREQ 		(0x10)
#define	MPBREQ 		(0x08)

sfr MP3DAT  = 0xAC;
sfr MP3ANC  = 0xAD;
sfr MP3VOL  = 0x9E;
sfr MP3VOR  = 0x9F;
sfr MP3BAS  = 0xB4;
sfr MP3MED  = 0xB5;
sfr MP3TRE  = 0xB6;
sfr MP3CLK  = 0xEB;

sbit MPANC  = MP3STA^7;
sbit MPREQ  = MP3STA^6;
sbit ERRLAY = MP3STA^5;
sbit ERRSYN = MP3STA^4;
sbit ERRCRC = MP3STA^3;
sbit MPFS1  = MP3STA^2;
sbit MPFS0  = MP3STA^1;
sbit MPVER  = MP3STA^0;

#define	MPANCC 	(0x80)
#define	MPREQC		(0x40)
#define	ERRLAYC	(0x20)
#define	ERRSYNC	(0x10)
#define	ERRCRCC	(0x08)
#define	MPFS1C		(0x04)
#define	MPFS0C		(0x02)
#define	MPVERC		(0x01)

#define EUSB	(0x40)
#define EKB		(0x10)
#define EADC	(0x08)
#define ESPI	(0x04)
#define EI2C	(0x02)
#define EMMC	(0x01)

/* AUDIO INTERFACE */

sfr AUDCON0 = 0x9A;
sfr AUDCON1 = 0x9B;
sfr AUDSTA  = 0x9C;
sfr AUDDAT  = 0x9D;
sfr AUDCLK  = 0xEC;


/* USB CONTROLLER */

sfr USBCON  = 0xBC;
sfr USBADDR = 0xC6;
sfr USBINT  = 0xBD;
sfr USBIEN  = 0xBE;
sfr UEPNUM  = 0xC7;
sfr UEPCONX = 0xD4;
sfr UEPSTAX = 0xCE;
sfr UEPRST  = 0xD5;
sfr UEPINT  = 0xF8;
sfr UEPIEN  = 0xC2;
sfr UEPDATX = 0xCF;
sfr UBYCTX  = 0xE2;
sfr UBYCTLX = 0xE2;
sfr UFNUML  = 0xBA;
sfr UFNUMH  = 0xBB;
sfr USBCLK  = 0xEA;
sfr UDPADDH = 0xD7;
sfr UDPADDL = 0xD6;

sbit EP3INT = UEPINT^3;
sbit EP2INT = UEPINT^2;
sbit EP1INT = UEPINT^1;
sbit EP0INT = UEPINT^0;


/* MMC CONTROLLER */

sfr MMDAT   = 0xDC;
sfr MMCMD   = 0xDD;
sfr MMSTA   = 0xDE;
sfr MMMSK   = 0xDF;
sfr MMCON0  = 0xE4;
sfr MMCON1  = 0xE5;
sfr MMCON2  = 0xE6;
sfr MMINT   = 0xE7;
sfr MMCLK   = 0xED;


/* IDE CONTROLLER */

sfr DAT16H  = 0xF9;


/* UART */

sfr SCON    = 0x98;
sfr SBUF    = 0x99;
sfr SADDR   = 0xA9;
sfr SADEN   = 0xB9;

sbit SM0    = SCON^7;
sbit FE     = SCON^7;
sbit SM1    = SCON^6;
sbit SM2    = SCON^5;
sbit REN    = SCON^4;
sbit TB8    = SCON^3;
sbit RB8    = SCON^2;
sbit TI     = SCON^1;
sbit RI     = SCON^0;


/* SPI CONTROLLER */

sfr SPCON   = 0xC3;
sfr SPSTA   = 0xC4;
sfr SPDAT   = 0xC5;


/* I2C CONTROLLER */

sfr SSCON   = 0x93;
sfr SSSTA   = 0x94;
sfr SSDAT   = 0x95;
sfr SSADR   = 0x96;


/* KEYBOARD */

sfr KBCON   = 0xA3;
sfr KBSTA   = 0xA4;


/* ADC CONVERTER */

sfr ADCON   = 0xF3;
sfr ADDL    = 0xF4;
sfr ADDH    = 0xF5;
sfr ADCLK   = 0xF2;


/*------------------------------------------------
Interrupt Vectors:
Interrupt Address = (Number * 8) + 3
------------------------------------------------*/
#define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
#define TF0_VECTOR	1  /* 0x0B Timer 0 */
#define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
#define TF1_VECTOR	3  /* 0x1B Timer 1 */
#define SIO_VECTOR	4  /* 0x23 Serial port */

/*------------------------------------------------
custom
------------------------------------------------*/
//#define MP3_VECTOR  5  /*0x2B MP3 decoder*/ 
#define KEY_VECTOR  11

/*------------------------------------------------
------------------------------------------------*/


#endif  /* _REGSND1_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -