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

📄 auto10.asm

📁 应用于电力控制领域的基于PIC单片机的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
       BTFSC   STATUS,Z   
       GOTO    K305
       MOVF    TURN2,W
       SUBLW   3
       BTFSS   STATUS,Z
       GOTO    K304
       BCF     INTCON,GIE
       MOVLW   0
       MOVWF   TURN2
       MOVFF   NFBUF1,SET01    ;RESTORE DISPLAY
       MOVFF   NFBUF2,SET02
       MOVFF   NFBUF3,SET03
       MOVFF   NFBUF4,SET04
       BSF     INTCON,GIE
       RETURN       
K304:
       BCF     INTCON,GIE
       INCF    TURN2,F
       MOVFF   NFBUF1,SET01
       MOVFF   NFBUF2,SET02
       MOVFF   NFBUF3,SET03
       MOVFF   NFBUF4,SET04
       BSF     INTCON,GIE
       RETURN
K305:
       MOVF    TURN2,W
       SUBLW   1
       BTFSS   STATUS,Z
       GOTO    K306
       BCF     INTCON,GIE
       MOVLW   0
       MOVWF   TURN2
       MOVFF   NFBUF1,SET01    ;RESTORE DISPLAY
       MOVFF   NFBUF2,SET02
       MOVFF   NFBUF3,SET03
       MOVFF   NFBUF4,SET04
       BSF     INTCON,GIE
       RETURN       
K306:
       BCF     INTCON,GIE
       MOVLW   1
       MOVWF   TURN2
       MOVFF   NFBUF1,SET01
       MOVFF   NFBUF2,SET02
       MOVFF   NFBUF3,SET03
       MOVFF   NFBUF4,SET04
       BSF     INTCON,GIE
       RETURN

;********************************
K401:
       BTFSS   KEY4
       GOTO    K402
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       BTFSS   KEY4
       GOTO    K403
       BCF     FAG0,3
       RETURN
K402:
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       CALL    DELY1
       NOP
       NOP
       NOP
       NOP
       BTFSS   KEY4
       GOTO    K403
       BCF     FAG0,3
       RETURN
K403:
       MOVLW   1
       MOVWF   STTIME
       BTFSS   FLAG3,0
       GOTO    K4030
       MOVLW   1
       MOVWF   DISID       
       BCF     FLAG3,0
       RETURN
K4030:

       BTFSC   FAG0,3
       RETURN 
       BSF     FAG0,3
       BCF     INTCON,GIE
       MOVFF   NFBUF1,SET01
       MOVFF   NFBUF2,SET02
       MOVFF   NFBUF3,SET03
       MOVFF   NFBUF4,SET04
       BSF     INTCON,GIE

       MOVF    TURN2,W
       SUBLW   0
       BTFSS   STATUS,Z
       GOTO    K420
       MOVF    NFBUF1,W
       SUBLW   0
       BTFSS   STATUS,Z
       GOTO    K411  
       MOVLW   9
       MOVWF   NFBUF1
       RETURN       
K411:
       DECF    NFBUF1,F
       RETURN

K420:
       MOVF    TURN2,W
       SUBLW   1
       BTFSS   STATUS,Z
       GOTO    K430
       MOVF    NFBUF2,W
       SUBLW   0
       BTFSS   STATUS,Z
       GOTO    K421  
       MOVLW   9
       MOVWF   NFBUF2
       RETURN       
K421:
       DECF    NFBUF2,F
       RETURN

K430:
       MOVF    TURN2,W
       SUBLW   2
       BTFSS   STATUS,Z
       GOTO    K440
       MOVF    NFBUF3,W
       SUBLW   0
       BTFSS   STATUS,Z
       GOTO    K431  
       MOVLW   9
       MOVWF   NFBUF3
       RETURN       
K431:
       DECF    NFBUF3,F
       RETURN

K440:
       MOVF    TURN2,W
       SUBLW   3
       BTFSS   STATUS,Z
       RETURN
       MOVF    NFBUF4,W
       SUBLW   0
       BTFSS   STATUS,Z
       GOTO    K441  
       MOVLW   9
       MOVWF   NFBUF4
       RETURN       
K441:
       DECF    NFBUF4,F
       RETURN
;********************************
SAVE: 
       BCF    FAG0,4

       MOVF   DISID,W
       SUBLW  0
       BTFSS  STATUS,Z
       GOTO   SAVE1
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  YEARL

       BCF     STATUS,GIE
       MOVWF   HUANG 
	   MOVLW   HUANG
	   MOVWF   WRDA
	   MOVLW   60H      ;??????
	   MOVWF   ADRS
	   MOVLW   1
	   MOVWF   WRL
       CALL    DSWEED
	   NOP
	   BSF     STATUS,GIE
       GOTO   SAVED      
SAVE1: 
       MOVF   DISID,W
       SUBLW  1
       BTFSS  STATUS,Z
       GOTO   SAVE2
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  DAY
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W
       MOVWF  MONTH

       BCF     STATUS,GIE
       MOVF    DAY,W 
       MOVWF   HUANG 
       MOVF    MONTH,W
	   MOVWF   HUANG+1
       MOVLW   HUANG
       MOVWF   WRDA
       MOVLW   40H
	   MOVWF   ADRS
	   MOVLW   2
	   MOVWF   WRL
	   CALL    DSWEED
	   NOP
	   BSF     STATUS,GIE

        GOTO   SAVED      
SAVE2: 
       MOVF   DISID,W
       SUBLW  2
       BTFSS  STATUS,Z
       GOTO   SAVE3
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  MIN0
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W
       MOVWF  TIME0
        BCF     STATUS,GIE
        CLRF    HUANG
        MOVF    MIN0,W 
        MOVWF   HUANG+1 
        MOVF    TIME0,W
    	MOVWF   HUANG+2
    	MOVLW   HUANG
    	MOVWF   WRDA
	    MOVLW   0H
	    MOVWF   ADRS
	    MOVLW   3
	    MOVWF   WRL
	    CALL    DSWEED
	    NOP
	    BSF     STATUS,GIE
	    GOTO   SAVED
;--------------------------
SAVE3:
       MOVF   DISID,W
       SUBLW  9
       BTFSS  STATUS,Z
       GOTO   SAVE4
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  MIN1
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W

       MOVWF  TIME1
       MOVWF  EEVAL
       MOVLW  1
       MOVWF  EEROML       
       CALL   EEWRITE

       MOVF   MIN1,W
       MOVWF  EEVAL
       MOVLW  2
       MOVWF  EEROML
       CALL   EEWRITE
       GOTO   SAVED         
SAVE4:
       MOVF   DISID,W
       SUBLW  0AH
       BTFSS  STATUS,Z
       GOTO   SAVE5
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  MIN2
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W
       MOVWF  TIME2

       MOVWF  EEVAL
       MOVLW  3
       MOVWF  EEROML       
       CALL   EEWRITE

       MOVF   MIN2,W
       MOVWF  EEVAL
       MOVLW  4
       MOVWF  EEROML       
       CALL   EEWRITE
       
       GOTO   SAVED      
SAVE5:
       MOVF   DISID,W
       SUBLW  0BH
       BTFSS  STATUS,Z
       GOTO   SAVE6
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  MIN3
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W
       MOVWF  TIME3
       
       MOVWF  EEVAL
       MOVLW  5
       MOVWF  EEROML       
       CALL   EEWRITE

       MOVF   MIN3,W
       MOVWF  EEVAL
       MOVLW  6
       MOVWF  EEROML       
       CALL   EEWRITE

       GOTO   SAVED      
SAVE6:
       MOVF   DISID,W
       SUBLW  0CH
       BTFSS  STATUS,Z
       GOTO   SAVED
       MOVLW  0
       SWAPF  NFBUF2,W
       IORWF  NFBUF1,W
       MOVWF  MIN4
       MOVLW  0
       SWAPF  NFBUF4,W
       IORWF  NFBUF3,W
       MOVWF  TIME4
       MOVWF  EEVAL
       MOVLW  7
       MOVWF  EEROML       
       CALL   EEWRITE

       MOVF   MIN4,W
       MOVWF  EEVAL
       MOVLW  8
       MOVWF  EEROML
       CALL   EEWRITE
       
       GOTO   SAVED      
SAVED:
       MOVLW   0H
       MOVWF   DISID      
       RETURN 
;****************************************************************************
;****************************************************************************
;***************************************************
;===================================================
WRTIME0:
	BCF     STATUS,GIE
    MOVLW   1 
	MOVWF   HUANG+3      ;WEEK

    MOVLW   9 
	MOVWF   HUANG+4      ;DATE

    MOVLW   2 
	MOVWF   HUANG+5      ;MONTH

    MOVLW   4
	MOVWF   HUANG+6      ;YEAR

    MOVLW   0
	MOVWF   HUANG        ;SEC

    MOVLW   1 
	MOVWF   HUANG+1      ;MINUTES

    MOVLW   1 
	MOVWF   HUANG+2      ;HOUR
	MOVLW   00H
	MOVWF   HUANG+7       ; ??????????????

	MOVLW   HUANG
	MOVWF   WRDA
	MOVLW   0H
	MOVWF   ADRS
	MOVLW   8
	MOVWF   WRL
	CALL    DSWEED
	NOP

    MOVLW   20H
    MOVWF   HUANG
	MOVLW   HUANG        ;???????????
	MOVWF   WRDA
	MOVLW   0E0H
	MOVWF   ADRS
	MOVLW   1
	MOVWF   WRL
	CALL    DSWEED
	BSF     STATUS,GIE	
	RETURN
;=============================
WRTIME:
    BTFSS   FAG0,7
    RETURN
	BCF     STATUS,GIE
	MOVLW   STIME
	MOVWF   WRDA
	MOVLW   0H
	MOVWF   ADRS
	MOVLW   3
	MOVWF   WRL
	CALL    DSWEED
    BCF     FAG0,7
	BSF     STATUS,GIE
	RETURN
;------------------------------------------------------------------------
;------------------------------------------------------------------------
RETIME:
    BTFSC   FAG0,7
    RETURN
	MOVLW   HUANG
	MOVWF   WRDA
	MOVLW   0H
	MOVWF   ADRS
	MOVLW   7
	MOVWF   WRL
	CALL    DSREED

	MOVF    HUANG,W
	MOVWF   ARMC010      ; SEC 

	MOVF    HUANG+1,W
	MOVWF   MIN0         ; MIN
	MOVF    HUANG+2,W
	MOVWF   TIME0        ; HOUR
	MOVF    HUANG+3,W
	MOVWF   YEARH        ; WEEK
	MOVF    HUANG+4,W
	MOVWF   DAY          ; DAY
	MOVF    HUANG+5,W
	MOVWF   MONTH        ; MONTH
	MOVF    HUANG+6,W
	MOVWF   YEARL        ; YEAR
	RETURN
;******************************************************
; Write BYTE  BEGIN ADDRESS ADRS   RX8025  D0,D1
; INTPUT DATA ADRES 'WRDA', LENGTH 'WRL'
; Worker Register(WREG),'FSR0','INDF0','RGA','RGB'
;......................................................
DSWEED:
	CALL    DSWSTA
	MOVLW   064H
	MOVWF   RGA
	CALL    DSWADS
	NOP
	NOP
	MOVF    ADRS,W
	MOVWF   RGA
	CALL    DSWADS
	NOP
	NOP
	MOVF    WRDA,W
	MOVWF   FSR0L
    MOVLW   00H
	MOVWF   FSR0H
	MOVF    WRL,W
	MOVWF   RGB
