📡 PIC RS-232 UART Communication 📌 Descripción
Este proyecto implementa un sistema de comunicación serial asíncrona entre microcontroladores PIC utilizando UART (RS-232). El sistema permite transmitir y recibir cadenas de texto ASCII, integrando teclado matricial y pantalla LCD para interacción local y visualización de mensajes recibidos.
El objetivo del proyecto es comprender el funcionamiento de la UART, la transmisión serial, el manejo de buffers y la validación de datos en sistemas embebidos.
🎯 Objetivos
Implementar comunicación serial UART entre microcontroladores PIC
Configurar y validar el baud rate y formato serial (8N1)
Transmitir y recibir texto ASCII
Mostrar datos recibidos en un LCD
Probar el sistema mediante simulación en Proteus
🧠 Entorno de Desarrollo
Lenguaje: C
Compilador: XC8
IDE: MPLAB X
Microcontrolador: PIC de 8 bits
Programación: Bare-metal
🔧 Tecnologías Utilizadas
UART / RS-232
Comunicación serial asíncrona
Formato: 8 bits de datos, sin paridad, 1 bit de paro (8N1)
Baud rate típico: 9600 bps
Conversión de niveles
El PIC trabaja a niveles TTL
RS-232 real requiere conversión (MAX232)
En simulación se utiliza terminal virtual / COMPIM
LCD alfanumérico 16×2
Teclado matricial 4×4
⚙️ Funcionamiento del Sistema
El proyecto utiliza un solo firmware (main.c).
El mismo programa puede funcionar como emisor o receptor
El rol depende de:
la conexión física (TX ↔ RX)
la configuración del sistema
el dispositivo al que esté conectado
No existen dos programas distintos; el mismo .hex se graba en ambos microcontroladores durante la simulación.
🔄 Flujo General
El sistema inicializa:
UART
LCD
Teclado matricial
El usuario ingresa texto mediante el teclado.
Al confirmar el envío:
El mensaje se transmite por UART.
Cuando se recibe un mensaje:
Se captura en un buffer por UART
Se muestra en el LCD con el prefijo Rx:
El sistema permite:
borrar caracteres
limpiar líneas
enviar múltiples mensajes
🧪 Simulación en Proteus Configuración importante
El mismo archivo .hex debe cargarse en ambos PICs
Verificar:
Baud rate configurado en ambos dispositivos
Formato serial 8N1
Conexión correcta:
TX de un PIC → RX del otro
RX de un PIC → TX del otro
GND común
Elementos simulados
Dos microcontroladores PIC
Terminal virtual / COMPIM
LCD 16×2
Teclado matricial
Comunicación RS-232
Revisar puertos TX/RX
Confirmar baud rate
Verificar que ambos PICs usen el mismo .hex
✨ Features Principales
Comunicación UART estable
Envío y recepción de texto ASCII
Manejo de buffer de recepción
Visualización en LCD
Interacción por teclado matricial
Código modular (UART, LCD, teclado)
Compatible con simulación y hardware real
🗂️ Estructura del Repositorio pic-rs232-uart-communication/ │ ├── README.md ├── .gitignore │ ├── src/ │ ├── main.c │ ├── ADC.c / ADC.h │ ├── LCD.c / LCD.h │ ├── Matriz.c / Matriz.h │ ├── UART.c / UART.h │ ├── config.c / config.h │ ├── hex/ │ └── pic_rs232_uart.hex │ └── proteus/ ├── rs232_simulation.pdsprj └── screenshots/
🎓 Aplicaciones
Comunicación entre sistemas embebidos
Enlace PIC–PIC o PIC–PC
Sistemas maestro–esclavo simples
Prácticas académicas de microcontroladores
📌 Estado del Proyecto
✔ Finalizado 📚 Proyecto académico