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

📄 auto10.asm

📁 应用于电力控制领域的基于PIC单片机的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
    BSF     CTRL 
    BSF     KLED4 

INT02D:     
	MOVFF	BBSR,BSR																																																																																																																																																																																																																																																																													;restore BSR register
	MOVFF	BWREG,WREG	      ;restore working register
	MOVFF	BSTATUS,STATUS	      ;restore STATUS register
    RETFIE  FAST
;********************************************
;********************************************
INTTX:
    BTFSS   PIR1,TX1IF
	GOTO    INTRX
P1NT0:                                ; Transmit Programing
	MOVFF	STATUS,BSTATUS        ;save STATUS register
	MOVFF	WREG,BWREG  	      ;save working register
	MOVFF	BSR,BBSR

    BCF     PIR1,TX1IF
                       
	BTFSC   FMK,0
	GOTO    TRAN1       
	BSF     FMK,0
	MOVFF   MIN4,TXREG1
	MOVFF   MIN4,VEIL
	MOVLW   0
	MOVWF   VEIH  
	GOTO    P1NTD
TRAN1:                     
	BTFSC   FMK,1
	GOTO    TRAN2
	BSF     FMK,1
	MOVFF   TIME4,TXREG1
	MOVFF   TIME4,WREG
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	GOTO    P1NTD
TRAN2:                     
	BTFSC   FMK,2
	GOTO    TRAN3       
	BSF     FMK,2
	MOVFF   FUN, TXREG1  
	MOVFF   FUN,WREG
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	GOTO    P1NTD
TRAN3:                     
	BTFSC   FMK,3
	GOTO    TRAN4
	BSF     FMK,3
	MOVFF   LONL, TXREG1
	MOVFF   LONL,WREG
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	GOTO    P1NTD
TRAN4:                     
	BTFSC   FMK,4
	GOTO    TRAN5       
	BSF     FMK,4
    MOVLW   0  
    MOVWF   RPT
	MOVFF   LONH, TXREG1 
	MOVFF   LONH,WREG
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  

	MOVFF   LONL,WREG
	SUBLW   0
	BTFSC   STATUS,Z
	BSF     FMK,5
	GOTO    P1NTD
TRAN5:                     
	BTFSC   FMK,5
	GOTO    TRAN6       

	MOVLW   BUF0
	ADDWF   RPT,0
	MOVFF   WREG, FSR1L
	MOVLW   0H
	MOVFF   WREG, FSR1H
	MOVFF   POSTINC1,WREG
	MOVFF   WREG,TXREG1

	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  

	INCF    RPT,F
	MOVFF   LONL,WREG
	CPFSEQ  RPT
	GOTO    P1NTD
	BSF     FMK,5
	GOTO    P1NTD
TRAN6:                     
	BTFSC   FMK,6
	GOTO    TRAN7       
	BSF     FMK,6
	MOVFF   VEIL, TXREG1  
	GOTO    P1NTD
TRAN7:                     
	BTFSC   FMK,7
	GOTO    TRAN8       
	BSF     FMK,7
	MOVFF   VEIH, TXREG1  
	GOTO    P1NTD
TRAN8:                     
	BTFSC   FMK1,0
	GOTO    TRAN9       
	BSF     FMK1,0
	MOVLW   0AAH
	MOVFF   WREG,TXREG1  
	GOTO    P1NTD
TRAN9:
	BTFSC   FMK1,1
	GOTO    TXEND       
	BSF     FMK1,1
	MOVLW   0AAH
	MOVFF   WREG,TXREG1  
	GOTO    P1NTD
TXEND:
	CLRF    FMK
	CLRF    FMS
	CLRF    FMK1
	CLRF    LIMIT
	BCF     PIE1,TXIE               ; Disable SCI Transmit interrupt
	BSF     PIE1,RCIE               ; Enable SCI Recevice interrupt
	MOVFF   WREG,TXREG1             ; Clear TXIF
	BCF     TXSTA1,TXEN             ; Disable Transmit
	BCF     RCSTA1,CREN             ; Disable  reception (Clear OERR FERR)
	BSF     RCSTA1,CREN             ; Enable reception
    BSF     CTRL 
    BSF     KLED4 

P1NTD:
	MOVFF	BBSR,BSR																																																																																																																																																																																																																																																																													;restore BSR register
	MOVFF	BWREG,WREG		;restore working register
	MOVFF	BSTATUS,STATUS	        ;restore STATUS register
    RETFIE  FAST
;******************************************************
;******************************************************
INTRX:
 	BTFSS   PIR1,RCIF
	RETFIE  FAST
INTRX0:
	MOVFF	STATUS,BSTATUS  	;save STATUS register
	MOVFF	WREG,BWREG  		;save working register
	MOVFF	BSR,BBSR
	MOVFF   R0,R0_TEMP
	MOVFF   R1,R1_TEMP
	MOVFF   R2,R2_TEMP
	MOVFF   H_BYTE,  H_BYTT
	MOVFF   L_BYTE,L_BYTT
	MOVFF   TEMP,TEMPT
	MOVFF   COUNT,COUNTT
	MOVFF   FSR0L, FSR0LT
	MOVFF   FSR0H,FSR0HT

    BCF     PIR1,RCIF
    MOVFF   RCREG1,RBUF
    BTFSC   FMK,0
	GOTO    REC1                    ; FMK.0=1
	MOVLW   55H                     ; RECEIVE FIRST DATA IS 55H
	CPFSEQ  RBUF
	GOTO    RCEND                   ;
	BSF     FMK,0
 	BCF     KLED4
	MOVLW   D'100'
	MOVFF   WREG,LIMIT              ; 1.5 second
	BSF     FMS,4                   ; Communation Start Flag

    BTFSS   FLAG3,0
	GOTO    P0NTD
         
    BCF     FLAG3,0
    MOVLW   1
    MOVWF   DISID
    MOVWF   STTIME
	GOTO    P0NTD
REC1:                                   
    BTFSC   FMK,1
	GOTO    REC2                    
	MOVFF   RBUF,WREG               
	CPFSEQ  MIN4
	GOTO    RCEND                   
	MOVFF   RBUF,VEIL               
	MOVLW   0
    MOVWF   VEIH
	BSF     FMK,1
	GOTO    P0NTD
REC2:                                   
    BTFSC   FMK,2
	GOTO    REC3
	MOVFF   RBUF,WREG               
	CPFSEQ  TIME4
	GOTO    RCEND                   
	MOVFF   RBUF,WREG               
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	BSF     FMK,2
	GOTO    P0NTD
REC3:                                   
    BTFSC   FMK,3
	GOTO    REC4                    
	MOVFF   RBUF,FUN               
	MOVFF   RBUF,WREG               
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	BSF     FMK,3
	GOTO    P0NTD
REC4:
    BTFSC   FMK,4
	GOTO    REC5
	MOVFF   RBUF,LONL               
	MOVFF   RBUF,WREG               
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	BSF     FMK,4
	GOTO    P0NTD
REC5:                                   
    BTFSC   FMK,5
	GOTO    REC6                    
	MOVLW   0
    MOVWF   RPT
	MOVFF   RBUF,LONH               
    MOVFF   LONL,WREG
    SUBLW   0
    BTFSC   STATUS,Z ;=0 jump,have parameter
    BSF     FMK,6

	MOVFF   RBUF,WREG               
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	BSF     FMK,5
	GOTO    P0NTD
REC6:
    BTFSC   FMK,6
	GOTO    REC7                    

	MOVLW   BUF0   ;rd  command
	ADDWF   RPT,0
	MOVFF   WREG,FSR1L
	MOVLW   00H
	MOVFF   WREG,FSR1H
	MOVFF   RBUF,POSTINC1

	MOVFF   RBUF,WREG               
	ADDWF   VEIL,F
	MOVLW   0
	ADDWFC  VEIH,F  
	INCF    RPT,F
	MOVFF   LONL,WREG
	CPFSEQ  RPT
	GOTO    P0NTD
	BSF     FMK,6
	GOTO    P0NTD

