在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1737|回复: 0

帮忙找读写24c04的错误

[复制链接]
发表于 2007-11-21 23:13:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
SDA       EQU       P3.7
SCL       EQU       P3.6
MEM_R1    EQU        0BH
MEM_R2    EQU        0CH
WP        EQU       P2.3
AD0       EQU       P2.0
AD1       EQU       P2.1
AD2       EQU       P2.2
DATA_A    EQU       20H
          ORG 0000H
          JMP MAIN
          ORG 0030H
MAIN:     MOV SP,#60H
          LCALL REST
          MOV DATA_A,#00H
          MOV R0,#07H
          MOV A,@R0
          MOV B,A
          MOV DPH,DATA_A
          Lcall WT_MEM
          LCALL MEM_STOP
          LCALL DELAY20MS
LPE:      MOV DPH,#00H
          MOV B,#00H
          LCALL RD_MEM
          MOV P1,B
          JMP $
REST:     CLR AD0
          CLR AD1
          CLR AD2
          CLR WP
          CLR SCL
          CLR SDA
          MOV P0,#00H
          RET
;****************  AT24C04  操作程序  ****************
WT_MEM:
      ACALL MEM_START
      MOV A,#0A0H
      ACALL WR1
MWRITE2:
      MOV A,DPH
      ACALL WR1
      MOV A,B
      ACALL WR1
      ACALL MEM_STOP
      RET
;**********  AT24CXX  读字节程序   ***************************
; 要读入的地址信息在DPH中,返回的读取数据在B中
RD_MEM:
      ACALL MEM_START
      MOV   A,#0A0H
      ACALL WR1
      MOV   A,DPH
     ACALL WR1
      ACALL MEM_START
      MOV A,#0A1H
      ACALL WR1
      CLR    A
      MOV   DPL,#08H
      CLR SCL
RD1: SETB  SCL
      NOP
      LCALL MDELAY
      MOV   C,SDA
      RLC   A
      CLR   SCL
      LCALL MDELAY
      DJNZ  DPL,RD1
      MOV   B,A
      ACALL MEM_STOP
      MOV   30H,B
      LCALL ICSHOW
      RET
WR1:  MOV   MEM_R1,#08H
WR2:  RLC   A
      MOV   SDA,C
      SETB  SCL
      ACALL MDELAY
      CLR   SCL
      ACALL MDELAY
      DJNZ  MEM_R1,WR2
WR4:  LCALL MDELAY
      SETB SCL
      LCALL MDELAY
      CLR    SCL
       RET
;***********  发送开始信号  ********************
;开始信号:在时钟为高电平,数据线出现下跳;
MEM_START:   SETB  SDA
             SETB   SCL
             NOP
             CLR   SDA
             ACALL MDELAY
             CLR   SCL
             ACALL MDELAY
             RET
;**********  发送停止信号   *********************
;停止信号:在时钟为高电平,数据线出现上跳;
MEM_STOP:  SETB SCL
           ACALL MDELAY
           SETB SDA
           ACALL MDELAY
           LCALL DELAY20MS
           RET
MDELAY:
           MOV MEM_R2,#04H
LOOP:      NOP
           DJNZ MEM_R2,LOOP
           RET
DELAY20MS:
          MOV    R5,#40
DELAY1:   MOV    R4,#00H
DELAY2:   DJNZ   R4,DELAY2
          DJNZ   R5,DELAY1
           RET
ICSHOW: MOV     DPTR,#TAB
        MOV     R0,30H
        MOV     A,@R0
LOOP1:  MOVC    A,@A+DPTR
        LCALL   SEND
        INC     R0
        CJNE    R0,#33H,LOOP1
        RET
SEND:   MOV     R7,#08H
LOOP2:  RRC     A
        MOV     P1.6,C
        SETB    P3.7
        CLR     P3.7
        DJNZ    R7,LOOP2
        RET
TAB:    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,
        DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
        END

我想将07h写入24c04中,然后读出来,用数码管显示出来!结果:07h没显示,我想问下朋友,这段代码的错误之处?????????????????????
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-14 09:25 , Processed in 0.025165 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表