📄 24c04.asm
字号:
BUF1 EQU 50H;秒
BUF2 EQU 51H;分
BUF3 EQU 52H;时
BUF4 EQU 53H;年/日
BUF5 EQU 54H;星期/月
REG1 EQU 40H;延时
REG2 EQU 41H;
X EQU 30;
Y EQU 40;
NUMB EQU 28H
TXBUF EQU 29H
BUFFER1 EQU 30H
BUFFER2 EQU 38H
BUFFER3 EQU 40H
BUFFER4 EQU 48H
BUFFER5 EQU 50H
BUFFER6 EQU 58H
BUFFER7 EQU 60H
BUFFER8 EQU 68H
BUFFER9 EQU 70H
BUFFER10 EQU 78H
RXBUF EQU 2AH
CNT EQU 2BH
ADDR EQU 2CH
FLAG EQU 2DH
DO EQU 0
DI EQU 1
SCL EQU 6
SDA EQU 7
RB EQU 6
RD EQU 8
TRISD EQU 88H
;向24LC01B写入N(位于NUMB中)字节,
ORG 0000H
GOTO BIN
BIN: NOP
BSF RD,SDA
BSF RD,SCL
BSF 3,5
MOVLW 20H
MOVWF TRISD
BCF 3,5
MOVLW 4
MOVWF NUMB
MOVLW 00H
MOVWF ADDR
MOVLW BUFFER1
CALL WRBYTES
;CALL DELAY
;CALL DELAY
NOP
NOP
R24: NOP
NOP
MOVLW 04H
MOVWF NUMB
MOVLW 00H
MOVWF ADDR
MOVLW BUFFER2
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 68H
MOVWF ADDR
MOVLW BUFFER2
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 70H
MOVWF ADDR
MOVLW BUFFER3
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 78H
MOVWF ADDR
MOVLW BUFFER4
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 80H
MOVWF ADDR
MOVLW BUFFER5
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 88H
MOVWF ADDR
MOVLW BUFFER6
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 90H
MOVWF ADDR
MOVLW BUFFER7
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 98H
MOVWF ADDR
MOVLW BUFFER8
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 0A0H
MOVWF ADDR
MOVLW BUFFER9
CALL RDBYTES
MOVLW 08H
MOVWF NUMB
MOVLW 0A8H
MOVWF ADDR
MOVLW BUFFER10
CALL RDBYTES
ERROR: NOP
GOTO ERROR
OK: NOP
GOTO OK
WRBYTES :
CLRF FLAG
MOVWF 4
MOVLW 0A2H
MOVWF TXBUF
CALL BSTART
CALL TX
MOVF ADDR,0
MOVWF TXBUF
CALL TX
WRLOOP: MOVF 0,0
MOVWF TXBUF
CALL TX
INCF 4
DECFSZ NUMB,1
GOTO WRLOOP
CALL BSTOP
RETLW 0
;------------------------------------------------
RDBYTES:
CLRF FLAG
MOVWF 4
MOVLW 0A2H
MOVWF TXBUF
CALL BSTART
CALL TX
MOVF ADDR,0
MOVWF TXBUF
CALL TX
CALL BSTART
MOVLW 0A3H
MOVWF TXBUF
CALL TX
RDLOOP: CALL RX
MOVF RXBUF,0
MOVWF 0
INCF 4
DECFSZ NUMB
GOTO LOWACK
; BSF 3,5
; MOVLW 20H
; MOVLW 00001111B
; TRIS RD
; MOVWF TRISD
; BCF 3,5
BSF RD,SDA
NOP
NOP
BSF RD,SCL
NOP
NOP
NOP
NOP
BSF RD,SCL
NOP
NOP
CALL BSTOP
RETLW 0
LOWACK:
; BSF 3,5
; MOVLW 20H
; MOVWF TRISD
; BCF 3,5
; MOVLW 00001111B
; TRIS RD
BCF RD,SDA
NOP
BSF RD,SCL
NOP
BCF RD,SCL
GOTO RDLOOP
;------------------------------------------------------------------
BSTART:
; MOVLW 00001111B
; TRIS RD
BSF RD,SDA
NOP
NOP
BSF RD,SCL
NOP
NOP
NOP
BCF RD,SDA
NOP
NOP
BCF RD,SCL
NOP
NOP
RETLW 0
;-------------------------------------------------------------------
TX: MOVLW 08
MOVWF CNT
TXLP: BCF FLAG,DO
BTFSC TXBUF,7
BSF FLAG,DO
; MOVLW 00001111B
; TRIS RD
BTFSS FLAG,DO
GOTO TX0
BSF RD,SDA
GOTO TX1
TX0: BCF RD,SDA
TX1: BSF RD,SCL
NOP
NOP
BCF RD,SCL
RLF TXBUF
DECFSZ CNT
GOTO TXLP
BSF 3,5
MOVLW 0A0H
MOVWF TRISD
BCF 3,5
; MOVLW 10001111B
; TRIS RD
BSF RD,SDA
NOP
BSF RD,SCL
NOP
BTFSC RD,SDA
BSF FLAG,DI
BCF RD,SCL
BSF 3,5
MOVLW 20H
MOVWF TRISD
BCF 3,5
RETLW 0
;----------------------------------------------------
BSTOP:
; MOVLW 00001111B
; TRIS RD
BCF RD,SDA
NOP
NOP
BSF RD,SCL
NOP
NOP
BSF RD,SDA
NOP
NOP
BCF RD,SCL
NOP
NOP
RETLW 0
;--------------------------------------------------
RX: MOVLW 08
MOVWF CNT
CLRF RXBUF
BSF 3,5
MOVLW 0A0H
MOVWF TRISD
BCF 3,5
; MOVLW 10111111B
; TRIS RD
NOP
RXLP: BSF RD,SCL
BCF 3,0
RLF RXBUF
BTFSC RD,SDA
BSF RXBUF,0
BCF RD,SCL
DECFSZ CNT
GOTO RXLP
BSF 3,5
MOVLW 20H
MOVWF TRISD
BCF 3,5
RETLW 0
DELAY: MOVLW X
MOVWF REG1
LOOP2: MOVLW Y
MOVWF REG2
LOOP1: DECFSZ REG2,1
GOTO LOOP1
DECFSZ REG1,1
GOTO LOOP2
RETURN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -