Está en la página 1de 8

I.T.S.O. “RVDO.

PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

LABORATORIO N° 1
PROGRAMACION DEL PIC16F877A (Rx/Tx)
MODULO USART (RS232)

1. OBJETIVO.

Utilizar el módulo USART en los microcontroladores PIC16F877A para comunicar computadoras


personales y sistemas embebidos que realizan tareas de control y monitoreo.

2. FUNDAMENTO TEORICO.

Comunicación Serial RS232 PIC16F877A

En muchas ocasiones cuando trabajamos en nuestros proyectos será necesario tomar diferentes
tipos de señales físicas, convertirlas en tensiones eléctricas y luego digitalizarlas, para facilitar su
transmisión y procesamiento en una computadora.

Existen 2 formas de comunicación binaria, la paralela y la serial. La comunicación paralela se encarga


de enviar los datos simultáneamente a través de 4 hilos, lo cual presenta su principal ventaja ya que la
transferencia de datos es más rápida, pero el problema es que un cable por cada bit de dato, lo cual
encarece y dificulta el diseño de placas, otro inconveniente es la capacitancia que generan los
conductores por lo que la transmisión se vuelve deficiente a los pocos metros.

La comunicación serial es más lenta debido a que transmite bit por bit pero tiene la ventaja de
necesitar menos cantidad de hilos, y también puede extender la comunicación a mayor distancia, por
ejemplo en la norma RS232 a 15 mts, en la norma RS422/485 a 1200 mts y podemos utilizar modem
para extenderlo a cualquier parte del mundo.

MÓDULO USART

El módulo USART (Universal Synchronous Asynchronous Receiver Transmitter) nos permite la


transmisión y recepción de datos en serie ya sea con un ordenador trabajando en modo Full-Duplex
asíncrono o con periféricos trabajando en modo Half-Duplex.

Existen 2 formas de realizar la comunicación serial: La sincrónica y la Sincronizar, la diferencia que


hay entre estas 2 formas de comunicación es que la sincrónica además de la línea de transmisión de
datos necesita otra que contenga los pulsos de reloj, estos a su vez indican cuando un dato es válido.
La serial asincrónica no necesita pulsos de reloj, en su lugar utiliza mecanismo como referencia tierra
(RS232) o voltajes diferenciales (RS433/485), donde la duración de cada bit es determinada por la
velocidad de transmisión de datos que se debe definir previamente en cada equipo.

Modo Síncrono:
- Modo maestro, es donde el microcontrolador maestro genera la señal de reloj e inicia o finaliza la
comunicación.
1
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

- En modo esclavo, donde el microcontrolador esclavo recibe la señal de reloj y depende del
microcontrolador para recibir o enviar información.

Comunicación Síncrona

Modo Asíncrono:
- Se usan relojes tanto en el emisor como en el receptor.
- Ambos relojes deben estar sincronizados a la misma frecuencia.
- Cada trama de datos tiene un tamaño fijo y posee un bit inicial o de arranque y un bit final o de
parada.
- Comunicación en modo Full-Duplex.

El modo comúnmente utilizado para transmisión por el USART es el modo síncrono, ya que esta nos
permite comunicaciones a largas distancias. Los niveles de voltaje son empleados en estas normas
son diferentes a los utilizados por el PIC. Debido a esto se hace necesario utilizar drivers externos de
adaptación tales como el MAX232 de Dallas Semiconductor - Maxim.

Módulo FTDI FT232RL convertidor de USB a TTL

Simple placa conversora de série a USB con el conocido chip FT232 de FTD, junto con dos diodos led
indicadores de actividad.
Los pines disponibles en placa son GND, 5V, RX, TX y DTR
Se puede utilizar para alimentar y programar directamente una placa Arduino Pro (ver productos
relacionados) o cualquier otro dispositivo que tenga un puerto UART TTL.
Permite programar las placas oficiales y clonadas Arduino funcionando a 5V.
NOTA: Éste es el nuevo modelo que viene por defecto configurado para 5V pero dispone de un jumper
en la parte posterior y se puede utilizar para 3,3V cortando la pequeña pista y soldando un pequeño
punto de estaño en la parte serigrafiada como 3,3V

2
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

Niveles Lógicos RS232

Para empezar a transmitir datos el transmisor coloca en nivel bajo durante el tiempo de un bit, este
es conocido como bit de arranque, luego de eso transmite los bits de datos los cuales pueden ser de 7
a 8, empezando por los bit menos significativos y terminando con los más significativos, por últimos los
bits de parada que pueden ser 1 o 2, para finalizar la señal vuelve a un estado lógico de alto. La
siguiente imagen podemos observar los requisitos en los niveles lógicos que se deben cumplir una
transmisión serie según la norma RS232.

En resumen podemos decir:


- Los datos son transmitidos con lógica negativa, esto quiere decir, un tensión positiva en la conexión
representa un '0' y una tensión negativa representa un un '1'.
- Un 'o' lógico una linea debe mantener un voltaje entre +3V y +15V.
- Un '1' lógico una linea debe mantener un voltaje entre -3V y -15V.
- Cuando el puerto no está transmitiendo, mantiene el terminal de transmisión a '1' lógico a -12V.
- Se conoce como banda muerta a la región de transición donde los niveles lógicos no están definidos.
Esto quiere decir que estos valores pueden interpretarse ambiguamente como '0' y '1'.

