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

📄 system.lst

📁 SPCE061A_USB可以让你自己检测开发板是否能正常动作
💻 LST
📖 第 1 页 / 共 3 页
字号:
00008B19 19 D3 00 70        			[P_IOA_Data]=R1;
00008B1B 88 90              			pop R1 from [sp];
00008B1C 90 9A              			retf
                            			.endp
                            	
                            	
                            	//====================================================================
                            	// 函  数:    	F_TurnOffFirstLed()
                            	// 语  法:    	void F_TurnOffFirstLed(void)
                            	// 描  述:   	点亮与IOA0相连的LED
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_TurnOnFirstLed: .proc
00008B1D 88 D2              			push R1 to [sp];
00008B1E 11 93 01 70        			R1=[P_IOA_Buffer];
00008B20 41 A2              			R1|=0x0001;
00008B21 19 D3 00 70        			[P_IOA_Data]=R1;
00008B23 88 90              			pop R1 from [sp];
00008B24 90 9A              			retf;
                            			.endp
                            	
                            	//====================================================================
                            	// 函  数:    	SP_TurnOffFirstLed()
                            	// 语  法:    	void SP_TurnOffFirstLed(void)
                            	// 描  述:   	熄灭与IOA1相连的LED
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_TurnOffSecondLed: .proc
00008B25 88 D2              			push R1 to [sp];
00008B26 11 93 01 70        			R1=[P_IOA_Buffer];
00008B28 09 B3 FD FF        			R1&=0xFFFD;
00008B2A 19 D3 00 70        			[P_IOA_Data]=R1;
00008B2C 88 90              			pop R1 from [sp];
00008B2D 90 9A              			retf;
                            			.endp
                            	
                            	
                            	//====================================================================
                            	// 函  数:    	SP_TurnOffFirstLed()
                            	// 语  法:    	void SP_TurnOffFirstLed(void)
                            	// 描  述:   	点亮与IOA1相连的LED
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_TurnOnSecondLed: .proc
00008B2E 88 D2              			push R1 to [sp];
00008B2F 11 93 01 70        			R1=[P_IOA_Buffer];
00008B31 42 A2              			R1|=0x0002;
00008B32 19 D3 00 70        			[P_IOA_Data]=R1;
00008B34 88 90              			pop R1 from [sp];
00008B35 90 9A              			retf;
                            			.endp
                            			 
                            	//====================================================================
                            	// 函  数:    	F_InitWriteD12()
                            	// 语  法:    	void F_TurnOffFirstLed(void)
                            	// 描  述:   	初始化写PDIUSBD12
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_InitWriteD12:         .proc
00008B36 88 D2              			push R1,R1 to [sp];
00008B37 09 93 FF FF        		    R1 = 0xFFFF;
00008B39 19 D3 02 70        	        [P_IOA_Dir] = R1;      // Port IOA15- IOA8: 同相高电平输出
00008B3B 19 D3 03 70        	        [P_IOA_Attrib] = R1;   // 
00008B3D 09 93 00 FF        	        R1 = 0xFF00;           //
00008B3F 19 D3 00 70        	        [P_IOA_Data] = R1;     // 
                            	        
00008B41 09 93 CF 00        	        R1 = 0x00Cf;           //
00008B43 19 D3 05 70        	        [P_IOB_Data] = R1;     //     
                            	        
00008B45 88 90              	        pop R1,R1 from [sp];
00008B46 90 9A              	        retf ;
                            	        .endp
                            	//====================================================================
                            	// 函  数:    	F_InitReadD12()
                            	// 语  法:    	void F_InitReadD12(void)
                            	// 描  述:   	初始化读PDIUSBD12
                            	// 参  数:   	无
                            	// 返回值:   	无
                            	//=====================================================================
                            	_F_InitReadD12:          .PROC
00008B47 88 D2              			push R1,R1 to [sp];
                            	 
00008B48 09 93 FF 00        	        R1 = 0x00FF ;
00008B4A 19 D3 02 70        	        [P_IOA_Dir] = R1;        // Port IOA15- IOA8: 设置为悬浮式输入input(FL)
00008B4C 09 93 FF FF        	        R1 = 0xFFFF;             // 
00008B4E 19 D3 03 70        	        [P_IOA_Attrib] = R1;     //
00008B50 40 92              	        R1 = 0x0000;             // 
00008B51 19 D3 00 70        	        [P_IOA_Data] = R1;       // 
                            	
00008B53 09 93 CF 00        	        R1 = 0x00Cf;             //
00008B55 19 D3 05 70        	        [P_IOB_Data] = R1;       // 
                            	        
00008B57 88 90              	        pop R1,R1 from [sp]; 
00008B58 90 9A              	        retf 
                            	        .ENDP
                            	
                            	//====================================================================
                            	// 函  数:    	F_ReadD12()
                            	// 语  法:    	void F_ReadD12(unsigned int D_Addr)
                            	// 描  述:   	从PDIUSBD12读数据
                            	// 参  数:   	D_Addr:为偶地址0xff02
                            	// 返回值:   	R1
                            	//=====================================================================
                            	_F_ReadD12:      .PROC
00008B59 88 DA              	        push bp to [sp]; 
00008B5A 08 0B 01 00        	        bp = sp + 1 ;
00008B5C 03 92              	        R1 = [bp+3] ;            // D12 Address
00008B5D 40 F0 61 8B        	        call	F_ReadD12;       // R1: return value
00008B5F 88 98              	        pop bp from [sp] ;
00008B60 90 9A              	        retf ;
                            	        .ENDP
                            	           
                            	F_ReadD12:
