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

📄 system.lst

📁 SPCE061A_USB可以让你自己检测开发板是否能正常动作
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     <      	
                     <      	.EXTERNAL	R_InterruptStatus;
                     <      	
                     <      	
                     <      	.EXTERNAL 	F_SP_RampUpDAC1;
                     <      	.EXTERNAL 	F_SP_RampDnDAC1;
                     <      	.EXTERNAL 	F_SP_RampUpDAC2;
                     <      	.EXTERNAL  	F_SP_RampDnDAC2;
                     <      	
                     <      	.EXTERNAL 	F_SP_InitQueue;
                     <      	.EXTERNAL 	F_SP_ReadQueue;
                     <      	.EXTERNAL 	F_SP_WriteQueue;
                     <      	.EXTERNAL 	F_SP_TestQueue;
                     <      	
                     <      	
                     <      	
                     <      	.EXTERNAL	F_SP_Get_ADC
                     <      	
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Data
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Data
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Clear
                     <      	.EXTERNAL 	F_SP_Set_P_SystemClock
                     <      	.EXTERNAL 	F_SP_Set_P_DAC_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_ADC_Ctrl
                     <      	
                     <      		
                     <      	
                     <      	//--------------------------------------------
                     <      	SACM_MACRO1: 	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	SACM_MACRO2:	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	//========================================================================================        
                     <      	// add by abin for easy programming
                     <      	//========================================================================================
                     <      	
                     <      	.define FoscCLK_20 	0x00;		  //Fosc=20.480MHz
                     <      	.define FoscCLK_24 	0x20;		  //Fosc=24.576MHz
                     <      	.define FoscCLK_32 	0x40;		  //Fosc=32.768MHz
                     <      	.define FoscCLK_40 	0x60;		  //Fosc=40.960MHz
                     <      	.define FoscCLK_49 	0x80;		  //Fosc=49.152MHz
                     <      	
                     <      	.define CPUCLK_Fosc      0x00;    //CPUClk选Fosc
                     <      	.define CPUCLK_Fosc2     0x01;    //CPUClk选Fosc/2
                     <      	.define CPUCLK_Fosc4     0x02;    //CPUClk选Fosc/4
                     <      	.define CPUCLK_Fosc8     0x03;    //CPUClk选Fosc/8
                     <      	.define CPUCLK_Fosc16    0x04;    //CPUClk选Fosc/16
                     <      	.define CPUCLK_Fosc32    0x05;    //CPUClk选Fosc/32
                     <      	.define CPUCLK_Fosc64    0x06;    //CPUClk选Fosc/64
                     <      	
                     <      	
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            	//for led
                            	.public _F_TurnOnFirstLed
                            	.public _F_TurnOffFirstLed
                            	.public _F_TurnOnSecondLed
                            	.public _F_TurnOffSecondLed
                            	//for d12
                            	.public _F_InitWriteD12
                            	.public _F_InitReadD12
                            	.public _F_ReadD12 
                            	.public _F_WriteCmdOrDataToD12
                            	//for system
                            	.public _F_System_Initial
                            	.public _F_Interrupt_On
                            	.public _F_Delay
                            	.public _F_Interrupt_Off
                            	
                            	.define Fosc_CLK_RATE 	FoscCLK_49      //选择不同Fosc信号频率
                            	.define CPU_CLK_RATE    CPUCLK_Fosc  	//改变CPUClk频率
                            	
00008ADA                    	.code 	
                            	//====================================================================
                            	// 函  数:    F_System_Initial()
                            	// 语  法:    void F_System_Initial(void) (for c)
                            	// 描  述:    该函数用于初始化SPCE061A的中断、时钟、I/0、复位PDIUSBD12
                            	//			  初始化:
                            	//			  IOB0,IOB1为同相高电平输出
                            	//			  IOB2=INT_N=1为带上拉电阻的输入
                            	//			  IOB3=RESET_N=1为同相高电平输出
                            	//            IOB4=CS_N=1同相高电平输出
                            	//            IOB5=ALE=0同相低电平输出
                            	//			  IOB6=WR_N=1为同相高电平输出
                            	//			  IOB7=RD_N=1为同相高电平输出
                            	// 参  数:   无  
                            	// 返回值:   无
                            	//=====================================================================
                            	_F_System_Initial: .PROC
