📄 adconvert.asm
字号:
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0105单元
MOVF 65H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0106单元
MOVF 66H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0107单元
MOVF 67H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0108单元
MOVF 68H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0109单元
MOVF 69H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;010a单元
MOVF 6aH ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;010b单元
MOVF 6bH ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;010c单元
MOVF 6cH ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;010d单元
MOVF 6dH ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;010e单元
MOVF 6eH ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1
INCF ADDL,1 ;0110单元
MOVF 70H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0111单元
MOVF 71H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0112单元
MOVF 72H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0113单元
MOVF 73H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0114单元
MOVF 74H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
INCF ADDL,1 ;0115单元
MOVF 75H ;
MOVWF DATA0
CALL YYYY ;WR 24LC64
CLRF DATAI
CLRF RXBUF
NOP
;.....................取值测试....................
;MOVLW 01H ;0100单元
;MOVWF ADDH ;取值测试
;MOVLW 0X00
;MOVWF ADDL
MOVLW 01H ;0113单元
MOVWF ADDH ;取值测试
MOVLW 0X13
MOVWF ADDL
;MOVLW 01H ;0114单元
;MOVWF ADDH ;取值测试
;MOVLW 0X14
;MOVWF ADDL
;MOVLW 01H ;0115单元
;MOVWF ADDH ;取值测试
;MOVLW 0X15
;MOVWF ADDL
CALL YYYY1
;GOTO TY3
;************************************************************************
;*********************YYYY WR 24LC64*************************************
YYYY MOVLW B'10100000'
MOVWF SLAVE ;A0WR ;A1RD
BSF STATUS,RP0
CheckAgain BTFSC SSPSTAT,4 ;stop flag
GOTO Goxmit
BTFSC SSPSTAT,3 ;start flag
GOTO CheckAgain ;wait stop signal
Goxmit BCF STATUS,RP0
BCF INTCON,7 ;屏蔽中断
CALL WRBYTE ;wr 1 byte
BTFSS FLAG1,ERR_1 ;999999999999
GOTO Checkout
MOVF ERCODE,0 ;ERCODE 送W99
BCF FLAG1,ERR_1
GOTO CheckAgain
Checkout BSF INTCON,7 ;开总中断
RETURN-
;******************YYYY1 RD 24LC64***************************
YYYY1 MOVLW B'10100000'
MOVWF SLAVE ;A0WR ;A1RD
BSF STATUS,RP0
CheckAgain1 BTFSC SSPSTAT,4 ;stop flag
GOTO Goxmit1
BTFSC SSPSTAT,3 ;start flag
GOTO CheckAgain1 ;wait stop signal
Goxmit1 BCF STATUS,RP0
BCF INTCON,7 ;屏蔽中断
CALL RDBYTE ;rd 1 byte
BTFSS FLAG1,ERR_1 ;999999999999
GOTO Checkout1
MOVF ERCODE,0 ;ERCODE 送W99
BCF FLAG1,ERR_1
GOTO CheckAgain1
Checkout1 BSF INTCON,7 ;开总中断
RETURN-
;-----------------------------------------------------------
WRBYTE BCF STATUS,RP0
MOVF SLAVE,0 ;A0 W
MOVWF TXBUF
CALL BSTART
CALL TX
BCF STATUS,RP0
MOVF ADDH,0 ;W
MOVWF TXBUF
CALL TX
MOVF ADDL,0
MOVWF TXBUF
CALL TX
MOVF DATA0,0
MOVWF TXBUF
CALL TX
CALL BSTOP
RETURN-
BSTART BSF STATUS,RP0
BSF TRISB,SDA
BSF TRISB,SCL
MOVLW 1
BCF STATUS,RP0
BTFSS RB,SCL
CALL ERR
BSF STATUS,RP0
BCF TRISB,SDA
NOP
NOP
BCF TRISB,SCL
RETLW 0
BSTOP BSF STATUS,RP0
BCF TRISB,SDA
BSF TRISB,SCL
NOP
NOP
MOVLW 1
BCF STATUS,RP0
BTFSS RB,SCL
CALL ERR
BSF STATUS,RP0
BSF TRISB,SDA
MOVLW 4
BTFSS TRISB,SDA
CALL ERR
BCF STATUS,RP0
RETLW 0
TX BCF STATUS,RP0
MOVLW .8
MOVWF BCOUNT
TXLP BCF EEPROM,DO
BTFSC TXBUF,7
BSF EEPROM,DO
CALL BITOUT
BCF STATUS,RP0
RLF TXBUF,F
BTFSS 3,0
BCF TXBUF,0
BTFSC 3,0
BSF TXBUF,0
DECFSZ BCOUNT,F
GOTO TXLP
CALL BITIN ;READ ACK
BCF STATUS,RP0
MOVLW 3
BTFSC EEPROM,DI ;CHECK ACK
CALL ERR
BCF STATUS,RP0
RETLW 0
BITOUT BCF STATUS,RP0
BTFSS EEPROM,DO
GOTO BITO
BSF STATUS,RP0
BSF TRISB,SDA
MOVLW 2
BCF STATUS,RP0
BTFSC RB,SDA
GOTO CLK1
BTFSS FLAG1,ERR_1
MOVWF ERCODE
BSF FLAG1,ERR_1
GOTO CLK1
BITO BSF STATUS,RP0
BCF TRISB,SDA
NOP
NOP
CLK1 BSF STATUS,RP0
BSF TRISB,SCL
MOVLW 1
BCF STATUS,RP0
BTFSC RB,SCL
GOTO BIT2
BCF STATUS,RP0
BTFSS FLAG1,ERR_1
MOVWF ERCODE
BSF FLAG1,ERR_1
BIT2 NOP
NOP
BSF STATUS,RP0
BCF TRISB,SCL
RETLW 0
;------------------------------------------------------- ACK CHECK ,FROM IIC RX
BITIN BSF STATUS,RP0
BSF TRISB,SDA
BCF STATUS,RP0
BCF EEPROM,DI
BSF STATUS,RP0
BSF TRISB,SCL
MOVLW 1
BCF STATUS,RP0
BTFSC RB,SCL
GOTO BIT1
BCF STATUS,RP0
BTFSS FLAG1,ERR_1
MOVWF ERCODE
BSF FLAG1,ERR_1
BIT1 BCF STATUS,RP0
BTFSS RB,SDA
GOTO ACKOK
BCF STATUS,RP0
BSF EEPROM,DI
ACKOK BSF STATUS,RP0
NOP
BCF TRISB,SCL
RETLW 0
RDBYTE BCF STATUS,RP0 ;先写地址,后读
MOVF SLAVE,0
MOVWF TXBUF
CALL BSTART
CALL TX
BCF STATUS,RP0
MOVF ADDH,0
MOVWF TXBUF
CALL TX
MOVF ADDL,0
MOVWF TXBUF
CALL TX
CALL BSTART
BCF STATUS,RP0
MOVF SLAVE,0
MOVWF TXBUF
BSF TXBUF,0 ;读
CALL TX
CALL RX
CALL BSTOP
BCF STATUS,RP0
MOVF RXBUF,0
MOVWF DATAI
RETURN-
RX BCF STATUS,RP0
MOVLW .8
MOVWF BCOUNT
CLRF RXBUF
RXLP RLF RXBUF,F
BTFSS 3,0
BCF RXBUF,0
BTFSC 3,0
BSF RXBUF,0
CALL BITIN
BCF STATUS,RP0
BTFSC EEPROM,DI
BSF RXBUF,0
DECFSZ BCOUNT,F
GOTO RXLP
BSF EEPROM,DO
CALL BITOUT
RETLW 0
ERR BCF STATUS,RP0
BTFSS FLAG,ERR_1
MOVWF ERCODE
BSF FLAG1,ERR_1
RETLW 0
;-------------------------------------------------------------
; 释放IIC总线
;-------------------------------------------------------------
AFFIIC BCF STATUS,RP0 ;释放IIC总线
BCF RB,4
BSF STATUS,RP0 ;
MOVLW 0XF0 ;rb4 为I
MOVWF TRISB
BCF STATUS,RP0
BCF ICSTA,0 ;SET 标志
;BCF RE,0
RETURN-
GOTO START
nop
nop
nop
nop
nop
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -