以下程序是我从网上找的 ,为什么它说把8个数据写到24C02的01H为首址单元中去,而不发24C02的首地址01H呢,对24C02的读写要不要发它里面所存的单元地址呢,各位大虾帮帮忙啊,小弟我最近被网上各种这样的程序弄的很糊涂了,这先谢谢,能不能给点例程,推荐一点好的网站也行,万分感谢!!!!
这是将0600H地址中以下的8个数据写到24C02的01H为首址单元中去的汇编程序 ORG 0000H SCL BIT P3.4 SDA BIT P3.5;
LJMP START START:LCALL STAR MOV A,#0AOH LCALL SDATA LCALL ACK JC START MOV R2,#08H;数据有8个 MOV DPTR,#0600H;定义源数据的位置 LOOP:MOV A,#00H MOVC A,@A+DPTR LCALL SDATA LCALL ACK JC LOOP INC DPTR DJNZ R2,LOOP
LCALL STOP;调用停止子程序
STAR:SETB SDA SETB SCL NOP NOP NOP NOP CLR SDA NOP NOP NOP NOP CLR SCL RET SDATA:MOV R0,#08H LOOP0:RLC A MOV SDA,C NOP NOP SETB SCL NOP NOP NOP NOP CLR SCL DJNZ R0,LOOP0 RET ACK:SETB SDA NOP NOP SETB SCL NOP NOP NOP NOP MOV C,SDA CLR SCL RET STOP:CLR SDA NOP NOP NOP NOP SETB SCL NOP NOP NOP NOP SETB SDA NOP NOP NOP NOP RET ORG 0600H DB 0A0H,10H,01H,02H,03H,04H,05H,06H END
|