Está en la página 1de 4

PRACTICA 10 COMUNICACIN RS232 VIA USART Y COMUNICACIN I2C OBJETIVOS: Familiarizarse con el uso de las comunicaciones seriales USART

T e I2C

Proyectos: COMUNICACIN RS232 VIA USART


/* * Nombre del Proyecto: P10a_usart.c * Nombre del Autor: (c) Mikroelektronika, 2009. * Description: (Explicacin del ejercicio) * Test configuration: MCU: PIC16F887 Oscillator: HS, 08.0000 MHz SW: mikroC PRO for PIC * NOTES: */

/*Header******************************************************/ unsigned short i; void main() { UART1_Init(19200); // Initialize USART module // (8 bit, 19200 baud rate, no parity bit...)

while (1) { if (UART1_Data_Ready()) { // If data has been received i = UART1_Read(); // read it UART1_Write(i); // and send it back } } }

NOTA: Para trabajar en este ejercicio deber utilizar el programa Virtual Serial Port con el que puede crear puertos virtuales: Ej. Cree los puertos virtuales COM1 y COM2. Utilice el puerto virtual COM1 para configurar el COMPIM de PROTEUS y utilice el COM2 para el HIPERTERMINAL.

RESPONDER:
1)

Realice una comunicacin SERIAL VIA USART con otro microcontrolador en el mismo circuito. En este ejercicio cuando apriete un pulsador har que el otro microcontrolador parpadee los bits del puerto B. Para conectar los dos microcontroladores en este ejercicio conecte en forma cruzada Rx1 Tx2 y Tx1 Rx2.

COMUNICACIN I2C

/* * Nombre del Proyecto: P10b_i2c.c * Nombre del Autor: (c) Mikroelektronika, 2009. * Description: (Explicacin del ejercicio) * Test configuration: MCU: PIC16F887 Oscillator: HS, 08.0000 MHz SW: mikroC PRO for PIC * NOTES: */

void main(){ ANSEL = 0; ANSELH = 0; PORTB = 0; TRISB = 0; I2C1_Init(100000); I2C1_Start(); I2C1_Wr(0xA0); I2C1_Wr(2); I2C1_Wr(0xF0); I2C1_Stop();

// Configure AN pins as digital I/O // Configure PORTB as output // // // // // // initialize I2C communication issue I2C start signal send byte via I2C (device address + W) send byte (address of EEPROM location) send data (data to be written) issue I2C stop signal

Delay_100ms(); I2C1_Start(); I2C1_Wr(0xA0); I2C1_Wr(2); I2C1_Repeated_Start(); I2C1_Wr(0xA1); PORTB = I2C1_Rd(0u); I2C1_Stop(); } // // // // // // // issue I2C start signal send byte via I2C (device address + W) send byte (data address) issue I2C signal repeated start send byte (device address + R) Read the data (NO acknowledge) issue I2C stop signal

RESPONDER:
1)

Luego de analizar el programa coloque en la cabecera la descripcin correspondiente.