You are on page 1of 8

I2C

Interfaz I2C
El bus I2C (inter integrated circuit) desarrollado por Phillips requiere solo 2 lneas para transmitir (Tx) y recibir (Rx). SDA: Datos bidireccionales SCL: Reloj

I2CWRITE
Sintaxis: I2CWrite SDA, SCL, Control, Direccin, [dato], {etiqueta de salto opcional} La instruccin I2CWrite enviar el dato de control y la direccin en la cual se almacenar el dato cargado en la variable previamente cargada.

I2CREAD
Sintaxis: I2Cread SDA, SCL, Control, Direccin, [dato], {etiqueta de salto opcional} La instruccin I2Cread enviar el dato de control yla direccin especfica a un dispositivo conectado a un bus I2C y almacenar el dato obtenido en una variable definida. Al utilizar la etiqueta opcional, el programa saltar si no se recibe ninguna respuesta del dispositivo consultado.

Esquema para guardar #65 en la direccin 3

Ejemplo de escritura
Define Osc 4 ' Define el Oscilador para un Cristal de 4 Mhz. Symbol SDA = PORTB.0 ' Alias para RB0 Symbol SCL = PORTB.1 ' Alias para RB1 Direc VAR Word ' Declaracin de variable "Direc" Control VAR Byte ' Declaracin de variable "Control" Dato VAR Byte ' Declaracin de variable "Dato" Pause 200 ' Pausa de 200 milisegundos para la LCD LCDOut $fe, 1 ' Limpia la LCD Inicio: Control = $A0 ' Dato de Control Direc = $10 ' Direccin n la memoria externa Dato = $23 ' Dato a ser cargado en la direccin ' especificada ($23 = 35 Decimal) I2Cwrite SDA, SCL, Control, Direc, [dato] ' Escribe la memoria Pause 10 ' Pausa de 10 milisegundos por el tiempo de escritura del dispositivo LCDOUT $fe, 2, "Dato Grabado" ' Muestra mensaje por la LCD Loop: GoTo Loop End

Ejemplo de lectura
Define Osc 4 ' Define el Oscilador para un Cristal de 4 Mhz. Symbol SDA = PORTB.0 ' Alias para RB0 Symbol SCL = PORTB.1 ' Alias para RB1 A1 Var Byte ' Declaracin de variable "A1" Direc var Word ' Declaracin de variable "Direc" Control Var Byte ' Declaracin de variable "Control" Pause 200 ' Pause de 200 milisegundos LCDOut $fe, 1 ' Limpia la LCD Inicio: Direc = $10 ' Direccin en la memoria externa Control = $A0 ' Dato de Control I2CREAD SDA, SCL, Control, Direc, [A1] ' Lectura de Memoria LCDOUT $fe, 2,"Dato: ",#A1 ' Muestra el dato leido GoTo Ciclo End

You might also like