📄 pda_166p64_v01.asm
字号:
MOVLW 0X99
ADDWF PARKM,W
DAW
MOVWF PARKM
BC DO_MINUTE1_PARK_2
MOVLW 0X60
MOVWF PARKM
MOVLW 0X99
ADDWF PARKH,W
DAW
MOVWF PARKH
DO_MINUTE1_PARK_2:
MOVF PARKH,W
BNZ DO_MINUTE1_PARK_END
MOVF PARKM,W
BNZ DO_MINUTE1_PARK_4
BCF PARK_NOTICE_FLAG
BRA DO_MINUTE1_PARK_END
DO_MINUTE1_PARK_4:
XORLW 1
BNZ DO_MINUTE1_PARK_END
BSF PARK_NOTICE_FLAG
CALL SPEECH_PARK_NOTICE
DO_MINUTE1_PARK_END:
;-----------------------------------
MOVF CNTDOWNH,W
IORWF CNTDOWNM,W
BZ DO_MINUTE1_CNTDOWN_END
MOVLW 0X99
ADDWF CNTDOWNM,W
DAW
MOVWF CNTDOWNM
BC DO_MINUTE1_CNTDOWN_2
MOVLW 0X60
MOVWF CNTDOWNM
MOVLW 0X99
ADDWF CNTDOWNH,W
DAW
MOVWF CNTDOWNH
DO_MINUTE1_CNTDOWN_2:
MOVF CNTDOWNH,W
BNZ DO_MINUTE1_CNTDOWN_END
MOVF CNTDOWNM,W
BNZ DO_MINUTE1_CNTDOWN_4
BCF CNTDOWN_NOTICE_FLAG
BRA DO_MINUTE1_CNTDOWN_END
DO_MINUTE1_CNTDOWN_4:
XORLW 1
BNZ DO_MINUTE1_CNTDOWN_END
BSF CNTDOWN_NOTICE_FLAG
CALL SPEECH_CNTDOWN_NOTICE
DO_MINUTE1_CNTDOWN_END:
;-----------------------------------
;-----------------------------------
;***********************************
MOVF ALERTH,W
IORWF ALERTM,W
BZ DO_MINUTE1_ALERT_END
DO_MINUTE1_ALERT_2:
MOVF ALERTH,W
XORWF HOUR,W
BNZ DO_MINUTE1_ALERT_24
MOVF ALERTM,W
XORWF MINUTE,W
BNZ DO_MINUTE1_ALERT_24
BSF ALERT_NOTICE_FLAG
CALL SPEECH_ALERT_NOTICE
BRA DO_MINUTE1_ALERT_END
DO_MINUTE1_ALERT_24:
BCF ALERT_NOTICE_FLAG
DO_MINUTE1_ALERT_END:
;-----------------------------------
RETURN
;******************************
;******************************
POWER_ON:
CLRWDT
CLRF TOSU
CLRF TOSH
CLRF TOSL
MOVLB 1
CLRF CCPR1L
CLRF CCPR2L
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 0x0
call DISPLAY_PAGE
CALL DISPLAY_BATT2
CALL DISPLAY_TIME1
;CALL READ_PIC_PIC_ADDRESS
;CALL SET_LCD
CLRF CNT1
CLRF CNT2
CLRF CNT3
MOVLW 0XF0
MOVWF CNT1
;call DISPLAY_BATT2
TEST_ME:
MOVLW 80
MOVWF CNT1
CALL SERVO_MG995_LONG
MOVLW 250
MOVWF CNT1
CALL SERVO_MG995_LONG
MOVLW 0
MOVWF CNT1
CALL SERVO_MG995_LONG
BRA 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
;*****************************
SERVO_MG995_LONG
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
CALL SERVO_MG995
SERVO_MG995:
CLRF CNT2
BCF LATG,3
SERVO_MG995B:
MOVLW 3
MOVWF CNT3
SERVO_MG995C
CLRWDT
DECFSZ CNT3
BRA SERVO_MG995C
MOVF CNT1,W
CPFSLT CNT2
BSF LATG,3
INCFSZ CNT2
BRA SERVO_MG995B
BSF LATG,3
MOVLW 0X39
MOVWF CNT2
MOVLW 35
MOVWF CNT3
SERVO_MG995D:
CLRWDT
DECFSZ CNT2
BRA SERVO_MG995D
DECFSZ CNT3
BRA SERVO_MG995D
RETURN
;*****************************
;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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -