导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→24co2的读写[lqb781101]

 *第35936篇: 24co2的读写

  
楼 主:lqb781101 2005年11月22日21:24
 24co2的读写
[求助]24c02的读写问题
我的24C02,1,2,3,4,7脚接地,8脚接VCC,5,6脚通过10k电阻接vcc.。 5 脚接89C2051的P1.3,6脚接其的p1.4。我想对24C02进行读写,但每次读出来的结果总为零。因为,我的P1接口上都接有LED,并且低电平时LED发光,单片机源程序如下,我不知错了哪里,敬请哪位高手指点迷津,不胜感激。
SCL EQU P1.4;时钟
SDA EQU P1.3;数据线
LED1 EQU P1.7
LED2 EQU P1.6
CPL P1.7;延时杳看单片机是否工作
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
CPL P1.7
CALL DEPLAY
MOV P1,#0FFH
CALL START24C02
MOV A,#10100000B
CALL W24C02
CALL ACK24C02
MOV A,#06H
CALL W24C02
CALL ACK24C02
MOV A,#10111111B
CALL W24C02
CALL ACK24C02
CALL STOP24C02
CALL DEPLAY
SETB P1.6
SETB P1.7
CALL START24C02
MOV A,#10100001B
CALL W24C02
CALL ACK24C02
MOV A,#06H
CALL W24C02
CLR SDA
CALL ACK24C02
CALL R24C02
CALL ACK24C02
CALL STOP24C02
MOV P1,A
MAINLOOP:CPL P3.5;杳看单片是否读写完毕
         CALL DEPLAY
         SJMP MAINLOOP
R24C02:MOV R7,#8;读24c02
   RLOOP:SETB SCL
         CALL DE50US
         MOV C,SDA
         RLC A
         CLR SCL
        CALL DE50US
         DJNZ R7,RLOOP
         RET
ACK24C02: CLR SDA;应答
         CALL DE50US
          SETB SCL
          CALL DE50US
   MOV C,SDA
   ACKLOOP: JC $
         CLR SCL
         CALL DE50US
         RET
W24C02: MOV R7,#8;写24c01
WLOOP: RLC A
        MOV SDA,C
        SETB SCL
        CALL DE50US
        CLR SCL
        CALL DE50US
        DJNZ R7,WLOOP
        RET
START24C02:SETB SDA; 开始24c02操作
           SETB SCL
           CALL DE50US
           CLR SDA
           CALL DE50US
    CLR SCL
           CALL DE50US
           RET
STOP24C02: CLR SDA;停止24c02操作
           CALL DE50US
           SETB SCL
           CALL DE50US
           SETB SDA
           RET
DEPLAY: MOV R0,#00H;延时
   DE1: MOV R1,#00H
        DJNZ R1,$
        DJNZ R0,DE1
        RET
DE50US: MOV R0,#100;延时
        DJNZ R0,$
RET
end

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

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


[上一篇主题]:关于MT8870的问题

[下一篇主题]:PLC 232通信口转USB接外挂U盘,能否将外挂U盘当数据存储器用?