I2c ja At89c2051 .....

O

operator6wp

Guest
HI, minulla on yksi ongelma VSMproteus ....
Käytin At89c2051 ja 24c04a varten simulointi I2C ja PFC8583 enkä voi lukea I2C tiedot byte alkaen eeprom ...on terästä 0 arvo ...mutta log mieltä I2C tieto ok lukea ....
Liityn SCL-P3.0 ja SDA-P3.1 ....

I2C_read:

SETB SDA
MOV B, # 8
I2C_R: CALL I2C_wait (NOP alakiintiöstä)
SETB SCL
MOV C, SDA
CLR SCL
RLC A
DJNZ b, I2C_R
RETvuonna sda ei ole muuttaa bitin ....lukea ...whats väärin ....HELP!

mutta kun olen irrota Kello pcf8583 alkaen I2C bus, eeprom simulointi on työtä ok ...mitä asti ....

 
IIC_START MACRO
SETB SDA
SETB SCL
CLR SDA
CLR SCL
ENDM
IIC_STOP MACRO
CLR SDA
SETB SCL
SETB SDA
CLR SCL
ENDM
IIC_DT_0 MACRO
CLR SDA
SETB SCL
CLR SCL
ENDM
IIC_DT_1 MACRO
SETB SDA
SETB SCL
CLR SCL
ENDM
IIC_RD_BIT MACRO
SETB SDA
SETB SCL
CLR SCL
MOV C, SDA
ENDM
IIC_DV_ADDR MACRO
IIC_DT_1
IIC_DT_0
IIC_DT_1
IIC_DT_0
IIC_DT_0
IIC_DT_0
IIC_DT_0
ENDM

;------------------------------
IIC_READ:
IIC_START
IIC_DV_ADDR
IIC_DT_1
IIC_DT_1
MOV R2, # 8
IIC_R_L1:
IIC_RD_BIT
RLC A
DJNZ R2, IIC_R_L1
MOV IIC_BUF, A
IIC_STOP
RET
;------------------------------
IIC_WR_ADDR:
IIC_START
IIC_DV_ADDR
IIC_DT_0
IIC_DT_1; ACK
MOV A, R7
MOV R2, # 8
IIC_WA_L1:
RLC A
MOV SDA, C
SETB SCL
CLR SCL
DJNZ R2, IIC_WA_L1
IIC_DT_1; ACK
IIC_STOP
RET
;------------------------------
IIC_WRITE:
IIC_START
IIC_DV_ADDR
IIC_DT_0
IIC_DT_1; ACK
MOV A, R7
MOV R2, # 8
IIC_W_L1:
RLC A
MOV SDA, C
SETB SCL
CLR SCL
DJNZ R2, IIC_W_L1
IIC_DT_1; ACK
MOV A, R6
MOV R2, # 8
IIC_W_L2:
RLC A
MOV SDA, C
SETB SCL
CLR SCL
DJNZ R2, IIC_W_L2
IIC_DT_1; ACK
IIC_STOP
RET

 

Welcome to EDABoard.com

Sponsor

Back
Top