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

📄 ysjkz.asm

📁 这是一个饮水机的控制软件 包括上水出水温度检测 加热等功能控制
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		JMP		KEYEND2
		MOV		A,ADRH
		MOV		ADDATA1,A
		MOV		A,ADRL
		MOV		ADDATA2,A

		MOV			A,85H		;?1?:
		MOV			TEMPL,A
		MOV			A,0A1H
		MOV			TEMPH,A
		MOV			A,ADDATA2
		SUB			A,TEMPL
		MOV			A,ADDATA1
		SBC			A,TEMPH
		SNZ			C
		JMP			KEYEND1	
		JMP			KEYEND
KEYEND3:
		SNZ			PA.6
		JMP			KEY3
		SNZ			PA.7
		JMP			KEY4
KEYEND:
		RET
KEYIN		ENDP
;**************************************************
;制冷处理
COOL		PROC

		MOV		A,00000001B			;设置系统8分频为采样时钟
		MOV		ACSR,A		
		
		MOV		A,00011001B			;通道1采样
		MOV		ADCR,A
		MOV		A,02H
		MOV		COUNT0,A
COOL1:
		CLR		ADCR.7				;
		SET		ADCR.7				;AD转换复位
		CLR		ADCR.7				;开始AD转换
COOL2:
		CALL	LEDSHOW
		SZ		ADCR.6
		JMP		COOL2
		MOV		A,ADRH
		MOV		ADDATA1,A
		CLR		ADDATA2


;判断是否温度传感器短路或开路
		MOV			A,20	
		SBC			A,ADDATA1
		SNZ			C
		JMP			$+6				;大于20
		SET			QCOL			;小于20启动继电器	
		;CLR			GG
		JMP			COOLEND3

		NOP
		NOP
		NOP
		MOV			A,0F5H	
		SBC			A,ADDATA1
		SZ			C
		JMP			$+5		;小于F5温度检测?
		SET			QCOL			;大于F5关闭继电器
		;CLR			GG
		JMP			COOLEND3

		NOP
		NOP
		CLR		QCOL
		SNZ		COL				;判断有无制冷要求
		JMP		COOLEND3		;关闭制冷继电器
								;判断有无制冷条件	
		MOV		A,0DBH	
		SBC		A,ADDATA1
		SZ		C
		JMP		COOLEND0		;大于15关闭继电器
			
		MOV		A,0E5H			;小于15E?


		SBC		A,ADDATA1
		SNZ		C
		JMP		COOLEND1		;大于6启动继电器
		JMP		COOLEND0		;小于6关闭继电器
COOLEND0:					;进行制冷启动
		;SZ			QSJ
		;JMP			COOLEND3;缺水


		SET			Q5
		CLR			PC1
		SET			PD0
		JMP			COOLEND2
COOLEND1:					;关闭制冷继电器
		CLR			Q5
		CLR			PD0		;启动保温
		SET			PC1
		JMP			COOLEND2
COOLEND3:					;关闭制冷继电器
		CLR			Q5
		SET			PC1
		SET			PD0
		JMP			COOLEND2
COOLEND2:
		RET
COOL		ENDP
;**************************************************
;温度查询1
READTMP		PROC
		MOV		A,00000001B			;设置系统8分频为采样时钟
		MOV		ACSR,A		
		
		MOV		A,00011000B			;通道0采样
		MOV		ADCR,A
		MOV		A,02H
		MOV		COUNT0,A
READTMP1:
		CLR		ADCR.7				;
		SET		ADCR.7				;AD转换复位
		CLR		ADCR.7				;开始AD转换
READTMP2:
		CALL		LEDSHOW
		SZ		ADCR.6
		JMP		READTMP2
		MOV		A,ADRH
		MOV		ADDATA1,A
		CLR		ADDATA2
		SDZ		COUNT0
;判断是否温度传感器短路或开路

		MOV			A,20	
		SBC			A,ADDATA1
		SNZ			C
		JMP			$+6				;大于20
		SET			QHOT			;小于20启动继电器
		;CLR			GG
		CLR			TEMPT		
		JMP			TEMPCHEND1

		NOP
		NOP
		NOP
		MOV			A,0F5H	
		SBC			A,ADDATA1
		SZ			C
		JMP			TEMPTEST		;小于F5温度检测?
		SET			QHOT			;大于F5关闭继电器
		;CLR			GG
		CLR			TEMPT
		RET

TEMPTEST:
		CLR			QHOT
		CLR			TEMPT
		MOV			A,99
		MOV			COUNT0,A
		MOV			A,10H	;????
		MOV			TBLP,A
				
TEMPCH1:
		CLR			C
		TABRDL		TEMPL
		
		MOV			A,ADDATA1
		SBC			A,TEMPL
		SZ			C		
		JMP			TEMPCHEND
		INC			TEMPT
		INC			TBLP
		SDZ			COUNT0
		JMP			TEMPCH1
		JMP			TEMPCHEND
TEMPCHEND:
		SNZ			HOT			;判断有无加热要求
		JMP			TEMPCHEND1	;关闭加热继电器
								;判断有无加热条件	
		MOV			A,80	
		SBC			A,TEMPT
		SNZ			C
		JMP			$+4				;大于80关闭继电器
		JMP			TEMPCHEND0		;小于80启动继电器

		NOP
		NOP
		MOV			A,90	
		SBC			A,TEMPT
		SNZ			C
		JMP			TEMPCHEND1		;大于90关闭继电器
		JMP			TEMPCHEND0		;小于90启动继电器

TEMPCHEND0:					;进行加热启动
		;SZ			QSJ
		;JMP			TEMPCHEND1;缺水



		SET			Q4
		JMP			TEMPCHEND3
TEMPCHEND1:					;关闭加热继电器
		CLR			Q4
		JMP			TEMPCHEND3
TEMPCHEND3:
		MOV			A,TEMPT
		MOV			COUNT2,A
   		CLR 		COUNT1
		MOV 		A,8H
		MOV 		COUNT0,A
ZJCL11:			
    	CLR 		C
		RLC 		COUNT2
		MOV 		A,COUNT1
	 	ADC 		A,COUNT1
		DAA 		COUNT1
	 	SDZ 		COUNT0
	 	JMP 		ZJCL11



		SZ		QCOL;????
		RET;???????		





		MOV			A,COUNT1
		MOV			LCD3,A
		AND			A,00001111B
		MOV			LCD2,A

		CLR			TBLP
		MOV			A,LCD2
		MOV			TBLP,A
		TABRDL		LCD2

		SWAP		LCD3
		MOV			A,LCD3
		AND			A,00001111B
		MOV			LCD3,A

		MOV			A,LCD3
		MOV			TBLP,A
		TABRDL		LCD3
		RET
	
READTMP		ENDP
;******************************************************
QST				PROC				;缺水检查
		SET			DY
		SNZ			DY
		JMP			QST1
		CLR			GG
		SET			QSJ				;设定缺水警
		CLR			Q2				;关闭所有继电器
		CLR			Q3
		RET
QST1:
		SNZ			QSJ
		RET
		CLR			GG
		SET			ZDCX			;启动自动冲洗
		RET
QST				ENDP	
			
;******************************************************
SMT				PROC				;满水检测
		SET			GY
		SNZ			GY
		JMP			DY1
		JMP			GY1

DY1:								;低压情况处理未满水
		SZ			TJI
		JMP			DY11			;处于停机状态
		SZ			ZSM
		JMP			DY11			;处于加水满状态
		RET							;处于其他状态
DY11:			
		CLR			GG
		SET			ZS				;从停机道造水
		RET
GY1:								;高压情况处理(水满)
		SNZ			ZDCX			;上机满水状态
		JMP			GY01
		CLR			GG
		CLR			Q2				;关闭继电器(造水冲洗)
		CLR			Q3
		SET			ZSM				;
		MOV			A,00H
		MOV			LCD1,A
GY01:
		SZ			ZS				;加水状态
		JMP			GY10
	
		SZ			ZSM				;满水等待状态
		JMP			GY11	

		CLR			GG
		SET			TJI
		CLR			Q2
		CLR			Q3
		RET							;其他状态
					
GY10:								;加水状态到水满状态
		CLR			GG
		SET			ZSM
		CLR			BYT				;延时
		CLR         ZST3			;清一次造水时间
  		CLR         ZST4
		RET

GY11:								;加水满状态到停机状态
		CLR			LCD1
		CLR         ZST3			;清一次造水时间
  		CLR         ZST4
		MOV			A,BYT
		XOR			A,20			;泵延时20秒
		SNZ			Z
    	RET
		CLR			BYT
		CLR			GG
		SET			TJI
		RET		
SMT				ENDP
;************************************************
;蜂鳴器驱动
BEEP			PROC
				CALL		LEDSHOW
				CLR			COUNT2
BEEP1:
				SET			BUZZ
				MOV			A,40
				MOV			COUNT1,A
				SDZ			COUNT1
				JMP			$-1
				CLR			PC0
				MOV			A,40
				MOV			COUNT1,A
				SDZ			COUNT1
				JMP			$-1
				SDZ			COUNT2
				JMP			BEEP1
				RET
