串行总线扩展实验程序代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACK BIT 10H

SLA DATA 30H SUBA DATA 31H NUMBYTE DATA 32H SDA EQU P1.7

SCL EQU P1.6

MTD EQU 30H

MRD EQU 40H

ORG 0000H

LCALL WRAT24C

LCALL RDAT24C

LJMP L1

ORG 0030H

WRAT24C:

MOV SLA,#0A0H

MOV NUMBYTE,#8

MOV SUBA,#00H

LCALL IWRNBYTE

RET

IWRNBYTE:

MOV A,NUMBYTE

MOV R3,A

LCALL START

MOV A,SLA

LCALL WRBYTE

LCALL CACK

JNB ACK,RETWRN

MOV A,SUBA

LCALL WRBYTE

LCALL CACK

MOV R1,#MTD WRDA:

MOV A,@R1

LCALL WRBYTE

LCALL CACK

JNB ACK,IWRNBYTE

INC R1

DJNZ R3,WRDA RETWRN:

LCALL STOP

RET

RDAT24C:

MOV SLA,#0A0H

MOV NUMBYTE,#8

MOV SUBA,#00H

LCALL IRDNBYTE

RET IRDNBYTE:

MOV R3,NUMBYTE

LCALL START

MOV A,SLA

LCALL WRBYTE

LCALL CACK

JNB ACK,RETRDN

MOV A,SUBA

LCALL WRBYTE

LCALL CACK

LCALL START

MOV A,SLA

INC A

LCALL WRBYTE

LCALL CACK

JNB ACK,IRDNBYTE

MOV R1,#MRD RDN1:

LCALL RDBYTE

MOV @R1,A

DJNZ R3,SACK

LCALL MNACK RETRDN:

LCALL STOP

RET

SACK:

LCALL MACK

INC R1

SJMP RDN1 WRBYTE:

MOV R0,#08H WLP:

RLC A

MOV SDA,C

NOP

SETB SCL

NOP

NOP

NOP

NOP

NOP

CLR SCL

WLP1:

DJNZ R0,WLP

NOP

RET RDBYTE:

MOV R0,#08H RLP:

SETB SDA

NOP

SETB SCL

NOP

NOP

MOV C,SDA

RLC A

CLR SCL

NOP

NOP

NOP

DJNZ R0,RLP

RET

START:

SETB SDA

NOP

SETB SCL

NOP

NOP

NOP

NOP

NOP

CLR SDA

NOP

NOP

NOP

NOP

CLR SCL

NOP

RET

STOP:

CLR SDA

NOP

NOP

NOP

NOP

NOP

NOP

NOP

SETB SDA

NOP

NOP

NOP

NOP

RET MACK:

CLR SDA

NOP

NOP

SETB SCL

NOP

NOP

CLR SCL

NOP

NOP

RET MNACK:

SETB SDA

NOP

NOP

SETB SCL

NOP

NOP

CLR SCL

NOP

NOP

RET CACK:

SETB SDA

NOP

NOP

SETB SCL

CLR ACK

NOP

NOP

MOV C,SDA

JC CEND

CEND:

NOP

CLR SCL

NOP

RET

L1:

END

相关文档
最新文档