;=======================================
;PIC16C74B单片机与AT24C64通讯
;该程序实现的功能是:
;将I2C_A,I2C_B.....I2C_K内容写入EEPROM中
;同时在EEPROM中读出数据从新写入各个寄存器
;=======================================
LIST P=16C74B
#include<p16c74.inc>
ERRORLEVEL -302
I2C_A EQU 0X20
I2C_B EQU 0X21
I2C_C EQU 0X22
I2C_D EQU 0X23
I2C_E EQU 0X24
I2C_F EQU 0X25
I2C_G EQU 0X26
REG1 EQU 0X2B
REG2 EQU 0X2C
COUNT EQU 0X71 ;I2C
BCOUNT EQU 0X72 ;I2C
TXBUF EQU 0X73 ;I2C
RXBUF EQU 0X74 ;I2C
BUSCON EQU 0X75 ;I2C
BUSSTA EQU 0X76 ;I2C
I2CBUF EQU 0X77 ;I2C
SLAVEADDR EQU 0XA0 ;I2C
DATAADDRH EQU 0X01 ;I2C
DATAADDRL EQU 0X00 ;I2C
;---------------------------------------
;BUSCON
;---------------------------------------
SLAVE_RW EQU 7
LAST_BYTE_RX EQU 6
SLAVE_ACTIVE EQU 5
TIME_OUT EQU 4
;---------------------------------------
;BUSSTA
;---------------------------------------
BUS_BUSY EQU 7
TX_PROGRESS EQU 6
RX_PROGRESS EQU 5
TX_SUCCESS EQU 4
RX_SUCCESS EQU 3
FATAL_ERROR EQU 2 ;SLAVE EEPROM
ABORT EQU 1
ACK_ERROR EQU 0
;---------------------------------------
R_NOT_W EQU 0
TRUE EQU 1
FALSE EQU 0
SDA EQU 0X04 ;I2C
SCL EQU 0X03 ;I2C
;=======================================
ORG 0X00
GOTO START
ORG 0X20
START BCF STATUS,RP1
BCF STATUS,RP0
CLRF RA
CLRF RB
CLRF RC
CLRF RD
CLRF RE
BSF STATUS,RP0
CLRF TRISA
CLRF TRISB
CLRF TRISC
CLRF TRISD
CLRF TRISE
MOVLW 0X02
MOVWF I2C_A
MOVLW 0X04
MOVWF I2C_B
MOVLW 0X03
MOVWF I2C_C
MOVLW 0X03
MOVWF I2C_D
MOVLW 0X05
MOVWF I2C_E
MOVLW 0X06
MOVWF I2C_F
MOVLW 0X04
MOVWF I2C_G
;=======================================
START1