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

📄 shibiema.asm

📁 智能识别系统程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		MOVF	FSR,0
		XORLW	04H			; 4   TO	TIAOWEN
		BTFSC	STATUS,2
		GOTO	TIAOWEN_L		;等待键放!
		GOTO	TIAOWEN_NO		;键放!
		

TIAOWEN_NO

		BTFSC	TWEN_F,0
		GOTO	TIAOWEN1



;______________________________

	
		BCF		LED		
		NOP
		NOP
        NOP
		BCF		JIARE		;no tiaowen!关加热器
		NOP
		NOP
		NOP
       
		RETURN
;______________________________		


TIAOWEN1		
		CALL	TIAOWEN_ZI			;调用调温子程序.
		RETURN


QUE_SHUI
		
		RETURN

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;		区1,2开或关判断子程序	自动状态下
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

QU12_ZI
		
		BTFSC	FBIAO,0			;水位检测
		RETURN

		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU1_NO						;ZI DONG
		CALL	DEL100MS
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU1_NO	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	.2			; 2   TO	 TONGDAO 1
		BTFSS	STATUS,2
		GOTO	QU1_NO
		GOTO	QU1_YES

QU1_YES
;_________

		MOVLW	.1
		ADDWF	T1_F
;_________
QU1_L
		CALL	KEYSCAN
		COMF	VALUE,0									;ZI DONG
		BTFSC	STATUS,2	;等待键放!
		GOTO	QU1_NO		;键放!
		CALL	TRANSLATE
		MOVF	FSR,0
		XORLW	.2		; 	2   TO	QU1
		BTFSC	STATUS,2
		GOTO	QU1_L		;等待键放!
		GOTO	QU1_NO			;键放!
		
QU1_NO
		BTFSS	T1_F,0
		GOTO	QU1_KAI
		GOTO	QU1_GUAN

;______________________________________

QU1_KAI
		BSF		LAG_KAIGUAN,1
		;=======================
		;BCF		LAG_FA,1	;一定不能要,因为区开的时候不代表阀门是否开??
		;=======================
		BSF		T1LED
		NOP
		NOP
		NOP
		CALL	XIAN_SHI1		;湿度1采集,BCD转化,显示
		

		CALL	SHANGXIA_DIS1	;上下限1显示
		CALL	DEL1MS
		CALL	DEL1MS
		CALL	QU1PAN			;子程序中检测了水位/
		
		GOTO	QU2
															;ZI DONG


QU1_GUAN
		BCF		LAG_KAIGUAN,1
;=======================================
		;CALL	SHUNXU_CLOSE1		
		BSF		LAG_FA,1
;____________________________
		BTFSC	LAG_FA,2		
		GOTO	GG1	
;========================================
	
		BCF		T1LED		;关掉灯
		NOP	
		NOP
		BCF		FA1
		NOP		
		NOP
GG1
		CLRF	BUF1
		CLRF	BUF2		;关掉湿度显示						;ZI DONG
		CALL	Z3SHI1	
		
		CLRF	BUF1
		CLRF	BUF2
		CLRF	BUF3		;关掉上下限1显示
		CLRF	BUF4
		CALL	Z1
		
		
		;BCF		T1LED	;change
		NOP
		NOP
		BCF		FLAG_PENWU,0
		GOTO	QU2


;______________________________________

QU2


		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU2_NO
		CALL	DEL100MS									;ZI DONG
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU2_NO	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	.3			; 3  TO	 TONGDAO 2
		BTFSS	STATUS,2
		GOTO	QU2_NO
		GOTO	QU2_YES

QU2_YES
;_________

		MOVLW	.1
		ADDWF	T2_F
;_________
QU2_L
		CALL	KEYSCAN
		COMF	VALUE,0											;ZI DONG
		BTFSC	STATUS,2	;等待键放!
		GOTO	QU2_NO		;键放!
		CALL	TRANSLATE
		MOVF	FSR,0
		XORLW	.3		; 	3   TO	QU2
		BTFSC	STATUS,2
		GOTO	QU2_L		;等待键放!
		GOTO	QU2_NO			;键放!

QU2_NO
		BTFSS	T2_F,0
		GOTO	QU2_KAI
		GOTO	QU2_GUAN
;_____________________
QU2_KAI
		BSF		LAG_KAIGUAN,2
		;========================
		;BCF		LAG_FA,2	;一定不能要,因为区开的时候不代表阀门是否开??
		;========================
		BSF		T2LED												;ZI DONG
		NOP
		NOP
		CALL	XIAN_SHI2	;湿度2采集,BCD转化,显示
		

		CALL	SHANGXIA_DIS2	;上下限2显示

		CALL	DEL1MS
		CALL	DEL1MS
		CALL	QU2PAN			;子程序中检测了水位/
		CALL	BANG_PAN
		RETURN