00008B61 90 D6              	        push R2,r3 to [sp]; 
00008B62 59 93              	        R1 = R1 lsl 4;           // move 02  to IOA8-IOA15
00008B63 59 93              	        R1 = R1 lsl 4;  
00008B64 19 D3 00 70        	        [P_IOA_Data] = R1;       // 送偶地址到D12
00008B66 0B 97 EF 00        	        R3 = 0x00EF;             // CS_N=0, ALE=IOB8=1,WR_N=1,RD_N=1;RESET_N=1,INT_N=1
00008B68 1B D7 05 70        	        [P_IOB_Data] = R3;     
00008B6A 09 93 CF 00        	        R1=0x00Cf;
00008B6C 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
00008B6E 09 93 4F 00        	        R1=0x004f; 
00008B70 19 D3 05 70        	        [P_IOB_Data] = R1;       // CS_N=0,ALE=0,WR_N=1,RD_N=0;RESET_N=1,INT_N=1
00008B72 00 EE              	        nop;
00008B73 11 93 00 70        	        R1 = [P_IOA_Data];       // Get data
00008B75 79 93              	        R1 = R1 lsr 4;           // Prepare high 8 bits Addr. to low 8 bits
00008B76 79 95              	        R2 = R1 lsr 4;           // Get low byte data
00008B77 02 93              	        R1=R2;                   // R1 save ruturn value
00008B78 0A 95 CF 00        	        R2 = 0x00CF;             // CS_N=0,ALE=0,WR_N=1,RD_N=1 ;RESET_N=1,INT_N=1
00008B7A 1A D5 06 70        	        [P_IOB_Buffer] = R2;     // 
                            	        
00008B7C 90 92              			pop R2,r3 from [sp];     // don't pop R1(return value)   
00008B7D 90 9A              	        retf ;
                            	//===================================================================================================
                            	// 函  数:    	F_WriteCmdOrDataToD12()
                            	// 语  法:    	void F_WriteCmdOrDataToD12(unsigned int D_or_C_Addr,unsigned int Data_or_Command)
                            	// 描  述:   	向PDIUSBD12写数据或命令
                            	// 参  数:   	D_or_C_Addr:地址参数;Data_or_Command:命令或数据参数
                            	// 返回值:   	无
                            	//===================================================================================================
                            	_F_WriteCmdOrDataToD12: .PROC
00008B7E 88 DA              	        push bp to [sp] ;
00008B7F 08 0B 01 00        	        bp = sp + 1; 
00008B81 90 D4              	        push R1,R2 to [sp];
00008B82 03 92              	        R1 = [bp+3];              // Address
00008B83 04 94              	        R2 = [bp+4] ;             // Data
00008B84 40 F0 89 8B        	        call	F_WriteCmdOrDataToD12;
00008B86 90 90              	        pop R1,R2 from [sp];
00008B87 88 98              	        pop bp from [sp] ;
00008B88 90 9A              	        retf ;
                            	        .ENDP
                            	F_WriteCmdOrDataToD12:
00008B89 98 D6              	        push R1,r3 to [sp];
                            	
00008B8A 59 93              	        R1 = R1 lsl 4;
00008B8B 59 93              	        R1 = R1 lsl 4; 
00008B8C 5A 95              	        R2 = R2 lsl 4;          // shift low 8 bits data to high 8 bits
00008B8D 5A 95              	        R2 = R2 lsl 4;          //        
00008B8E 19 D3 00 70        	        [P_IOA_Data] = R1;      // move 02 or 03 Addr to IOA8-IOA15
                            	        
00008B90 09 93 EF 00        	        R1=0x00EF;              // CS_N=0,ALE=IOA7=1,WR_N=1,RD_N=1,RESET_N=1,INT_N=1
00008B92 19 D3 05 70        	        [P_IOB_Data] = R1;      // ALE=1
                            	        
00008B94 09 93 CF 00        	        R1=0x00CF;              // CS_N=0,ALE=IOA7=0,WR_N=1,RD_N=1;RESET_N=1,INT_N=1
00008B96 19 D3 05 70        	        [P_IOB_Data] = R1;	    // 在ALE 下降沿的时候,D12锁定地址;
                            	
00008B98 09 93 8F 00        	        R1=0x008F; 
00008B9A 1A D5 01 70        	        [P_IOA_Buffer] = R2;    // 准备数据写入D12
00008B9C 19 D3 05 70        	        [P_IOB_Data] = R1;      // CS_N=0,ALE=0,WR_N=0,RD_N=1;RESET_N=1,INT_N=1
00008B9E 00 EE              	        nop;
00008B9F 09 93 CF 00        	        R1=0x00CF;				// CS_N=0,ALE=0,WR_N=1,RD_N=1;
00008BA1 19 D3 05 70        	        [P_IOB_Data] = R1;
00008BA3 98 90              	        pop R1,r3 from [sp];
00008BA4 90 9A              	        retf; 
                            	
                            	.PUBLIC _F_Clear_WatchDog
                            	_F_Clear_WatchDog:
00008BA5 88 D2              			PUSH R1 TO [SP];
00008BA6 41 92              			R1=0x0001;
00008BA7 19 D3 12 70        			[P_Watchdog_Clear]=R1;
00008BA9 88 90              			POP R1 FROM [SP];
00008BAA 90 9A              			RETF;
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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