BEEP			ENDP
;**************************************************
CXTP			PROC						;冲洗时间判断
				SZ			ZDCX
				JMP			CXTP1
				SZ			QZCX
				JMP			CXTP2
				RET
CXTP1:
      		    CLR         C
				MOV			A,CXT
				SUB			A,10		     ;???????20			
				SNZ			C
        		JMP			CXK
			
				CLR			CXT				;满20秒,进入停机状态
				CLR			GG
				SET			TJI	
				JMP			CXG
CXTP2:
				MOV			A,CXT
				XOR			A,60			;?????60;强制冲洗60妙	
				SNZ			Z
        		JMP			CXK
			
				CLR			CXT				;满90秒,进入停机状态
				CLR			GG
				SET			TJI	
				JMP			CXG
CXK:
				SET			Q2				;打开冲洗继电器
				SET			Q3
				RET
CXG:
				CLR			Q2
				CLR			Q3				;关闭冲洗继电器
				RET
CXTP			ENDP	
;************************************************************
;************************************************************
;led显示
LEDSHOW			PROC
				SET		PA.4
				SET		PB.7
				SET		PA.5
				MOV		A,LCD1
				CALL	LEDS
				CLR		PA.5
				CALL	DELAY
				SET		PA.5
				SET		PB.7
				SET		PA.4
				MOV		A,LCD2
				CALL	LEDS
				CLR		PA.4
				CALL	DELAY
				SET		PA.4
				SET		PA.5
				SET		PB.7
				MOV		A,LCD3
				CALL	LEDS
				CLR		PB.7
				CALL	DELAY
				SET		PA.4
				SET		PA.5
				;SET		PB.7
				RET
LEDSHOW			ENDP
LEDS			PROC
				MOV		COUNT0,A
                
                MOV		A,08H
                MOV		COUNT2,A
EE_SD1:         RLC		COUNT0
                SZ		C
                SET		SDA
                SNZ		C
                CLR		SDA
                SET		SCL
               	NOP
                CLR		SCL
                SDZ		COUNT2
                JMP		EE_SD1
				RET
LEDS			ENDP

DELAY			PROC		
				MOV		A,24H
				MOV		DCOUNT0,A
				MOV		A,24H
				MOV		DCOUNT1,A
DEL6MS0:
				MOV		DCOUNT1,A
DEL6MS1:
				SDZ		DCOUNT1
				JMP		DEL6MS1
				SDZ		DCOUNT0
				JMP		DEL6MS0
				RET
DELAY			ENDP
;**********************************************
XUH			PROC
				RL		LCD4		
				
				SDZ		LCD5
				RET
				
				MOV		A,04H
				MOV		LCD5,A
				SET		LCD4
				CLR		LCD4.0
				CLR		LCD4.3
				RET
XUH			ENDP

;***********************************************
				ORG		0700H
TABLE1:			DC			00C0H,00F9H,00A4H,00B0H,0099H
				DC			0092H,0082H,00F8H,0080H,0090H

				ORG		0710H
TABLE2:
				DC			00EBH,00EAH,00E9H,00E8H,00E7H
				DC			00E6H,00E5H,00E4H,00E3H,00E2H
				DC			00E1H,00E0H,00DFH,00DEH,00DDH
				DC			00DCH,00DBH,00DAH,00D9H,00D7H
				DC			00D6H,00D4H,00D2H,00D1H,00CFH
				DC			00CEH,00CDH,00CBH,00C9H,00C7H
				DC			00C5H,00C3H,00C2H,00C0H,00BFH
				DC			00BEH,00BCH,00DAH,00B8H,00B6H
				DC			00B4H,00B2H,00B0H,00AFH,00ADH
				DC			00AAH,00A8H,00A6H,00A4H,00A2H
				DC			009FH,009DH,009BH,009BH,0099H
				DC			0097H,0095H,0093H,0091H,008FH
				DC			008DH,008BH,0089H,0087H,0085H
				DC			0083H,0080H,007EH,007DH,007BH
				DC			0079H,0077H,0075H,0073H,0071H
				DC			006EH,006CH,006AH,0069H,0067H
				DC			0066H,0064H,0063H,0062H,0061H
				DC			0061H,005FH,005DH,005BH,0059H
				DC			0055H,0053H,0051H,004FH,004DH
				DC			004BH,0049H,0047H,0046H,0045H


⌨️ 快捷键说明

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