QU2_GUAN
		BCF		LAG_KAIGUAN,2
;=======================================
		;CALL	SHUNXU_CLOSE2		
		BSF		LAG_FA,2
;____________________________
		BTFSC	LAG_FA,1
		GOTO	GG22
;========================================

		BCF		T2LED
		NOP	
		nop
		BCF		FA2
		NOP		
		NOP														;ZI DONG
GG22
		CLRF	BUF1
		CLRF	BUF2		;关掉湿度显示
		CALL	Z3SHI2	
		
		CLRF	BUF1
		CLRF	BUF2
		CLRF	BUF3		;关掉上下限显示
		CLRF	BUF4
		CALL	Z2
		NOP
		NOP
	
		BCF		FLAG_PENWU,1
		CALL	BANG_PAN
;_____________________


		RETURN
;===========================================================================
		;	子程序
;===========================================================================
BANG_PAN
		MOVF	LAG_KAIGUAN,F
		BTFSS	STATUS,2
		GOTO	I00
		BCF		PENWU
		NOP
		NOP
;~~~~~~~~~~~~~~~~~~

		BTFSS	FANGYA,0
		GOTO	JJJ1
;=======================
		CALL	FA1_FA2
;=======================
;~~~~~~~~~~~~~~~~~~
	
JJJ1
		
		BCF		T1LED	;跳到此处是人工强制关区所致,需关区电源
		NOP
		NOP
		BCF		T2LED
		NOP
		NOP
		
		GOTO	KUQI1

I00		MOVF	FLAG_PENWU,F
		BTFSS	STATUS,2

		RETURN

		BCF		PENWU
		NOP
		NOP
;~~~~~~~~~~~~~~~~~~

		BTFSS	FANGYA,0
		GOTO	KUQI1
;=======================
		CALL	FA1_FA2
;=======================
;~~~~~~~~~~~~~~~~~~
	
KUQI1
		BCF		FA1
		NOP
		NOP
		
		BCF		FA2
		NOP
		NOP
		NOP
		;CLRF	LAG_FA
		CLRF	FANGYA
		RETURN
;=======================================
;=======================================
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;		区1,2开或关判断子程序	手动状态下
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
QU12_SHOU

		BTFSC	FBIAO,0			;水位检测
		RETURN
	
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU1_NO8
		CALL	DEL100MS
		CALL	KEYSCAN													;SHOU_DONG
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU1_NO8	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	.2			; 2   TO	 TONGDAO 1
		BTFSS	STATUS,2
		GOTO	QU1_NO8
		GOTO	QU1_YES8

QU1_YES8
;_________

		MOVLW	.1
		ADDWF	T1_F
;_________
QU1_L8
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2	;等待键放!
		GOTO	QU1_NO8		;键放!
		CALL	TRANSLATE
		MOVF	FSR,0
		XORLW	.2		; 	2   TO	QU1
		BTFSC	STATUS,2
		GOTO	QU1_L8		;等待键放!
		GOTO	QU1_NO8			;键放!								;SHOU_DONG
		
QU1_NO8
		BTFSS	T1_F,0
		GOTO	QU1_KAI8
		GOTO	QU1_GUAN8

;______________________________________

QU1_KAI8
		BSF		LAG_KAIGUAN,1
;=======================================
		BCF		LAG_FA,1	;要,手动状态下,区开的情况下,阀门一定是开的,在从手动向自动跳时有用
;=======================================
		BSF		T1LED
		
		NOP
		CALL	XIAN_SHI1		;湿度1采集,BCD转化,显示
		

		CALL	SHANGXIA_DIS1	;上下限1显示
		;CALL	QU1PAN			;子程序中检测了水位/
		CALL	DEL1MS
		CALL	DEL1MS
		BSF		PENWU
		NOP
		NOP																;SHOU_DONG
		BSF		FANGYA,0
		BSF		FA1
		NOP
		NOP
		;BSF		T1LED
		NOP
		NOP
		BSF		FLAG_PENWU,0		;重要,不可删
		GOTO	QU28



QU1_GUAN8
		BCF		LAG_KAIGUAN,1
;=======================================
		;CALL	SHUNXU_CLOSE1
		
		
		BSF		LAG_FA,1
;____________________________
		BTFSC	LAG_FA,2
		GOTO	GO1	
