hardware.lst

来自「水温控制系统」· LST 代码 · 共 659 行 · 第 1/3 页

LST
659
字号
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00      
00000352 00 00              	.VAR	R_ReadIndex;
00000353 00 00              	.VAR	R_WriteIndex;
                            	
0000928B                    	.CODE
                            	
                            	//////////////////////////////////////////////////////////////////
                            	// Function: Send data to speech driver(PWM/DAC)                                   
                            	// Destory register: r4                                            
                            	//////////////////////////////////////////////////////////////////        
                            	
                            	F_SP_Send_PWM:    							//
0000928B 1C D9 16 70        	       [P_PWM] = r4;						//
0000928D 90 9A              	       retf;           						//
                            	
                            	F_SP_Send_DAC1:								//
0000928E 1C D9 17 70        			[P_DAC1] = r4;						//
00009290 90 9A              			retf;        						//
                            	F_SP_Send_DAC2:								//
00009291 1C D9 16 70        			[P_DAC2] = r4;						//
00009293 90 9A              			retf;        						//
                            	F_SP_Send_Two_DAC:
00009294 1C D9 17 70        			[P_DAC1] = r4;						//
00009296 1C D9 16 70        			[P_DAC2] = r4;						//
00009298 90 9A              			retf;
                            	
                            	//.DEFINE	F_SP_Send_Out  F_SP_Send_PWM;
                            	//.DEFINE	F_SP_Send_Out  F_SP_Send_DAC1;
                            	//.DEFINE	F_SP_Send_Out  F_SP_Send_DAC2;
                            	.DEFINE	F_SP_Send_Out  F_SP_Send_Two_DAC;		// Send to both DAC1 and DAC2
                            	
                            	
                            	F_SP_Get_ADC:
00009299 14 99 14 70        			R4 = [P_ADC]
0000929B 90 9A              			retf
                            	
                            	
                            	F_SP_Set_P_TimerA_Ctrl:
0000929C 19 D3 0B 70        		[P_TimerA_Ctrl] = R1
0000929E 90 9A              		RETF
                            	F_SP_Set_P_TimerA_Data:
0000929F 19 D3 0A 70        		[P_TimerA_Data] = R1
000092A1 90 9A              		RETF
                            	F_SP_Set_P_TimerB_Ctrl:
000092A2 19 D3 0D 70        		[P_TimerB_Ctrl] = R1
000092A4 90 9A              		RETF
                            	F_SP_Set_P_TimerB_Data:
000092A5 19 D3 0C 70        		[P_TimerB_Data] = R1
000092A7 90 9A              		RETF
                            	
                            	F_SP_Set_P_INT_Ctrl:
000092A8 19 D3 10 70        		[P_INT_Ctrl] = R1
000092AA 90 9A              		RETF
                            	F_SP_Set_P_INT_Clear:
000092AB 19 D3 11 70        		[P_INT_Clear] = R1
000092AD 90 9A              		RETF
                            	
                            	F_SP_Set_P_SystemClock:
000092AE 19 D3 13 70        		[P_SystemClock] = R1
000092B0 90 9A              		RETF
                            	
                            	F_SP_Set_P_DAC_Ctrl:
000092B1 19 D3 2A 70        		[P_DAC_Ctrl] = R1
000092B3 90 9A              		RETF	
                            	
                            	F_SP_Set_P_ADC_Ctrl:
000092B4 19 D3 15 70        		[P_ADC_Ctrl] = R1
000092B6 90 9A              		RETF
                            	
                            	//////////////////////////////////////////////////////////////////
                            	// Function: Interrupt vector setting
                            	// Used register: R1                                                                                    
                            	////////////////////////////////////////////////////////////////// 
                            	
                            	F_SP_Write_INT_Status:						//write interrupt status
000092B7 19 D3 1E 03        	        [R_InterruptStatus] = R1;       	//
000092B9 90 9A              	        retf;								
                            	        
                            	F_SP_Read_INT_Status:						//read interrupt status
000092BA 11 93 1E 03        	        R1 = [R_InterruptStatus];       	//
000092BC 90 9A              	        retf;
                            	
                            	
                            	
                            	////////////////////////////////////////////////////////////////// 
                            	//
                            	//////////////////////////////////////////////////////////////////    
                            	_SP_Init_IOA: .PROC
000092BD 88 DA              			PUSH BP,BP TO [SP];
000092BE 08 0B 01 00        	        BP = SP + 1;
000092C0 88 D2              			PUSH R1,R1 TO [SP];
000092C1 03 92              			R1 = [BP+3];						// Port direction
000092C2 19 D3 02 70        			[P_IOA_Dir] = R1;
000092C4 04 92              			R1 = [BP+4];
000092C5 19 D3 00 70        			[P_IOA_Data] = R1;
000092C7 05 92              			R1 = [BP+5];
000092C8 19 D3 03 70        			[P_IOA_Attrib] = R1;
                            			
000092CA 88 90              			POP R1,R1 FROM [SP];
000092CB 88 98              	        POP BP,BP FROM [SP];
000092CC 90 9A              	        RETF;
                            			.ENDP
                            	
                            	////////////////////////////////////////////////////////////////// 
                            	// SP_Inti_IOB
                            	//////////////////////////////////////////////////////////////////    
                            	
                            	_SP_Init_IOB: .PROC
000092CD 88 DA              			PUSH BP,BP TO [SP];
000092CE 08 0B 01 00        	        BP = SP + 1;
000092D0 88 D2              			PUSH R1,R1 TO [SP];
000092D1 03 92              			R1 = [BP+3];						// Port direction
000092D2 19 D3 07 70        			[P_IOB_Dir] = R1;
000092D4 04 92              			R1 = [BP+4];
000092D5 19 D3 05 70        			[P_IOB_Data] = R1;
000092D7 05 92              			R1 = [BP+5];
000092D8 19 D3 08 70        			[P_IOB_Attrib] = R1;
                            			
000092DA 88 90              			POP R1,R1 FROM [SP];
000092DB 88 98              	        POP BP,BP FROM [SP];
000092DC 90 9A              	        RETF;
                            			.ENDP
                            	
                            	
                            	
                            	_SP_Import: .PROC
000092DD 88 DA              	        PUSH BP,BP TO [SP];
000092DE 08 0B 01 00        	        BP = SP + 1;
000092E0 90 D4              			PUSH R1,R2 TO [SP];
000092E1 03 92              			R1 = [BP+3]; 						// Port Number
000092E2 04 94              			R2 = [BP+4]; 						// Data Buffer Pointer
000092E3 C1 92              			R1 = [R1] ;
000092E4 C2 D2              			[R2] = R1 ;
000092E5 90 90              			POP R1,R2 FROM [SP];
000092E6 88 98              	        POP BP,BP FROM [SP];
000092E7 90 9A              	        RETF;
                            			.ENDP
                            	
                            	_SP_Export: .PROC
000092E8 88 DA              	        PUSH BP,BP TO [SP];
000092E9 08 0B 01 00        	        BP = SP + 1;
000092EB 90 D4              			PUSH R1,R2 TO [SP];
000092EC 03 92              			R1 = [BP+3]; 						// Port Number
000092ED 04 94              			R2 = [BP+4]; 						// Value
000092EE C1 D4              			[R1] = R2 ;
000092EF 90 90              			POP R1,R2 FROM [SP];
000092F0 88 98              	        POP BP,BP FROM [SP];
000092F1 90 9A              	        RETF;        
                            	 		.ENDP
                            			 
                            	
                            	
                            		 
                            	///////////////////////////////////////
                            	_SP_RampUpDAC1:	.PROC
                            	F_SP_RampUpDAC1:
000092F2 90 D4              	                push r1,r2 to [sp];
000092F3 11 93 17 70        	                r1=[P_DAC1];
000092F5 09 B3 C0 FF        	                r1 &= ~0x003f;
000092F7 09 43 00 80        	                cmp     r1,0x8000
000092F9 0E 0E              	                jb     	L_RU_NormalUp;  
000092FA 19 5E              	                je      L_RU_End;
                            	                
                            	L_RU_DownLoop:
000092FB 40 F0 5E 93        	                call    F_Delay;        
000092FD 41 94              	                r2 = 0x0001;
000092FE 1A D5 12 70        	                [P_Watchdog_Clear] = r2;
00009300 09 23 40 00        	                r1 -= 0x40;
00009302 19 D3 17 70        	                [P_DAC1] = r1;
00009304 09 43 00 80        	                cmp     r1,0x8000;
00009306 4C 4E              	                jne     L_RU_DownLoop;  
                            	L_RD_DownEnd:
00009307 0C EE              	                jmp     L_RU_End;
                            	
                            	L_RU_NormalUp:
                            	L_RU_Loop:
00009308 40 F0 5E 93        	                call    F_Delay;
0000930A 41 94              	                r2 = 0x0001;
0000930B 1A D5 12 70        	                [P_Watchdog_Clear] = r2;
0000930D 09 03 40 00        	                r1 += 0x40;
0000930F 19 D3 17 70        	                [P_DAC1] = r1;
00009311 09 43 00 80        	                cmp     r1, 0x8000;
00009313 4C 4E              	                jne     L_RU_Loop;
                            	                
                            	
                            	L_RU_End:
00009314 90 90              	                pop     r1,r2 from [sp];
00009315 90 9A              	                retf;
                            	                .ENDP
                            	/////////////////////////////////////// 
                            	_SP_RampDnDAC1:	.PROC
                            	F_SP_RampDnDAC1:
00009316 90 D4              					push r1,r2 to [sp];
                            	                //int off;
00009317 11 93 17 70        	                r1 = [P_DAC1];
00009319 09 B3 C0 FF        	                r1 &= ~0x003F;
0000931B 0A 5E              	                jz      L_RD_End;
                            	L_RD_Loop:                
0000931C 40 F0 5E 93        	                call    F_Delay;        
0000931E 41 94              	                r2 = 0x0001;
0000931F 1A D5 12 70        	                [P_Watchdog_Clear] = r2;

⌨️ 快捷键说明

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