📄 rd_psctp.asm
字号:
RD_PSCTP:
MOVLW 0x03
MOVWF PSCTP_REQ ;
MOVWF PSCTP_SET ;
; BSF PCLATH,3
; CALL EE_WPROT
; CALL EE_ERASE
; CLRF PCLATH
; CALL WR_DEFAULT_DATA
;--------------------------------------------------------------------
MOVLW D'5'
MOVWF TEMP_BUFFER
MOVLW NOF_CMD_ADDR-1
MOVWF FSR
MOVLW 0xFF
MOVWF EE_ADDR
RD_EEP:
INCF EE_ADDR,F
CLRF EE_BUF0
CLRF EE_BUF1
BSF PCLATH,3
CALL EE_READ
CLRF PCLATH
INCF FSR,F
MOVF EE_BUF0,W
MOVWF INDF
INCF FSR,F
MOVF EE_BUF1,W
MOVWF INDF
DECFSZ TEMP_BUFFER,F
GOTO RD_EEP
;--------------------------------------------------------------------
;Check EEPROM ID
BSF EE_EXIST_FB
MOVLW NOF_CMD_ADDR
MOVWF FSR
MOVF INDF,W
XORLW 0x50
BTFSS STATUS,Z
BCF EE_EXIST_FB
INCF FSR,F
MOVF INDF,W
XORLW 0x53
BTFSS STATUS,Z
BCF EE_EXIST_FB
INCF FSR,F
MOVF INDF,W
XORLW 0x02
BTFSS STATUS,Z
BCF EE_EXIST_FB
;--------------------------------------------------------------------
BTFSC EE_EXIST_FB ;EEPROM is existed ?
GOTO DIS_EEP_DATE ;Yes
BSF PCLATH,3 ;No
CALL EE_WPROT
CLRF PCLATH
CALL ERASE_EEP
CALL WR_DEFAULT_DATA
DECFSZ NOF_RD_PSCTP,F
GOTO RD_PSCTP
GOTO EXIT_RD_PSCTP
DIS_EEP_DATE
INCF FSR,F
MOVF INDF,W
MOVWF EEP_OPT
BTFSS RD_EEP_FB
GOTO EXIT_RD_PSCTP
;--------------------------------------------------------------------
;////////////////////////////////////////////////
;DISPLAY EEPROM RELEASE DATE
;////////////////////////////////////////////////
;RELEASE DATE (DD/MM/YYYY):19-04-2000
MOVF FSR,W
MOVWF FSR_SAV
CALL CLR_DIS_BUF
MOVF FSR_SAV,W
MOVWF FSR
BSF STATUS,RP0 ;YEAR ->
MOVLW B'01111001' ;DISPLAY E
MOVWF VR1LH
INCF FSR,F
SWAPF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR1LL ; Yyyy
MOVF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR1RH ; yYyy
INCF FSR,F
SWAPF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR1RM ; yyYy
MOVF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR1RL ;yyyY
INCF FSR,F ;MONTH ->
SWAPF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE ;
MOVWF VR2RM ; Mm
MOVF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE ;
MOVWF VR2RL ; mM
MOVLW B'01000000' ; -
MOVWF VR2RH
;DAY ->
MOVLW B'01011110' ; d
MOVWF VR2LL
INCF FSR,F
SWAPF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR2LH ; Dd
MOVF INDF,W
ANDLW 0x0F
MOVWF DIS_OFFSET
CALL TABLE
MOVWF VR2LM ; dD
BCF STATUS,RP0
BTFSS DIS_EE_DATE_FB
GOTO SET_CLK
MOVF FSR,W
MOVWF FSR_SAV
MOVLW D'120'
MOVWF TEMP_BUFFER
DIS_EEP_DATE1
BSF PCLATH,3 ;PAGE 1
CALL DISPLAY_DATA
CLRF PCLATH ;PAGE 0
DECFSZ TEMP_BUFFER,F
GOTO DIS_EEP_DATE1
;--------------------------------------------------------------------
SET_CLK
MOVF FSR_SAV,W
MOVWF FSR
INCF FSR,F
MOVF INDF,W
MOVWF TCYC
BSF STATUS,RP0
MOVWF PR2
BCF STATUS,RP0
INCF FSR,F
MOVF INDF,W
MOVWF PSCTP_REQ ;
MOVWF PSCTP_SET ;
EXIT_RD_PSCTP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -