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

📄 auto10.asm

📁 应用于电力控制领域的基于PIC单片机的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	    MOVWF   FUN
    	GOTO    RWOK
;================================
WRITD4:
	MOVLW   21H
	CPFSEQ  FUN
	GOTO    WRITD5

	MOVLW   00H
	CPFSEQ  LONH
	GOTO    WRITD4N
	MOVLW   00H
	CPFSEQ  LONL
	GOTO    WRITD4N

	BSF     FLAG2,0
	BCF     FLAG2,1
	BCF     FLAG2,2
;	BSF     FLAG2,4
	MOVLW   1
	MOVWF   LONL
	MOVLW   0
	MOVWF   LONH
	MOVLW   00H
	MOVWF   BUF0
	MOVLW   0C1H
	MOVWF   FUN
	GOTO    RWOK
WRITD4N:
	MOVLW   1
	MOVWF   LONL
	MOVLW   0
	MOVWF   LONH
	MOVLW   01H
	MOVWF   BUF0
	MOVLW   0C1H
	MOVWF   FUN
	GOTO    RWOK
;================================
WRITD5:
	MOVLW   22H
	CPFSEQ  FUN
	GOTO    WRITD6

	MOVLW   00H
	CPFSEQ  LONH
	GOTO    WRITD5N
	MOVLW   00H
	CPFSEQ  LONL
	GOTO    WRITD5N

	BCF     FLAG2,0
	BSF     FLAG2,1
	BCF     FLAG2,2
;       BSF     FLAG2,5
        MOVLW   1
        MOVWF   LONL
        MOVLW   0
        MOVWF   LONH
        MOVLW   00H
        MOVWF   BUF0
        MOVLW   0C2H 
        MOVWF   FUN
        GOTO    RWOK
WRITD5N:
        MOVLW   1
        MOVWF   LONL
        MOVLW   0
	    MOVWF   LONH
	    MOVLW   01H
        MOVWF   BUF0
        MOVLW   0C2H 
        MOVWF   FUN
	    GOTO    RWOK
;================================
WRITD6:
        MOVLW   23H
        CPFSEQ  FUN
        GOTO    RCEND

        MOVLW   00H
        CPFSEQ  LONH
        GOTO    WRITD6N
        MOVLW   06H
        CPFSEQ  LONL
        GOTO    WRITD6N
        
        MOVFF   BUF0,RB23

        ;MOVFF   BUF0+1,L_BYTE
        ;CALL    BINBCD
       ; MOVFF   R2,RB23+1 

        ;MOVFF   BUF0+2,L_BYTE
        ;CALL    BINBCD
        ;MOVFF   R2, RB23+2


	    BCF     FLAG2,0
    	BCF     FLAG2,1
	    BSF     FLAG2,2
;       BSF     FLAG2,6
	    MOVLW   1
	    MOVWF   LONL
	    MOVLW   0
	    MOVWF   LONH
	    MOVLW   00H
	    MOVWF   BUF0
	    MOVLW   0C3H
	    MOVWF   FUN
	    GOTO    RWOK
WRITD6N:
	    MOVLW   1
	    MOVWF   LONL
	    MOVLW   0
	    MOVWF   LONH
	    MOVLW   01H
	    MOVWF   BUF0
	    MOVLW   0C3H
	    MOVWF   FUN
	    GOTO    RWOK
RWOK:
	    CLRF    FMK
	    CLRF    FMK1
        BSF     FMS,7
	MOVLW   D'100'
	MOVFF   WREG,LIMIT       ; 1.5 Second
	MOVLW   03H
	MOVFF   WREG,DELT        ; DELT=45 ms
	BCF     RCSTA1,CREN      ; Disable  reception (Clear OERR FERR)
	BCF     TXSTA1,TXEN      ; Disable  Transmit
    BCF     CTRL 
	BCF     PIE1,RC1IE       ; Disable SCI Recevice interrupt;
	BCF     PIE1,TX1IE       ; Enable SCI Transmit interrupt
	BCF     RCSTA1,CREN      ; Disable  reception (Clear OERR FERR)
	BCF     TXSTA1,TXEN      ; Disable  Transmit
	GOTO    P0NTZ

RCEND:
	CLRF    FMK
	CLRF    FMK1
	CLRF    DELT
	CLRF    LIMIT
	CLRF    FMS
    BSF     KLED4

P0NTD:
	BCF     RCSTA1,CREN             ; Disable  reception (Clear OERR FERR)
	BSF     RCSTA1,CREN             ; Enable  reception
P0NTZ:
	MOVFF   R0_TEMP,R0
	MOVFF   R1_TEMP,R1
	MOVFF   R2_TEMP,R2
	MOVFF   H_BYTT,H_BYTE
	MOVFF   L_BYTT,L_BYTE
	MOVFF   TEMPT,TEMP
	MOVFF   COUNTT,COUNT
	MOVFF   FSR0LT,FSR0L
	MOVFF   FSR0HT,FSR0H

	MOVFF	BBSR,BSR																																																																																																																																																																																																																																																																													;restore BSR register
	MOVFF	BWREG,WREG		;restore working register
	MOVFF	BSTATUS,STATUS	        ;restore STATUS register
    RETFIE  FAST
;******************************************************************************
; Start of main program
; The main program code is placed here.
	 org     1000H
Main:
	BCF     INTCON, GIE
	BCF     OSCCON, SCS
	CLRF    PORTA
	CLRF    PORTB
	CLRF    PORTC
	CLRF    PORTD
	CLRF    PORTE
	CLRF    LATA
	CLRF    LATB
	CLRF    LATC
	CLRF    LATD
	NOP
    MOVLW   0H
	MOVWF   ADCON0
	MOVLW   0X0F
	MOVWF   ADCON1
	MOVLW   B'11110001'
	MOVFF   WREG,TRISA
	MOVLW   B'11111110'
	MOVFF   WREG,TRISB
	MOVLW   B'10000000'
	MOVFF   WREG,TRISC
	MOVLW   B'00000000'
	MOVFF   WREG,TRISD
	MOVLW   B'00000000'
	MOVFF   WREG,TRISE
	MOVLW   B'00000000'
	MOVFF   WREG,TRISF
	MOVLW   B'00000100'
	MOVFF   WREG,TRISG
    MOVLW   B'00011111'  
    MOVFF   WREG,LATE
	BSF     T3CON,RD16      ; Timer3  16-bit timer
	BCF     T3CON,T3CKPS1   ;
	BCF     T3CON,T3CKPS0   ; 1:1 Prescale value
	BCF     T3CON,T1OSCEN   ; Timer1 oscillator is shut off
	BCF     T3CON,2         ;
	BCF     T3CON,TMR3CS    ;
	MOVLW   47H             ;
	MOVFF   WREG, TMR3L     ;
	MOVLW   0F4H            ; Timers 0.1ms
	MOVFF   WREG, TMR3H     ;
	BSF     T3CON,TMR3ON    ; Enables Timer3

	MOVLW   B'00000000'     ; Disable TXIE Interrupt
	MOVFF   WREG,PIE1       ; ENABLE  Timer3, Timer1 RCIE Interrupt
   
    MOVLW   B'00000010'  	; Disable RBIE,TMR2E,CA2IE,CA1IE Interrupt
	MOVFF   WREG, PIE2
	MOVLW   B'00000000'
	MOVFF   WREG, INTCON2
	MOVFF   WREG, INTCON3
	MOVFF   WREG, PIR1
	MOVFF   WREG, PIR2
	MOVFF   WREG, INTCON
	BSF     INTCON,PEIE
	BCF     INTCON,GIE       ; Global Enable interrupt

	MOVLW   D'25'             ; 4M 9600bps
	MOVFF	WREG, SPBRG1     ; 
	BCF     TXSTA1,CSRC      ; Slave mode (Synchronous)
	BCF     TXSTA1,TX9       ; 9__Bit data
	BCF     TXSTA1,TXEN      ; Disable Transmit!!!!!!
	BCF     TXSTA1,SYNC      ; Asynchronous
	BCF     TXSTA1,BRGH      ; BRGH=1
	MOVFF   WREG, TXREG1     ; Clear TXIF
	BSF     RCSTA1,SPEN      ; Serial Port Enable
	BCF     RCSTA1,RX9       ; Rececice 9_Bit data
	BCF     RCSTA1,SREN      ; Disable Single Receiv  Don't care
	BCF     RCSTA1,CREN      ; Clear OERR
	BSF     RCSTA1,CREN      ; Enable Continue Receive
	BCF     RCSTA1,ADDEN     ; Ninth bit can be used as parity bit
	MOVFF   RCREG1,WREG      ; Clear RCIF
	BCF     PIE1, TX1IE
	BSF     PIE1, RC1IE
	BCF     PIR1, TX1IF
	BCF     PIR1, RC1IF
    BSF     IPR1, RC1IP
    BSF     IPR1, TX1IP

	MOVLW   0C5H
	MOVFF   WREG,TMR0H
	MOVLW   067H
	MOVFF   WREG,TMR0L
	MOVLW   B'10000001'
	MOVFF   WREG,T0CON
    BSF     CTRL 
	BCF     INTCON,TMR0IF
	BSF     INTCON,TMR0IE

    NOP
    NOP
    BCF     PORTG,2
    NOP
    BCF     LATB,0
    BCF     LATB,0
    NOP
    NOP
    BCF     FAG1, 1
    BCF     FAG1, 0
    MOVLW   01H
    MOVFF   WREG,FLAG2
    BSF     LATE,3
;-------------------------------
	LFSR   FSR0, 000H
CLRM0:
	CLRF   POSTINC0
	BTFSS  FSR0H,0
	GOTO   CLRM0
	LFSR   FSR0, 100H
CLRM1:
	CLRF   POSTINC0
	BTFSS  FSR0H,1
	GOTO   CLRM1
	MOVLW  0FFH
	MOVWF  LATE

	MOVLW   01H
	MOVFF   WREG,FLAG2


	MOVLW  00
	MOVWF  DISID
	BCF    FLAG3,0
	MOVLW  0
	MOVWF  EEROMH
	MOVLW  0
	MOVWF  EEROML
	CALL   EEREAD
	MOVWF  HUANG
	SUBLW  88H
	BTFSS  STATUS,Z
	GOTO   BEGN0

	CALL   EER1
	GOTO   STARTT
BEGN0:
	CALL   WRTIME0
	MOVLW  0
	MOVWF  EEROML
	MOVLW  88H
	MOVWF  EEVAL
	CALL   EEWRITE
	CALL   EEW1
	MOVLW  0FFH
	MOVWF  NB
STARTA:
	CALL   NOBLE
	MOVF   TURN0,W
	SUBLW  01H
	BTFSC  STATUS,Z
	DECFSZ NB,F
	GOTO   STARTA
STARTT:
	BSF    INTCON,GIE      ; Global Enable interrupt
	MOVLW  0
	MOVWF  DISID
START:
;RES3:RES0 = ARG1H:ARG1L · ARG2H:ARG2L
;u220--0.1V  8,00,00  0.2V  10,00,00
;a100--0.1A  8,00,00  0.2V  10,00,00
       BTFSS  FAG1,3
       GOTO   BYPA
       CALL   ZHANG
BYPA:
       NOP
       NOP
       CALL   ACUI
       NOP
       CALL   CUI
       NOP
       CALL   TEMPH
       CALL   BAOJING
       NOP
       NOP
       NOP
       CALL   WRTIME
       NOP
       CALL   SAVEDW
       NOP
       BCF    WDOG
       NOP
       NOP
       NOP
       BSF    WDOG
       NOP
       NOP
       CALL   ONE
       NOP
       CALL   K101
       NOP
       CALL   K201
       NOP
       CALL   K301
       NOP
       CALL   K401
       NOP
       BTFSS  FAG0,6
       GOTO   START
       BTFSC  FLAG3,0
       GOTO   MMMM

       BTFSC  FAG0,4
       GOTO   START
MMMM:
       BCF    FAG0,6
       CALL   RETIME
       NOP
       NOP
       BTFSS  FLAG3,1
       GOTO   START
       BCF    FLAG3,1
       CALL   RE7758
       NOP
       NOP
       NOP
       NOP
       NOP
       GOTO   START
;*******************************;display sub program
NOBLE:
    MOVLW  1AH
    MOVWF  DIS8
    MOVLW  1DH
    MOVWF  DIS7
    MOVLW  1EH
    MOVWF  DIS4
    MOVLW  0BH
    MOVWF  DIS3
    MOVLW  20H
    MOVWF  DIS2
    MOVLW  0EH
    MOVWF  DIS1
    RETURN

ONE:
    MOVF   DISID,W
    SUBLW  00H
    BTFSS  STATUS,Z
    GOTO   TWO
    MOVLW  00
    MOVWF  DIS8
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5     
    BTFSC  FAG0,4
    GOTO   SETDIS0

    MOVLW  2
    MOVWF  DIS4
    MOVLW  0
    MOVWF  DIS3
    SWAPF  YEARL,W
    ANDLW  0FH
    MOVWF  DIS2
    MOVF   YEARL,W
    ANDLW  0FH
    MOVWF  DIS1
    RETURN
TWO:
    MOVF   DISID,W
    SUBLW  01H
    BTFSS  STATUS,Z
    GOTO   THREE
    MOVLW  00
    MOVWF  DIS8
    MOVLW  1
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5     
    BTFSC  FAG0,4
    GOTO   SETDIS
    
    SWAPF   MONTH,W
    ANDLW  0FH
    MOVWF  DIS4

    MOVF   MONTH,W
    ANDLW  0FH
    ADDLW  10H
    MOVWF  DIS3

    SWAPF  DAY,W
    ANDLW  0FH
    MOVWF  DIS2

    MOVF   DAY,W
    ANDLW  0FH
    MOVWF  DIS1
    RETURN

THREE:  
    MOVF   DISID,W
    SUBLW  02H
    BTFSS  STATUS,Z
    GOTO   FOUR
    MOVLW  00
    MOVWF  DIS8
    MOVLW  2
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5     
    BTFSC  FAG0,4
    GOTO   SETDIS

    SWAPF  TIME0,W
    ANDLW  0FH
    MOVWF  DIS4
    MOVF   TIME0,W
    ANDLW  0FH
    BTFSS  ARMC010,0
    ADDLW  10H
    MOVWF  DIS3

    SWAPF  MIN0,W
    ANDLW  0FH
    MOVWF  DIS2
    MOVF   MIN0,W
    ANDLW  0FH
    MOVWF  DIS1
    RETURN
FOUR:
    MOVF   DISID,W
    SUBLW  03H
    BTFSS  STATUS,Z
    GOTO   FIVE
    MOVLW  00H
    MOVWF  DIS8
    MOVLW  3 
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5     
    
    MOVF   UAH,W
    ANDLW  0FH
    MOVWF  DIS4
    
    SWAPF  UAL,W
    ANDLW  0FH
    MOVWF  DIS3
    
    MOVF   UAL,W
    ANDLW  0FH    
    MOVWF  DIS2
    MOVLW  1BH
    MOVWF  DIS1
    RETURN
FIVE:
    MOVF   DISID,W
    SUBLW  04H
    BTFSS  STATUS,Z
    GOTO   SIX
    MOVLW  00H
    MOVWF  DIS8
    MOVLW  4 
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5
     
    MOVF   UBH,W
    ANDLW  0FH
    MOVWF  DIS4
    
    SWAPF  UBL,W
    ANDLW  0FH
    MOVWF  DIS3
    
    MOVF   UBL,W
    ANDLW  0FH    
    MOVWF  DIS2
    MOVLW  1BH
    MOVWF  DIS1
    RETURN
SIX:
    MOVF   DISID,W
    SUBLW  05H
    BTFSS  STATUS,Z
    GOTO   SEVEN
    MOVLW  00H
    MOVWF  DIS8
    MOVLW  5 
    MOVWF  DIS7
    MOVLW  1AH
    MOVWF  DIS6
    MOVWF  DIS5
     
    MOVF   UCH,W
    ANDLW  0FH
    MOVWF  DIS4
    
    SWAPF  UCL,W
    ANDLW  0FH
    MOVWF  DIS3
    
    MOVF   UCL,W
    ANDLW  0FH    
    MOVWF  DIS2
    MOVLW  1BH
    MOVWF  DIS1
    RETURN

SEVEN
    MOVF   DISID,W
    SUBLW  06H
    BTFSS  STATUS,Z
    GOTO   EIGHT
    MOVLW  00H
    MOVWF  DIS8
    MOVLW  6 
    MOVWF  DIS7
    MOVLW  1A
    MOVWF  DIS6
    MOVWF  DIS5     
    MOVF   IAH,W
    ANDLW  0FH
    MOVWF  DIS4
    
    SWAPF  IAL,W
    ANDLW  0FH
    MOVWF  DIS3
    
    MOVF   IAL,W
    ANDLW  0FH    
    MOVWF  DIS2

    MOVLW  1CH
    MOVWF  DIS1
    RETURN   
EIGHT
    MOVF   DISID,W
    SUBLW  07H
    BTFSS  STATUS,Z
    GOTO   NINE
    MOVLW  00H
    MOVWF  DIS8
    MOVLW  7 
    MOVWF  DIS7
    MOVLW  1A
    MOVWF  DIS6
    MOVWF  DIS5     
    MOVF   IBH,W
    ANDLW  0FH
    MOVWF  DIS4
    
    SWAPF  IBL,W
    ANDLW  0FH
    MOVWF  DIS3

⌨️ 快捷键说明

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