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

📄 iron-off.asm

📁 按一下接收板的轻触开关
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; original File = G:\马德智temp\u盘\IrOn-Off-629\IrOn-Off.hex

    processor 12F629
    #include <P12F629.INC>
    __config 0x3FCC
;   _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_ON 
;   & _INTRC_OSC_NOCLKOUT 

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23
LRAM_0x28 equ 0x28
LRAM_0x32 equ 0x32
LRAM_0x44 equ 0x44
LRAM_0x45 equ 0x45
LRAM_0x46 equ 0x46
LRAM_0x47 equ 0x47
LRAM_0x4A equ 0x4A
LRAM_0x4B equ 0x4B
LRAM_0x4C equ 0x4C
LRAM_0x4D equ 0x4D
LRAM_0x50 equ 0x50
LRAM_0x52 equ 0x52
LRAM_0x53 equ 0x53
LRAM_0x5D equ 0x5D
LRAM_0x5E equ 0x5E

; Program

    Org 0x0000

;   Reset-Vector
    GOTO LADR_0x005A
LADR_0x0001
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF EEADR          ; !!Bank!! Unimplemented - EEADR
    BSF EECON1,0         ; !!Bank!! Unimplemented - EECON1
;   Interrupt-Vector
    MOVF EEDATA,W        ; !!Bank!! Unimplemented - EEDATA
    GOTO LADR_0x0055
LADR_0x0006
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF EEDATA         ; !!Bank!! Unimplemented - EEDATA
    BSF EECON1,2         ; !!Bank!! Unimplemented - EECON1
    MOVLW 0x55
    MOVWF EECON2         ; !!Bank!! Unimplemented - EECON2
    MOVLW 0xAA
    MOVWF EECON2         ; !!Bank!! Unimplemented - EECON2
    BSF EECON1,1         ; !!Bank!! Unimplemented - EECON1
LADR_0x000E
    BTFSC EECON1,1       ; !!Bank!! Unimplemented - EECON1
    GOTO LADR_0x000E
    BCF EECON1,2         ; !!Bank!! Unimplemented - EECON1
    GOTO LADR_0x0055
    CLRF LRAM_0x23
LADR_0x0013
    MOVWF LRAM_0x22
LADR_0x0014
    MOVLW 0xFF
    ADDWF LRAM_0x22,F
    BTFSS STATUS,C
    ADDWF LRAM_0x23,F
    BTFSS STATUS,C
    GOTO LADR_0x0055
    MOVLW 0x03
    MOVWF LRAM_0x21
    MOVLW 0xDF
    CALL LADR_0x0020
    GOTO LADR_0x0014
    CLRF LRAM_0x21
LADR_0x0020
    ADDLW 0xE8
    MOVWF LRAM_0x20
    COMF LRAM_0x21,F
    MOVLW 0xFC
    BTFSS STATUS,C
    GOTO LADR_0x0029
LADR_0x0026
    ADDWF LRAM_0x20,F
    BTFSC STATUS,C
    GOTO LADR_0x0026
LADR_0x0029
    ADDWF LRAM_0x20,F
    CLRWDT
    INCFSZ LRAM_0x21,F
    GOTO LADR_0x0026
    BTFSC LRAM_0x20,0
    GOTO LADR_0x002F
LADR_0x002F
    BTFSS LRAM_0x20,1
    GOTO LADR_0x0033
    NOP
    GOTO LADR_0x0033
LADR_0x0033
    RETURN
LADR_0x0034
    BCF STATUS,C
    RRF LRAM_0x21,F
    RRF LRAM_0x20,F
    ADDLW 0xFF
    BTFSC STATUS,C
    GOTO LADR_0x0034
    MOVF LRAM_0x20,W
    GOTO LADR_0x0055
LADR_0x003C
    MOVWF LRAM_0x22
    MOVLW 0x03
    GOTO LADR_0x0045
LADR_0x003F
    MOVWF LRAM_0x22
    MOVLW 0x01
    GOTO LADR_0x0045
LADR_0x0042
    MOVWF LRAM_0x22
    MOVLW 0x06
    GOTO LADR_0x0045
LADR_0x0045
    MOVWF LRAM_0x28
    MOVF LRAM_0x23,W
    SUBWF LRAM_0x21,W
    BTFSS STATUS,Z
    GOTO LADR_0x004C
    MOVF LRAM_0x22,W
    SUBWF LRAM_0x20,W
LADR_0x004C
    MOVLW 0x04
    BTFSC STATUS,C
    MOVLW 0x01
    BTFSC STATUS,Z
    MOVLW 0x02
    ANDWF LRAM_0x28,W
    BTFSS STATUS,Z
    MOVLW 0xFF
    GOTO LADR_0x0055
LADR_0x0055
    BCF STATUS,IRP
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRWDT
    RETURN
LADR_0x005A
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x3F
    MOVWF GPIO           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x30
    MOVWF WPU            ; !!Bank!! Unimplemented - WPU
    BCF TMR0,7           ; !!Bank!! TMR0 - OPTION_REG
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x07
    MOVWF CMCON          ; !!Bank!! CMCON - VRCON
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CALL LADR_0x03FF
    MOVWF T1CON          ; !!Bank!! T1CON - OSCCAL
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRF INTCON
    BCF PIR1,0           ; !!Bank!! PIR1 - PIE1
    BCF INTCON,T0IF
    CLRF T1CON           ; !!Bank!! T1CON - OSCCAL
    CLRF LRAM_0x50
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF GPIO,4           ; !!Bank!! GPIO - TRISIO
    BSF GPIO,5           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,0           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,0           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,1           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,1           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
LADR_0x007C
    CALL LADR_0x0203
    CALL LADR_0x0122
    CLRWDT
    BTFSC LRAM_0x50,4
    GOTO LADR_0x0082
    GOTO LADR_0x007C
LADR_0x0082
    CALL LADR_0x0084
    GOTO LADR_0x007C
LADR_0x0084
    BSF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRF LRAM_0x5D
LADR_0x0089
    CLRWDT
    MOVLW 0x0A
    SUBWF LRAM_0x5D,W
    BTFSC STATUS,C
    GOTO LADR_0x009E
    MOVF LRAM_0x5D,W
    CALL LADR_0x0001
    MOVWF LRAM_0x53
    MOVF LRAM_0x5D,W
    ADDLW 0x3A
    MOVWF FSR
    MOVF INDF,W
    MOVWF LRAM_0x32
    CLRWDT
    MOVF LRAM_0x53,W
    SUBWF LRAM_0x32,W
    BTFSC STATUS,Z
    GOTO LADR_0x009C
    GOTO LADR_0x00A3
LADR_0x009C
    INCFSZ LRAM_0x5D,F
    GOTO LADR_0x0089
LADR_0x009E
    MOVLW 0x01
    XORWF GPIO,F         ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,0           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
LADR_0x00A3
    BCF LRAM_0x50,4
    MOVLW 0x01
    MOVWF LRAM_0x44
    CLRF LRAM_0x45
LADR_0x00A7
    MOVF LRAM_0x44,W
    MOVWF LRAM_0x20
    MOVF LRAM_0x45,W
    MOVWF LRAM_0x21
    MOVLW 0x03
    MOVWF LRAM_0x23
    MOVLW 0xE8
    CALL LADR_0x003F
    BTFSS STATUS,Z
    GOTO LADR_0x00B9
    CLRWDT
    BTFSC GPIO,5         ; !!Bank!! GPIO - TRISIO
    GOTO LADR_0x00B5
    BSF LRAM_0x50,4
LADR_0x00B5
    INCF LRAM_0x44,F
    BTFSC STATUS,Z
    INCFSZ LRAM_0x45,F
    GOTO LADR_0x00A7
LADR_0x00B9
    CLRWDT
    BTFSS LRAM_0x50,4
    GOTO LADR_0x00BD
    GOTO LADR_0x00A3
LADR_0x00BD
    MOVLW 0x01
    MOVWF LRAM_0x44
    CLRF LRAM_0x45
LADR_0x00C0
    MOVF LRAM_0x44,W
    MOVWF LRAM_0x20
    MOVF LRAM_0x45,W
    MOVWF LRAM_0x21
    MOVLW 0x03
    MOVWF LRAM_0x23
    MOVLW 0xE8
    CALL LADR_0x003F
    BTFSS STATUS,Z
    GOTO LADR_0x00D2
    CLRWDT
    BTFSC GPIO,5         ; !!Bank!! GPIO - TRISIO
    GOTO LADR_0x00CE
    GOTO LADR_0x00A3
LADR_0x00CE
    INCF LRAM_0x44,F
    BTFSC STATUS,Z
    INCFSZ LRAM_0x45,F
    GOTO LADR_0x00C0
LADR_0x00D2
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    RETURN
LADR_0x00D7
    CLRF LRAM_0x5D
LADR_0x00D8
    CLRWDT
    MOVLW 0x0A
    SUBWF LRAM_0x5D,W
    BTFSC STATUS,C
    GOTO LADR_0x00E4
    MOVF LRAM_0x5D,W
    ADDLW 0x3A
    MOVWF FSR
    MOVLW 0xFF
    MOVWF INDF
    INCFSZ LRAM_0x5D,F
    GOTO LADR_0x00D8
LADR_0x00E4
    CLRF LRAM_0x44
    CLRF LRAM_0x45
LADR_0x00E6
    INCF LRAM_0x44,F
    BTFSC STATUS,Z
    INCF LRAM_0x45,F
    CALL LADR_0x0122
    CLRWDT
    BTFSC LRAM_0x50,4
    GOTO LADR_0x00FA
    MOVF LRAM_0x44,W
    MOVWF LRAM_0x20
    MOVF LRAM_0x45,W
    MOVWF LRAM_0x21
    MOVLW 0xFD
    MOVWF LRAM_0x23
    MOVLW 0xE8
    CALL LADR_0x003C
    BTFSS STATUS,Z
    GOTO LADR_0x00F9
    GOTO LADR_0x00E6
    GOTO LADR_0x00FA
LADR_0x00F9
    GOTO LADR_0x0119
LADR_0x00FA
LADR_0x00FF
    CLRWDT
    MOVLW 0x0A
    SUBWF LRAM_0x5D,W
    BTFSC STATUS,C
    GOTO LADR_0x0111
    MOVF LRAM_0x5D,W

⌨️ 快捷键说明

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