DSWEEDG:
	MOVF    POSTINC0,W
	MOVWF   RGA
	CALL    DSWADS
	NOP
	NOP
	DECFSZ  RGB,1
	GOTO    DSWEEDG
	CALL    DSWSTP
	NOP
	RETURN
;********************************************************
;********************************************************
; INPUT BYTE  BEGIN ADDRESS ADRS
; OUTPUT DATA 'FSR0', LENGTH 'WRL'
; Worker Register(WREG),'FSR0','INDF0','RGA','RGB'
;.......................................................
DSREED:
	CALL    DSWSTA
	MOVLW   064H
	MOVWF   RGA
	CALL    DSWADS            ; dummy write
	NOP
	NOP
	MOVF    ADRS,W
	MOVWF   RGA
	CALL    DSWADS            ; dummy write
	NOP
	NOP
	CALL    DSWSTA
	NOP
	NOP
	MOVLW   065H
	MOVWF   RGA
	CALL    DSWADS              ; send device address for read
	NOP
	NOP
    MOVF    WRDA,W
	MOVWF   FSR0L
    MOVLW   00H
	MOVWF   FSR0H
	MOVF    WRL, W
	MOVWF   RGB
DSREEDG:
	CALL    DSRADS           ; READ DATA
	NOP
	NOP
	MOVF    RGA,W
	MOVWF   POSTINC0
	DECFSZ  RGB,1
	GOTO 	DSREEDZ
	NOP
	CALL    DSNRACK
	NOP
	NOP
	CALL    DSWSTP
	NOP
	NOP
	RETURN
DSREEDZ:
	CALL    DSRACK
	NOP
	NOP
	GOTO    DSREEDG

;***************************************************
;INTPUT ADDRESS OR DATA (RGA) Worker Register(WREG)
;---------------------------------------------------
DSWADS:
	BCF     TRISC, SDA1        ; 'SDA1' OUTPUT
	NOP
	MOVLW   8
	MOVWF   DCOUNT
DSWADSG:
	RLCF     RGA,F
	BTFSC   STATUS,C
	GOTO    DSWADS1
	BCF     LATC,SDA1       ; 'SDA1' LOW
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	GOTO    DSWADSD
DSWADS1:
	BSF     LATC,SDA1       ; 'SDA1' HIGH
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
DSWADSD:
	CALL    DSSK
	DECFSZ  DCOUNT,F
	GOTO    DSWADSG
DSWACK:
	BSF     TRISC,SDA1        ; 'SDA1' INTPUT
	NOP
	NOP
	NOP
	NOP
	BSF     LATC,SCL1       ; 'SCL1' HIGH
	MOVLW   50              ; Wait PORTD.SDA1 ACK signal
	MOVWF   DCOUNT
DSWACK1:
	NOP
	NOP
	BTFSC   PORTC,SDA1
	GOTO    DSWACK11
	BCF     LATC,SCL1       ;  'SCL1' LOW
	RETURN
DSWACK11:
	DECFSZ  DCOUNT,F
	GOTO    DSWACK1
DSWACKD:                        ; WREG=0
	BCF     LATC,SCL1       ; 'SCL1' LOW
	RETURN
;*******************************************************
;INTPUT ADDRESS OR DATA (RGA) Worker Register(WREG)
;-------------------------------------------------------
DSRADS:
	BSF     TRISC,SDA1        ; 'SDA1' INTPUT
	MOVLW   8
	MOVWF   DCOUNT
DSRADSG:
	BSF     LATC,SCL1       ; 'SCL1 ' HIGH
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	BSF     STATUS,C        ; SET 'CY'
	BTFSS   PORTC,SDA1
	BCF     STATUS,C        ; Clear 'CY'
	RLCF     RGA,1
	NOP
	BCF     LATC,SCL1       ; 'SCL1' LOW
	NOP
	NOP

⌨️ 快捷键说明

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