USART en PIC C COMPILER

Primeramente debemos declarar la siguiente directiva y luego las funciones que encontramos
disponibles en CCS para utilizar el módulo USART se definen dentro del paréntesis, las cuales
describiremos posteriormente.

FUNCIÓN PARA CONFIGURAR EL MODULO USART EN C

#USE RS232(opciones)

Nos permite configurar las características del módulo USART

3
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

Ejemplo:

#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)

FUNCIONES DE TRANSMISION DE DATOS

• putc(data)
• putchar(data)

data es un caracter de 8 bits

• puts(string)

string es una cadena de caracteres constante o una matriz de caracteres terminada con un
cero

• printf(fname,cstring,values)

fname: funcion a utilizar para escribir la cadena indicada, por defecto se utiliza putc()
cstring: cadena de caracteres o matriz de caracteres terminada en 0.
values: valores a indicar en la cadena, se debe indicar %nt (revisar el post de uso del LCD)

FUNCIONES DE RECEPCION DE DATOS

• value=getc()
• value=getch()
• value=getchar()

value es un carácter de 8 bits. Espera recibir un carácter por la línea RS232 y devuelve su
valor.

• valor=kbhit()

valor=0 (false) si getc() debe esperar a que llegue un carácter


valor=1 (true) si ya hay un carácter para ser leído por getc()

3. PREINFORME.

1) Dibuje el diagrama de pines del Microcontrolador PIC16F877A.


2) Dibuje la organización de la Memoria de Programa del PIC16F877A.
3) Dibuje la organización de la Memoria de Datos del PIC16F877A.
4) Escriba la línea de código de configuración para el módulo USART en PICCompiler para la
programación.
5) Realice un programa en PICC COMPILER, simulado en ISIS de PROTEUS, para la
transmisión de datos por los pines Rx/Tx.(Puerto Serial) con terminal virtual.
6) Realice un programa en PICC COMPILER, simulado en ISIS de PROTEUS, la recepción de
datos por los pines Rx/Tx.(Puerto Serial) con terminal virtual.
7) Realice un programa en PICC COMPILER, simulado en ISIS de PROTEUS, la transmisión
y recepción de datos por los pines Rx/Tx. Entre dos microcontroladores (Puerto Serial)
4
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

8) Realice un programa en PICC COMPILER, simulado en ISIS de PROTEUS, la transmisión


y recepción de datos por los pines Rx/Tx. Entre dos microcontroladores que puedan verse
visualizados en un displey 16x2.

4. MATERIALES QUE SE VA A UTILIZAR


- Microcontrolador PIC16F877A - Oscilador estándar de cristal de
- Resistencias eléctricas cuarzo de una frecuencia 4 MHz.
- Fuente de alimentación - Lcd 16x2
- Multímetro digital - Leds
- Un Protoboard - Pulsadores

5. LABORATORIO

1. Implemente el punto 5,6,7,8 del pre-informe del presente laboratorio.


2. Programe en PICC COMPILER.
3. Guarde el programa y compile el mismo, sin errores.
4. Implemente el siguiente circuito en ISIS de PROTEUS.
5. Cargue el Programa compilado en PICC COMPILER en el Microcontrolador PIC16F877A.
6. Realice la grabación en el Microcontrolador con el grabador PICkit 2 v2.60.
7. Verificar que la fuente de alimentación del laboratorio este apagado y luego encenderlo.
8. Medir la tensión variable de la fuente de alimentación variable de con un voltímetro. (5
voltios).
9. Utilizando el protoboard armar los circuitos propuestos del pre informe en los PUNTOS 5,
6, 7 Y 8. La presentación debe ser en simulación (Proteus).

6. INFORME (*)

1) Anota los objetivos del presente laboratorio


2) Exponer un resumen de los fundamentos teóricos en los cuales se basaron para
desarrollar el pre-informe para el desarrollo del presente laboratorio.
3) Contestar el cuestionario
4) Establecer conclusiones (si se cumplieron los objetivos).
5) Escriban cada integrante del grupo una opinión acerca del laboratorio.

7. CUESTIONARIO

1. ¿Cuál es la diferencia entre el Pickit2 y el Pickit3?.


2. ¿Cuáles son las opciones de Oscilador que presenta el PIC16F877A?
3. ¿Cuál es la frecuencia máxima de oscilación del IC16F877A?

8. BIBLIOGRAFÍA:

AUTOR (APELLIDO PAT. NOMBRES) TÍTULO DEL LIBRO, REVISTA O ARTÍCULO Año de publicación y edición

ANGULO, MARIA USATEGUI Microcontroladores PIC Diseño practico de Aplicaciones Segunda edición

“Diseño y simulación de sistemas microcontrolados en


CAVIJO MENDOZA, JUAN RIARDO Primera edición mayo de 2011
lenguaje C”

5
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

PUERTO SERIE (Rx)

PUERTO SERIE (Tx)

6
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

PROGRAMA PUERTO SERIAL CON 2 MICROCONTROLADORES

7
I.T.S.O. “RVDO. PADRE SEBASTIAN OBERMAIER” LABORATORIO MICROCONTROLADORES II

USART_Rx - Tx LCD

También podría gustarte