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

📄 shibiema.asm

📁 智能识别系统程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		BCF	RD,6		
		NOP
        NOP
		BTFSC	BUF2,7
		BSF	RD,0				;BUF1是高位,BUF2是低位.
		BTFSS	BUF2,7
		BCF	RD,0
		NOP
		NOP		
		RLF	BUF1,1
		RLF	BUF2,1
	
		BSF	RD,6
		NOP
		NOP
		DECFSZ	BIT,1
		GOTO	C3
		RETLW	0

;*************************************	
;			 SHI2   CLK->E2	
;*************************************		

Z3SHI2
		MOVLW	.16
		MOVWF	BIT
		BCF		STATUS,0
C32		NOP
		BCF	RE,2		
		NOP
        NOP
		BTFSC	BUF2,7
		BSF	RD,0
		BTFSS	BUF2,7
		BCF	RD,0
		NOP
		NOP		
		RLF	BUF1,1
		RLF	BUF2,1
		
		BSF	RE,2
		NOP
		NOP
		DECFSZ	BIT,1
		GOTO	C32
		RETLW	0
;****************************************
;		SHUI WEN AND YALI	CLK-->D7	
;*************************************
Z4
		MOVLW	.32
		MOVWF	BIT
		BCF		STATUS,0
C4		NOP
		BCF	RD,7		
		NOP
      	NOP
		BTFSC	BUF2,7
		BSF	RD,0
		BTFSS	BUF2,7
		BCF	RD,0
		RLF	BUF3,1
		RLF	BUF4,1		;BUF3、BUF4,BUF1、BUF2
		RLF	BUF1,1		; 高	,   低  , 高   ,低
		RLF	BUF2,1
		NOP
		BSF	RD,7
		NOP
		DECFSZ	BIT,1
		GOTO	C4
		RETLW	0

			
;****************************************
;	MAX1 AND MIN1,MAX1 SHAN		
;****************************************					
SHAN1		
		;BSF	LAG,0
		MOVLW	5
		MOVWF	DAT1	
			
AN1		
		CALL	DELAY200MS
		
;______________________________	
	
		MOVF	ZUF,0			;ZUF 不变,BUF SHAN
		MOVWF	MUF
		CALL	BCD
;______________________________

		MOVF	BUF1,0		
		MOVWF	BUF3
		MOVF	BUF2,0			;    XIA限    SHANG限
		MOVWF	BUF4			;BUF3、BUF4,BUF1、BUF2
;______________________________ ; 高	,   低  , 高   ,低
								;	ZUF   		BUF
		MOVLW	00H				;				闪
		MOVWF	BUF1
		MOVLW	00H
		MOVWF	BUF2
;______________________________

		CALL	Z1						;开始显示
;______________________________		
		
		
		CALL	JIAN_T	
		MOVF	FSR,0					;闪动中有键按下,+,-两键.
		XORLW	.6
		BTFSC	STATUS,2
		CALL	JIA1
		XORLW	.7
		BTFSC	STATUS,2
		CALL	JIAN1

		CALL	DELAY200MS
;______________________________	
	
		MOVF	ZUF,0					;ZUF AND BUF 还原
		MOVWF	MUF
		CALL	BCD
;______________________________

		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0	
		MOVWF	BUF4
;______________________________			;BUF3、BUF4,BUF1、BUF2

		MOVF	BUF,0		
		MOVWF	MUF
		CALL	BCD
;______________________________

		CALL	Z1
;______________________________

		DECFSZ	DAT1
		GOTO	AN1
		RETLW	0
		


;****************************************
;MAX1 AND MIN1,MIN1 SHAN	MIN-MAX		
;****************************************					
SHAN2		
		;BCF	LAG,0					;    XIA限    SHANG限
		MOVLW	5						;BUF3、	BUF4, BUF1、BUF2
		MOVWF	DAT1					 ; 高	, 低  , 高   ,低
										;	ZUF   		BUF
AN2										;	闪
		CALL	DELAY200MS
		
;______________________________	
	
		MOVF	BUF,0				;BUF 不变,  ZUF 闪
		MOVWF	MUF
		CALL	BCD					;转化后BUF1 AND BUF2确定了

		MOVLW	00H
		MOVWF	BUF3
		MOVLW	00H					;ZUF清0
		MOVWF	BUF4
;______________________________

		CALL	Z1	;显示
;______________________________		
										;BUF3、BUF4,BUF1、BUF2	
		
		CALL	JIAN_T	
		MOVF	FSR,0					;闪动中有键按下,+,-两键.
		XORLW	.6
		BTFSC	STATUS,2
		CALL	JIA1
		XORLW	.7
		BTFSC	STATUS,2
		CALL	JIAN1
		CALL	DELAY200MS
;______________________________	
	
		MOVF	ZUF,0					;ZUF AND BUF 还原
		MOVWF	MUF
		CALL	BCD
;______________________________

		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0	
		MOVWF	BUF4
;______________________________		

		MOVF	BUF,0		
		MOVWF	MUF
		CALL	BCD
;______________________________

		CALL	Z1
;______________________________

		DECFSZ	DAT1
		GOTO	AN2
		RETLW	0
		
	
;****************************************
;MAX2 AND MIN2,MAX2 SHAN	MIN-MAX		
;****************************************
SHAN3		
			
		;BSF	LAG2,0
		MOVLW	5
		MOVWF	DAT1	
			
AN3		
		CALL	DELAY200MS
		
;______________________________		
		MOVF	BMIN,0				;BMIN 不变,BMAX SHAN
		MOVWF	MUF
		CALL	BCD
;______________________________
		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0	
		MOVWF	BUF4
;______________________________			;BUF3、BUF4,BUF1、BUF2
		MOVLW	00H
		MOVWF	BUF1
		MOVLW	00H
		MOVWF	BUF2
;______________________________

		CALL	Z2
;______________________________		
		
		
		
		
		CALL	JIAN_T	
		MOVF	FSR,0					;闪动中有键按下,+,-两键.
		XORLW	.9
		BTFSC	STATUS,2
		CALL	JIA2
		XORLW	.10
		BTFSC	STATUS,2
		CALL	JIAN2
		CALL	DELAY200MS
	
;______________________________	
	
		MOVF	BMIN,0		;ZUF AND BUF 还原
		MOVWF	MUF
		CALL	BCD
;______________________________

		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0	
		MOVWF	BUF4
;______________________________		

		MOVF	BMAX,0		
		MOVWF	MUF
		CALL	BCD
;______________________________

		CALL	Z2
;______________________________

		DECFSZ	DAT1
		GOTO	AN3
		RETLW	0
		
		
;****************************************
;MAX2 AND MIN2,MIN2 SHAN	MIN-MAX		
;****************************************	
SHAN4

		;BCF		LAG2,0
		MOVLW	5
		MOVWF	DAT1	
			
AN4		
		CALL	DELAY200MS
		
;______________________________		
		MOVF	BMAX,0		;BMAX 不变,BMIN SHAN
		MOVWF	MUF
		CALL	BCD		;转化后BUF1 AND BUF2确定了

		MOVLW	00H
		MOVWF	BUF3
		MOVLW	00H
		MOVWF	BUF4
;______________________________

		CALL	Z2	;显示
;______________________________			;BUF3、BUF4,BUF1、BUF2
		
		
		CALL	JIAN_T	
		MOVF	FSR,0					;闪动中有键按下
		XORLW	.9
		BTFSC	STATUS,2
		CALL	JIA2
		XORLW	.10
		BTFSC	STATUS,2
		CALL	JIAN2	
		CALL	DELAY200MS
;______________________________	
	
		MOVF	BMIN,0			;ZUF AND BUF 还原
		MOVWF	MUF
		CALL	BCD
;______________________________

		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0	
		MOVWF	BUF4
;______________________________		

		MOVF	BMAX,0		
		MOVWF	MUF
		CALL	BCD
;______________________________

		CALL	Z2
;______________________________
		DECFSZ	DAT1
		GOTO	AN4
		RETLW	0

		
;****************************************
;			A/D
;****************************************
ADCAI		
	

		NOP
		NOP
		NOP
		NOP
		
		CLRF	2EH
		CLRF	2FH
		MOVLW	.11
		MOVWF	CNT1



				
TAOYUANYA
		CALL	DEL1MS
		;CALL	TESTKEY
		BSF		ADCON0,	2		;设定A/D转换模块的状态
ADWAITYA	
		BTFSC	ADCON0, 2
		GOTO	ADWAITYA
		MOVF	ADRES,0
		
		CALL	CHENGJI
		MOVF	SHANGL,W
		ADDWF	2EH,F
		BTFSC	STATUS,0
		INCF	2FH
		DECFSZ	CNT1
		
		GOTO	TAOYUANYA
		
		CALL	CHU5
        MOVF	SHANGL,W
		MOVWF	ADRES			
		
		RETLW	0		
		
		
		
;****************************************
;			初始化子程序
;****************************************	
INITIAL	
		BSF		STATUS,5
		MOVLW	B'11111111'	
		MOVWF	TRISB
		
		
	
		
		
		MOVLW	B'00000000'			
		MOVWF	TRISC
		
		
		
		
		MOVLW	B'00000000'			
		MOVWF	TRISD
		
		
	
		BANKSEL	ADCON1
		MOVLW	B'010'
		MOVWF	ADCON1
		
		MOVLW	B'010'
		BSF		STATUS,5			
		MOVWF	TRISE
		BCF		STATUS,5
		
		
		MOVLW	B'11111111'			
		BSF		STATUS,5
		MOVWF	TRISA
		BCF		STATUS,5

		RETURN
;****************************************
;****************************************


DELAY200MS
        					
   		MOVLW	0F0H
    		MOVWF	CASE1
Y2    		MOVLW	9FH
    		MOVWF	CASE2		
Y1    		DECFSZ	CASE2
    		GOTO	Y1
   		DECFSZ	CASE1
   		GOTO	Y2
         
		RETLW	0
		
DEL1MS 
		       					
   		MOVLW	01H
    		MOVWF	CASE1
D2    		MOVLW	0FFH
   		MOVWF	CASE2		
D1    		DECFSZ	CASE2
    		GOTO	D1
   		DECFSZ	CASE1
   		GOTO	D2
         
		RETLW	0





DEL100MS
        
   		MOVLW	0FH			
    		MOVWF	CASE1	
LS2    		MOVLW	0FFH
    		MOVWF	CASE2
LS1    		DECFSZ	CASE2
    		GOTO	LS1
   		DECFSZ	CASE1
   		GOTO	LS2
         
		RETURN	
	
;****************************************
	;采集并显示温度和压力,温度和压力从一个口发出
;****************************************
CAIWHOLE

		DECFSZ	ADCNT,1
		RETURN

		
TCAI
		
		MOVLW	.15
		MOVWF	ADCNT
CAI_WEN_YA		
		MOVLW	B'01001001'
		MOVWF	ADCON0			;三 ,A1口、设置时钟源8TOSC,,启动A/D转换模块
		MOVLW	.150
		MOVWF	CHUNG
		CALL	ADCAI
		MOVF	SHANGL,0
		MOVWF	MUF
		MOVWF	WENBUF		       		 ;为后面温度比较用
		CALL	BCD						;______________________
										;______________________
										;BUF3、BUF4,BUF1、BUF2
		MOVF	BUF1,0					;	温度		,	压力
		MOVWF	BUF3					;______________________
		MOVF	BUF2,0						;温度显示
		MOVWF	BUF4




		MOVLW	B'01000001'
		MOVWF	ADCON0			;三、A0口 ,设置时钟源8TOSC,,启动A/D转换模块
		MOVLW	.140
		MOVWF	CHUNG
		CALL	ADCAI
		MOVF	SHANGL,W
;================================
	
		SUBLW	.10
		SKPC
		GOTO	DAYU10
		MOVLW	.0
		GOTO	XIXIXI

DAYU10
		MOVF	SHANGL,W
		
;================================
XIXIXI
		MOVWF	MUF
		CALL	BCD

		CALL	Z4							;压力显示	
		CALL	DEL1MS
		CALL	DEL1MS
		RETURN

;****************************************
;		采集并显示湿度2
;****************************************
XIAN_SHI2		
        MOVLW	B'01010001'
		MOVWF	ADCON0			;三、A2口,设置时钟源8TOSC,,启动A/D转换模块
  		MOVLW	.99
		MOVWF	CHUNG
		CALL	ADCAI
		MOVF	SHANGL,0
		MOVWF	MUF
		MOVWF	SHIBUF2
		CALL	BCD
		CALL	Z3SHI2							
		RETURN								;湿度2显示

;****************************************
;		采集并显示湿度1
;****************************************		
XIAN_SHI1		
        MOVLW	B'01011001'
		MOVWF	ADCON0			;三、A3口,设置时钟源8TOSC,,启动A/D转换模块
		MOVLW	.99
		MOVWF	CHUNG
  		CALL	ADCAI		       
		MOVF	SHANGL,0
		MOVWF	MUF
		MOVWF   SHIBUF
		CALL	BCD

		CALL	Z3SHI1			;湿度1显示
		
		

		RETURN




;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		
;		调温子程序,检测FBIAO
		
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	


TIAOWEN_ZI

		BSF		LED
		NOP
		NOP
       	NOP       	
        MOVLW   .40
		SUBWF  	WENBUF,W
		BTFSC	STATUS,0
		GOTO   	RBOFF			
		
		
		MOVLW	.30
		SUBWF	WENBUF,W
		BTFSC	STATUS,0
		GOTO	BACK1		
		
