📄 zsy.asm
字号:
MOVLW 0x00
MOVWF T1CON
MOVLW 0x00
MOVWF TMR1L
MOVLW 0x8B
MOVWF TMR1H
BSF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
NOP
BSF PORTB,KEY
NOP
NOP
BTFSS PORTB,KEY
GOTO PP_GUZZ
MOVLW 0xFF
MOVWF YS_KEY1
GOTO KKG_JICUAN
PP_GUZZ
DECFSZ YS_KEY1,1
GOTO KKG_JICUAN
READY_GO
BSF PORTB,KEY
NOP
NOP
BTFSS PORTB,KEY
GOTO READY_GO
NOP
GOTO MAIN1
CHG_STOP1
MOVLW 0xFF
MOVWF KKG_BAD
CHG_STOP
MOVLW 0x85 ;2.6V
SUBWF AD3TEMP,0
BTFSC STATUS,C
GOTO CHG_BATS1
NOP
DECFSZ YS_BATH,1
GOTO CHG_BATS
BCF XT_MAP,0
BSF SD_MAP,0
GOTO LOOP_END
CHG_BATS1
MOVLW 0xFF
MOVWF YS_BATH
CHG_BATS
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
MOVLW 0x00
MOVWF T1CON
MOVLW 0x00
MOVWF TMR1L
MOVLW 0x8B
MOVWF TMR1H
NOP
BCF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
GOTO LOOP_END
NB_JIDAN1
BSF PORTC,JDQ
BCF PORTC,PWM
BSF PORTC,CD
BCF PORTB,LED5
BCF PORTB,LED6
NOP
MOVLW 0xE6 ;4.5V
SUBWF AD5TEMP,0
BTFSS STATUS,C
GOTO NB_PAN_GZ
GUAN_JI
NOP
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
BSF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
BSF NB_MAP,7
BSF XT_MAP,0
BCF NB_MAP,0
GOTO NB_JIDAN2
NB_PAN_GZ
MOVLW 0x66 ;2V
SUBWF AD5TEMP,0
BTFSS STATUS,C
GOTO NB_PAN_BAT1
NOP
BCF PORTB,LED5
BSF PORTB,LED6
DECFSZ YS_GZ1,1
GOTO NB_PAN_BAT
MOVLW 0xFF
MOVWF YS_GZ1
DECFSZ YS_GZ2,1
GOTO NB_PAN_BAT
NOP
BSF NB_MAP,7
BSF XT_MAP,0
BCF NB_MAP,0
GOTO LOOP_END
NB_PAN_BAT1
BCF PORTB,LED5
BCF PORTB,LED6
MOVLW 0xFF
MOVWF YS_GZ1
MOVLW 0x64
MOVWF YS_GZ2
NB_PAN_BAT
BTFSS KEY_MAP,QQ
GOTO NB_ZC_G1
MOVLW 0x5C ;1.8V
SUBWF AD3TEMP,0
BTFSC STATUS,C
GOTO NB_ZC_G1
NOP
DECFSZ YS_BATL,1
GOTO NB_ZC_GO
NOP
BCF NB_MAP,7
BSF XT_MAP,0
BCF NB_MAP,0
GOTO LOOP_END
NB_ZC_G1
MOVLW 0xFF
MOVWF YS_BATL
NB_ZC_GO
BTFSS PD_MAP,0
GOTO PROG_BEG
NOP
BCF PD_MAP,0
DECFSZ TEST_COUNT,1
GOTO PROG_BEG
NOP
MOVLW 0x30
SUBWF AD1TEMP,0
BTFSS STATUS,C
GOTO SHUC_LOW
MOVLW 0x80
MOVWF YS_SCLOW
GOTO WY_JIXU
SHUC_LOW
DECFSZ YS_SCLOW,1
GOTO WY_JIXU
NOP
GOTO GUAN_JI
WY_JIXU
MOVLW 0x02
MOVWF TEST_COUNT
MOVLW 0x90
SUBWF AD1TEMP,0
BTFSC STATUS,C
GOTO OUT_SUB5
MOVLW 0x80
SUBWF AD1TEMP,0
BTFSS STATUS,C
GOTO OUT_ADD5
MOVLW 0x88 ;2.6V
SUBWF AD1TEMP,0
BTFSS STATUS,C
GOTO OUT_ADD6
NOP
MOVLW 0x80
MOVWF YS_WYH
DECFSZ YS_WYL,1
GOTO PROG_BEG
MOVLW 0x80
MOVWF YS_WYL
MOVWF YS_WYH
GOTO OUT_SUB5
OUT_ADD6
NOP
MOVLW 0x80
MOVWF YS_WYL
DECFSZ YS_WYH,1
GOTO PROG_BEG
MOVLW 0x80
MOVWF YS_WYH
MOVWF YS_WYL
GOTO OUT_ADD5
OUT_SUB5
MOVLW 0x10
SUBWF OUT_LINE,0
BTFSS STATUS,C
GOTO PROG_BEG
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
DECF OUT_LINE,1
MOVLW 0x28
MOVWF LS_COUNT
MOVLW 0x00
MOVWF LS_DOT
SUB_LOOP
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 0x08
BSF STATUS,RP1
BCF STATUS,RP0
MOVWF PMADRH
BCF STATUS,RP1
MOVFW LS_DOT
BSF STATUS,RP1
MOVWF PMADR
BSF STATUS,RP0
BSF PMCON1,RD
NOP
NOP
BCF STATUS,RP0
MOVFW PMDATA
BCF STATUS,RP1
BCF STATUS,RP0
MOVWF LS_REG1
BCF STATUS,IRP
MOVLW 0xA0
ADDWF LS_DOT,0
MOVWF FSR
MOVFW INDF
MOVWF LS_REG2
MOVFW LS_REG1
BCF STATUS,C
SUBWF LS_REG2,1
BTFSC STATUS,C
GOTO SUB_WT
BCF STATUS,IRP
MOVLW 0xD0
ADDWF LS_DOT,0
MOVWF FSR
DECF INDF,1
GOTO SUB_WT
SUB_WT
BCF STATUS,IRP
MOVLW 0xA0
ADDWF LS_DOT,0
MOVWF FSR
MOVFW LS_REG2
MOVWF INDF
INCF LS_DOT,1
DECFSZ LS_COUNT,1
GOTO SUB_LOOP
NOP
BSF STATUS,RP0
BSF PIE1,TMR1IE
BSF INTCON,PEIE
BSF INTCON,GIE
BCF STATUS,RP0
GOTO PROG_BEG
OUT_ADD5
MOVLW 0xD0
SUBWF OUT_LINE,0
BTFSC STATUS,C
GOTO PROG_BEG
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
INCF OUT_LINE,1
MOVLW 0x28
MOVWF LS_COUNT
MOVLW 0x00
MOVWF LS_DOT
ADD_LOOP
BCF STATUS,RP1
BCF STATUS,RP0
MOVLW 0x08
BSF STATUS,RP1
BCF STATUS,RP0
MOVWF PMADRH
BCF STATUS,RP1
MOVFW LS_DOT
BSF STATUS,RP1
MOVWF PMADR
BSF STATUS,RP0
BSF PMCON1,RD
NOP
NOP
BCF STATUS,RP0
MOVFW PMDATA
BCF STATUS,RP1
BCF STATUS,RP0
MOVWF LS_REG1
BCF STATUS,IRP
MOVLW 0xA0
ADDWF LS_DOT,0
MOVWF FSR
MOVFW INDF
MOVWF LS_REG2
MOVFW LS_REG1
BCF STATUS,C
ADDWF LS_REG2,1
BTFSS STATUS,C
GOTO ADD_WT
BCF STATUS,IRP
MOVLW 0xD0
ADDWF LS_DOT,0
MOVWF FSR
INCF INDF,1
GOTO ADD_WT
ADD_WT
BCF STATUS,IRP
MOVLW 0xA0
ADDWF LS_DOT,0
MOVWF FSR
MOVFW LS_REG2
MOVWF INDF
INCF LS_DOT,1
DECFSZ LS_COUNT,1
GOTO ADD_LOOP
NOP
BSF STATUS,RP0
BSF PIE1,TMR1IE
BSF INTCON,PEIE
BSF INTCON,GIE
BCF STATUS,RP0
GOTO PROG_BEG
NB_JIDAN2
NOP
NOP
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
MOVLW 0x00
MOVWF T1CON
MOVLW 0x00
MOVWF TMR1L
MOVLW 0x8B
MOVWF TMR1H
NOP
BCF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
BSF XT_MAP,0
BCF NB_MAP,0
MOVLW 0x00
MOVWF CCP1CON
MOVLW 0x00
MOVWF CCPR1L
MOVLW 0x00
MOVWF CCP2CON
MOVLW 0x00
MOVWF CCPR2L
BTFSS NB_MAP,7
GOTO LED_GZL
NOP
BCF PORTB,LED5
BSF PORTB,LED6
GOTO LOOP_END
LED_GZL
NOP
BSF PORTB,LED5
BCF PORTB,LED6
GOTO LOOP_END
LOOP_END
NOP
GOTO PROG_BEG
DELAY
MOVLW 0x0F
MOVWF R0
DELAY1
DECFSZ R0,1
GOTO DELAY1
RETURN
intSvc
MOVWF W_TEMP
MOVFW STATUS
MOVWF STATUS_TEMP
MOVFW FSR
MOVWF FSR_TEMP
BCF STATUS,RP1
BCF STATUS,RP0
BTFSS PIR1,TMR1IF
GOTO restore
BCF PIR1,TMR1IF
BTFSC XT_MAP,0
GOTO NB_INT
NOP
BTFSC SF_CDMP,0
GOTO CD_INT1
NOP
DECFSZ SF_CDYS,1
GOTO CD_INT2
NOP
GOTO CD_INT1
CD_INT2
BCF SF_CDMP,0
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
BSF PORTC,CD
BSF SF_CDMP,5
MOVLW 0x00
MOVWF T1CON
GOTO restore
CD_INT1
BSF SF_CDMP,0
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
BCF PORTC,CD
BSF SF_CDMP,5
MOVLW 0x00
MOVWF T1CON
GOTO restore
NB_INT
MOVLW 0xFE
MOVWF TMR1H
MOVLW 0x20
MOVWF TMR1L
CLRWDT
BTFSS PD_MAP,1
GOTO SS_JID
NOP
XJ_JID
DECFSZ JS_COUNT,1
GOTO XJ_JID1
MOVLW 0x00
MOVWF DOT_COUNT
MOVLW 0x28
MOVWF JS_COUNT
BCF PD_MAP,1
BTFSS PORTC,0
GOTO ZF_BZ
BCF PORTC,0
GOTO SS_JID1
ZF_BZ
BSF PORTC,0
GOTO SS_JID1
XJ_JID1
MOVLW 0xD0
ADDWF DOT_COUNT,0
MOVWF FSR
MOVFW INDF
MOVWF OUT_ZC
DECF DOT_COUNT,1
GOTO WRIT_CCP
SS_JID
DECFSZ JS_COUNT,1
GOTO SS_JID1
MOVLW 0x27
MOVWF DOT_COUNT
MOVLW 0x28
MOVWF JS_COUNT
BSF PD_MAP,1
BSF PD_MAP,0
GOTO XJ_JID1
SS_JID1
MOVLW 0xD0
ADDWF DOT_COUNT,0
MOVWF FSR
MOVFW INDF
MOVWF OUT_ZC
INCF DOT_COUNT,1
GOTO WRIT_CCP
WRIT_CCP
BTFSS PORTC,0
GOTO WR_CCP2
MOVFW OUT_ZC
MOVWF CCPR1L
MOVLW 0x00
MOVWF CCPR2L
GOTO restore
WR_CCP2
MOVFW OUT_ZC
MOVWF CCPR2L
MOVLW 0x00
MOVWF CCPR1L
restore
MOVFW FSR_TEMP
MOVWF FSR
MOVFW STATUS_TEMP
MOVWF STATUS
MOVFW W_TEMP
retfie
ORG 0x0800
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
DB 0x00,0x05,0x00,0x0F,0x00,0x19,0x00,0x23,0x00,0x2D,0x00,0x37,0x00,0x40,0x00,0x4A,0x00,0x54,0x00,0x5D
DB 0x00,0x66,0x00,0x6F,0x00,0x78,0x00,0x81,0x00,0x89,0x00,0x92,0x00,0x9A,0x00,0xA2,0x00,0xA9,0x00,0xB1
DB 0x00,0xB8,0x00,0xBF,0x00,0xC5,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDC,0x00,0xE1,0x00,0xE5,0x00,0xEA
DB 0x00,0xED,0x00,0xF1,0x00,0xF4,0x00,0xF7,0x00,0xF9,0x00,0xFB,0x00,0xFD,0x00,0xFE,0x00,0xFF,0x00,0xFF
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -