2
Tarea de Microcontroladores #4 Nombre: Ítalo Esparza Villacís. //Programa con el cual podremos leer los datos leídos de un chip DS1624, el cual mide temperaturas, gracias a una tabla que relaciona los bytes con la temperatura en grados centígrados. //Definimos nuestros bits a utilizar sbit I2C_Scl at RB1_bit; sbit I2C_Sda at RB2_bit; sbit I2C_Scl_Direction at TRISB1_bit; sbit I2C_Sda_Direction at TRISB2_bit; void main () { OSCON=0x60; //Oscilador interno a 4 Mhz. ANSEL=0x00; ANSELH=0x00; I2C_Start (); //El Scl se va a bajo para avisar a los demás Maestros que esta //que está utilizando un esclavo I2C_Write (0b10011000); //Byte de control, determinando que usaremos el dispositivo //en A1, con “0” en R/W señalando q vamos a escribir. I2C_Write (0xAA); //Comando para leer la temperatura. I2C_Start (); //Volvemos a iniciar para leer datos. I2C_Write (0b10011001); //Byte de control, con “1” en R/W porque vamos a leer. Temp1=I2C_Read (1); //ACK “1” para que cuando termine siga con el otro dato. Temp2=I2C_Read (0); //ACK “0” no se necesita confirmar recibido del esclavo. IC2_Stop (); //Se finaliza proceso y el Scl vuelve a alto. Para avisar que se //que se puede utilizar el bus I2C.

Comunicación I2C a un dispositivo DS1624

Embed Size (px)

DESCRIPTION

Es un breve ejemplo de como utilizar la función I2C en MikroC, donde el maestro es el PIC 16F887 a un esclavo que en este caso es el dispositivo DS1624, que es un termómetro digital, con pines que conectan a dispositivos de medición A1,A2 y A3, para relaciones de cambio de temperatura y comandos de control, revisar el datasheet del chip.

Citation preview

Page 1: Comunicación I2C a un dispositivo DS1624

Tarea de Microcontroladores #4

Nombre: Ítalo Esparza Villacís.

//Programa con el cual podremos leer los datos leídos de un chip DS1624, el cual mide temperaturas, gracias a una tabla que relaciona los bytes con la temperatura en grados centígrados.

//Definimos nuestros bits a utilizar

sbit I2C_Scl at RB1_bit;

sbit I2C_Sda at RB2_bit;

sbit I2C_Scl_Direction at TRISB1_bit;

sbit I2C_Sda_Direction at TRISB2_bit;

void main () {

OSCON=0x60; //Oscilador interno a 4 Mhz.

ANSEL=0x00;

ANSELH=0x00;

I2C_Start (); //El Scl se va a bajo para avisar a los demás Maestros que esta

//que está utilizando un esclavo

I2C_Write (0b10011000); //Byte de control, determinando que usaremos el dispositivo

//en A1, con “0” en R/W señalando q vamos a escribir.

I2C_Write (0xAA); //Comando para leer la temperatura.

I2C_Start (); //Volvemos a iniciar para leer datos.

I2C_Write (0b10011001); //Byte de control, con “1” en R/W porque vamos a leer.

Temp1=I2C_Read (1); //ACK “1” para que cuando termine siga con el otro dato.

Temp2=I2C_Read (0); //ACK “0” no se necesita confirmar recibido del esclavo.

IC2_Stop (); //Se finaliza proceso y el Scl vuelve a alto. Para avisar que se

//que se puede utilizar el bus I2C.