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

📄 061reg.h

📁 该软件为在sunplus的61单片机上实现的mp3播放器.里面有完整的源代码.
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef	__061REG_h__
#define	__061REG_h__
/*H**************************************************************************
* 文件名:       filename.h         
*----------------------------------------------------------------------------
* 版权          (c) 2004 TGE.
*----------------------------------------------------------------------------
* 释放:         Spce061A      
* 版本:         1.13     
*----------------------------------------------------------------------------
* 目的:
* 
*****************************************************************************/

/*_____    包括     ________________________________________________________*/
asm(".DEFINE P_IOA_Data     0x7000");        // Write Data into data register and read from IOA pad
asm(".DEFINE P_IOA_Buffer   0x7001");        // Write Data into buffer register and read from buffer register
asm(".DEFINE P_IOA_Dir      0x7002");        // Direction vector for IOA
asm(".DEFINE P_IOA_Attrib   0x7003");        // Attribute vector for IOA
asm(".DEFINE P_IOA_Latch    0x7004");        // Latch PortA data for key change wake-up

asm(".DEFINE P_IOB_Data     0x7005");        // Write Data into the data register and read from IOB pad
asm(".DEFINE P_IOB_Buffer   0x7006");        // Write Data into buffer register and read from buffer register
asm(".DEFINE P_IOB_Dir      0x7007");        // Direction vector for IOB
asm(".DEFINE P_IOB_Attrib   0x7008");        // Attribute vector for IOB

/*_____    宏       ________________________________________________________*/
#define FIQ_ON()		asm("FIQ ON")
#define FIQ_OFF()		asm("FIQ OFF")
#define IRQ_ON()		asm("IRQ ON")
#define IRQ_OFF()		asm("IRQ OFF")
#define INT_FIQ()		asm("INT FIQ")
#define INT_IRQ()		asm("INT IRQ")
#define INT_FIQ_IRQ()	asm("FIQ ON  \n\t"  "IRQ ON")
#define INT_OFF()		asm("FIQ OFF \n\t"  "IRQ OFF")

#define GetIOADir 		asm("%0=[P_IOA_Dir]"	:"=r"(PortA))
#define GetIOAAttrib	asm("%0=[P_IOA_Attrib]"	:"=r"(PortA))
#define GetIOAData  	asm("%0=[P_IOA_Data]"	:"=r"(PortA))
#define GetIOABuffer  	asm("%0=[P_IOA_Buffer]"	:"=r"(PortA))

#define SetIOADir		asm("[P_IOA_Dir]=%0"	::"r"(PortA))
#define SetIOAAttrib	asm("[P_IOA_Attrib]=%0"	::"r"(PortA))
#define SetIOAData		asm("[P_IOA_Data]=%0"	::"r"(PortA))
#define SetIOABuffer	asm("[P_IOA_Buffer]=%0"	::"r"(PortA))
//-----------------------------------------------------------------------------------//
#define GetIOBDir 		asm("%0=[P_IOB_Dir]"	:"=r"(PortB))
#define GetIOBAttrib	asm("%0=[P_IOB_Attrib]"	:"=r"(PortB))
#define GetIOBData  	asm("%0=[P_IOB_Data]"	:"=r"(PortB))
#define GetIOBBuffer  	asm("%0=[P_IOB_Buffer]"	:"=r"(PortB))

#define SetIOBDir		asm("[P_IOB_Dir]=%0"	::"r"(PortB))
#define SetIOBAttrib	asm("[P_IOB_Attrib]=%0"	::"r"(PortB))
#define SetIOBData		asm("[P_IOB_Data]=%0"	::"r"(PortB))
#define SetIOBBuffer	asm("[P_IOB_Buffer]=%0"	::"r"(PortB))
/*_____    定义     ________________________________________________________*/
#define	P_IOA_Data 				(volatile unsigned int *)0x7000   
#define P_IOA_Buffer 			(volatile unsigned int *)0x7001
#define P_IOA_Dir 				(volatile unsigned int *)0x7002
#define P_IOA_Attrib 			(volatile unsigned int *)0x7003
#define P_IOA_Latch 			(volatile unsigned int *)0x7004
//............................................
#define P_IOB_Data				(volatile unsigned int *)0x7005  
#define P_IOB_Buffer			(volatile unsigned int *)0x7006   
#define P_IOB_Dir				(volatile unsigned int *)0x7007   
#define P_IOB_Attrib			(volatile unsigned int *)0x7008   
//............................................
#define P_FeedBack				(volatile unsigned int *)0x7009   
#define P_TimerA_Data			(volatile unsigned int *)0x700A   
#define P_TimerA_Ctrl			(volatile unsigned int *)0x700B   
#define P_TimerB_Data			(volatile unsigned int *)0x700C   
#define P_TimerB_Ctrl			(volatile unsigned int *)0x700D   
#define P_TimeBase_Setup		(volatile unsigned int *)0x700E   
#define P_TimeBase_Clear		(volatile unsigned int *)0x700F 	
#define P_INT_Ctrl				(volatile unsigned int *)0x7010   
#define P_INT_Clear				(volatile unsigned int *)0x7011   
#define P_INT_Mask				(volatile unsigned int *)0x702D   
#define P_Watchdog_Clear		(volatile unsigned int *)0x7012   
#define P_SystemClock			(volatile unsigned int *)0x7013   
//... PA6442 New version MC52A (For EC-03)....
#define P_ADC					(volatile unsigned int *)0x7014   
#define P_ADC_Ctrl				(volatile unsigned int *)0x7015   
#define P_ADC_MUX_Ctrl			(volatile unsigned int *)0x702B   
#define P_ADC_LINEIN_Data		(volatile unsigned int *)0x702C   
#define P_DAC2					(volatile unsigned int *)0x7016   
#define P_DAC1					(volatile unsigned int *)0x7017   
#define P_DAC_Ctrl				(volatile unsigned int *)0x702A 	
//............................................
#define P_LVD_Ctrl				(volatile unsigned int *)0x7019   
//............................................
#define P_SIO_Data				(volatile unsigned int *)0x701A
#define P_SIO_Addr_Low			(volatile unsigned int *)0x701B
#define P_SIO_Addr_Mid			(volatile unsigned int *)0x701C
#define P_SIO_Addr_High			(volatile unsigned int *)0x701D
#define P_SIO_Ctrl				(volatile unsigned int *)0x701E
#define P_SIO_Start				(volatile unsigned int *)0x701F
#define P_SIO_Stop				(volatile unsigned int *)0x7020 	
//............................................
#define P_UART_Command1			(volatile unsigned int *)0x7021 	
#define P_UART_Command2			(volatile unsigned int *)0x7022 	
#define P_UART_Data				(volatile unsigned int *)0x7023  	
#define	P_UART_BaudScalarLow	(volatile unsigned int *)0x7024	
#define	P_UART_BaudScalarHigh	(volatile unsigned int *)0x7025 	
/*_____    声明     ________________________________________________________*/
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_IOA_Dir(unsigned int);
unsigned int Get_IOA_Dir(void);
void Set_IOA_Attrib(unsigned int);
unsigned int Get_IOA_Attrib(void);
void Set_IOA_Data(unsigned int);
unsigned int Get_IOA_Data(void);
void Set_IOA_Buffer(unsigned int);
unsigned int Get_IOA_Buffer(void);
void Get_IOA_Latch(void);
//-----------------------------------------------------------------------------------//
void Set_IOB_Dir(unsigned int);
unsigned int Get_IOB_Dir(void);
void Set_IOB_Attrib(unsigned int);
unsigned int Get_IOB_Attrib(void);
void Set_IOB_Data(unsigned int);
unsigned int Get_IOB_Data(void);
void Set_IOB_Buffer(unsigned int);
unsigned int Get_IOB_Buffer(void);
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_TimerA_Data(unsigned int);
unsigned int Get_TimerA_Data(void);
void Set_TimerA_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
	#define		C_TimerADefault				0x0036			//			
//----------------TimerA TimeBase---------------------------//
	#define		C_SourceA_Fosc2				0x0000			//
	#define		C_SourceA_Fosc256		   	0x0001			//
	#define		C_SourceA_32768Hz			0x0002			//
	#define		C_SourceA_8192Hz			0x0003			//
	#define		C_SourceA_4096Hz			0x0004			//
	#define		C_SourceA_1					0x0005			//
	#define 	C_SourceA_0					0x0006			//*
	#define 	C_SourceA_Ext1				0x0007			//
//----------------------------------------------------------//
	#define		C_SourceB_2048Hz			0x0000 			//
	#define		C_SourceB_1024Hz			0x0008 			//
	#define		C_SourceB_256Hz				0x0010 			//
	#define		C_SourceB_TMB1				0x0018 			//
	#define		C_SourceB_4Hz				0x0020 			//
	#define		C_SourceB_2Hz				0x0028 			//
	#define		C_SourceB_1					0x0030 			//*
	#define		C_SourceB_Ext2				0x0038 			//
//-----------------------------------------------------------------------------------//
void Set_TimerB_Data(unsigned int);
unsigned int Get_TimerB_Data(void);
void Set_TimerB_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
	#define		C_TimerBDefault				0x0006			//		
//----------------TimerB TimeBase----------------------------//
	#define		C_SourceC_Fosc2				0x0000 			//
	#define		C_SourceC_Fosc256		    0x0001 			//
	#define		C_SourceC_32768Hz			0x0002 			//
	#define		C_SourceC_8192Hz			0x0003 			//
	#define		C_SourceC_4096Hz			0x0004 			//
	#define		C_SourceC_1					0x0005 			//
	#define 	C_SourceC_0					0x0006 			//*
	#define 	C_SourceC_Ext1				0x0007 			//
//-----------------TimerA TimerB TimeBase--------------------------------------------//
	#define		C_DutyOff					0x0000 			//
	#define 	C_Duty1						0x0040 			//
	#define 	C_Duty2						0x0080 			//
	#define 	C_Duty3						0x00C0 			//
	#define 	C_Duty4						0x0100 			//
	#define 	C_Duty5						0x0140 			//
	#define 	C_Duty6						0x0180 			//
	#define 	C_Duty7						0x01C0 			//
	#define 	C_Duty8						0x0200 			//
	#define 	C_Duty9						0x0240 			//
	#define 	C_Duty10					0x0280 			//
	#define 	C_Duty11					0x02C0 			//
	#define 	C_Duty12					0x0300 			//
	#define 	C_Duty13					0x0340 			//
	#define 	C_Duty14					0x0380 			//
	#define 	C_Duty_Div_2				0x03C0 			// Timer A&B
//----------------Default Value-----------------------------//
	#define		C_TimeBaseDefault			0x0000			//		
//-----------------------------------------------------------------------------------//
void Set_TimeBase(unsigned int);
	#define 	C_TMB1_8Hz					0x0000 			//*
	#define 	C_TMB1_16Hz					0x0001 			//
	#define 	C_TMB1_32Hz					0x0002 			//
	#define 	C_TMB1_64Hz					0x0003 			//
	#define 	C_TMB2_128Hz				0x0000 			//*
	#define 	C_TMB2_256Hz				0x0004 			//
	#define 	C_TMB2_512Hz				0x0008 			//
	#define 	C_TMB2_1024Hz				0x000C 			//
void Clear_TimeBase(void);
	#define 	C_TMBCLR					0x5555 			//

//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_FeedBack(unsigned int);
	#define		C_FBKEN3		0x08	//Enable	IOB3 and IOB5 FeedBack2
	#define		C_FBKEN2		0x04	//Enable	IOB2 and IOB4 FeedBack1
	#define		C_IRTxEN		0x01	//Enable	IOB8 and IOB10 IRTx / Tx
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_INT_Ctrl(unsigned int);
unsigned int Get_INT_Ctrl(void);

void Set_INT_Mask(unsigned int);
unsigned int Get_INT_Mask(void);
void INT_Clear(unsigned int);
	#define 	C_IRQ6_TMB2             0x0001         	// Timer B IRQ6
	#define 	C_IRQ6_TMB1             0x0002         	// Timer A IRQ6
	#define 	C_IRQ5_2Hz              0x0004         	// 2Hz IRQ5
	#define 	C_IRQ5_4Hz              0x0008         	// 4Hz IRQ5
	#define 	C_IRQ4_1KHz             0x0010         	// 1024Hz IRQ4
	#define 	C_IRQ4_2KHz             0x0020         	// 2048Hz IRQ4
	#define 	C_IRQ4_4KHz             0x0040         	// 4096Hz IRQ4
	#define 	C_IRQ3_KEY              0x0080         	// Key Change IRQ3
	#define 	C_IRQ3_EXT1             0x0100         	// Ext1 IRQ3
	#define 	C_IRQ3_EXT2             0x0200         	// Ext2 IRQ3
	#define 	C_IRQ2_TMB              0x0400         	// Timer B IRQ2
	#define 	C_FIQ_TMB               0x0800         	// Timer B FIQ
	#define 	C_IRQ1_TMA              0x1000         	// Timer A IRQ1
	#define 	C_FIQ_TMA               0x2000         	// Timer A FIQ
	#define 	C_IRQ0_PWM              0x4000         	// PWM IRQ0
	#define 	C_FIQ_PWM               0x8000         	// PWM FIQ
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Watchdog_Clear(void);
	#define		C_WDTCLR				0x0001			//WDT CLR CMD
//-----------------------------------------------------------------------------------//

void Set_SystemClock(unsigned int);				//Std061SYS.asm
//... Definition for P_SystemClock ............
	#define		C_SystemClockDefalut	0x0013			// (default value)	
//B2..B0
	#define 	C_Fosc					0x0000 			// 

⌨️ 快捷键说明

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