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