REC7:                        
	BTFSC   FMK,7
	GOTO    REC8           ; FMK,6=1
	MOVFF   RBUF,WREG
	CPFSEQ  VEIL
	GOTO    RCEND
	BSF     FMK,7
	GOTO    P0NTD

REC8:                        
	BTFSC   FMK1,0
	GOTO    REC9
	MOVFF   RBUF,WREG
	CPFSEQ  VEIH
	GOTO    RCEND
	BSF     FMK1,0
	GOTO    P0NTD

REC9:                        
	MOVLW   0AAH
	CPFSEQ  RBUF
	GOTO    RCEND

        MOVLW   01H
        CPFSEQ  FUN
        GOTO    READD2

        MOVLW   00H
        CPFSEQ  LONL
        GOTO    RCEND
        MOVLW   00H
	    CPFSEQ  LONH
        GOTO    RCEND

        MOVLW   0A1H         
        MOVWF   FUN
    	MOVFF   DANG,BUF0
        MOVFF   TIME0,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+1

        MOVFF   MIN0,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+2

    	MOVFF   ARMC010,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE,BUF0+3

        MOVLW   0FFH
        MOVFF   WREG,BUF0+4
	    MOVFF   WREG,BUF0+5
        MOVLW   06H
	    MOVFF   WREG,LONL
        MOVLW   00H
        MOVFF   WREG,LONH
    	GOTO    RWOK
READD2:
        MOVLW   02H
        CPFSEQ  FUN
        GOTO    READD3

        MOVLW   00H
        CPFSEQ  LONL
        GOTO    RCEND
        MOVLW   00H
        CPFSEQ  LONH
        GOTO    RCEND

        MOVLW   0A2H         
        MOVWF   FUN
	    MOVLW   00H
        MOVFF   WREG,BUF0

        MOVFF   TIME1,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+1

        MOVFF   MIN1,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+2

	    MOVFF  ARMC010,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+3

        MOVLW   0FFH
        MOVFF   WREG,BUF0+4
        MOVFF   WREG,BUF0+5
 
        MOVLW   01H
        MOVFF   WREG, BUF0+6
        
        MOVFF   TIME2,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+7

        MOVFF   MIN2,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+8

	    MOVFF  ARMC010,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+9

        MOVLW   0FFH
	    MOVFF   WREG,BUF0+0AH
        MOVFF   WREG,BUF0+0BH
 
	    MOVLW   02H
        MOVFF   WREG,BUF0+0CH
    	 
        MOVFF   TIME3,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+0DH

        MOVFF   MIN3,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+0EH

	    MOVFF   ARMC010,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+0FH

        MOVLW   0FFH
        MOVFF   WREG,BUF0+10H
        MOVFF   WREG,BUF0+11H

        MOVLW   12H
        MOVFF   WREG,LONL
        MOVLW   00H
        MOVFF   WREG,LONH
        GOTO    RWOK
READD3:
        MOVLW   03H
	    CPFSEQ  FUN
        GOTO    WRITD1

	    MOVLW   00H
        CPFSEQ  LONL
	    GOTO    RCEND
        MOVLW   00H
        CPFSEQ  LONH
	    GOTO    RCEND
        
        MOVLW   0A3H         
        MOVWF   FUN

        MOVFF   TIME0,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+0

        MOVFF   MIN0,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+1

	    MOVFF   ARMC010,WREG
        CALL    BCDTOB
        MOVFF   L_BYTE, BUF0+2
       
        MOVLW   03H
        MOVFF   WREG,LONL
        MOVLW   00H
        MOVFF   WREG,LONH
	    GOTO    RWOK
