导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请帮忙!!24C02没用!!![zhaobao51]

 *第42693篇: 请帮忙!!24C02没用!!!

  
楼 主:zhaobao51 2006年8月15日21:16
 请帮忙!!24C02没用!!!
ID      EQU 30H
K1      BIT P3.3
K2      BIT P3.4
L1      BIT P2.0
L2      BIT P2.1
L3      BIT P2.2
L4      BIT P2.3
L5      BIT P2.4
L6      BIT P2.5
L7      BIT P2.6
SDA24 EQU P1.5
SCLK24 EQU P1.6

        ORG 00H
    
START:  MOV     ID,#00H  
        CLR P1.6 ;打开写保护
        MOV A,#00H ;读地址
        LCALL RD24;;
        MOV ID, A;;将读的值给ID
  
KK1:    JB      K1,KK2
        LCALL   DELAY20MS       ;10MS:可靠性低
        JB      K1,KK2
        INC     ID
        MOV     A,ID
        CJNE    A,#07,REL
        MOV     ID,#-1H
KK2:    JB      K2,REL
        LCALL   DELAY20MS       ;10MS:可靠性低
        JB      K2,REL
        DEC     ID
        MOV     A,ID
        CJNE    A,#-1,REL
        MOV     ID,#06H         ;07H:ERR
                                ;RET:err
REL:    JNB     K1,$
        JNB     K2,$
        LCALL   DELAY20MS       ;***
        ;JB     K1,ZJ          ;***
        ;JB     K2,REL          ;***
        
        MOV     A,ID
        CJNE    A,#00H,IS0
        ORL     P2,#01111111B   ;***
        CLR     L1              ;***


        MOV A,ID
        LCALL WT24;;;写入24C02
        LJMP    KK1             ;START:ERR
IS0:    CJNE    A,#01H,IS1
        ORL     P2,#01111111B   ;***
        CLR     L2              ;***
        LJMP    KK1             ;START:ERR
IS1:    CJNE    A,#02H,IS2
        ORL     P2,#01111111B   ;***
        CLR     L3              ;***
        LJMP    KK1             ;START:ERR
IS2:    CJNE    A,#03H,IS3
        ORL     P2,#01111111B   ;***
        CLR     L4              ;***
        LJMP    KK1             ;START:ERR
IS3:    CJNE    A,#04H,IS4
        ORL     P2,#01111111B   ;***
        CLR     L5              ;***
        LJMP    KK1             ;START:ERR
IS4:    CJNE    A,#05H,IS5
        ORL     P2,#01111111B   ;***
        CLR     L6              ;***
        LJMP    KK1             ;START:ERR
IS5:    CJNE    A,#06H,IS6
        ORL     P2,#01111111B   ;***
        CLR     L7              ;***
        LJMP    KK1             ;START:ERR
IS6:    LJMP    START

RD24: PUSH ACC ;读24C02子程序。 
SETB SDA24 
CLR SCLK24 
CALL START24 
MOV A,#0A0H 
CALL SHIFT8 
CALL ACK 
POP ACC 
CALL SHIFT8 
CALL ACK 
CALL START24 
MOV A,#0A1H 
CALL SHIFT8 
CALL ACK 
SETB SDA24 
MOV R7,#8 
CLR A 
SETB SDA24 
RD000: RL A 
SETB SCLK24 
MOV C,SDA24 
MOV ACC.0,C 
CLR SCLK24 
DJNZ R7,RD000 
RET 
;-------------------------------
;写入24C02程序: 
WT24: PUSH ACC 
SETB SDA24 
CLR SCLK24 
CALL START24 
MOV A,#0A0H 
CALL SHIFT8 
CALL ACK 
POP ACC 
CALL SHIFT8 
CALL ACK 
MOV A,B 
CALL SHIFT8 
CALL ACK 
CALL STOP 
CALL DELAY2 
RET
; -------------------------------
;开始条件
START24:CLR SDA24 
SETB SDA24
SETB SCLK24
CLR SDA24 
CLR SCLK24
RET

;停止条件
STOP: CLR SDA24 
SETB SCLK24
SETB SDA24
RET

;应答信号
ACK: SETB SCLK24 
CLR SCLK24
RET

;读、写数据
SHIFT8: MOV R7,#8 
SH01: RLC A
MOV SDA24,C
SETB SCLK24
CLR SCLK24
DJNZ R7,SH01
RET

DELAY2:
NOP
NOP
NOP
NOP
RET
                  
;DELAY10MS:      MOV     R6,#20
DELAY20MS:      MOV     R6,#40
LOOP1:          MOV     R7,#248
                DJNZ    R7,$
                DJNZ    R6,LOOP1
                RET
                
;DELAY:          MOV     R5,#20
;LOOP2:          LCALL   DELAY10MS
;                DJNZ    R5,LOOP2
;                RET
                
END

   

  
2楼:gbbxd 2006年9月3日16:52
 [原创]
我想问一下,在用KEIL2防真使用24C02时,KEIL的属性是这么设置的?
  
3楼:zhangwenyi 2006年9月3日22:51
 24C02不能纯软件仿真吧?
24C02不能纯软件仿真吧?

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

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


[上一篇主题]:单片机爱好者的乐园:qq:393497451

[下一篇主题]:装了程序,用COM线下载音乐到手机,提示为OPENRS232,我该怎样做