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

📄 hr52_10_p3.asm

📁 采用的是凌阳的65系列单片机,型号是2408控制板中有10段水位以及衣物重量测试等功能
💻 ASM
📖 第 1 页 / 共 2 页
字号:
					;*********如果在是无水模式就检测程序键*****************
					TST				FLAG3,SW_WORK
					BEQ				XD_YYY1
					TST				KEY_S,2
					BEQ				XD_YYY1
					TST				KEY_L,2
					BNE				XD_YYY1
					JSR				Delay
					TST				KEY_S,2
					BEQ				XD_YYY1
					SET				KEY_L,2
					JSR				BUZ
					ASL				WS_MODE
					JSR				WS_LED
					
					ldX		 		#C_STACK_BOTTOM   ;设置堆栈,将指针指想栈顶
             		txs 
					LDA				#0
					STA				KEY_S
			 		STA				FLAG1
             		STA				FLAG2
             		LDA				FLAG3
             		AND				#10000000B
             		STA				FLAG3
             		
					JMP				AAA							
XD_YYY1:
					;*****************************************************
					
					;检测门盖
					TST			PB,MG
					BEQ			BH_NKG		
					JSR			Delay
					TST			PB,MG
					BEQ			BH_NKG			
					SET			E_FLAG,AQKG		;.................排水延时间时的保护开盖报警
					JSR			WARM	
					LDA			#7
					STA			BH_S				
BH_NKG:

					TST			FLAG3,BH_JS
					BNE			BH_NE	
					JMP			END_BH											
BH_NE:				
					JSR			CHECK_P								
					JSR			CHECK_S
					
					SET			PC,AK	
					SET			PD,PS			
																		
					JMP			BH_LOOP
END_BH:				
					CLR			FLAG2,BH_7
	
					RTS
					.ENDP

;..........................................
;               	间脱(JT_T_SET)
;..........................................					
.PUBLIC				JT_WORK
JT_WORK:			.PROC			
					LDA			JT_T_SET
					STA			JT_T			
					LDA			#0
					STA			R_ALL
					SET			FLAG1,SM_G
					SET			FLAG3,FLAG_TS			;开脱水标记	
					LDA			#0
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW																																										
LOOP_JT:			
					;<<<<<<<<<<<<<<<<<<<<<<<<<撞桶<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
					TST			ZT_FLAG,CF_ZT
					BEQ			JT_NZT
					LDA			#0
					STA			ZT_FLAG
					;
					;............读回时间...........
					;
					LDA				ZT_T_SM
					STA				WASH_TIMES					
					LDA				ZT_T_SS
					STA				SYS_S
					
					DEC			ZT_CS
					BNE			JTZT_N3_1
					SET			E_FLAG,ZT3C		;3次报警
					JSR			WARM					
					JMP			JTZT_N3_2					
JTZT_N3_1:			
					JSR			PH_WASH		
											;.......1分钟平衡洗............
JTZT_N3_2:			
	
					LDA			JT_T_SET
					STA			JT_T			
					LDA			#0
					STA			R_ALL
					SET			FLAG1,SM_G
					SET			FLAG3,FLAG_TS			;开脱水标记	
					LDA			#0
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW		
JT_NZT:					

					;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
					TST			PB,MG
					BEQ			JT_NKG		
					JSR			Delay
					TST			PB,MG
					BEQ			JT_NKG
					LDA			#0
					STA			ZT_FLAG
					SET			E_FLAG,AQKG				;.................间脱时的保护开盖报警	
					JSR			WARM
					LDA			#0					;.....开撞桶..........
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW			
JT_NKG:				
					
					JSR			CHECK_P
					JSR			CHECK_S
					
					TST			FLAG1,PS_BH				;7S延时保护
					BEQ			JT_NBH
					LDA			R_ALL
					STA			JT_S
					;	
					LDA			#0
					STA			ZT_FLAG
					;
					SET			FLAG2,BH_7						
					CLR			FLAG1,SM_G
					CLR			FLAG3,FLAG_TS			;关脱水标记
					JSR			PSBH_WORK				;调用延时保护函数
					SET			FLAG3,FLAG_TS			;开脱水标记
					LDA			JT_S					
					STA			R_ALL
					SET			FLAG1,SM_G
					
					JSR			CHECK_S
					
					;.....开撞桶(无水时候不开)
					LDA			#0
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW
									