;========================================
		BCF		T1LED		;关掉灯
		NOP	
		nop
		BCF		FA1
		NOP		
		NOP																;SHOU_DONG

GO1
		CLRF	BUF1
		CLRF	BUF2		;关掉湿度显示
		CALL	Z3SHI1	
		
		CLRF	BUF1
		CLRF	BUF2
		CLRF	BUF3		;关掉上下限1显示
		CLRF	BUF4
		CALL	Z1
		
	
		;BCF		T1LED
		NOP
		NOP
		BCF		FLAG_PENWU,0
		GOTO	QU28


;______________________________________

QU28


		CALL	KEYSCAN
		COMF	VALUE,0												;SHOU_DONG
		BTFSC	STATUS,2
		GOTO	QU2_NO8
		CALL	DEL100MS
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	QU2_NO8	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	.3			; 3  TO	 TONGDAO 2
		BTFSS	STATUS,2
		GOTO	QU2_NO8
		GOTO	QU2_YES8

QU2_YES8
;_________

		MOVLW	.1
		ADDWF	T2_F
;_________
QU2_L8
		CALL	KEYSCAN
		COMF	VALUE,0											;SHOU_DONG
		BTFSC	STATUS,2	;等待键放!
		GOTO	QU2_NO8		;键放!
		CALL	TRANSLATE
		MOVF	FSR,0
		XORLW	.3		; 	3   TO	QU2
		BTFSC	STATUS,2
		GOTO	QU2_L8		;等待键放!
		GOTO	QU2_NO8			;键放!

QU2_NO8
		BTFSS	T2_F,0
		GOTO	QU2_KAI8
		GOTO	QU2_GUAN8
;_____________________
QU2_KAI8
		BSF		LAG_KAIGUAN,2
;=======================================
		BCF		LAG_FA,2	;要,手动状态下,区开的情况下,阀门一定是开的,在从手动向自动跳时有用
;=======================================
		BSF		T2LED
		NOP
		NOP
		CALL	XIAN_SHI2	;湿度2采集,BCD转化,显示
		

		CALL	SHANGXIA_DIS2	;上下限2显示


		;CALL	QU2PAN			;子程序中检测了水位/
		CALL	DEL1MS
		CALL	DEL1MS
		BSF		PENWU
		NOP
		NOP
		BSF		FANGYA,0									;SHOU_DONG
		BSF		FA2
		NOP
		NOP
		;BSF		T2LED
		NOP
		NOP
		BSF		FLAG_PENWU,1
		RETURN


	

QU2_GUAN8
		BCF		LAG_KAIGUAN,2
;=======================================
		;CALL	SHUNXU_CLOSE2
		
		
		BSF		LAG_FA,2
;____________________________
		BTFSC	LAG_FA,1
		GOTO	GO2
;========================================
		
		BCF		T2LED
		NOP	
		NOP
		BCF		FA2														;SHOU_DONG
		NOP		
		NOP
GO2
		CLRF	BUF1
		CLRF	BUF2		;关掉湿度显示
		CALL	Z3SHI2	
		
		CLRF	BUF1
		CLRF	BUF2
		CLRF	BUF3		;关掉上下限显示
		CLRF	BUF4
		CALL	Z2
		NOP
		NOP
	
		BCF		FLAG_PENWU,1								;SHOU_DONG
		CALL	BANG_PAN
;_____________________;;

		RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FA1_FA2

SIYANG01
		MOVLW	.9
		MOVWF	JISU
YAN2S1
		CALL	DELAY200MS
		CALL	DELAY200MS
		CALL	CAI_WEN_YA
		CALL	DELAY200MS
		CALL	DELAY200MS
		DECFSZ	JISU,F
		GOTO	YAN2S1
		;CLRF	LAG_FA	;不能在在这清,不然会影响!!!也就是在放压时也不能清,别的时候保持原状态
		RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLEAR_1
		CLRF	BUF1
		CLRF	BUF2
		CLRF	BUF3
		CLRF	BUF4
		CALL	Z1			;QING 上限,清空!灭.
		CALL	Z2			;QING 下限,清空!灭.
		CALL	Z3SHI1		;清所有七段显示码,清空!灭.
		CALL	Z3SHI2		;清湿度2,灭.
		CALL	Z4			;清空水温和压力,灭.
		CLRF	RC
		CLRF	RD
		CLRF	RE			;____所有输出为低
		RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;			程序开始
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
START

                
;——————————————————————————	
		;bsf		STATUS,5
		;MOVLW	B'00000011'
		;MOVWF	OPTION_REG	;16预分频,16次TMR0加1
		BCF		STATUS,5
		CLRF	INTCON
		BCF		INTCON,TOIE
		BCF		INTCON,GIE
		BCF		INTCON,TOIF
		;MOVLW		00H
		;MOVWF		TMR0
		
		
