No.89275 作者:单★片★机 邮件:zhangli24911986@163.com ID:47826 登陆:28次 QQ:609329126 文章数:11篇 最后登陆IP:125.93.78.34 最后登陆:2009/11/5 14:47:07 注册:2006/2/23 0:59:02 财富:170 发帖时间:2006/2/23 19:27:25 发贴者IP:61.145.210.207 标题:单★片★机:我发一个24C02的读写程序,大家看看怎么样 摘要:No.89275我发一个24C02的读写程序,大家看看怎么样 ;这是将0600H地址中以下的8个数据写到24C02的01H为首址单元中去的汇编程序 转自电子制作 ORG 0000H SCL BIT P3.4;定义24C02的串行时钟线 SDA BIT P3.5;定义24C02的串行数据线 LJMP START START:LCALL STAR;调用 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 读写子程序如下: ;写串行E2PROM子程序EEPW ; R3=10100000(命令1010+器件3位地址+读/写。 器件地址一个芯片,是000) ; (R4)=片内字节地址 ; (R1)=欲写数据存放地址指针 ; (R7)=连续写字节数n EEPW: MOV P1,#0FFH CLR P1.0 ;发开始信号 MOV A,R3 ;送器件地址 ACALL SUBS MOV A,R4 ;送片内字节地址 ACALL SUBS AGAIN: MOV A,@R1 ACALL SUBS ;调发送单字节子程序INC R1 DJNZ R7,AGAIN;连续写n个字节 CLR P1.0 ;SDA置0, 准备送停止信号 ACALL DELAY ......
>>返回讨论的主题
|