导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→【急~~】懂I2C编程的汇编高手[guest]

 *第13580篇: 【急~~】懂I2C编程的汇编高手

  
楼 主:guest 2003年6月17日21:47
 【急~~】懂I2C编程的汇编高手
我做的设计中要用89C51单片机的并行I/O去控制另一快芯片的I2C总线,对它的寄存器进行数据输入的操作,下面是我网上找到的一个写的子程序
 
;写串行E2PROM子程序EEPW
; (R3)=器件地址
; (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 ;延时以满足传输速率要求
  SETB   P1.1  ;发停止信号
  ACALL DELAY
  SETB   P1.0
  RET

SUBS: MOV R0,#08H ;发送单字节子程序
LOOP: CLR P1.1
  RLC  A
  MOV  P1.0,C
  NOP
  SETB P1.1
  ACALL DELAY
  DJNZ R0,LOOP ;循环8次送8个bit
  CLR  P1.1
  ACALL DELAY
  SETB P1.1
REP: MOV C,P1.0
  JC  REP  ;判应答到否,未到则等待
  CLR  P1.1
  RET

DELAY: NOP
  NOP
  RET

高手帮忙改改,比如我要在寄存器00H输入00H,寄存器09H输入80H,还有我就不列出来了


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:C51反汇编??

[下一篇主题]:请教DSP的C程序读取程序程贮器的数据问题。救命