请帮忙!!24C02没用!!!
ID EQU 30H
K1 BIT P3.3
K2 BIT P3.4
L1 BIT P2.0
L2 BIT P2.1
L3 BIT P2.2
L4 BIT P2.3
L5 BIT P2.4
L6 BIT P2.5
L7 BIT P2.6
SDA24 EQU P1.5
SCLK24 EQU P1.6
ORG 00H
START: MOV ID,#00H
CLR P1.6 ;打开写保护
MOV A,#00H ;读地址
LCALL RD24;;
MOV ID, A;;将读的值给ID
KK1: JB K1,KK2
LCALL DELAY20MS ;10MS:可靠性低
JB K1,KK2
INC ID
MOV A,ID
CJNE A,#07,REL
MOV ID,#-1H
KK2: JB K2,REL
LCALL DELAY20MS ;10MS:可靠性低
JB K2,REL
DEC ID
MOV A,ID
CJNE A,#-1,REL
MOV ID,#06H ;07H:ERR
;RET:err
REL: JNB K1,$
JNB K2,$
LCALL DELAY20MS ;***
;JB K1,ZJ ;***
;JB K2,REL ;***
MOV A,ID
CJNE A,#00H,IS0
ORL P2,#01111111B ;***
CLR L1 ;***
MOV A,ID
LCALL WT24;;;写入24C02
LJMP KK1 ;START:ERR
IS0: CJNE A,#01H,IS1
ORL P2,#01111111B ;***
CLR L2 ;***
LJMP KK1 ;START:ERR
IS1: CJNE A,#02H,IS2
ORL P2,#01111111B ;***
CLR L3 ;***
LJMP KK1 ;START:ERR
IS2: CJNE A,#03H,IS3
ORL P2,#01111111B ;***
CLR L4 ;***
LJMP KK1 ;START:ERR
IS3: CJNE A,#04H,IS4
ORL P2,#01111111B ;***
CLR L5 ;***
LJMP KK1 ;START:ERR
IS4: CJNE A,#05H,IS5
ORL P2,#01111111B ;***
CLR L6 ;***
LJMP KK1 ;START:ERR
IS5: CJNE A,#06H,IS6
ORL P2,#01111111B ;***
CLR L7 ;***
LJMP KK1 ;START:ERR
IS6: LJMP START
RD24: PUSH ACC ;读24C02子程序。
SETB SDA24
CLR SCLK24
CALL START24
MOV A,#0A0H
CALL SHIFT8
CALL ACK
POP ACC
CALL SHIFT8
CALL ACK
CALL START24
MOV A,#0A1H
CALL SHIFT8
CALL ACK
SETB SDA24
MOV R7,#8
CLR A
SETB SDA24
RD000: RL A
SETB SCLK24
MOV C,SDA24
MOV ACC.0,C
CLR SCLK24
DJNZ R7,RD000
RET
;-------------------------------
;写入24C02程序:
WT24: PUSH ACC
SETB SDA24
CLR SCLK24
CALL START24
MOV A,#0A0H
CALL SHIFT8
CALL ACK
POP ACC
CALL SHIFT8
CALL ACK
MOV A,B
CALL SHIFT8
CALL ACK
CALL STOP
CALL DELAY2
RET
; -------------------------------
;开始条件
START24:CLR SDA24
SETB SDA24
SETB SCLK24
CLR SDA24
CLR SCLK24
RET
;停止条件
STOP: CLR SDA24
SETB SCLK24
SETB SDA24
RET
;应答信号
ACK: SETB SCLK24
CLR SCLK24
RET
;读、写数据
SHIFT8: MOV R7,#8
SH01: RLC A
MOV SDA24,C
SETB SCLK24
CLR SCLK24
DJNZ R7,SH01
RET
DELAY2:
NOP
NOP
NOP
NOP
RET
;DELAY10MS: MOV R6,#20
DELAY20MS: MOV R6,#40
LOOP1: MOV R7,#248
DJNZ R7,$
DJNZ R6,LOOP1
RET
;DELAY: MOV R5,#20
;LOOP2: LCALL DELAY10MS
; DJNZ R5,LOOP2
; RET
END
发表时间:2006年8月15日21:16:22