JT_NBH:				
					LDA			R_ALL
					CMP			#40
					BCC			JT_OT
					CLR			PD,ZZ
					JMP			JT_OT2			
JT_OT:					
					SET			PD,ZZ			
JT_OT2:					
					LDA			R_ALL
					CMP			#70
					BNE			JT_N70
					LDA			#0
					STA			R_ALL
					DEC			JT_T
					BNE			JT_N70
					JMP			END_JT					
JT_N70:			
					
					SET			PC,AK
					JMP			LOOP_JT
END_JT:				
					CLR			FLAG3,FLAG_TS			;关脱水标记	
					CLR			FLAG1,SM_G
					RTS
					.ENDP	
					
					
.PUBLIC				LT_WORK			
LT_WORK:			.PROC
					LDA			LT_M
					STA			BT_M
					LDA			LT_S
					STA			BT_S
					SET			FLAG1,SM_G
					SET			FLAG1,SYS_G
					SET			FLAG3,FLAG_TS			;开脱水标记
					
					;.....开撞桶(无水时候不开)
					LDA			#0
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW
										
LOOP_LT:			
					;*********如果在是无水模式就检测程序键*****************
					TST				FLAG3,SW_WORK
					BEQ				XD_YYY2
					TST				KEY_S,2
					BEQ				XD_YYY2
					TST				KEY_L,2
					BNE				XD_YYY2
					JSR				Delay
					TST				KEY_S,2
					BEQ				XD_YYY2
					SET				KEY_L,2
					JSR				BUZ
					ASL				WS_MODE
					JSR				WS_LED
					
					ldX		 #C_STACK_BOTTOM   ;设置堆栈,将指针指想栈顶
             	    txs 
					LDA			#0
					STA			KEY_S
			 		STA			FLAG1
             		STA			FLAG2
             		LDA				FLAG3
             		AND				#10000000B
             		STA				FLAG3
             		
					JMP				AAA							
XD_YYY2:
					;*****************************************************
		
					JSR			CHECK_P
					JSR			CHECK_S
					;撞桶
					;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
					TST			ZT_FLAG,CF_ZT
					BEQ			LT_NZT
					LDA			#0
					STA			ZT_FLAG
					
					;<<<<<<<<如果是在无水模式就直接报警..............
					TST			FLAG3,SW_WORK
					BEQ			LT_WS
					SET			E_FLAG,ZT3C		;3次报警
					JSR			WARM				
					JMP			KKKKK
LT_WS:					
					;............读回时间...........
					LDA			ZT_T_SM
					STA			WASH_TIMES					
					LDA			ZT_T_SS
					STA			SYS_S					
											
					DEC			ZT_CS
					BNE			LTZT_N3
					SET			E_FLAG,ZT3C		;3次报警
					JSR			WARM										
					JMP			LTZT_N3_2								
LTZT_N3:					
					JSR			PH_WASH			
LTZT_N3_2:			
					JSR			JT_WORK
					LDA			LT_M
					STA			BT_M
					LDA			LT_S
					STA			BT_S
					
					
KKKKK:		;..无水报警跳转到这里

							
					SET			FLAG1,SM_G
					SET			FLAG1,SYS_G
					SET			FLAG3,FLAG_TS			;开脱水标记
					;.....开撞桶(无水时候不开)
					LDA			#0
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW
LT_NZT:					

					;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<							
					;.........门盖..............
					TST			PB,MG
					BEQ			LT_NKG		
					JSR			Delay
					TST			PB,MG
					BEQ			LT_NKG
					;
					LDA			#0					;.....关撞桶.............................
					STA			ZT_FLAG
					;					
					SET			E_FLAG,AQKG				;.................间脱时的保护开盖报警	
					JSR			WARM
					;
					LDA			#0					;.....开撞桶(无水时候不开)
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW
LT_NKG:				
					;.......................
										
					TST			FLAG1,PS_BH				;排水阀保护
					BEQ			LT_NBH
					;
					LDA			#0
					STA			ZT_FLAG					;.....关撞桶.,..................
					;
					CLR			FLAG1,SYS_G
					CLR			FLAG1,SM_G
					CLR			FLAG3,FLAG_TS			;关脱水标记
					SET			FLAG2,BH_7
					JSR			PSBH_WORK				;调用延时保护函数
					SET			FLAG3,FLAG_TS			;开脱水标记
					SET			FLAG1,SM_G
					SET			FLAG1,SYS_G
					;
					LDA			#0						;.....开撞桶(无水时候不开)
					STA			ZT_FLAG
					STA			ZT_COUNT	
					SET			ZT_FLAG,ZT_ALLOW
					
LT_NBH:				
					SET			PD,ZZ
					SET			PC,AK			
					TST			FLAG1,SYS_G		;时间到??
					BNE			LT_NE
					JMP			END_LT
LT_NE:					
					JMP			LOOP_LT
END_LT:				
					LDA			#0
					STA			ZT_FLAG
					CLR			FLAG3,FLAG_TS			;关脱水标记
					LDA			#3
					STA			ZT_CS
					CLR			PD,ZZ
					
					
					RTS
					.ENDP		



.PUBLIC				GT_WORK
GT_WORK:			.PROC
					SET			FLAG1,SYS_G
					SET			FLAG1,SM_G
LOOP_GT:					
					;.........门盖..............
					TST			PB,MG
					BEQ			GT_NKG		
					JSR			Delay
					TST			PB,MG
					BEQ			GT_NKG
					SET			E_FLAG,AQKG				;.................关时的保护开盖报警..................	
					JSR			WARM					
GT_NKG:									
					JSR			CHECK_P
					JSR			CHECK_S
					
					TST			FLAG1,SYS_G
					BNE			GT_NE
					JMP			END_GT									
GT_NE:																	
					SET			PC,AK
					SET			PD,PS
					
					JMP			LOOP_GT
END_GT:		
					CLR			FLAG1,SYS_G
					CLR			FLAG1,SM_G							
					CLR			PD,PS
					CLR			PC,AK
					RTS
					.ENDP
					
					
.PUBLIC				D5_S
D5_S:				.PROC
					LDA		#0
				 	STA		PD
				 	LDA		#00000100B				;关所有口
				 	STA		PC
					LDA			#1
					STA			BT_M
					LDA			#5
					STA			BT_S
					SET			FLAG1,SYS_G
					SET			FLAG1,SM_G
LOOP_D5:					
					JSR			CHECK_S
					JSR			CHECK_P
					
					TST			FLAG1,SYS_G
					BNE			D5_NE
					JMP			END_D5									
D5_NE:							
					JMP			LOOP_D5
END_D5:

					RTS
					.ENDP




.PUBLIC				PS_30S
PS_30S:				.PROC
					LDA		#1
					STA		BT_M
					LDA		#30
					STA		BT_S
					SET		FLAG1,SM_G
					SET		FLAG1,SYS_G
LOOP_PS30:			
					JSR		CHECK_P
					JSR		CHECK_S
					
					TST		FLAG1,SYS_G
					BNE		P30_NE
					JMP		END_P30								
P30_NE:					
					
					
					SET			PC,AK
					SET			PD,PS
					JMP			LOOP_PS30
END_P30:

					RTS
					.ENDP				

















;<<<<<<<<<<<<<<<<无水工作模式<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
WS_WORK:		
				LDA			#255
				STA			LED_BUF1			
				STA			LED_BUF2
				STA			LED_BUF3
				LDA			#95H
				STA			LED_BUF5
				LDA			#48H
				STA			LED_BUF4			
				lda 		P_BUZ_Ctrl
    			ORA 		#00000110b
    			sta 		P_BUZ_Ctrl
		   		jsr		    Delay
		   		jsr			Delay
		   		jsr		    Delay
		   		jsr			Delay
		   		jsr		    Delay
		   		jsr			Delay
		   		jsr		    Delay
		   		jsr			Delay
       	    	lda 		P_BUZ_Ctrl
    			AND 		#11111001b
    			sta 		P_BUZ_Ctrl
    			
    			
    			LDA			#1
    			STA			WS_MODE