;——————————————————————————	
		CLRF	LAG_KAIGUAN
		CLRF	FANGYA
		CLRF	SIJI
		CLRF    LAG
		CLRF	LAG2
		CLRF	FBIAO
		CLRF	SZDF
		CLRF	TWEN_F
		CLRF	FLAG_PENWU
		CLRF	T1_F
		CLRF	T2_F
		CLRF	LAG_FA
		BSF		LAG_FA,1
		BSF		LAG_FA,2
		
		MOVLW	.1
		MOVWF	ADCNT

		CLRF	MS
		CLRF	MS+1
		CLRF	MS50
		CLRF	SECOND
		;CLRF	MINUTE
;——————————————————————————			
		BCF		STATUS,5
		MOVLW	B'11111111'		;全为按键接口!	
		BSF		STATUS,5
		MOVWF	TRISB
		BCF		STATUS,5
	
;——————————————————————————		
		NOP
		NOP
		
		MOVLW	B'00000000'			
		BSF		STATUS,5
		MOVWF	TRISC
		;BCF		STATUS,5
		CLRF    RC
		
;——————————————————————————			

		
		
		MOVLW	B'00000000'			
		BSF		STATUS,5
		MOVWF	TRISD
		BCF		STATUS,5
		CLRF    RD
;——————————————————————————	
		NOP
		BANKSEL	ADCON1
		MOVLW	B'010'
		MOVWF	ADCON1			;A口全为模拟口,E口全为数字口
		
		MOVLW	B'010'
		BSF		STATUS,5			
		MOVWF	TRISE
		BCF		STATUS,5
;——————————————————————————			
		
		MOVLW	B'11111111'			
		BSF		STATUS,5
		MOVWF	TRISA
		BCF		STATUS,5
;——————————————————————————					


		
	
		MOVLW	77H
		MOVWF	70H
	
		MOVLW	0B7H
		MOVWF	71H

		MOVLW	0D7H
		MOVWF	72H

		MOVLW	0E7H
		MOVWF	73H


		MOVLW	7BH
		MOVWF	74H

		MOVLW	0BBH
		MOVWF	75H

		MOVLW	0DBH
		MOVWF	76H

		MOVLW	0EBH
		MOVWF	77H

		MOVLW	7DH
		MOVWF	78H


		MOVLW	0BDH
		MOVWF	79H

		MOVLW	0DDH
		MOVWF	7AH


		MOVLW	0EDH
		MOVWF	7BH


		MOVLW	7EH
		MOVWF	7CH

		MOVLW	0BEH
		MOVWF	7DH


		MOVLW	0DEH
		MOVWF	7EH

		MOVLW	0EEH
		MOVWF	7FH

		CALL	ROMR_TIME  ;开机定时器开始运行.把EEPROM中的天数和小时积存器调出。

		
;——————————————————————————	

DIANYUAN


		CALL	CLEAR_1

		CLRF	FBIAO		;CLER 缺水标志位.为加水重新启动做准备@@@@%^&*()~~~~~~~~~~~~

;——————————————————————————	
			;下面等待启动键!电源键.AND 启动识别码!!!
;——————————————————————————	

;=========================================
;		动识别码!!!
;=========================================

	CALL	SHIBIEMA_R
	MOVLW	.79
	BANKSEL	SHIBIEMA
	XORWF	SHIBIEMA,W
	SKPZ
	GOTO	$

;========================================
CHECK

		MOVLW	.180			;本程序设置20天
		XORWF	TIAN,W
		;MOVLW	.5			;本程序设置2MINUTE
		;XORWF	MINUTE,W
		SKPNZ
		



		BSF		SIJI,0
		;——————————————————————————	

		BTFSS	SIJI,0
		GOTO	SI_NO
		BCF		INTCON,TOIE		;定时器停止运行(实际停止中断,时间积存器停止自加)
		BCF		INTCON,GIE
		CALL	SERVE
		GOTO	$				;进入死循环

		;——————————————————————————	
SI_NO
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	CHECK			;等待启动键!
		CALL	DEL100MS
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	CHECK	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	00H				;0   TO	 POWER
		BTFSS	STATUS,2
		GOTO	CHECK

;———————
DENG_0

		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2		;等待键放!
		GOTO	FANG_0
		CALL	TRANSLATE
		MOVF	FSR,0
		XORLW	00H				;0   TO	 POWER

⌨️ 快捷键说明

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