加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

24C02读写汇编程序

时间:2013-11-23  来源:123485.com  作者:9stone

;简洁的24C02读写汇编程序 
;------------- 
    I2C_SDA          EQU P1.6   ; PIN 5
    I2C_SCL          EQU P1.7   ; PIN 6
 
;========
I2C_WRITE:  ;  WRITE 8 BYTES TO EEROM ; INPUT: A - A*8 = EEROM START ADDR 
            ;                                  R0 - RAN START ADDR
            ;                            USE: C, A, R0, R6, R7
 
      ACALL I2C_START
      ACALL OUT
      MOV R6, #8
WR_LP:MOV A, @R0
      ACALL OUT
      INC R0
      DJNZ R6, WR_LP
      AJMP I2C_STOP  
 
;=========
I2C_READ:   ;  READ 8 BYTES FROM EEROM ; INPUT: A - A*8 = EEROM START ADDR 
            ;                                   R0 - RAN START ADDR
            ;                            USE: C, A, R0, R6, R7
      
      ACALL I2C_START
      ACALL OUT
      MOV R6, #8
      MOV A, #0A1H; #RDCMD
      ACALL OUTS
BRDLP:
          MOV R7, #8
          SETB I2C_SDA
INLP:     CLR  I2C_SCL
          ACALL DELAY6
          SETB  I2C_SCL
          NOP
          MOV C, I2C_SDA
          RLC A
          DJNZ R7, INLP
          CLR   I2C_SCL
          MOV @R0, A
          INC R0
   DJNZ R6, ACKLP
;;;;-------------- 
I2C_STOP:
          CLR I2C_SDA
          ACALL DELAY5
          SETB I2C_SCL
          ACALL DELAY5
          SETB I2C_SDA
DELAY6:
          NOP
DELAY5:
          NOP
          RET
;;----------------
I2C_START:
      SWAP A
      RR A
      MOV R6, A
      MOV A, #0A0H; #WTCMD
      ACALL OUTS
      MOV A, R6
      RET
;---------------                   
ACKLP:
      CLR I2C_SDA 
      SETB I2C_SCL
      ACALL DELAY5
      CLR I2C_SCL
      AJMP BRDLP
;======== 
OUTS:
      SETB I2C_SDA  
      SETB I2C_SCL 
      ACALL DELAY5 
      CLR I2C_SDA  
      ACALL DELAY5 
      CLR I2C_SCL  
;========== 
OUT:
      SETB C
      MOV R7, #9
OTLP: RLC A
      NOP
      MOV I2C_SDA, C
      NOP
      NOP
      SETB I2C_SCL
      ACALL DELAY5
      CLR  I2C_SCL
      DJNZ R7, OTLP
      RET
;========= 
END

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门