;===============================
WRITD1:
	    MOVLW   11H
        CPFSEQ  FUN
	    GOTO    WRITD2

        MOVLW   D'18'
	    CPFSEQ  LONL
        GOTO    WRITD1N
        MOVLW   00H
        CPFSEQ  LONH
        GOTO    WRITD1N

        MOVFF   BUF0+1,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME1

        MOVFF   BUF0+2,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN1

        MOVFF   BUF0+7,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME2

        MOVFF   BUF0+8,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN2

        MOVFF   BUF0+0DH,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME3

        MOVFF   BUF0+0EH,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN3


	    MOVLW   1
        MOVWF   LONL
        MOVLW   0
	    MOVWF   LONH
        MOVLW   00H
        MOVWF   BUF0
        MOVLW   0B1H 
        MOVWF   FUN
        GOTO    RWOK
WRITD1N:
        MOVLW   1
        MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   01H
        MOVWF   BUF0
        MOVLW   0B1H 
    	MOVWF   FUN
	    GOTO    RWOK
;================================
WRITD2:
        MOVLW   12H
        CPFSEQ  FUN
	    GOTO    WRITD3

        MOVLW   00H
        CPFSEQ  LONH
        GOTO    WRITD2N

        MOVLW   06H
        CPFSEQ  LONL
        GOTO    WRITD2N

        MOVLW   00H
        CPFSEQ  BUF0
        GOTO    WRITD21
WRITD20:

        MOVFF   BUF0+1,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME1

        MOVFF   BUF0+2,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN1

        MOVLW   1
        MOVWF   LONL
	    MOVLW   0
        MOVWF   LONH
        MOVLW   00H
        MOVWF   BUF0
        MOVLW   0B2H 
        MOVWF   FUN
        GOTO    RWOK
WRITD21:
        MOVLW   01H
        CPFSEQ  BUF0
        GOTO    WRITD22

        MOVFF   BUF0+1,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME2

        MOVFF   BUF0+2,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN2

	    MOVLW   1
        MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   00H
	    MOVWF   BUF0
        MOVLW   0B2H 
        MOVWF   FUN
        GOTO    RWOK

WRITD22:
        MOVLW   02H
        CPFSEQ  BUF0
        GOTO    WRITD2N

        MOVFF   BUF0+1,L_BYTE
        CALL    BINBCD
        MOVFF   R2, TIME3

        MOVFF   BUF0+2,L_BYTE
        CALL    BINBCD
        MOVFF   R2, MIN3

        MOVLW   1
        MOVWF   LONL
	    MOVLW   0
	    MOVWF   LONH
        MOVLW   00H
        MOVWF   BUF0
        MOVLW   0B2H 
        MOVWF   FUN
	    GOTO    RWOK
WRITD2N:
        MOVLW   1
        MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   01H
        MOVWF   BUF0
        MOVLW   0B2H 
        MOVWF   FUN
        GOTO    RWOK
;================================
WRITD3:
        MOVLW   13H
	    CPFSEQ  FUN
	    GOTO    WRITD4

        MOVLW   00H
        CPFSEQ  LONH
        GOTO    WRITD3N

        MOVLW   03H
        CPFSEQ  LONL
        GOTO    WRITD3N

        MOVFF   BUF0,L_BYTE
        CALL    BINBCD
        MOVFF   R2, STIME+2

        MOVFF   BUF0+1,L_BYTE
        CALL    BINBCD
        MOVFF   R2, STIME+1

        MOVFF   BUF0+2,L_BYTE
        CALL    BINBCD
        MOVFF   R2, STIME
       
        BSF     FAG0,7     ; WRITE SYSTEM TIME
        MOVLW   1
        MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   00H
	    MOVWF   BUF0
	    MOVLW   0B3H
        MOVWF   FUN
        GOTO    RWOK
WRITD3N:
        MOVLW   1
	    MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   01H
        MOVWF   BUF0
        MOVLW   0B3H 

⌨️ 快捷键说明

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