Está en la página 1de 5

08/08/2011

Puertos Del Computador
Programación en lenguaje C para Microcontroladores PIC Puerto Serial Asincrono
Ing. Germán Jesús Pereira Muñoz Puerto Paralelo Puerto Serial Puerto USB

20/08/10 20/08/10

Ing. Germán Jesús Pereira Muñoz

1

20/08/10

Ing. Germán Jesús Pereira Muñoz

2

Puerto Serial
El puerto serie RS-232, es la forma mas común usada para realizar transmisiones de datos entre:
• • • • • • • Ordenadores. PLC’s Celulares Calculadoras GPS Dispositivos de Radio Frecuencia Datalogers, etc.

Direcciones del Puerto Serial del computador
El Puerto Serial Tiene las Direcciones.
Direcciones Base +0: – COM 1  3F8h = 1016d – COM 2  2F8h = 760d – COM 3  3E8h = 1000h – COM 4  2E8h = 744d

Utiliza el Circuito integrado UART (Transmisor-Receptor-Asíncrono Universal). Los siguientes modelos de este chip:
• • • • 8250 (bastante antiguo, solo llega a 9600 baudios), 16450 (versión corregida del 8250, llega hasta 115.200 baudios) 16550A (con buffers de E/S) a partir de la gama Pentium. Los portátiles suelen llevar otros chips: – 82510 (con buffer especial, emula al 16450) o el 825

20/08/10

Ing. Germán Jesús Pereira Muñoz

3

20/08/10

Ing. Germán Jesús Pereira Muñoz

4

Tabla de Registro del Puerto Serial

Conexión Entre Computadores
Modem Nulo

Modem Completo

Realimentación

20/08/10

Ing. Germán Jesús Pereira Muñoz

5

20/08/10

Ing. Germán Jesús Pereira Muñoz

6

1

.. if (Usart_Data_Ready()) receive = Usart_Read. Germán Jesús Pereira Muñoz 11 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 9 20/08/10 20/08/10 Ing. .). Germán Jesús Pereira Muñoz 8 Conversores de nivel de voltaje RS-232 Usart (funciones) Usart_Init Usart_Data_Ready Usart_Read Usart_Write 20/08/10 Ing. Ejemplo: Si el dato esta listo: int receive. void Usart_Init(const unsigned long baud_rate). unsigned short Usart_Data_Ready(void). 5 bits de datos – 1 bit de inicio – 1 bit de parada  configurable a 2. Referirse al data sheet de cada dispositivo para un especifico Fosc. Germán Jesús Pereira Muñoz 10 Uart_Init Descripción: Initializa el modulo hardware USART con un determinado Baud rate. Si se reporta un baud rate no soportado el compilador da un error. 1 y ½ bits de parada – +3 a +25 voltios significa un ‘0’ lógico – -3 a –25 voltios significa un ‘1’ lógico – Cualquier voltaje entre estas regiones +3 a –3 voltios es indefinido 20/08/10 Ing. 20/08/10 20/08/10 Ing. Usart_Data_Ready Descripción: Use la funcion para testear si un dato ha sido recivido en el buffer y esta listo para la lectura. Ejemplo: Usart_Init(9600. Germán Jesús Pereira Muñoz 7 20/08/10 Ing. Germán Jesús Pereira Muñoz 12 2 .08/08/2011 Configuración Del Tren De Bits Del Puerto Serial Niveles de voltaje Del Puerto Serial • Comunicación RS-232 son: • Mas común 8N1 – 8 bits de datos configurable a 7. 6.

si toma un valor distinto de cero. 20/08/10 20/08/10 Ing. if (Usart_Data_Ready()) { receive = Usart_Read(). } Ejemplo: int chunk = 0x1E. Ejemplo: Si el dato esta listo: int receive. Use la funcion Usart_Data_Ready para verificar si un dato esta listo en el buffer. /* envia chunk via USART */ 20/08/10 20/08/10 Ing. unsigned short inverted). 2. Germán Jesús Pereira Muñoz 13 20/08/10 20/08/10 Ing.. 9600. unsigned short baud_rate. el maximo vaor depende del reloj del PIC. Germán Jesús Pereira Muñoz 14 Usart(esquemático con COMPIN) Usart (programa I) 20/08/10 20/08/10 Ing. Usart_Write Descripción: Funcion transmite un byte (data) via USART. Usart_Write(chunk). Germán Jesús Pereira Muñoz 17 20/08/10 20/08/10 Ing. El parametro inverted. Los parametros del puerto especifica en que pines del puerto estan el TX y RX debenestar en el rango de 0-7 (no se puede colocar en el mismo pin Rx y TX). unsigned short rx. 1. void Usart_Write(unsigned short data). El baud_rate es la velocidad de transmicion. indica logica invertida en la salida: void Soft_Uart_Init( unsigned short port.08/08/2011 Usart_Read Descripción: La funcion recive un byte via USART. Ejemplo: Soft_Uart_Init(PORTB. Germán Jesús Pereira Muñoz 18 3 . 0).. antes de usar la funcion Usart_Read. unsigned short Usart_Read(void). . …. unsigned short tx. Germán Jesús Pereira Muñoz 15 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 16 Soft Uart (funciones) Soft_Uart_Init Soft_Uart_Read Soft_Uart_Write Soft_Uart_Init Descripción: Inicializa el softUART.

El parametro received es cero si la transmicion a sido existosa. Soft_Uart_Write(some_byte). Germán Jesús Pereira Muñoz 20 Soft_Uart (problema) • Se desea un programa para recibir un byte de un computador y retransmitirlo incrmentado en una unidad. Germán Jesús Pereira Muñoz 19 20/08/10 20/08/10 Ing. 20/08/10 20/08/10 Ing. void Soft_Uart_Write(unsigned short data). Soft_Uart_Write Descripción: La funcion trnasmite un byte via Soft UART.08/08/2011 Soft_Uart_Read Descripción: La funcion recibe un byte via el soft uart. Germán Jesús Pereira Muñoz 23 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 21 20/08/10 20/08/10 Ing. Ejemplo: data = Soft_Uart_Read(rec). Germán Jesús Pereira Muñoz 24 4 . Germán Jesús Pereira Muñoz 22 Soft_Uart(esquemático con virtual Terminal) Soft_Uart (programa I) 20/08/10 20/08/10 Ing. . Soft_Uart (algoritmo) • • • • • 1 Configuración de puertos 2 Configuracion del soft_uart 3 Lectura de soft_uart 4 Envío a los leds 5 Regresar a 3 20/08/10 20/08/10 Ing... unsigned short Soft_Uart_Read(unsigned short *received). Ejemplo: unsigned short some_byte = 0x0A.

08/08/2011 Soft_Uart(Salida) Soft_Uart (programa II) 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 30 5 . a) a) Utilizando el Virtual Terminal del Proteus b) b) Utilizando el Virtualizador del puerto serial y el COMPIM del Proteus 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 27 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 28 Ejercicio propuesto 3 • Realizar un programa que en el computador se desliegue la informacion de 4 ADC del microcontrolador. a) a) Utilizando el Virtual Terminal del Proteus b) b) Utilizando el Virtualizador del puerto serial y el COMPIM del Proteus • Ejercicio propuesto 4 Realizar un programa para que mediante el computador se mande un mensaje al microcontrolador y est emensaje ser muestre en un LCD de texto. y el Hyperterminal del PC Ejercicio propuesto 2 • Realizar un programa controlar con el teclado del computador del computador dos motores DC a) a) Utilizando el Virtual Terminal del Proteus b) b) Utilizando el Virtualizador del puerto serial y el COMPIM del Proteus 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 29 20/08/10 20/08/10 Ing. Germán Jesús Pereira Muñoz 26 Ejercicio propuesto 1 • Repetir el ejercicio anterior. pero utilizando el virtualizador del puerto serial y el componente COMPIM del Proteus. Germán Jesús Pereira Muñoz 25 20/08/10 20/08/10 Ing.