0% encontró este documento útil (0 votos)
11 vistas7 páginas

Microcontroladores: UART y SPI en PIC

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)
11 vistas7 páginas

Microcontroladores: UART y SPI en PIC

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

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO

INDUSTRIAL

ELECTRONICA INDUSTRIAL
INFORME Nº2

MICROPROCESADORES Y
MICROCONTROLADORES

NOE RIVERA ALEGRE

➢ JUAN FRANCISCO EGOCHEAGA


VALLADOLID

2024
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL

OBJETIVOS
• Programa y circuito (UART, SPI)

LISTADO DE COMPONENTES
➢ Capacitor 22pf y 33pf
➢ SPI
➢ Crytal
➢ PIC16F877A
➢ LED
➢ Terminal Digital

HERRAMIENTAS
➢ Mplab X IDE 3.45v
➢ Proteus
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL
TEORIA:
COMUNICACIÓN SÍNCRONA:

En la comunicación síncrona, los dispositivos de transmisión y recepción deben estar


sincronizados temporalmente mediante una señal de reloj común. Esto significa que los
datos se transmiten en bloques de tamaño fijo y se transmiten de manera continua y en
secuencia. La sincronización es esencial para que el receptor pueda interpretar
correctamente los datos recibidos.
En una comunicación síncrona, los dispositivos intercambian datos dentro de un marco de
tiempo predefinido, lo que permite una transmisión más rápida y eficiente. Los protocolos
de comunicación síncrona comunes incluyen SPI (Interfaz Periférica Serial) y I2C (Inter-
Interconexión Integrada).

COMUNICACIÓN ASÍNCRONA:

En la comunicación asíncrona, los dispositivos de transmisión y recepción no necesitan


estar sincronizados temporalmente mediante una señal de reloj común. En cambio, se
utiliza una señal adicional llamada "bit de inicio" para indicar el inicio de cada byte de
datos y una o más señales adicionales llamadas "bits de parada" para indicar el final de cada
byte de datos.
La comunicación asíncrona es más flexible y simple de implementar en comparación con la
comunicación síncrona. Se utiliza comúnmente en aplicaciones donde la sincronización
precisa no es crítica o donde los dispositivos de transmisión y recepción operan a diferentes
velocidades.
Los protocolos de comunicación asíncrona comunes incluyen UART (Transmisor/Receptor
Universal Asíncrono) y RS-232.
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL

CODIGO DE MI UART
#include <xc.h> void UART_Init() {
#include <stdint.h> // Configuración del baud rate
// Definiciones de configuración del oscilador SPBRG =
y del UART ((_XTAL_FREQ/16)/BAUDRATE) - 1;
#define _XTAL_FREQ 20000000 // [Link] = 1; // High speed baud
Frecuencia del oscilador (20 MHz) rate
#define BAUDRATE 9600 // Velocidad // Configuración del módulo UART
de transmisión en baudios
[Link] = 0; // Modo asíncrono
// Prototipos de funciones
[Link] = 1; // Habilitar puerto
void UART_Init(); serie asíncrono
void UART_Transmit_Char(char data); [Link] = 1; // Habilitar
transmisor UART
void UART_Transmit_String(const char
*data); [Link] = 1; // Habilitar
receptor UART
// Función principal
}
void main(void) {
// Función para transmitir un carácter a través
// Configuración de puertos
de UART
TRISCbits.TRISC6 = 0; // RC6 como
void UART_Transmit_Char(char data) {
salida (TX)
while(![Link]); // Esperar a
TRISCbits.TRISC7 = 1; // RC7 como
que el buffer de transmisión esté vacío
entrada (RX)
TXREG = data; // Transmitir el dato
// Inicialización
}
UART_Init();
// Función para transmitir una cadena de
// Texto
caracteres a través de UART
UART_Transmit_String("Muchas
void UART_Transmit_String(const char
gracias\r\n");
*data) {
while(1) {
while(*data != '\0') {
continue; // Espera infinita
UART_Transmit_Char(*data);
}
data++;
return;
}
}
}
// Inicialización del módulo UART
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL
while(!SSPIF); // Espera a que la recepción
CODIGO DE MI SPI se complete
#include <xc.h>
SSPIF = 0; // Limpia la bandera de
#define _XTAL_FREQ 20000000 //
interrupción
Frecuencia del cristal externo (20MHz)
return SSPBUF; // Retorna los datos
void SPI_init_master() {
recibidos
TRISC5 = 0; // Configura el pin SDO
}
como salida
void main() {
TRISC4 = 1; // Configura el pin SDI como
entrada unsigned char data_in, data_out;
TRISC3 = 0; // Configura el pin SCK como SPI_init_master(); // Inicializa SPI en
salida modo maestro
TRISC0 = 0; // Configura el pin RC0 como while(1) {
salida para el LED
data_out = 0x55; // Datos a enviar
SSPSTAT = 0x40; // CKE = 1
SPI_write(data_out); // Envía datos por
SSPCON = 0x20; // Modo SPI Master, SPI
Fosc/4
PORTCbits.RC0 = 1; // Enciende el
} LED conectado a RC0
void SPI_write(unsigned char data) { __delay_ms(500);
SSPBUF = data; // Envía datos por SPI PORTCbits.RC0 = 0; // Apaga el LED
while(!SSPIF); // Espera a que la __delay_ms(500);
transmisión se complete
SSPIF = 0; // Limpia la bandera de
interrupción data_in = SPI_read(); // Lee datos
recibidos por SPI
}
}
unsigned char SPI_read() {
}
SSPBUF = 0x00; // Envía un byte vacío
para iniciar la transferencia
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL

He publicado un video para que el instructor pueda visualizar como mi simulación se lleva
a cabo en síncrono y asíncrono, también el código en el Mplab, el link del video es el
siguiente:
Comunicación Asíncrona (UART)
[Link]

Comunicación Síncrona (SPI)


[Link]
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO
INDUSTRIAL
CONCLUSIONES:
1. La principal diferencia entre la comunicación síncrona y asíncrona radica en cómo
se sincronizan los datos durante la transmisión. La comunicación síncrona requiere
una sincronización temporal precisa mediante una señal de reloj común, mientras
que la comunicación asíncrona utiliza señales adicionales para indicar el inicio y el
final de los datos sin requerir una sincronización temporal precisa.
VIDEOS DE REFERENCIAS
[Link]
[Link]
[Link]
[Link]
[Link]
Paginas Web
[Link]
[Link]

También podría gustarte