Está en la página 1de 7

Nro.

LABORATORIO MICROCONTROLADORES
Página 1 de 7

MICROCONTROLADORES

LABORATORIO N° 08

Comunicación Serial Asíncrona

Participantes(s)

Foto:

Castro Mendoza Arhuire Huamani Muñante Vega


Nombres:
Christian Yilbert Jorge
%
32 40 28
participación:
Grupo
Ciclo 4C5 Electrónica y Automatización – Microcontroladores
Fecha de entrega 04/06/2021
Nro.
LABORATORIO MICROCONTROLADORES
Página 2 de 7

I. COMPETENCIAS ESPECÍFICAS DE LA SESIÓN


• Programar y simular la transmisión y recepción de datos del microcontrolador a la computadora y
viceversa.
• Programar el Módulo UART del PIC y aplicaciones prácticas.

II. CONTENIDOS A TRATAR


• Configuración y uso del puerto de comunicación serial.
• Utilizar una interfaz para comunicación PC - PIC / PIC - PC.

III. MATERIALES Y EQUIPO


• CCS Compiler instalado.
• Entrenador de PICS
• PIC16F877A
• PC con Software de simulación.

IV. FUNDAMENTO TEÓRICO


• Para la realización de este laboratorio se requiere haber realizado y aprobado la EVALUACIÓN
DE LA FASE ASÍNCRONA
• La lectura previa de la información proporcionada para el curso, como el texto y el manual del
fabricante.
• Revise la bibliografía recomendada en la FASE ASÍNCRONA.

V. SEGURIDAD EN LA EJECUCIÓN DEL LABORATORIO

Tener cuidado con el tipo y niveles de voltaje con los


que trabaja.

Antes de utilizar el multímetro, asegurarse que está


en el rango y magnitud eléctrica adecuada.

Tener cuidado en la conexión y en la desconexión


de los equipos utilizados
Nro.
LABORATORIO MICROCONTROLADORES
Página 3 de 7

VI. EXPERIENCIA 1 – ENVÍO DE CARACTERES DESDE LA PC A UNA PANTALLA LCD

1. Vamos a realizar una Comunicación entre la PC y el entrenador PIC de tal manera que todo lo
que se escriba en el teclado de la PC se mostrará en la pantalla LCD conectada al uC PIC. Del
mismo modo vamos a controlar el encendido y apagado de un MOTOR DC conectado al pin
C2:

2. El código a utilizar se muestra en la imagen respectiva, además se hace un paralelo con su


respectivo PSEUDOCÓDIGO:

Directivas

Declaración de variables
Función Principal

Inicialización de LCD
Mensajes iniciales en LCD
y Terminal Virtual del PC

BUCLE INFINITO:
Lectura de dato serial del
PC
Imprimir dato en LCD
Si se presiona ENTER,
imprimir en 2da línea de
LCD.
Si se presiona BS, borrar
LCD
Si se presiona ‘1’, activar
motor.
Nro.
LABORATORIO MICROCONTROLADORES
Página 4 de 7

Si se presiona ‘0’, apagar


motor.
3. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU
Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:

VII. EXPERIENCIA 2 – PIC COMO TARJETA DE ADQUISICIÓN DE SEÑALES (LM35)

1. Esta vez vamos a leer el valor del sensor de temperatura LM35 y lo vamos a mostrar en la
pantalla LCD y lo vamos a enviar a la PC mediante el Terminal Virtual

4. El código a utilizar se muestra en la imagen respectiva, además se hace un paralelo con su


respectivo PSEUDOCÓDIGO:
Nro.
LABORATORIO MICROCONTROLADORES
Página 5 de 7

Directivas:

Configuramos resolución
ADC
Configuramos UART

Declaración de variables

Función Principal

Inicialización de LCD
Configuración de puertos
analógicos.
BUCLE INFINITO:
Direccionamos al Canal 0
Leemos valor analógico
Convertimos a grados
centígrados.

Mostramos valor tanto en


el LCD como en el
Terminal Virtual.
Lo hacemos cada
segundo.

5. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU


Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:

VIII. RETO DE PROGRAMACIÓN:

1. Modifique el programa anterior para mostrar en la PC la temperatura en grados centígrados o