AAA:    			
				LDA			#0
				STA			ZT_COUNT
				LDA			#0
				STA			PD
				LDA			#00000100B
				STA			PC
    			SET			FLAG3,SW_WORK	;无水工作标记
    			LDA			#255
    			STA			KEY_L
    			LDA			#1
    			STA			BT_M
    			LDA			#3   						
    			STA			BT_S
    			SET			FLAG1,SYS_G
WS_C_LOOP:
				JSR			CHECK_P    			
    			;....检测程序键.....
    			TST			KEY_S,2
    			BEQ			WS_NK2
    			TST			KEY_L,2
    			BNE			WS_NK2						
    			JSR			Delay
    			TST			KEY_S,2
    			BEQ			WS_NK2
    			SET			KEY_L,2
    			JSR			BUZ
    			;
    			LDA			#3   						
    			STA			BT_S
    			;
    			ASL			WS_MODE
    			JSR			WS_LED
WS_NK2:  	

				;....检测启动键...
				TST			KEY_S,4
				BEQ			WS_NK4			
				TST			KEY_L,4
				BNE			WS_NK4
				JSR			Delay
				TST			KEY_S,4
				BEQ			WS_NK4
				SET			KEY_L,4
				JSR			BUZ
				CLR			FLAG3,SSS
				JMP			END_WS_C			
WS_NK4:				
    			;...软启动........
				TST			FLAG1,SYS_G
				BNE			WS_NRQD	
				TST			FLAG3,SSS
				BNE			WS_NRQD
				CLR			FLAG3,SSS		
				JMP			END_WS_C								
WS_NRQD:				
				
				JMP			WS_C_LOOP
END_WS_C:				
				set			FLAG2,BF_BG
				set			FLAG1,WORK

WS_LOOP:		
				TST			WS_MODE,0
				BEQ			WS_M0
				
WS_M0:
				TST			WS_MODE,1
				BEQ			WS_M1
						
				LDA			LED_BUF2
				STA			SHINE2_H
				AND			#11110111B
				STA			SHINE2_L
				LDA			#0
				STA			SHINE3_H
				STA			SHINE3_L
				
				LDA				#60
				STA				BT_S
				LDA				#5
				STA				BT_M
				STA				WASH_TIMES
				JSR				XD_WORK
				
WS_M1:				
				TST				WS_MODE,2
				BEQ				WS_M2
				
				
				LDA				LED_BUF2
				STA				SHINE2_H
				AND				#11110111B
				STA				SHINE2_L
				LDA				LED_BUF3
				STA				SHINE3_H
				AND				#01111111B
				STA				SHINE3_L
				
				LDA				#5
				STA				LT_M
				STA				WASH_TIMES
				LDA				#60
				STA				LT_S
				JSR				LT_WORK	
				
WS_M2:
				;结束鸣叫
				JSR			FINISH_W
				jsr			$;跳电
				JMP			WS_LOOP
			







.PUBLIC			WS_LED
WS_LED:			.PROC
				TST			WS_MODE,3
    			BEQ			WS_MN4
    			LDA			#1
    			STA			WS_MODE		
WS_MN4:    			
    			TST			WS_MODE,0		;C1
    			BEQ			WS_L_N0
    			
    			LDA			#255
				STA			LED_BUF1			
				STA			LED_BUF2
				STA			LED_BUF3
				LDA			#95H
				STA			LED_BUF5
				LDA			#48H
				STA			LED_BUF4			
    			
WS_L_N0:    			
    			TST			WS_MODE,1		;C2
    			BEQ			WS_L_N1
    			
    			LDA			#08H
				STA			LED_BUF1
				LDA			#00101000B			
				STA			LED_BUF2
				LDA			#0
				STA			LED_BUF3
				LDA			#95H
				STA			LED_BUF5
				LDA			#9EH
				STA			LED_BUF4			
    			
    			
WS_L_N1:    	
				TST			WS_MODE,2		;C3
    			BEQ			WS_L_N2
    			
    			LDA			#08H
				STA			LED_BUF1
				LDA			#00101000B			
				STA			LED_BUF2
				LDA			#80H
				STA			LED_BUF3
				LDA			#95H
				STA			LED_BUF5
				LDA			#5EH
				STA			LED_BUF4			
WS_L_N2:    	
				RTS
				.ENDP









⌨️ 快捷键说明

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