evb061test.lst

来自「凌阳科技单片机系统开发板测试程序,可以参考应用。」· LST 代码 · 共 580 行 · 第 1/3 页

LST
580
字号
                     <      	.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
                     <      	
                     <      	
                     <      	
                     <      	
                     <      	//.define PC_Play_Enable_A2000		1    	// Enable the PC-Play function for SACM-A2000 module
                     <      	//.define PC_Play_Enable_S480		1    	// Enable the PC-Play function for SACM-S480 module
                     <      	//.define PC_Play_Enable_S240		1    	// Enable the PC-Play function for SACM-S240 module    
                     <      	//.define PC_Play_Enable_MS01		1    	// Enable the PC-Play function for SACM-MS01 module
                     <      	
                     <      	
                     <      	
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
00008CDD                    	.code
                            	//=====================================//
                            	//函数名称:unsigned IOTest()
                            	//出口参数:1.测试成功0、测试失败
                            	//无入口参数
                            	//硬件连接:A口B口短接
                            	//=====================================//
                            	
                            	.public _IOTest;
                            	_IOTest:    .proc
                            	
                            	InitPortAinput_Boutput:
00008CDD 40 92              	    r1=0x0000                 //初始化A口为输入端
00008CDE 19 D3 02 70        		[P_IOA_Dir]=r1
00008CE0 19 D3 03 70        		[P_IOA_Attrib]=r1
00008CE2 19 D3 00 70        		[P_IOA_Data]=r1
                            		                          //初始化B口为输出端
00008CE4 09 93 FF FF        		r1=0xffff                 
00008CE6 19 D3 07 70        		[P_IOB_Dir]=r1
00008CE8 19 D3 08 70        		[P_IOB_Attrib]=r1
00008CEA 40 92              		r1=0x0000
00008CEB 19 D3 05 70        		[P_IOB_Data]=r1
                            	
                            	WritePortB:
00008CED 09 93 FF FF        	    r1 = Write_Port_Data;    //向B口写数据0xaaaa   
                            	LoopWrite:   // 
00008CEF 41 22              	    r1 = r1-1;
00008CF0 12 5E              	    jz  InitPortBinput_Aoutput;//
00008CF1 19 D3 05 70        	    [P_IOB_Data]=r1
                            	ReadPortA: 
                            	                             //使数据稳定
00008CF3 00 EE              	    nop;
00008CF4 00 EE              	    nop;
00008CF5 00 EE              	    nop;
00008CF6 00 EE              	    nop;
00008CF7 00 EE              	    nop;      
00008CF8 12 95 00 70        	    r2 = [P_IOA_Data];       //读A口数据    
00008CFA 02 43              	    cmp r1,r2;               //比较读写数据是否相同
00008CFB 4D 5E              	    je  LoopWrite;
                            	    //je  InitPortBinput_Aoutput;
00008CFC 00 EE              	    nop;
00008CFD 00 EE              	    nop;
00008CFE 00 EE              	    nop;
00008CFF 40 92              	    r1 = 0x0000;             //测试失败
00008D00 00 EE              	    nop;
00008D01 00 EE              	    nop;
00008D02 90 9A              	    retf;
                            	    
                            	InitPortBinput_Aoutput:
                            	   
00008D03 40 92              	     r1=0x0000                 //初始化B口为输入
00008D04 19 D3 07 70        		[P_IOB_Dir]=r1
00008D06 19 D3 08 70        		[P_IOB_Attrib]=r1
00008D08 19 D3 05 70        		[P_IOB_Data]=r1
                            		                          //初始化A口为输出
00008D0A 09 93 FF FF        		r1=0xffff                 
00008D0C 19 D3 02 70        		[P_IOA_Dir]=r1
00008D0E 19 D3 03 70        		[P_IOA_Attrib]=r1
00008D10 40 92              		r1=0x0000
00008D11 19 D3 00 70        		[P_IOA_Data]=r1
                            		
                            	WritePortA:                  //向A口写数据
00008D13 09 93 FF FF        	    r1 = Write_Port_Data
                            	LoopWrite0:
00008D15 41 22              	    r1 = r1 - 1;
00008D16 0D 5E              	    jz  TestSuc;    
00008D17 19 D3 00 70        	    [P_IOA_Data]=r1    
                            	ReadPortB:
                            	                             //使数据稳定
00008D19 00 EE              	    nop;
00008D1A 00 EE              	    nop;
00008D1B 00 EE              	    nop;
00008D1C 00 EE              	    nop;
00008D1D 00 EE              	    nop;    
00008D1E 12 95 05 70        	    r2 = [P_IOB_Data];       //读B口数据    
00008D20 02 43              	    cmp r1,r2;               //比较读写数据是否相同
00008D21 4D 5E              	    je  LoopWrite0;
                            	
00008D22 40 92              	    r1 = 0x0000;             //测试失败
00008D23 90 9A              	    retf;
                            	 TestSuc:
00008D24 41 92              	    r1 = 0x0001;
00008D25 90 9A              	    retf;
                            	    .endp
                            	//===========================================//
                            	//函数名称:unsigned KeyWakeUp()
                            	//出口参数:1.测试成功0、测试失败
                            	//无入口参数
                            	//硬件连接:A口B口短接
                            	//=====================================//
                            	.public _KeyWakeUp;
                            	_KeyWakeUp:    .proc
                            	.define P_IOA_RL   0x7004
                            	//InitPortA_input_B_output0:
00008D26 40 92              	    r1=0x0000                 //初始化A口为输入端
00008D27 19 D3 02 70        		[P_IOA_Dir]=r1
00008D29 19 D3 03 70        		[P_IOA_Attrib]=r1
00008D2B 19 D3 00 70        		[P_IOA_Data]=r1
                            	
                            	
                            		                          //初始化B口为输出端
00008D2D 09 93 FF FF        		r1=0xffff                 
00008D2F 19 D3 07 70        		[P_IOB_Dir]=r1
00008D31 19 D3 08 70        		[P_IOB_Attrib]=r1
00008D33 40 92              		r1=0x0000
00008D34 19 D3 05 70        		[P_IOB_Data]=r1
00008D36 11 93 10 70        	    r1 = [P_INT_Ctrl]
00008D38 44 A2              	    r1 |= 0x0004                //中断初始化
00008D39 19 D3 10 70        	    [P_INT_Ctrl] = r1;  
00008D3B 11 93 04 70        	    r1=[P_IOA_RL] 
00008D3D 41 F1              	    INT IRQ                  //开中断   
00008D3E 57 92              	    r1=0x0017;               //on 32768   
00008D3F 19 D3 13 70        	    [P_SystemClock]=r1       //进入睡眠状态
                            	    
                            	    
                            	    
00008D41 40 92              	    r1 = 0x0000
00008D42 19 D3 13 70        	    [P_SystemClock]=r1 
00008D44 41 92              	    r1 = 0x0001;             //测试成功
00008D45 90 9A              	    retf;
                            	.endp    
                            	//********************************//
                            	//键唤醒中断    
                            	//*******************************//
0000808C                    	.text  
                            	.public _IRQ3
                            	_IRQ3:
0000808C A0 D8              	    push r1,r4 to [sp]
                            	  
0000808D 09 93 80 00        	    r1=0x0080
0000808F 11 C3 10 70        	    test r1,[P_INT_Ctrl]   //是否为键唤醒中断
00008091 04 5E              	    jz L_notKeyArouse      //否,退出中断程序
00008092 09 93 80 00        	    r1=0x0080
00008094 19 D3 11 70        	    [P_INT_Clear]=r1       //是,清中断 
                            	L_notKeyArouse: 
00008096 A0 90              	    pop r1,r4 from [sp] 
00008097 98 9A              	    reti
                            	//=======================================//
                            	//函数名称:unsigned UART(char *Psend)
                            	//出口参数:1.测试成功0、测试失败
                            	//无入口参数
                            	//硬件连接:A口B口短接
                            	//=====================================// 
                            	
                            	
0000C6FA                    	.data   //发送的数据
0000C6FA AA 00 55 00        	    SendData:.dw 0x00aa,0x0055,0x00a5,0x005a,0x00aa
         A5 00 5A 00
         AA 00      
00000000                    	.isram
                            	.public  RecData    //接收数据缓冲区
00000000 00 00 00 00        	 RecData: .dw  5 dup(0);

⌨️ 快捷键说明

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