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

📄 isr1.lst

📁 利用凌阳A061单片机实现制作而成的温度控制器
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      		.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
                     <      	//========================================================================================
                            	.INCLUDE	A2000.inc
                     <      	//////////////////////////////////////////////////////////////////////////////////////////
                     <      	// Progarm: SACM-A2000 API external definition
                     <      	// Writen by: Andy
                     <      	// Date: 2000/06/20
                     <      	//////////////////////////////////////////////////////////////////////////////////////////
                     <      	
                     <      	.external F_SACM_A2000_Initial;
                     <      	.external F_SACM_A2000_ServiceLoop;
                     <      	.external F_SACM_A2000_Play;
                     <      	.external F_SACM_A2000_Stop;
                     <      	.external F_SACM_A2000_Pause;
                     <      	.external F_SACM_A2000_Resume;
                     <      	
                     <      	.external F_SACM_A2000_Volume;
                     <      	.external F_SACM_A2000_Status;
                     <      	
                     <      	.external F_SACM_A2000_PcPlayInitial;
                     <      	
                     <      	.external	F_FIQ_Service_SACM_A2000;
                     <      	
                     <      	
                     <      	//========================================================================================        
                     <      	// End of a2000.inc
                     <      	//========================================================================================
                     <      	        
                            	.INCLUDE	Resource.inc
                     <      	
                     <      	// Resource Table
                     <      	// Created by IDE, Do not modify this table
                     <      	
00008009             <      	.TEXT
                     <      	.external _RES_Table;
                     <      	.external _RES_T034_16K_SA;
                     <      	.external _RES_T034_16K_EA;
                     <      	.external _RES_T046_16K_SA;
                     <      	.external _RES_T046_16K_EA;
                     <      	.external _RES_T047_16K_SA;
                     <      	.external _RES_T047_16K_EA;
                     <      	.external _RES_T048_16K_SA;
                     <      	.external _RES_T048_16K_EA;
                     <      	.external _RES_T049_16K_SA;
                     <      	.external _RES_T049_16K_EA;
                     <      	.external _RES_T050_16K_SA;
                     <      	.external _RES_T050_16K_EA;
                     <      	.external _RES_T051_16K_SA;
                     <      	.external _RES_T051_16K_EA;
                     <      	.external _RES_T052_16K_SA;
                     <      	.external _RES_T052_16K_EA;
                     <      	.external _RES_T053_16K_SA;
                     <      	.external _RES_T053_16K_EA;
                     <      	.external _RES_T054_16K_SA;
                     <      	.external _RES_T054_16K_EA;
                     <      	.external _RES_T055_16K_SA;
                     <      	.external _RES_T055_16K_EA;
                     <      	.external _RES_T056_16K_SA;
                     <      	.external _RES_T056_16K_EA;
                     <      	
                     <      	// End Table
                            	.EXTERNAL	_giADC_DataSave;
                            	.EXTERNAL   _fOut;
                            	.EXTERNAL   F_turn_off_relay;
                            	.EXTERNAL   F_LED_Show
                            	.DEFINE     P_ADC_MUX_Data      0x702c
                            	.DEFINE		P_ADC_MUX_Ctrl		0x702b  
                            	
0000035B                    	.IRAM
                            	.PUBLIC  G_Sum 
0000035B 0A 00              	.VAR     G_Sum  = 10;
                            	.PUBLIC  _G_ADC_flag        
0000035C 00 00              	.VAR     _G_ADC_flag = 0;  
                            	
0000035D                    	.IRAM
00008009                    	.TEXT
                            	//===================================================================================
                            	//函数:IRQ5()
                            	//语法:void IRQ5(void)
                            	//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
                            	//参数:无
                            	//返回:无
                            	//===================================================================================
                            	
                            	.PUBLIC	_FIQ;
                            	_FIQ:
00008009 A0 D8              		push	r1,r4 to [sp];
0000800A 09 93 00 20        		r1 = 0x2000;
0000800C 11 C3 10 70        		test r1,[P_INT_Ctrl];
0000800E 0B 4E              		jnz L_FIQ_TimerA;
0000800F 09 93 00 08        		r1 = 0x0800;
00008011 11 C3 10 70        		test r1,[P_INT_Ctrl];
00008013 0C 4E              		jnz L_FIQ_TimerB;
                            	L_FIQ_PWM:
00008014 09 93 00 80        		r1 = C_FIQ_PWM;
00008016 19 D3 11 70        		[P_INT_Clear] = r1;
00008018 A0 90              		pop r1,r4 from[sp];
00008019 98 9A              		reti;
                            	L_FIQ_TimerA:
0000801A 19 D3 11 70        		[P_INT_Clear] = r1;
0000801C 40 F0 53 86        		call F_FIQ_Service_SACM_A2000;
0000801E A0 90              		pop r1,r4 from [sp];
0000801F 98 9A              		reti;
                            	L_FIQ_TimerB:
00008020 19 D3 11 70        		[P_INT_Clear] = r1;
00008022 A0 90              		pop r1,r4 from [sp];
00008023 98 9A              		reti;
                            		
                            	//===================================================================================
                            	//函数:IRQ5()
                            	//语法:void IRQ5(void)
                            	//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
                            	//参数:无
                            	//返回:无
                            	//===================================================================================
                            	.PUBLIC  _IRQ5;
                            	_IRQ5:	
00008024 A0 D8              		PUSH r1,r4 TO [sp];
00008025 48 92              		r1 = 0x0008;			 
00008026 11 C3 10 70        		test r1,[P_INT_Ctrl];			
00008028 21 4E              		jnz	L_4Hz;			               // 开Timer A FIQ 	
00008029 44 92              		r1 = 0x0004;
0000802A 19 D3 11 70        	    [P_INT_Clear] = r1;                //清中断    
                            	   // [P_UART_Data] = r1;              //通过串行通讯将采样的温度数据上传       
0000802C 11 93 5B 03        	    r1 =  [G_Sum]   
0000802E 41 22              	    r1 = r1 - 1
0000802F 19 D3 5B 03        	    [G_Sum] = r1
00008031 02 5E              	    jz ADC_Value  
00008032 A0 90              		POP r1,r4 FROM [sp]
00008033 98 9A              	    RETI; 
                            	 ADC_Value:
00008034 40 92              	    r1 = 0;    
                            	    L_AD: 	 
00008035 12 95 2B 70        	    R2 = [P_ADC_MUX_Ctrl]        //读寄存器[P_ADC_MUX_Ctrl]的B15位
00008037 0A C5 00 80        	    TEST R2,0x8000               //判断是否转换完毕
00008039 45 5E              	    JZ L_AD                      //否,继续转换
0000803A 13 97 2C 70        	    r3 = [P_ADC_MUX_Data]              //是,则读出[P_ADC_MUX_DATA]转换结果
0000803C 48 5E              	    jz  L_AD 
0000803D 7B 97              	    r3 = r3 lsr 4
0000803E 6B 97              	    r3 = r3 lsr 2    
0000803F 09 05 08 03        	    r2 = r1 + _giADC_DataSave
00008041 4A 42              	    cmp r1,10
00008042 4E 4E              	    jne L_AD
                            	   //[r2] = r3
00008043 41 92              	    r1 = 1;
00008044 19 D3 5C 03        	    [_G_ADC_flag] = r1;
00008046 4A 92              	    r1 = 10
00008047 19 D3 5B 03        	    [G_Sum] = r1
00008049 03 EE              	    jmp exit_Int;
                            	L_4Hz:  
0000804A 48 92              	 	r1 = 0x0008;
0000804B 19 D3 11 70        	    [P_INT_Clear] = r1;               //清中断
                            	exit_Int:
0000804D A0 90              	    POP r1,r4 FROM [sp];
0000804E 98 9A              	    RETI; 
                            	    
                            	//===================================================================================
                            	//函数:IRQ5()
                            	//语法:void IRQ5(void)
                            	//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
                            	//参数:无
                            	//返回:无
                            	//===================================================================================
                            	   
                            	.PUBLIC  _IRQ6;
                            	_IRQ6:
0000804F A0 D8              		PUSH r1,r4 to [sp];
00008050 41 92              		r1 = 0x0001;
00008051 11 C3 10 70        		TEST r1,[P_INT_Ctrl];
00008053 05 4E              		JNZ  _IRQ6_TMB2;
00008054 42 92              		r1=0x0002;
00008055 19 D3 11 70        		[P_INT_Clear]=r1;	
00008057 A0 90              		POP r1,r4 FROM [sp];
00008058 98 9A              	    RETI;         
                            	_IRQ6_TMB2:   
00008059 19 D3 11 70        		[P_INT_Clear]=r1;
0000805B 40 F0 FC 97        		call F_LED_Show;	
0000805D A0 90              		POP r1,r4 FROM [sp];
0000805E 98 9A              	    RETI;     
                            	//===================================================================================
                            	//函数:IRQ1()
                            	//语法:void IRQ1(void)
                            	//描述:利用中断定时10ms秒,确定加热时间
                            	//参数:无
                            	//返回:无
                            	//===================================================================================
                            	.PUBLIC  _IRQ1;
                            	_IRQ1:
0000805F A0 D8              	    PUSH r1,r4 to [sp];
00008060 09 93 00 10        	    r1 = 0x1000;
00008062 19 D3 11 70        	    [P_INT_Clear]=r1;
00008064 11 93 56 03        	    r1 = [_fOut]
00008066 41 22              	    r1 = r1 -1;
00008067 19 D3 56 03        	    [_fOut] = r1;
00008069 02 5E              	    jz  l;
                            	exit:
0000806A A0 90              	    POP r1,r4 FROM [sp];
0000806B 98 9A              	    RETI;    
                            	l:
0000806C 40 F0 E0 95        	    call F_turn_off_relay;
0000806E 45 EE              	    jmp exit;
0 error(s), 0 warning(s).


⌨️ 快捷键说明

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