Professional Documents
Culture Documents
BKpro – http://www.bkpro.info
Ví dụ sử dụng IC AT24C01.
Sơ đồ kết nối :
Dạng dữ liệu :
Chương trình :
;BKPRO www.bkpro.info
$mod51fx
ORG 0000H
;-------------
MAIN:
MOV BYTE_ADDRESS,#00H
MOV BYTE_WRITE,P1
LCALL DELAY100MS
MOV BYTE_ADDRESS,#00H
MOV P2,BYTE_READ
JMP WRITE_DATA_IN
WRITE:
LCALL START_BIT
LCALL ROTATE
MOV R7,#3H
LCALL ROTATE
LCALL ROTATE
MOV R7,#8H
LCALL ROTATE
MOV R7,#8H
LCALL ROTATE
RET
READ:
LCALL START_BIT
LCALL ROTATE
MOV R7,#3H
LCALL ROTATE
LCALL ROTATE
MOV R7,#8H
LCALL ROTATE
LCALL ROTATE
MOV R7,#3H
LCALL ROTATE
LCALL ROTATE
MOV R7,#8H
READ_DATA:
SETB SCL
NOP
MOV C,SDA
CLR SCL
MOV A,BYTE_READ
DJNZ R7,READ_DATA
LCALL STOP_BIT
LCALL DAO_BIT
RET
START_BIT:
SETB SCL
SETB SDA
CLR SCL
RET
STOP_BIT:
CLR SDA
SETB SCL
SETB SDA
RET
;-------- ROTATE
ROTATE:
CLR SCL
RRC A
MOV SDA,C
SETB SCL
DJNZ R7,ROTATE
RET
SLAVE_ACK:
CLR SCL
SETB SDA
SETB SCL
CLR SCL
RET
NO_ACK:
SETB SDA
SETB SCL
CLR SCL
RET
;---------DAO BIT
DAO_BIT:
MOV A,BYTE_READ
MOV C,ACC.7
MOV BYTE_READ.0,C
MOV C,ACC.6
MOV BYTE_READ.1,C
MOV C,ACC.5
MOV BYTE_READ.2,C
MOV C,ACC.4
MOV BYTE_READ.3,C
MOV C,ACC.3
MOV BYTE_READ.4,C
MOV C,ACC.2
MOV BYTE_READ.5,C
MOV C,ACC.1
MOV BYTE_READ.6,C
MOV C,ACC.0
MOV BYTE_READ.7,C
;----------------------
DELAY100MS:
MOV R2,#1
LOOPDELAY100_1:
MOV R0,#200
LOOPDELAY100:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOPDELAY100
DJNZ R2,LOOPDELAY100_1
RET
;--------
DELAY1000MS:
MOV R2,#10
LOOPDELAY1000_1:
MOV R0,#200
LOOPDELAY1000:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOPDELAY1000
DJNZ R2,LOOPDELAY1000_1
RET
;--------
END