en grados Fahrenheit, según se presione el pulsador conectado a RE0 o RE1.
Nro.
LABORATORIO MICROCONTROLADORES
Página 6 de 7

Video demostrativo: https://www.loom.com/share/64ab9059bbbe4492a56a08d9ada9fc90

2. Como EVIDENCIA 1, grabe un video de su simulación en PROTEUS utilizando la aplicación


LOOM o YOUTUBE y coloque el LINK en el recuadro siguiente. En la simulación debe
visualizarse los nombres de los integrantes claramente. El video NO debe durar más de 2
minutos.

https://youtu.be/qe3vWxAom7U

3. Como EVIDENCIA 2, pegue en el recuadro siguiente el CÓDIGO EN MODO TEXTO:

//Integrantes:
//-Arhuire Huamani Yilbert
//-Muñante Vega Jorge
//-Castro Mendoza Cristian

#include <16F877A.h> // Pic a utilizar


#device adc=10 // 10 bis de resolución de lectura
#FUSES NOWDT, HS, PUT, NOPROTECT // configuración de los fusibles
#use delay(clock=20000000) //Cristal externo 20Mhz
#use rs232(baud=9600, parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <LCD.C>
int16 tempC;
int16 tempF;

void main()
{
lcd_init(); // inicializamos pantalla LCD
printf(lcd_putc,"Press E0 para ßC \nPress E1 para ßF "); // mandamos mensaje
// Configuración de los puertos analogicos
setup_adc_ports (AN0_AN1_AN3);
setup_adc (ADC_CLOCK_INTERNAL);
while (1)
{
set_adc_channel (0); // lectura del canal analogico 0
delay_us (20); // retardo 20us
tempC = read_adc(); // Leemos canal A0
tempC = tempC*0.489;
tempF = tempC*1.8+32;

if (input(PIN_E0) == 0) // si se presiona el pulsador E0


{
Nro.
LABORATORIO MICROCONTROLADORES
Página 7 de 7

printf("Temperatura: %lu",tempC); // se muestra en el virtual terminal la temp en °C


putc(167);
printf("C\r");
delay_ms(1000); // retardo 1000ms
}

if (input(PIN_E1) == 0) // si se presiona el pulsador E1


{
printf("Temperatura: %lu",tempF); // se muestra en el virtual terminal la temp en °F
putc(167);
printf("F\r");
delay_ms(1000); // retardo 1000ms
}
}
}

IX. OBSERVACIONES Y CONCLUSIONES: (Deben estar convenientemente redactadas)

OBSERVACIONES:

• Al realizar la simulación tanto en la experiencia 2 y en el reto de programación se


observó que el signo “ ° ” no se mostraba correctamente en el l Virtual Terminal.

• Se logró observar la activación y detención de un motor a través de la comunicación


serial asíncrona donde la PC envía datos hacia el microcontrolador para realizar dicha
acción en el motor.

• En el reto de programación se logró observar la lectura de una señal del sensor de


temperatura LM35 hacia el microcontrolador, donde el microcontrolador envía hacia
la PC la temperatura en °C o °F según se presione el pulsador E0 o E1.

• Como observación general a través de las experiencias realizadas se vio una


comunicación serial asíncrona en el envío y recepción de datos entre un PIC y una
PC en viceversa.

CONCLUSIONES:

• En conclusión, al ver el problema del “°” se tuvo que modificar la declaración de dicho
símbolo para ello fue importante utilizar la tabla ASCCI y encontrar el código del
símbolo grado siendo (167) y a la vez utilizar el comando “putc”, entonces a partir de
este problema que se dio, se puede deducir que se debe a la configuración del teclado
que se tiene.

• Atraves de la comunicación serial asíncrona, enviando datos desde una PC a un


microcontrolador se pudo concluir que se puede controlar un dispositivo externo como
un (motor, lampara, etc.) desde la PC.

• En conclusión, se logró el correcto funcionamiento del reto de programación para ello


se declaró la conversión de °C a °F utilizando la fórmula de conversión y a la vez se
utilizó el comando “If” (condición) al presionar el pulsador EO o E1 para poder mostrar
la temperatura en Celsius o en Fahrenheit.

• Como conclusión general en este laboratorio se vio la comunicación serial asíncrona


que se da entre un microcontrolador y una PC a través de la transmisión y recepción
de datos en viceversa.

También podría gustarte