0% encontró este documento útil (0 votos)
58 vistas10 páginas

Laboratorio 2 2025 RX TX

El documento describe la programación del módulo USART en microcontroladores PIC16F877A para establecer comunicación serial utilizando el protocolo RS232. Se explican los fundamentos teóricos de la comunicación serial, incluyendo modos síncrono y asíncrono, así como la configuración y funciones necesarias para la transmisión y recepción de datos. Además, se presentan ejemplos de código en C para implementar la comunicación entre microcontroladores y se detallan los materiales y procedimientos para realizar prácticas de laboratorio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas10 páginas

Laboratorio 2 2025 RX TX

El documento describe la programación del módulo USART en microcontroladores PIC16F877A para establecer comunicación serial utilizando el protocolo RS232. Se explican los fundamentos teóricos de la comunicación serial, incluyendo modos síncrono y asíncrono, así como la configuración y funciones necesarias para la transmisión y recepción de datos. Además, se presentan ejemplos de código en C para implementar la comunicación entre microcontroladores y se detallan los materiales y procedimientos para realizar prácticas de laboratorio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

I.T.S.O.

GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez
LABORATORIO N° 2
PROGRAMACION DEL PIC(Rx/Tx) PROTOCOLO DE COMUNICACIÓN 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. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez
- 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.

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.
2
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez
- 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

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

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()

3
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez
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. (Manuscrito)

1) Dibuje el diagrama de pines del Microcontrolador PIC18F4550, (identifique cuales


son las principales diferencias con el PIC16F877A. Realice un pequeño listado
numerando las diferencias).
2) Realice un programa en PICC COMPILER y simule en ISIS de PROTEUS, la
transmisión RX de un PIC con la terminal virtual.
3) Realice un programa en PICC COMPILER y simule en ISIS de PROTEUS, la
transmisión TX de un PIC con la terminal virtual.
4) Realice un programa en PICC COMPILER y simule en ISIS de PROTEUS, la
transmisión TX (pulsadores y lcd 16x2) y recepción de datos por los pines Rx/Tx.
Entre dos microcontroladores, en el receptor deberá visualizarse los datos en leds y
en un lcd16x2. (INDIVIDUAL)

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. Utilizando el protoboard armar el circuito del pre informe punto 2 (Rx), para el
microcontrolador PIC16F877A, realizar la comunicación y pruebe el funcionamiento del
circuito.
2. Utilizando el protoboard armar el circuito del pre informe punto 3 (TX), para el
microcontrolador PIC16F877A, realizar la comunicación con visual basic y pruebe el
funcionamiento del circuito.
3. Realice la simulación del pre informe punto 4 (Rx/TX), para el microcontrolador
PIC16F877A, realizar la comunicación con otro microcontrolador.

Tomar en cuenta que el laboratorio tiene una fecha indicada de presentación.


6. 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”

PUERTO SERIE (Rx)

4
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

#include <16f877A.h>
#use delay(clock=4000000)
#fuses XT,NOPROTECT,NOBROWNOUT
#use RS232(BAUD=9600,BITS=8,PARITY=N,XMIT=PIN_C6,RCV=PIN_C7)

void main()
{
char dato_ent;
set_tris_b(0);
do{
if(kbhit())
{
dato_ent=getc();
output_b(dato_ent);
}
}while(true);
}

PUERTO SERIE (Tx)


5
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

#include <16f877A.h>
#fuses XT,NOPROTECT,NOBROWNOUT
#use delay(clock=4000000)
#use RS232(BAUD=9600,BITS=8,PARITY=N,XMIT=PIN_C6,RCV=PIN_C7)

void main()
{
int dato_sal=0;
set_tris_b(0xff);
do{
dato_sal=input_b();
putc(dato_sal);
delay_ms(500);
}while(true);
}

PROGRAMA PUERTO SERIAL CON 2 MICROCONTROLADORES


6
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

USART_Rx

#include <16F877A.h>
#fuses XT, NOWDT, NOPUT, PROTECT, NOCPD, NOBROWNOUT, NOLVP, NODEBUG,
NOWRT
#use delay(clock=4000000)

#use RS232(BAUD=9600, BITS=8, PARITY=N, STOP=1, XMIT=PIN_C6, RCV=PIN_C7)

void main()
{
char dato;
set_tris_d(0);

while(TRUE)
{
if(kbhit())
{
dato = getc();
output_d(dato);
}
}
}

USART_Tx

#include <16F877A.h>
#fuses XT, NOWDT, NOPUT, PROTECT, NOCPD, NOBROWNOUT, NOLVP, NODEBUG,
NOWRT
#use delay(clock=4000000)
#use RS232(BAUD=9600, BITS=8, PARITY=N, STOP=1, XMIT=PIN_C6, RCV=PIN_C7)

void main()
{
char dato;
set_tris_d(255);

while(TRUE)
{
dato = input_d();
putc(dato);
delay_ms(50);
}
}

7
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

8
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

USART_Rx LCD

#include <16F877A.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
#include <LCD.C>

int valor;
#int_RDA
RDA_isr()
{
valor=GETC();
}

void main()
{
lcd_init();
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

for (;;)
{
printf(lcd_putc,"\frecibiendo=%d",valor);
delay_ms(500);
}
}

USART_Tx LCD

#include <16F877A.h>
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)
#include <LCD.C>

void main()
{
int valor;
lcd_init();

while(TRUE)
{
for (valor=0;valor<=9;valor++)
{
PUTC(valor);
printf(lcd_putc,"\fenviando=%d",valor);
delay_ms(500);
}
}
}

9
I.T.S.O. GESTIÓN 2025
LABORATORIO MICROCONTROLADORES Ing. Victor Hugo Apaza Gutierrez

10

También podría gustarte