📄 pic16f684carbo.asm
字号:
; original File = C:\switchecu\pic16f684carbo.hex
processor 16F684
#include <P16F684.INC>
__config 0x330C
; _FCMEN_OFF & _IESO_OFF & _BOD_ON & _CPD_ON & _CP_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_ON
; & _INTOSCIO
; __idlocs 0xFF, 0xFF, 0xFF, 0xFF
; EEPROM-Data
Org 0x2100
DE 0xFF, 0xFF, 0xF0, 0x01, 0x88, 0x13, 0x0C, 0x02
DE 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0x0F, 0x00, 0xC8, 0x8D, 0x5E, 0x28, 0x09, 0xFF
DE 0x13, 0x24, 0x38, 0x45, 0x1E, 0xFF, 0x11, 0x2B
DE 0x49, 0x60, 0x13, 0xFF, 0x80, 0x00, 0x00, 0x00
DE 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
DE 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x24 equ 0x24
LRAM_0x25 equ 0x25
LRAM_0x26 equ 0x26
LRAM_0x27 equ 0x27
LRAM_0x28 equ 0x28
LRAM_0x29 equ 0x29
LRAM_0x2A equ 0x2A
LRAM_0x2B equ 0x2B
LRAM_0x2C equ 0x2C
LRAM_0x2D equ 0x2D
LRAM_0x2E equ 0x2E
LRAM_0x2F equ 0x2F
LRAM_0x30 equ 0x30
LRAM_0x31 equ 0x31
LRAM_0x32 equ 0x32
LRAM_0x33 equ 0x33
LRAM_0x34 equ 0x34
LRAM_0x37 equ 0x37
LRAM_0x38 equ 0x38
LRAM_0x3D equ 0x3D
LRAM_0x3F equ 0x3F
LRAM_0x42 equ 0x42
LRAM_0x43 equ 0x43
LRAM_0x44 equ 0x44
LRAM_0x45 equ 0x45
LRAM_0x46 equ 0x46
LRAM_0x47 equ 0x47
LRAM_0x48 equ 0x48
LRAM_0x49 equ 0x49
LRAM_0x4A equ 0x4A
LRAM_0x4B equ 0x4B
LRAM_0x4C equ 0x4C
LRAM_0x4D equ 0x4D
LRAM_0x4E equ 0x4E
LRAM_0x4F equ 0x4F
LRAM_0x50 equ 0x50
LRAM_0x51 equ 0x51
LRAM_0x52 equ 0x52
LRAM_0x53 equ 0x53
LRAM_0x54 equ 0x54
LRAM_0x55 equ 0x55
LRAM_0x56 equ 0x56
LRAM_0x57 equ 0x57
LRAM_0x58 equ 0x58
LRAM_0x59 equ 0x59
LRAM_0x5A equ 0x5A
LRAM_0x5B equ 0x5B
LRAM_0x5C equ 0x5C
LRAM_0x5D equ 0x5D
; Program
Org 0x0000
; Reset-Vector
NOP
GOTO LADR_0x01EA
ADDLW 0xFF
ADDLW 0xFF
; Interrupt-Vector
MOVWF LRAM_0x20
SWAPF STATUS,W
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF STATUS,RP1 ; !!Bank Register-Bank(2/3)-Select
MOVWF LRAM_0x21
MOVF PCLATH,W ; !!Bank Program-Page-Select
MOVWF LRAM_0x22
CALL LADR_0x0031
MOVF LRAM_0x22,W
MOVWF PCLATH ; !!Bank Program-Page-Select
SWAPF LRAM_0x21,W
MOVWF STATUS
SWAPF LRAM_0x20,F
SWAPF LRAM_0x20,W
RETFIE
LADR_0x0013
CLRF PCLATH ; !!Bank Program-Page-Select
ADDWF PCL,F
RETLW 0x10
RETLW 0x20
RETLW 0x01
RETLW 0x02
RETLW 0x30
RETLW 0x31
RETLW 0x33
RETLW 0x00
LADR_0x001D
CLRF PCLATH ; !!Bank Program-Page-Select
ADDWF PCL,F
RETLW 0x10
RETLW 0x20
RETLW 0x21
RETLW 0x23
RETLW 0x27
LADR_0x0024
BTFSS LRAM_0x4D,1
RETURN
BCF INTCON,GIE
MOVF LRAM_0x38,W
MOVWF LRAM_0x24
MOVF LRAM_0x37,W
MOVWF LRAM_0x23
BCF LRAM_0x4D,1
BSF INTCON,GIE
DECF LRAM_0x3F,F
BTFSC STATUS,Z
BSF LRAM_0x4D,2
RETURN
LADR_0x0031
BTFSS PIR1,5 ; !!Bank!! PIR1 - PIE1
GOTO LADR_0x0035
BCF PIR1,5 ; !!Bank!! PIR1 - PIE1
GOTO LADR_0x003B
LADR_0x0035
BTFSS PIR1,0 ; !!Bank!! PIR1 - PIE1
RETURN
BCF PIR1,0 ; !!Bank!! PIR1 - PIE1
INCFSZ LRAM_0x3D,W
MOVWF LRAM_0x3D
RETURN
LADR_0x003B
CLRF LRAM_0x3D
BSF LRAM_0x4D,1
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
BCF PIR1,5 ; !!Bank!! PIR1 - PIE1
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
GOTO LADR_0x0035
LADR_0x0041
MOVLW 0x03
MOVWF LRAM_0x3F
MOVLW 0xFF
MOVWF LRAM_0x33
MOVWF LRAM_0x34
RETURN
LADR_0x0047
MOVF LRAM_0x3D,W
SUBLW 0x04
BTFSC STATUS,C
RETURN
CALL LADR_0x0041
BTFSS LRAM_0x4D,2
RETURN
BCF LRAM_0x4D,2
GOTO LADR_0x0367
LADR_0x0050
BSF LRAM_0x4D,0
MOVLW 0x06
MOVWF LRAM_0x4B
MOVWF LRAM_0x4C
BSF PORTC,1 ; !!Bank!! PORTC - TRISC
BCF PORTA,2 ; !!Bank!! PORTA - TRISA
BSF LRAM_0x49,1
BSF LRAM_0x4A,2
MOVLW 0xFF
MOVWF LRAM_0x47
MOVLW 0xB7
MOVWF LRAM_0x56
MOVLW 0x00
MOVWF LRAM_0x57
RETURN
LADR_0x005F
MOVF LRAM_0x57,W
XORLW 0x14
BTFSC STATUS,Z
GOTO LADR_0x0075
XORLW 0x14
BTFSC STATUS,Z
GOTO LADR_0x009A
XORLW 0x01
BTFSC STATUS,Z
GOTO LADR_0x00A4
XORLW 0x03
BTFSC STATUS,Z
GOTO LADR_0x0093
XORLW 0x01
BTFSC STATUS,Z
GOTO LADR_0x009A
XORLW 0x07
BTFSC STATUS,Z
GOTO LADR_0x00A4
XORLW 0x0A
BTFSC STATUS,Z
GOTO LADR_0x0082
LADR_0x0075
RETURN
MOVF LRAM_0x34,W
SUBWF LRAM_0x51,W
BTFSS STATUS,Z
GOTO LADR_0x007C
MOVF LRAM_0x33,W
SUBWF LRAM_0x50,W
LADR_0x007C
BSF LRAM_0x4A,4
BTFSS STATUS,C
RETURN
BCF LRAM_0x4A,4
BSF PORTA,4 ; !!Bank!! PORTA - TRISA
RETURN
LADR_0x0082
MOVF LRAM_0x56,F
BTFSS STATUS,Z
GOTO LADR_0x008F
BTFSS LRAM_0x5D,1
GOTO LADR_0x008A
BCF LRAM_0x5D,1
LADR_0x0088
MOVLW 0x1F
GOTO LADR_0x008E
LADR_0x008A
MOVF LRAM_0x52,W
BTFSC STATUS,Z
GOTO LADR_0x0088
BSF LRAM_0x5D,1
LADR_0x008E
MOVWF LRAM_0x56
LADR_0x008F
BCF PORTA,4 ; !!Bank!! PORTA - TRISA
BTFSC LRAM_0x5D,1
BSF PORTA,4 ; !!Bank!! PORTA - TRISA
RETURN
LADR_0x0093
BTFSS LRAM_0x4F,3
GOTO LADR_0x00A4
MOVLW 0x5C
MOVWF LRAM_0x56
MOVLW 0x03
MOVWF LRAM_0x57
RETURN
LADR_0x009A
MOVF LRAM_0x56,F
BTFSS STATUS,Z
RETURN
BCF PORTA,2 ; !!Bank!! PORTA - TRISA
BSF LRAM_0x49,1
BCF LRAM_0x4A,2
MOVLW 0x5C
MOVWF LRAM_0x56
INCF LRAM_0x57,F
RETURN
LADR_0x00A4
MOVF LRAM_0x56,F
BTFSS STATUS,Z
RETURN
GOTO LADR_0x013C
LADR_0x00A8
MOVF LRAM_0x57,W
XORLW 0x00
BTFSC STATUS,Z
GOTO LADR_0x013C
XORLW 0x01
BTFSC STATUS,Z
GOTO LADR_0x00C2
XORLW 0x03
BTFSC STATUS,Z
GOTO LADR_0x013C
XORLW 0x01
BTFSC STATUS,Z
GOTO LADR_0x013C
XORLW 0x07
BTFSC STATUS,Z
GOTO LADR_0x00C2
XORLW 0x0E
BTFSC STATUS,Z
GOTO LADR_0x00DB
XORLW 0x07
BTFSC STATUS,Z
GOTO LADR_0x00DB
XORLW 0x03
BTFSC STATUS,Z
GOTO LADR_0x00F3
RETURN
LADR_0x00C2
MOVLW 0x3D
MOVWF LRAM_0x47
BCF PORTC,1 ; !!Bank!! PORTC - TRISC
BCF LRAM_0x49,1
BSF LRAM_0x4A,2
MOVLW 0x0A
MOVWF LRAM_0x57
MOVLW 0x10
CALL LADR_0x0370
MOVWF LRAM_0x58
MOVLW 0x11
CALL LADR_0x0370
MOVWF LRAM_0x59
MOVF LRAM_0x54,W
LADR_0x00D0
MOVWF LRAM_0x5C
MOVWF LRAM_0x23
INCF LRAM_0x23,F
BSF STATUS,C
CLRF LRAM_0x5A
CLRF LRAM_0x5B
LADR_0x00D6
RLF LRAM_0x5A,F
RLF LRAM_0x5B,F
DECFSZ LRAM_0x23,F
GOTO LADR_0x00D6
GOTO LADR_0x00EB
LADR_0x00DB
BCF STATUS,C
LADR_0x00DC
INCF LRAM_0x5C,F
RLF LRAM_0x5A,F
RLF LRAM_0x5B,F
BTFSS STATUS,C
GOTO LADR_0x00E3
CLRF LRAM_0x5C
RLF LRAM_0x5A,F
LADR_0x00E3
MOVF LRAM_0x5A,W
ANDWF LRAM_0x58,W
BTFSS STATUS,Z
GOTO LADR_0x00EB
MOVF LRAM_0x5B,W
ANDWF LRAM_0x59,W
BTFSC STATUS,Z
GOTO LADR_0x00DC
LADR_0x00EB
MOVF LRAM_0x5C,W
CALL LADR_0x0013
MOVWF LRAM_0x23
MOVLW 0xCC
ANDWF PORTA,F ; !!Bank!! PORTA - TRISA
MOVF LRAM_0x23,W
IORWF PORTA,F ; !!Bank!! PORTA - TRISA
RETURN
LADR_0x00F3
MOVLW 0x03
BTFSS LRAM_0x4F,7
GOTO LADR_0x00FA
ADDWF LRAM_0x52,W
BTFSC STATUS,C
MOVLW 0xFF
GOTO LADR_0x00FD
LADR_0x00FA
SUBWF LRAM_0x52,W
BTFSS STATUS,C
MOVLW 0x00
LADR_0x00FD
MOVWF LRAM_0x52
RETURN
LADR_0x00FF
MOVF LRAM_0x57,W
XORLW 0x0A
BTFSC STATUS,Z
GOTO LADR_0x010A
XORLW 0x07
BTFSC STATUS,Z
GOTO LADR_0x0117
XORLW 0x03
BTFSC STATUS,Z
GOTO LADR_0x0125
RETURN
LADR_0x010A
MOVF LRAM_0x5C,W
MOVWF LRAM_0x54
BCF PORTC,1 ; !!Bank!! PORTC - TRISC
BSF PORTA,2 ; !!Bank!! PORTA - TRISA
BCF LRAM_0x49,1
BCF LRAM_0x4A,2
MOVLW 0x0D
MOVWF LRAM_0x57
CLRF LRAM_0x59
MOVLW 0x0C
MOVWF LRAM_0x58
MOVF LRAM_0x53,W
GOTO LADR_0x00D0
LADR_0x0117
MOVF LRAM_0x5C,W
MOVWF LRAM_0x53
BSF PORTC,1 ; !!Bank!! PORTC - TRISC
BCF PORTA,2 ; !!Bank!! PORTA - TRISA
BCF LRAM_0x49,1
BCF LRAM_0x4A,2
BSF LRAM_0x4F,0
MOVLW 0x0E
MOVWF LRAM_0x57
BSF LRAM_0x5D,1
CLRF LRAM_0x56
MOVLW 0xCC
ANDWF PORTA,F ; !!Bank!! PORTA - TRISA
RETURN
LADR_0x0125
MOVF LRAM_0x52,W
MOVWF LRAM_0x27
MOVLW 0x06
CALL LADR_0x0376
CLRWDT
MOVF LRAM_0x53,W
MOVWF LRAM_0x27
MOVLW 0x07
CALL LADR_0x0376
MOVF LRAM_0x54,W
MOVWF LRAM_0x27
MOVLW 0x08
CALL LADR_0x0376
MOVLW 0xCC
ANDWF PORTA,F ; !!Bank!! PORTA - TRISA
BCF LRAM_0x4A,4
BSF PORTC,1 ; !!Bank!! PORTC - TRISC
BCF PORTA,2 ; !!Bank!! PORTA - TRISA
BSF LRAM_0x49,1
BSF LRAM_0x4A,2
MOVLW 0x14
MOVWF LRAM_0x57
RETURN
LADR_0x013C
BCF PORTC,1 ; !!Bank!! PORTC - TRISC
BCF PORTA,2 ; !!Bank!! PORTA - TRISA
BCF LRAM_0x49,1
BCF LRAM_0x4A,2
CLRF LRAM_0x4A
CLRF LRAM_0x49
BCF LRAM_0x4D,0
RETURN
LADR_0x0144
MOVLW 0x2E
MOVWF FSR
MOVF LRAM_0x54,W
MOVWF LRAM_0x24
MOVLW 0x12
BTFSC STATUS,Z
GOTO LADR_0x014E
LADR_0x014B
ADDLW 0x06
DECFSZ LRAM_0x24,F
GOTO LADR_0x014B
LADR_0x014E
MOVWF LRAM_0x23
MOVLW 0x05
MOVWF LRAM_0x24
LADR_0x0151
MOVF LRAM_0x23,W
CALL LADR_0x0370
MOVWF INDF
INCF FSR,F
INCF LRAM_0x23,F
DECFSZ LRAM_0x24,F
GOTO LADR_0x0151
MOVF LRAM_0x2F,W
BTFSS STATUS,Z
GOTO LADR_0x015F
BSF LRAM_0x2C,2
BTFSC LRAM_0x30,0
BSF LRAM_0x2C,0
GOTO LADR_0x0167
LADR_0x015F
SUBWF LRAM_0x2E,W
BTFSS STATUS,C
GOTO LADR_0x0167
BSF LRAM_0x2C,0
COMF LRAM_0x2E,F
COMF LRAM_0x2F,F
COMF LRAM_0x30,F
COMF LRAM_0x31,F
LADR_0x0167
CLRF LRAM_0x2A
CLRF LRAM_0x29
CALL LADR_0x01B7
LADR_0x016A
MOVLW 0x11
CALL LADR_0x0257
BTFSC LRAM_0x2C,0
SUBLW 0xFF
BTFSC LRAM_0x2C,1
GOTO LADR_0x018C
SUBWF LRAM_0x2A,W
BTFSC STATUS,Z
GOTO LADR_0x01AA
BTFSS STATUS,C
GOTO LADR_0x0181
DECF LRAM_0x2A,F
DECF LRAM_0x2D,F
BTFSS LRAM_0x2D,7
GOTO LADR_0x017F
COMF LRAM_0x2D,W
ADDLW 0x02
SUBWF LRAM_0x32,W
BTFSC LRAM_0x2C,3
BTFSS STATUS,C
GOTO LADR_0x018D
LADR_0x017F
INCF LRAM_0x2A,F
RETURN
LADR_0x0181
INCF LRAM_0x2A,F
INCF LRAM_0x2D,F
BTFSC LRAM_0x2D,7
GOTO LADR_0x018A
MOVF LRAM_0x32,W
SUBWF LRAM_0x2D,W
BTFSC LRAM_0x2C,3
BTFSC STATUS,C
GOTO LADR_0x018D
LADR_0x018A
DECF LRAM_0x2A,F
RETURN
LADR_0x018C
MOVWF LRAM_0x2A
LADR_0x018D
CLRF LRAM_0x2D
MOVLW 0x2E
ADDWF LRAM_0x29,W
MOVWF FSR
LADR_0x0191
MOVLW 0x04
BTFSC LRAM_0x2C,2
MOVLW 0x01
SUBWF LRAM_0x29,W
BTFSC STATUS,C
GOTO LADR_0x01A1
MOVLW 0x03
ADDWF INDF,W
SUBWF LRAM_0x2A,W
BTFSS STATUS,C
GOTO LADR_0x01A1
INCF LRAM_0x29,F
INCF FSR,F
GOTO LADR_0x0191
LADR_0x019F
DECF LRAM_0x29,F
DECF FSR,F
LADR_0x01A1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -