导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→各位大虾帮帮忙

* 68908: 各位大虾帮帮忙

   gladant611 
gladant611发表的帖子 

 各位大虾帮帮忙
我往93c46的一个指定地址里写数据,可发现写完数据后从93c46的其他存储地址里读出来的数据居然也是相同的一个数,不知道是为什么。各位大虾帮忙看看:
使用89c51控制,片选端接p3.0,CLK接p1.7,DI接p1.6,DO接p1.5
写数据程序:
;入口条件:写操作的起始位、命令码和地址存于DPTR,需写入的数据存于R0间址单元
;出口条件:数据写入EEPROM中指定的地址单元
        ORG     0000H
        AJMP    WRITE
WRITE:  ACALL   EWEN            ;擦/写允许
        CLR     P3.0            ;CS=0,DO恢复高阻态
        NOP
        SETB    P3.0            ;CS=1
        MOV     R7,#08H
        MOV     DPH,#00000010B
LOOP3:  CLR     P1.7            ;CLK=0
        MOV     A,DPH
        RLC     A
        MOV     DPH,A
        MOV     P1.6,C          ;DI=C
        NOP
        SETB    P1.7            ;CLK=1
        DJNZ    R7,LOOP3
        MOV     R7,#08H
LOOP4:  CLR     P1.7            ;CLK=0
        MOV     A,DPL
        RLC     A
        MOV     DPL,A
        MOV     P1.6,C          ;DI=C
        NOP
        SETB    P1.7            ;CLK=1
        DJNZ    R7,LOOP4
        MOV     R7,#08H
LOOP5:  CLR     P1.7            ;CLK=0
        MOV     A,@R0
        RLC     A
        MOV     @R0,A
        MOV     P1.6,C          ;DI=C
        NOP
        SETB    P1.7            ;CLK=1
        DJNZ    R7,LOOP5
        CLR     P3.0            ;CS=0,启动自定时
        NOP
        SETB    P3.0
        SETB    P1.5            ;检测状态
        NOP
LOOP6:  JNB     P1.5,LOOP6
        NOP
        CLR     P3.0            ;CS=0
        ACALL   EWDS            ;擦/写禁止
        SJMP    $

读数据程序:
;入口条件:DPTR中放入起始位、命令码、指定单元地址
;出口条件:读出数据存于R0间址单元
        ORG     0000H
        AJMP    READ
READ:   CLR     P3.0            ;CS=0,DO恢复高阻态
        NOP
        SETB    P3.0            ;CS=1
        MOV     R7,#08H
        MOV     DPH,#00000011B
LOOP0:  CLR     P1.7            ;CLK=0
        MOV     A,DPH
        RLC     A
        MOV     DPH,A
        MOV     P1.6,C          ;DI=C
        NOP
        SETB    P1.7            ;CLK=1
        DJNZ    R7,LOOP0
        MOV     R7,#08H
LOOP1:  CLR     P1.7            ;CLK=0
        MOV     A,DPL
        RLC     A
        MOV     DPL,A
        MOV     P1.6,C
        NOP
        SETB    P1.7            ;CLK=1
        DJNZ    R7,LOOP1
        SETB    P1.5            ;准备读入单片
        NOP
        JB      P1.5,EER        ;没有前导0,转故障指示
        MOV     R7,#08H
LOOP2:  CLR     P1.7            ;CLK=0
        NOP
        SETB    P1.7            ;DO输出1位
        NOP
        MOV     C,P1.5
        MOV     A,@R0
        RLC     A               ;C移入最低位保存
        MOV     @R0,A
        DJNZ    R7,LOOP2
        CLR     P3.0
        SETB    P2.3
        SJMP    $
EER:    CLR     P2.3
        SJMP    $
        END


发表时间:2004年12月13日15:47:17

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:没有人顶, 自己顶先!
[下一篇帖子]:可以看一下电路图吗?[em06]