用AT89S51写AT24C01,AT24CO1的 地址是 怎样确定的,下面程序为什么 它发送完了读取写控制字之后不用发写在AT24CO1的首地址吗?
LCALL STA ;发送起始条件 MOV A,,#0A0H读取写控制字 LCALL WRB;发送一个字节 LCALL CACK;检查应答位 JB F0,WRBYTE1;无应答,重发 MOV R0,#DTSV ;欲发送数据首址 MOV R5,KEYNUM;R5保存欲发送数据的字节数 WRDA: MOV A,@R0;读一个字节数据 LCALL WRB;发送写控制字节 LCALL CACK;检查应答位 JB F0,WRBYTE1;无应答,重发 DEC R0 DJNZ R5,WRDA;未发送完N个字节继续 LCALL STOP ;数据发送完毕,停止 POP PSW ;恢复现场 RET
|