00008ADA 88 D2              		    push R1,R1 to [sp];
00008ADB 40 F1              		    int off;
00008ADC 09 93 00 01        		    R1=0x0100; 				//开中断IRQ3_EXT1
00008ADE 19 D3 2D 70        		    [P_INT_Ctrl_New]=R1; 
00008AE0 09 93 80 00        		    R1=Fosc_CLK_RATE;       //
00008AE2 40 A2              			R1|=CPU_CLK_RATE;       //设置系统时钟      	
00008AE3 19 D3 13 70        		    [P_SystemClock]=R1;	
                            		    
                            		
00008AE5 09 93 FF 00        		    R1=0x00ff; 				//设置IOA8-IOA15为带上拉电阻地输入
00008AE7 19 D3 02 70        			[P_IOA_Dir]=R1;         //设置IOA0-IOA7为同相低电平输出
00008AE9 19 D3 03 70        			[P_IOA_Attrib]=R1;     
00008AEB 09 93 00 FF        			R1=0xff00;            
00008AED 19 D3 00 70        			[P_IOA_Data]=R1; 
                            		
00008AEF 09 93 FB FF        		    R1=0xFFFB;              //CS_N=IOB4=1,ALE=IOB5=0,WR_N=IOB6=1,RD_N=IOB7=1;
00008AF1 19 D3 07 70        		    [P_IOB_Dir]=R1;         //IOB3=RESET_N=1,IOB2=INT_N=1,IOB0、IOB1输出
00008AF3 19 D3 08 70        			[P_IOB_Attrib]=R1;      //不选中D12
00008AF5 09 93 DF FF        			R1=0xFFDF ;             
00008AF7 19 D3 05 70        		    [P_IOB_Data]=R1;     
                            		    
00008AF9 09 93 C7 FF        		    R1=0xFFC7; 
00008AFB 19 D3 05 70        		    [P_IOB_Data]=R1;   		//CS_N=0,ALE=0,WR_N=1,RD_N=1,RESET_N=0,INT_N=1
00008AFD 40 F0 09 8B        		    call F_Delay;      	    //系统复位延时。
00008AFF 09 93 CF FF        		    R1=0xFFCF;
00008B01 19 D3 05 70        		    [P_IOB_Data]=R1;   		//CS_N=0,ALE=0,WR_N=1,RD_N=1,RESET_N=1,INT_N=1
                            		    
00008B03 88 90              		    pop R1,R1 from [sp];
00008B04 90 9A              		   	retf; 
                            			.endp;
                            	
                            	//====================================================================
                            	// 函  数:    	F_Interrupt_On()
                            	// 语  法:    	void F_Interrupt_On(void) (for c)
                            	// 描  述:    	开中断函数
                            	// 参  数:   	无  
                            	// 返回值:		无
                            	// 使用寄存器:	无
                            	//=====================================================================
                            	
                            	_F_Interrupt_On: .PROC
                            	F_Interrupt_On:
00008B05 41 F1              			int irq;
00008B06 90 9A              		    retf; 
                            			.endp; 
                            	//====================================================================
                            	// 函  数:    	F_Interrupt_Off()
                            	// 语  法:    	void F_Interrupt_Off(void) (for c)
                            	// 描  述:   	开中断函数
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	// 使用寄存器:	无
                            	//=====================================================================
                            	_F_Interrupt_Off: .PROC
                            	F_Interrupt_Off:
00008B07 40 F1              		    int off; 
00008B08 90 9A              		    retf;
                            			.endp; 
                            	
                            	//====================================================================
                            	// 函  数:    	F_Delay()
                            	// 语  法:    	void F_Delay(void) (for c)
                            	// 描  述:   	延时函数
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_Delay: .proc
                            	F_Delay: 
00008B09 90 D4              		    push R1,R2 to [sp];
00008B0A 4F 94              		    R2=0x000f;
                            		Loop1:
00008B0B 09 93 FF FF        		    R1=0xffff;
                            		Loop2:    
00008B0D 41 22              		    R1-=1;
00008B0E 42 4E              		    jnz Loop2;
00008B0F 41 24              		    R2-=1;
00008B10 46 4E              		    jnz Loop1;
00008B11 00 EE              		    nop;
00008B12 90 90              		    pop R1,R2 from [sp];
00008B13 90 9A              		    retf;
                            			.endp
                            	
                            	//====================================================================
                            	// 函  数:    	F_TurnOffFirstLed()
                            	// 语  法:    	void F_TurnOffFirstLed(void) (for c)
                            	// 描  述:   	熄灭与IOA0相连的LED
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_TurnOffFirstLed: .proc
00008B14 88 D2              			push R1 to [sp];
00008B15 11 93 01 70        			R1=[P_IOA_Buffer];
00008B17 09 B3 FE FF        			R1&=0xFFFE;

⌨️ 快捷键说明

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