RBON	
		NOP
		BSF    	JIARE
		NOP
		NOP
	
		GOTO   	BACK1
		
	
		
RBOFF   
		NOP
		BCF    	JIARE
		NOP
		
	
		GOTO   	BACK1


BACK1
		RETURN

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;					键翻译子程序
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRANSLATE
		MOVLW	70H
		MOVWF	FSR
XUN_LOOP1
		MOVF	0,0
		XORWF	VALUE,0
		BTFSC	STATUS,2
		GOTO	XUN_LOOP2
		INCF	FSR,1
;________________
							;________________
		MOVLW	7FH		;鉴于此处是从70H处放键值码,所以作了改动,原为BTFSS FSR,4一条指令
		XORWF	FSR	,W		;________________
		BTFSS	STATUS,Z
		
;________________
		GOTO	XUN_LOOP1
		MOVLW	.12			;可能多键同时按下,因为12未用,所以返回一个未用键
		MOVWF	FSR
		RETURN
XUN_LOOP2
		BCF		FSR,6
		BCF		FSR,5
		BCF		FSR,4
		RETURN
		
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;					上下限1显示
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SHANGXIA_DIS1	
						;上下限1显示
		MOVF    ZUF,W
	    MOVWF   MUF
		CALL	BCD

		MOVF	BUF1,0
		MOVWF	BUF3			;SHANGXIA_DIS1 AND SHANGXIA_DIS1发送的脉冲口不同
		MOVF	BUF2,0
		MOVWF	BUF4
				
	    MOVF    BUF,W
	    MOVWF   MUF
		CALL	BCD
		
		
		CALL	Z1
		RETURN
;_________________________

SHANGXIA_DIS2

		MOVF	BMIN,W			;SHANGXIA_DIS1 AND SHANGXIA_DIS2发送的脉冲口不同
		MOVWF   MUF
		CALL	BCD				;上下限2显示	

		MOVF	BUF1,0
		MOVWF	BUF3
		MOVF	BUF2,0
		MOVWF	BUF4	

		MOVF	BMAX,W
		MOVWF   MUF
		CALL	BCD
		CALL    Z2
		RETURN		

;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

;检测水位,	水位子程序,	缺水,不工作,并且置位FBIAO位!
;_______________________________________________
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T_SHUIWEI
		
		BTFSC	SHUIWUI
		GOTO	SJIAN
		CALL	DEL100MS
		BTFSC	SHUIWUI
		GOTO	SJIAN
	
		GOTO	QUESHUI		;缺水,不工作,
		
SJIAN
		BTFSC	FBIAO,0
		GOTO	QUESHUI		
		RETURN
;_________________________
		
QUESHUI		;缺水,停

		BSF		FBIAO,0		;置缺水标志位
		NOP
		NOP
		BCF		JIARE
		NOP
		NOP
		NOP
		BSF		POLICE
		NOP
		NOP
		NOP
		BCF		PENWU
		NOP
		NOP
	
;~~~~~~~~~~~~~~~~~~

		BTFSS	FANGYA,0
		GOTO	KUQI_SHUI1

;~~~~~~~~~~~~~~~~~~
;==========================
		;CALL	SHUNXU_CLOSE1
		CALL	FA1_FA2
;==========================
KUQI_SHUI1


		BCF		FA1
		NOP
		NOP
		BCF		FA2
		NOP
		NOP
		BCF		T1LED	;change
		NOP
		NOP
		BCF		T2LED	;change
		NOP
		NOP
		;CLRF	FANGYA
		RETURN


;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;		调温判断子程序,也检测FBIAO
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

TIAOWENPAN

		BTFSC	FBIAO,0
		GOTO	QUE_SHUI

		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	TIAOWEN_NO
		CALL	DEL100MS
		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2
		GOTO	TIAOWEN_NO	
		CALL	TRANSLATE
		
		MOVF	FSR,0
		XORLW	04H			; 4   TO	 TIAOWEN
		BTFSS	STATUS,2
		GOTO	TIAOWEN_NO
		GOTO	TIAOWEN_YES

TIAOWEN_YES
;__________

		MOVLW	.1
		ADDWF	TWEN_F
;__________
TIAOWEN_L		

		CALL	KEYSCAN
		COMF	VALUE,0
		BTFSC	STATUS,2	;等待键放!
		GOTO	TIAOWEN_NO		;键放!
		CALL	TRANSLATE

⌨️ 快捷键说明

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