TECSUP
Departamento de electricidad y electrónica
Carrera de Mecatrónica industrial
Microcontroladores
Laboratorio N° 13
Funciones con PIC18F4550
Integrantes:
Ccari Supo, Jhon Josue.
Davila Flores, Juan Gustavo.
Lino Espinoza , Carlos Bieri.
Quispe Ramos, Jose Antonio.
Huanhuayo De la cruz, Brandon Jeremy.
Profesor:
Catacora Mamani, Ronald Cristian
Lima - Perú
Noviembre del 2024
Índice
1. Objetivos..................................................................................................................................
2. Introducción.............................................................................................................................
3. Materiales y equipo..................................................................................................................
4. Marco Teórico..........................................................................................................................
5. Desarrollo.................................................................................................................................
6. Aplicación................................................................................................................................
7. Observaciones..........................................................................................................................
8. Conclusiones............................................................................................................................
9. Bibliografía...............................................................................................................................
10. ATS.........................................................................................................................................
11. Rúbrica...................................................................................................................................
Índice de Figuras
Índice de diagramas
1. Objetivos
● Configuración de los módulos LCD , ADC, PWM y USART con lenguaje C y
el uso de funciones en compilador XC8.
● Realizar aplicativos utilizando funciones con los módulos ADC, PWM y
USART,
2. Introducción
El microcontrolador PIC18F4550 es una herramienta poderosa en el diseño de sistemas
embebidos gracias a su capacidad de integrar funciones avanzadas como conversión
analógica-digital (ADC) y generación de señales PWM (modulación por ancho de pulso).
Estas características son esenciales en aplicaciones que requieren interacción precisa con el
entorno, como la medición de señales analógicas y el control de dispositivos electrónicos.
La modulación PWM consiste precisamente en eso. El módulo PWM del micro genera una
onda cuadrada con una frecuencia dada (típicamente bastante alta, por ejemplo 10 KHz).
Luego nosotros podemos ir cambiando el ciclo de trabajo (% del periodo en ON) de la señal:
El parámetro fundamental de una modulación PWM es la frecuencia (o su inverso el
periodo) de modulación. En los PIC dicha frecuencia es programable (con ciertas
limitaciones) en base a varias variables:
La frecuencia del oscilador principal Fosc
El pre-scaler (PRE) o divisor previo del timer TMR2 que puede tomar los valores 1:1, 1:4
o 1:16
El registro PR2 (0-255) asociado al timer TMR2
La frecuencia PWM responde a la fórmula:
F_pwm = F_osc / [4 x PRE x (PR2+1)]
o lo que es lo mismo, el periodo del PWM será el inverso de dicha frecuencia:
T_pwm = [ (PR2+1) x 4 x PRE ] x Tosc
3. Materiales y equipo
● Computadora
● Software de desarrollo MPLAB X IDE Última versión.
● Proyector multimedia
● Texto del curso
● Manual del fabricante Datasheet
4. Marco Teórico
El microcontrolador PIC18F4550 es un dispositivo de 8 bits diseñado por Microchip
Technology, ampliamente utilizado en sistemas embebidos gracias a su versatilidad y
capacidad de manejar funciones avanzadas como la conversión analógica-digital (ADC) y la
generación de señales PWM (modulación por ancho de pulso). Este tipo de
microcontroladores es fundamental en aplicaciones que requieren alta precisión y control en
tiempo real, como automatización, instrumentación y control de motores.
Conversión Analógica-Digital (ADC)
El módulo ADC del PIC18F4550 permite transformar señales analógicas en valores digitales,
lo que es esencial para interactuar con sensores que producen señales continuas, como
temperatura, luz o presión. Este módulo utiliza un enfoque basado en referencias de voltaje
Vref(−) y Vref(+) para normalizar la señal de entrada y convertirla en un valor discreto que
puede procesar la unidad central del microcontrolador. La resolución típica de un ADC en el
PIC18F4550 es de 10 bits, lo que proporciona 1024 niveles de cuantización entre el rango
definido por Vref(−) y Vref(+). Esta capacidad es fundamental en sistemas que requieren
precisión en la medición, ya que permite aprovechar al máximo el rango dinámico del sensor
o dispositivo analógico conectado.
Modulación por Ancho de Pulso (PWM)
La modulación por ancho de pulso (PWM) es una técnica utilizada para controlar dispositivos
de potencia como motores, luces LED o convertidores de voltaje. En el PIC18F4550, el
módulo PWM genera una señal periódica cuya relación entre el tiempo en estado alto (ON) y
el periodo total (ciclo de trabajo) puede ajustarse dinámicamente. Este ajuste permite
controlar con precisión la cantidad de energía entregada a un dispositivo.
La frecuencia de la señal PWM se define en función de varios factores:
1. La frecuencia del oscilador principal (FoscF), que determina la velocidad global de
operación del microcontrolador.
2. El preescaler (PRE), un divisor que reduce la frecuencia del temporizador asociado al
módulo PWM. Este preescaler puede configurarse en valores de 1:1, 1:4 o 1:16 para
adecuarse a las necesidades de la aplicación.
3. El registro PR2, que determina el periodo del temporizador TMR2 y, por ende, la
frecuencia final de la señal PWM.
Integración de ADC y PWM en Aplicaciones
La combinación de las funciones ADC y PWM en el PIC18F4550 permite implementar
sistemas avanzados como controladores de motores, sistemas de iluminación inteligente y
dispositivos médicos. Por ejemplo, un sensor analógico puede medir una variable como la
temperatura y convertir esta señal en digital mediante el ADC. Luego, el valor digital puede
procesarse y utilizarse para ajustar dinámicamente el ciclo de trabajo de una señal PWM,
controlando así la velocidad de un ventilador o la intensidad de un elemento calefactor.
5. Desarrollo
Ejercicio
Figura 1. Primer programa.
Ejercicio 2
Programa a implementar LCD
Figura 1. Segundo programa.
Explicación del programa:
1. Inclusión de bibliotecas y constantes:
● Fusibles.h: Es aquella parte en donde se define las configuración que ha de tener el
microcontrolador como puertos abiertos y cerrados.
● xc.h: es aquella biblioteca principal para microcontroladores PIC con MPLAB
● LCD_idc.h: controla el protocolo LCD por este medio.
● Existen otros que configuran las frecuencias de los cristales entre otras cosas.
2. Declaración de variables
● int v = 1023; representa una variable entera genérica.
● float t = 24.32; Variable flotante para demostración.
● Buffer ; Es aquella cadena de caracteres usada para formatear el texto que se
muestra en el LCD.
3. Función Main:
● [Link] = 0x0F: Configuración de los pines de entrada y de salida como
digitales, para esto desactivamos 2 las funciones analógicas.
● I2C_Init_Master(I2C_100KHZ): Se configura también el L2C para la comunicación con el LCD
a una velocidad de 100 kHz
● Lcd_Init(): Este inicializa el LCD preparándolo para recibir comandos.
4. Bucle principal:
● En esta parte es que se llegan a escribir los caracteres para el LCD, lo cual involucra
funciones como (Posicionar el LCD; Hacer parpadear el cursor; y borrar el contenido del LCD).
5. Configuraciones de desplazamiento
● Se muestra impreso en el LCD el mensaje “Hola a todos”;
● Comandos de desplazamiento
○ Mensaje desplazado hacia la derecha (Lcd_Shift_Right())
○ Mensaje desplazado hacia la izquierda ( Lcd_Shift_Left() )
6. Formateo y muestreo de variables (LCD)
● El código ‘sprint’ realiza el formateo de las variables v y t en cadenas
○ %u": Se representa un valor entero sin signo
○ %.2f": Representa un número flotante con dos decimales.
Diagrama de flujo
Comentario de programa:
El programa configura el PIC18F4550 para mostrar mensajes en un LCD a través de I2C.
En un bucle infinito, envía mensajes iniciales, ejecuta efectos de desplazamiento y presenta
valores formateados de variables en el LCD. Los mensajes se actualizan con pausas para
simular animaciones, y el LCD se limpia entre cada ciclo para preparar nuevos datos.
Implementación del circuito.
Figura 1. Implementación del circuito.
Simulación
Figura 1. Primer mensaje.
Figura 1. Segundo mensaje.
Figura 1. tercer mensaje.
6. Aplicación
7. Observaciones
1.
2.
3.
4.
8. Conclusiones
1.
2.
3.
4.
9. Bibliografía
1. Maker Electrónico. (2022). IO y Puertos Digitales en el PIC18F4550. Maker
Electronico. [Link]
2. Electrónica y Circuitos. (2021). 1.- INTRODUCCIÓN AL
MICROCONTROLADOR PIC18F4550 - CURSO MICROCONTROLADORES
PIC CON XC8 . [Link]
3.
4.
10. ATS
11. Rúbrica