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

 *第28323篇: 各位大虾帮帮忙

  
楼 主:gladant611 2004年12月13日15:47
 各位大虾帮帮忙
我往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


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

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


[上一篇主题]:请问那位知道那里有销售64K*16的sram,急急急!!!

[下一篇主题]:复芯微电子招聘兼职IC类讲师(高薪)