I2C şi At89c2051 .....

O

operator6wp

Guest
HI, am o problemă în VSMproteus ....
Am folosit At89c2051 şi 24c04a pentru simulare I2C şi PFC8583 si eu nu pot citi datele de I2C octet din eeprom ...este de oţel 0 valoare ...dar, având în vedere I2C jurnalul de date este OK citit ....
I conecta SCL-P3.0 şi SDA-P3.1 ....

I2C_read:

SETB SDA
MOV B, # 8
I2C_R: Call I2C_wait; (NOP's sub)
SETB SCL
MOV C, SDA
CLR SCL
RLC A
DJNZ B, I2C_R
Retîn sda nu este schimbarea de biţi ....Cum se citeşte ...Whats .... greşitAJUTOR!!!

, dar, când am deconecta Ceas pcf8583 de la canal i2c, simulare EEPROM este ok locul de muncă ...Ce sus ....

 
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