📄 init_lcd.asm.bak
字号:
MCU_INIT:
CALL IO_INIT
CALL SHUT_DOWN_CC1000
BSF MCU_OUT
CALL CPU_CLOCK_8M
CALL W25X32_WAKE_UP
;CALL DELAY_2MS
;BSF RESET_LCD
BSF PIE1,TMR1IE
BSF INTCON,GIE
BSF INTCON,PEIE
;CALL DISPLAY_LOGO
;***************
MCU_INIT2:
CALL DO_CHARGE
;
CALL CHECK_FLASH
; bra MCU_INIT2
ANDLW 0XFF
;BZ MCU_INIT2
MCU_INIT4:
;**************
CALL READ_REFRENCE
;****************************
MOVLW 30
MOVWF SECOND
;*****************************
CALL READ_HOP
CALL READ_MOBILE_STATUS
;*****************************
CALL READ_TOUCH
;CALL DISPLAY_MOV
;
;CALL PAGE_ZERO_DISAPLAY_AGAIN2
;MOVLW 00001100B
;MOVWF CCP2CON
;MOVLW 0
;CALL DISPLAY_PAGE
CALL INIT_LCD
MOVLW LOGO1_ID
MOVLW ARMKEY_ID
;CALL DISPLAY_LOGO2
;BRA TEST_ME
;CALL READ_PIC_PIC_ADDRESS
movlw 32
movwf PIC_HSA
movlw 40
movwf PIC_HEA
MOVLW 64
MOVWF PIC_VSA
MOVLW 128
MOVWF PIC_VEA
CALL SET_LCD
CLRF CNT1
MOVLW 8
MOVWF CNT2
TEST_DISPLAY:
MOVLW 0X0
CALL WRITE_LCD_R
MOVLW 0Xf0
CALL WRITE_LCD_R
MOVLW 0X00
CALL WRITE_LCD_R
DECFSZ CNT1
BRA TEST_DISPLAY
DECFSZ CNT2
BRA TEST_DISPLAY
bsf F_CE
BSF CS_LCD
;call DISPLAY_BATT2
TEST_ME:
;CALL INIT_LCD
;CALL READ_TOUCH
;MOVF TOUCH_X,W
;MOVWF MINUTE
;CALL DISPLAY_TIME
;BTG RESET_LCD
;MOVLW 0X55
;CALL WAIT_TX232A
;call CPU_CLOCK_8M
CLRWDT
BTG LATF,2
BRA TEST_ME
;*****************************
;*****************************
;MOVLW ST_DISARMED_ID
;MOVWF VEHICLE_ST_CNT;
;*****************************
;*****************************
;*****************************
;*****************************
PAGE_ZERO:
BTFSS BACKLIGHT_FLAG
CALL POWER_UP_LCD
PAGE_ZERO1
CALL PAGE_ZERO_DISAPLAY_AGAIN2
;*****************************
BCF TOUCH_PRESS_ONCE
;**************************
PAGE_ZERO2:
PAGE_ZERO2D:
CALL DO_CHARGE
;**************************
CALL DISPLAY_VEHICLE_STATUS
CALL PAGE0_DISPLAY_NOTICE
CALL DISPLAY_BATT
;*****************************
CALL DISPLAY_TIME00
MOVF VEHICLE_STATUS,W
MOVWF VEHICLE_STATUS_BAK
RCALL DO_2_SECOND
;*******************
MOVF VEHICLE_STATUS,W
XORWF VEHICLE_STATUS_BAK,W
BZ PAGE_ZERO3
;BSF LIGHT_CNT,4
BTFSS BACKLIGHT_FLAG
CALL POWER_UP_LCD
CALL PAGE_ZERO_DISAPLAY_AGAIN2
CALL OPEN_BACK_LIGHT
;-----------------------------------??2????????
PAGE_ZERO3:
BTFSS BACKLIGHT_FLAG
BRA PAGE_ZERO22
;-----------DO TOUCH-----------------------
BTFSS TOUCH_PRESS_ONCE;
BRA PAGE_ZERO_NO_TOUCH
BCF TOUCH_PRESS_ONCE
BTFSC BACKLIGHT_FLAG
BRA PAGE_ONE0
CALL PAGE_ZERO_DISAPLAY_AGAIN
;--------------------------
PAGE_ZERO_NO_TOUCH:
PAGE_ZERO_TOUCH_BAK:
;**************************
;--------DO IKEY
PAGE_ZERO22:
;**************************
DO_IKEY:
BTFSC IKEY
BTFSC IKEY_DOWN_FLAG
BRA DO_IKEY_READ
;****IKEY DOWN ONCE
BCF TOUCH_PRESS_ONCE
BTFSC BACKLIGHT_FLAG
BRA DO_IKEY_2
CALL POWER_UP_LCD
CALL PAGE_ZERO_DISAPLAY_AGAIN
DO_IKEY_2:
CALL OPEN_BACK_LIGHT
;BRA DO_IKEY_READ
;CALL LCD_OFF
DO_IKEY_READ:
BTFSS IKEY
BCF IKEY_DOWN_FLAG
BTFSC IKEY
BSF IKEY_DOWN_FLAG
DO_IKEY_READ_END
;----DO BACKLIGHT*************************
MOVF LIGHT_CNT
BNZ PAGE_ZERO32
BTFSC BACKLIGHT_FLAG
CALL LCD_OFF
PAGE_ZERO32:
;***************************
PAGE_ZERO_SLEEP:
;BRA PAGE_ZERO2
CALL CPU_WAIT
;****************************
PAGE_ZERO_TRIGGER:
BTFSS REC_TRIGGER_F
BRA PAGE_ZERO48
PAGE_ZERO_TRIGGER1:
DCFSNZ MELODY_CNT
BCF REC_TRIGGER_F
BSF LIGHT_CNT,3
BTFSS BACKLIGHT_FLAG
CALL PAGE_ZERO_DISAPLAY_AGAIN
MOVF MELODY_CNT,W
XORLW 14
BNZ PAGE_ZERO_TRIGGE2
CALL DISPLAY_TOP_BAR
MOVLW ST_TRIGGERED_ID
CALL DISPLAY_LOGO2
PAGE_ZERO_TRIGGE2:
BSF MOTO_PIN
CALL DISPLAY_MOV
BCF MOTO_PIN
CALL DISPLAY_TRIGGERED2
BTFSC IKEY_DOWN_FLAG
BCF REC_TRIGGER_F
PAGE_ZERO48:
BRA PAGE_ZERO2
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
BACKLIGHT_TIME_OUT:
BSF IKEY_DOWN_FLAG
CLRF CCPR2L
CLRF LIGHT_CNT
BCF TOUCH_PRESS_ONCE
BRA PAGE_ZERO2
;*****************************
IKEY_CLOSE:
;CLRF CCPR2L
;CLRF LIGHT_CNT
BSF IKEY_DOWN_FLAG
CALL OPEN_BACK_LIGHT
BCF TOUCH_PRESS_ONCE
BRA PAGE_ZERO1
;*****************************
;*****************************
;*****************************
;*****************************
PAGE_ZERO_DISAPLAY_AGAIN:
CALL POWER_UP_LCD
PAGE_ZERO_DISAPLAY_AGAIN2
CALL CPU_CLOCK_32M
CALL HIDE_TOPBAR
CALL DISPLAY_TOP_BAR
CALL HIDE_KEYPAD
CALL DISPLAY_LOGO
CALL DISPLAY_STATUS_ICON
CALL DISPLAY_TIME
CALL DISPLAY_VEHICLE_STATUS2
CALL DISPLAY_CAR_NAME
CALL CPU_CLOCK_8M
CALL DISPLAY_BATT2
GOTO OPEN_BACK_LIGHT
;************************
;************************
;************************
;************************
;************************
DO_CHAREG_END:
;************************
;*****************************
DO_CHARGE:
BTFSC CHARGE_FLAG
BRA DO_CHARGE1
BTFSC CHARGE
BRA DO_CHARGE1
BSF CHARGE_FLAG
BTFSS BACKLIGHT_FLAG
CALL PAGE_ZERO_DISAPLAY_AGAIN
MOVLW 30
MOVWF LIGHT_CNT
DO_CHARGE1:
BTFSC CHARGE
BCF CHARGE_FLAG
BTFSS CHARGE
BRA DO_CHARE_FISRT
BCF CHARGE_FLAG
CLRWDT
CLRF RX232_TEST
BSF F_CE
RETURN
DO_CHARE_FISRT
BTFSC RCSTA2,FERR
MOVF RCREG2,W
BTFSS RCSTA2,OERR
RETURN
MOVF RCREG2,W
BCF RCSTA2,CREN
XORLW 0XFF
BSF RCSTA2,CREN
BTFSS STATUS,Z
CLRF RX232_TEST
INCF RX232_TEST
BTFSS RX232_TEST,1
RETURN
BTFSS BACKLIGHT_FLAG
CALL PAGE_ZERO_DISAPLAY_AGAIN
MOVLW PC_ID
CALL DISPLAY_LOGO2
CONNECT_PC:
BSF F_CE
BTFSC CHARGE
RESET
BTFSC RCSTA2,FERR
MOVF RCREG2,W
BTFSS RCSTA2,OERR
BRA CONNECT_PC2
BCF RCSTA2,CREN
CLRWDT
BSF RCSTA2,CREN
CONNECT_PC2:
CLRF TMR3L
CLRF TMR3H
CLRF CNT
;---------DATA INPUT
;------------------------??????$FF *256
CHARGE_NOW6:
BTFSC RCSTA2,FERR
BRA CONNECT_PC
BTFSC RCSTA2,OERR
BRA CONNECT_PC
CLRWDT
BTFSC TMR3H,3
BRA CONNECT_PC
BTFSS PIR3,RC2IF
BRA CHARGE_NOW6
CLRF TMR3L
CLRF TMR3H
MOVF RCREG2,W
MOVWF RX232_INST
XORLW 0XAA
BZ CHARGE_NOW18
MOVF RX232_INST,W
XORLW 0XFF
BNZ CONNECT_PC
INFSNZ CNT
BRA CONNECT_PC
BRA CHARGE_NOW6
CHARGE_NOW18:
MOVF CNT,W
ADDLW 256-4
BNC CONNECT_PC
;--------------------------
;--------------------------
;--------------------------
MOVLW HIGH RX232_INST
MOVWF FSR2H
MOVLW LOW RX232_INST
MOVWF FSR2L
;--------------------------
;--------------------------
CLRF CNT
RX_232_ONE_HEAD:
BTFSC RCSTA2,FERR
BRA CONNECT_PC
CLRWDT
BTFSS PIR3,RC2IF
BRA RX_232_ONE_HEAD2
CLRF TMR3L
CLRF TMR3H
MOVF RCREG2,W
MOVWF POSTINC2
INCF CNT
RX_232_ONE_HEAD2:
BTFSC CNT,4
BRA CONNECT_PC
BCF FSR2L,4
BTFSS TMR3H,2
BRA RX_232_ONE_HEAD
MOVF CNT,W
XORLW 7
BNZ CONNECT_PC
RX_232_ONE_HEAD_END:
CALL W25X32_WAKE_UP
MOVF RX232_INST,W
;BRA CONNECT_PC
XORLW 0X03
BZ W25X32_READ_PIC_ADDRESS ;READ
MOVF RX232_INST,W
XORLW 0X20
BZ W25X32_ERASE_4K ;ERASE 4K
MOVF RX232_INST,W
XORLW 0X24
BTFSC STATUS,Z
BRA READ_24AA02_ALL
MOVF RX232_INST,W
XORLW 0X25
BTFSC STATUS,Z
BRA WRITE_24AA02_ALL
;MOVF RX232_INST,W
;XORLW 0X52
;BZ W25X32_ERASE_4K ;ERASE 32K
MOVF RX232_INST,W
XORLW 0XD8
BZ W25X32_ERASE_4K ;ERASE 64K
MOVF RX232_INST,W
XORLW 0XC7
BZ W25X32_ERASE_CHIP ;ERASE ALL CHIP
MOVF RX232_INST,W
XORLW 0X02
BZ W25X32_BYTE_PROGRAM ;BYTE_PROGRAM PAGE PROGRAM
MOVF RX232_INST,W
XORLW 0X9F
BZ W25X32_JEDEC_ID ;JEDEC_ID
MOVF RX232_INST,W
XORLW 0X05
BZ W25X32_STATUS
BRA CONNECT_PC
W25X32_ERASE_4K ;ERASE 4K
MOVLW 0X55
MOVWF TXREG2
CALL W25X32_WP_DISABLE
MOVF RX232_INST,W
CALL WRITE_SPI
MOVF RX232_ADDU,W
CALL WRITE_SPI
MOVF RX232_ADDH,W
CALL WRITE_SPI
MOVF RX232_ADDL,W
CALL WRITE_SPI
BRA CONNECT_PC
;********************
W25X32_STATUS ;STATUS
MOVF RX232_INST,W
CALL WRITE_SPI
CALL WRITE_SPI_00 ;MANUFACTURER
MOVWF TXREG2
BRA CONNECT_PC
;********************
W25X32_JEDEC_ID ;JEDEC_ID
MOVF RX232_INST,W
CALL WRITE_SPI
CALL WRITE_SPI_00 ;MANUFACTURER
MOVWF TXREG2
CALL WAIT_TX232
CALL WRITE_SPI_00 ;ID15-ID8
MOVWF TXREG2
CALL WAIT_TX232
CALL WRITE_SPI_00 ;ID7-ID0
MOVWF TXREG2
BRA CONNECT_PC
W25X32_ERASE_CHIP ;ERASE ALL CHIP
MOVLW 0X58
MOVWF TXREG2
CALL W25X32_WP_DISABLE
MOVF RX232_INST,W
CALL W25X32_WR_ENABLE2
BRA CONNECT_PC
;******************************
W25X32_READ_PIC_ADDRESS: ;READ
MOVF RX232_INST,W
CALL WRITE_SPI
MOVF RX232_ADDU,W
CALL WRITE_SPI
MOVF RX232_ADDH,W
CALL WRITE_SPI
MOVF RX232_ADDL,W
CALL WRITE_SPI
CLRF RX232_ADDL ;ERROR COUNT
W25X32_READ_PIC_ADDRESS2:
MOVF RX232_CNTL
BNZ W25X32_READ_PIC_ADDRESS3
MOVF RX232_CNTH,W
ANDLW 7
BNZ W25X32_READ_PIC_ADDRESS3
;BTG LATD,7
CALL DELAY_64MS
INCF RX232_ADDL
BTFSC RX232_ADDL,3
BRA W25X32_READ_PIC_ADDRESS_END
W25X32_READ_PIC_ADDRESS3:
CALL WRITE_SPI_00
;MOVF SSP1BUF,W
MOVWF TXREG2
MOVLW 0XFF
ADDWF RX232_CNTL
ADDWFC RX232_CNTH
ADDWFC RX232_CNTU
MOVF RX232_CNTL
IORWF RX232_CNTH,W
IORWF RX232_CNTU,W
BZ W25X32_READ_PIC_ADDRESS_END
W25X32_READ_PIC_ADDRESS4:
RCALL WAIT_TX232
BTFSS RCSTA2,OERR
BCF RCSTA2,CREN
BSF RCSTA2,CREN
BTFSS PIR3,RC2IF
BRA W25X32_READ_PIC_ADDRESS2
MOVF RCREG2,W
XORLW 0XFF
BNZ W25X32_READ_PIC_ADDRESS2
CLRF RX232_ADDL ;ERROR COUNT
BRA W25X32_READ_PIC_ADDRESS2
W25X32_READ_PIC_ADDRESS_END:
GOTO CONNECT_PC
;******************************
;******************************
;******************************
;******************************
;******************************
W25X32_BYTE_PROGRAM ;BYTE_PROGRAM
W25X32_PAGEPROGRAM: ;PAGEPROGRAM
MOVLW 0X5F
MOVWF TXREG2
CALL W25X32_WP_DISABLE
W25X32_PAGEPROGRAM2: ;
;********************
MOVLW HIGH 0X300
MOVWF FSR1H
MOVF RX232_ADDL,W
MOVWF FSR1L
MOVLW HIGH 0X300
MOVWF FSR0H
MOVF RX232_ADDL,W
MOVWF FSR0L
BCF W25X32_PAGEPROGRAM_FLAG
W25X32_PAGEPROGRAM_REC_ONE_BYTE:
CLRF TMR3L
CLRF TMR3H
W25X32_PAGEPROGRAM_REC_ONE_BYTE2:
BTFSS W25X32_PAGEPROGRAM_FLAG
BRA W25X32_PAGEPROGRAM_REC_ONE_BYTE4
MOVF POSTINC1,W
MOVWF SSP1BUF
MOVLW 1
ADDWF RX232_ADDL
MOVLW 0
ADDWFC RX232_ADDH
ADDWFC RX232_ADDU
MOVF FSR1L,W
BNZ W25X32_PAGEPROGRAM_REC_ONE_BYTE4
MOVLW HIGH 0X300
MOVWF FSR1H
;MOVLW LOW 0X300
;MOVWF FSR1L
BSF F_CE
BCF W25X32_PAGEPROGRAM_FLAG
W25X32_PAGEPROGRAM_REC_ONE_BYTE4:
BTFSC TMR3H,4 ;>64MS
BRA W25X32_PAGEPROGRAM_ERROR
BTFSC RCSTA2,OERR ;OVER FLOW
BRA W25X32_PAGEPROGRAM_ERROR
BTFSC RCSTA2,FERR ;FRAME ERROR
BRA W25X32_PAGEPROGRAM_ERROR
BTFSS PIR3,RC2IF
BRA W25X32_PAGEPROGRAM_REC_ONE_BYTE2
MOVF RCREG2,W
MOVWF POSTINC0
CLRF TMR3L
CLRF TMR3H
MOVLW 0XFF
ADDWF RX232_CNTL
ADDWFC RX232_CNTH
ADDWFC RX232_CNTU
MOVF RX232_CNTL,W
IORWF RX232_CNTH,W
IORWF RX232_CNTU,W
BZ W25X32_PAGEPROGRAM_LAST
MOVF RX232_CNTH,W
ANDLW 7
IORWF RX232_CNTL,W
MOVLW 0X55
BTFSC STATUS,Z
MOVWF TXREG2
MOVF FSR0L,W
BNZ W25X32_PAGEPROGRAM_REC_ONE_BYTE2
MOVLW HIGH 0X300
MOVWF FSR0H
BSF W25X32_PAGEPROGRAM_FLAG
RCALL W25X32_WR_ENABLE
MOVF RX232_INST,W
CALL WRITE_SPI
MOVF RX232_ADDU,W
CALL WRITE_SPI
MOVF RX232_ADDH,W
CALL WRITE_SPI
MOVF RX232_ADDL,W
CALL WRITE_SPI
BRA W25X32_PAGEPROGRAM_REC_ONE_BYTE2
W25X32_PAGEPROGRAM_LAST:
RCALL W25X32_WR_ENABLE
MOVF RX232_INST,W
CALL WRITE_SPI
MOVF RX232_ADDU,W
CALL WRITE_SPI
MOVF RX232_ADDH,W
CALL WRITE_SPI
MOVF RX232_ADDL,W
CALL WRITE_SPI
MOVLW HIGH 0X300
MOVWF FSR1H
MOVF RX232_ADDL,W
MOVWF FSR1L
W25X32_PAGEPROGRAM_LAST2:
MOVF POSTINC1,W
CALL WRITE_SPI
MOVF FSR1L,W
XORWF FSR0L,W
BNZ W25X32_PAGEPROGRAM_LAST2
BSF F_CE
CALL DELAY_16MS
RCALL W25X32_WR_DISABLE
RESET
W25X32_PAGEPROGRAM_END:
;GOTO CHARGE_NOW
W25X32_PAGEPROGRAM_ERROR:
;BCF LATD,7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -