📄 auto10.asm
字号:
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 + -