Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MICROCONTROLADORES
IV Ciclo
Laboratorio N° 08
COMUNICACIÓN SERIAL PIC18F4550
Profesor:
Ciriaco Martínez, Cesar Augusto
Índice
Marco teorico........................................................................................................................................2
1) Copiar el siguiente programa, analizar, comentar, simular e implementar:..............................10
2) Copiar el siguiente programa, analizar, comentar, simular e implementar:.................................14
Comunicación Serial
Objetivos
Marco teorico
PIC18F4550:
El PIC18F4550 es un microcontrolador de la familia PIC de Microchip. Es ampliamente
utilizado en aplicaciones embebidas debido a su capacidad de procesamiento, amplio
conjunto de características y facilidad de programación. Algunas de sus características
clave incluyen una arquitectura RISC de 8 bits, una velocidad de reloj de hasta 48 MHz,
una memoria flash programable de 32 KB y una memoria RAM de 2 KB. Además, cuenta
con periféricos integrados, como módulos de comunicación USB, UART, SPI e I2C, ADC
y PWM, que lo hacen ideal para una amplia gama de aplicaciones.
LCD 16x2:
El LCD 16x2, también conocido como pantalla de cristal líquido de 16 caracteres por 2
líneas, es un tipo común de display utilizado para la visualización de información en
sistemas electrónicos. Está compuesto por una matriz de píxeles y un controlador que
permite enviar datos y comandos para mostrar caracteres y gráficos. El LCD 16x2 tiene
capacidad para mostrar 16 caracteres alfanuméricos en cada línea, lo que proporciona una
interfaz sencilla para mostrar texto y números. Estas pantallas son ampliamente utilizadas
en sistemas embebidos debido a su bajo consumo de energía y facilidad de uso.
Terminales virtuales:
En el contexto de simulación de sistemas embebidos, como el uso de microcontroladores
PIC y pantallas LCD, Proteus es un software de simulación ampliamente utilizado.
Permite la creación de terminales virtuales que simulan la interfaz entre el
microcontrolador y el LCD. Estos terminales virtuales ofrecen una forma conveniente de
interactuar con el sistema simulado, enviando comandos y datos al microcontrolador y
recibiendo respuestas para visualizar en el LCD. A través de los terminales virtuales, los
pá g. 2
Lab. N° 08 Comunicación Serial
diseñadores pueden probar y depurar sus programas antes de implementarlos en hardware
físico.
Además de la simulación en Proteus, los sistemas basados en los PIC18F4550 y los LCD
16x2 también pueden ser implementados en hardware físico. En este caso, los terminales
físicos, como botones, teclados o interfaces de comunicación serie, se utilizan para
interactuar con el microcontrolador. Los datos y comandos enviados desde estos
terminales físicos se procesan y se envían al LCD para su visualización. Este enfoque
permite crear sistemas embebidos completamente funcionales que pueden interactuar
directamente con los usuarios en tiempo real.
Los PICs constituyen en la actualidad una forma de proveer inteligencia a equipos o sistemas para
un mejor desempeño de los mismos. Para que realicen los eventos que queramos es necesario
utilizar los puertos como entrada para que la data ingrese y se procese en el PIC y puertos de
salida para comunicarlos con otros dispositivos y en conjunto logren un objetivo.
Preparación
Equipos y Materiales
Computadora
Software de desarrollo
Proyector multimedia
Texto del curso
Manual del fabricante
Tarjeta de desarrollo
pá g. 3
Lab. N° 08 Comunicación Serial
Seguridad
Trabajar con Seguridad evita que las personas sufran daños, y provee un ambiente satisfactorio de
trabajo.
1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.
pá g. 4
Lab. N° 08 Comunicación Serial
Lectura
pá g. 5
Lab. N° 08 Comunicación Serial
pá g. 6
Lab. N° 08 Comunicación Serial
pá g. 7
Lab. N° 08 Comunicación Serial
pá g. 8
Lab. N° 08 Comunicación Serial
pá g. 9
Lab. N° 08 Comunicación Serial
Procedimiento
CONFIG FOSC = HS
CONFIG PWRT = OFF
CONFIG BOR = OFF
CONFIG BORV = 3
CONFIG VREGEN = OFF
CONFIG WDT = OFF
CONFIG PBADEN = OFF
CONFIG LVP = OFF
CONFIG MCLRE = ON
cblock 0x10
endc
ORG 0x0000
goto MAIN
ORG 0x0020
pá g. 10
Lab. N° 08 Comunicación Serial
MAIN:
CALL Config_UART
REPETIR:
MOVLW 'T'
CALL ENVIAR_DATA
MOVLW 'E'
CALL ENVIAR_DATA
MOVLW 'C'
CALL ENVIAR_DATA
MOVLW 'S'
CALL ENVIAR_DATA
MOVLW 'U'
CALL ENVIAR_DATA
MOVLW 'P'
CALL ENVIAR_DATA
MOVLW ' '
CALL ENVIAR_DATA
delay_ms .250
goto REPETIR
ENVIAR_DATA:
MOVWF TXREG
ENVIAR_TX:
BTFSS TXSTA,TRMT
GOTO ENVIAR_TX
RETURN
Config_UART:
;****REGISTRO TXSTA, RCSTA, BAUDCON******
MOVLW B'00100100' ;TRANSMISION 8 BITS, TX=ON, MODO ASINCRONO, HIGH SPEED,
MOVWF TXSTA
MOVLW B'10010000' ; PUERTO SERIAL HABILITADO RX(RC7) y TX (RC6), RX 8 BITS, RX=ON,
MOVWF RCSTA
MOVLW B'00000000' ; SPBRG --> 8 BITS
MOVWF BAUDCON
MOVLW .129 ; BAUD RATE= FOSC/(16(SPBRG+1)) 20000000/ (16 ( n + 1)) = 9600
MOVWF SPBRG ; SPBRG = (20000000/(9600 * 16)) - 1 = 129
BSF TRISC,RC7 ; RX
BCF TRISC,RC6 ; TX
return
#include "retardos.inc"
END
pá g. 11
Lab. N° 08 Comunicación Serial
pá g. 12
Lab. N° 08 Comunicación Serial
- Luego se configure la variable a repetir
- Programa implementado:
pá g. 13
Lab. N° 08 Comunicación Serial
CONFIG FOSC = HS
CONFIG PWRT = OFF
CONFIG BOR = OFF
CONFIG BORV = 3
CONFIG VREGEN = OFF
CONFIG WDT = OFF
CONFIG PBADEN = OFF
CONFIG LVP = OFF
CONFIG MCLRE = ON
cblock 0x10
endc
ORG 0x0000
goto MAIN
ORG 0x0020
MAIN:
CLRF TRISD
CLRF LATD
CALL Config_UART
LEER_DATA:
BTFSS PIR1,RCIF
GOTO LEER_DATA
MOVF RCREG,W
MOVWF LATD
GOTO LEER_DATA
Config_UART:
;****REGISTRO TXSTA, RCSTA, BAUDCON******
MOVLW B'00100100' ;TRANSMISION 8 BITS, TX=ON, MODO ASINCRONO, HIGH SPEED,
MOVWF TXSTA
MOVLW B'10010000' ; PUERTO SERIAL HABILITADO RX(RC7) y TX (RC6), RX 8 BITS, RX=ON,
MOVWF RCSTA
MOVLW B'00000000' ; SPBRG --> 8 BITS
MOVWF BAUDCON
MOVLW .129 ; BAUD RATE= FOSC/(16(SPBRG+1)) 20000000/ (16 ( n + 1)) = 9600
MOVWF SPBRG ; SPBRG = (20000000/(9600 * 16)) - 1 = 129
BSF TRISC,RC7 ; RX
BCF TRISC,RC6 ; TX
return
#include "retardos.inc"
END
pá g. 14
Lab. N° 08 Comunicación Serial
pá g. 15
Lab. N° 08 Comunicación Serial
- Programa implementado:
pá g. 16
Lab. N° 08 Comunicación Serial
pá g. 17
Lab. N° 08 Comunicación Serial
pá g. 18
Lab. N° 08 Comunicación Serial
- Por cada número que se presiona se observan diferentes funciones de los leds.
pá g. 19
Lab. N° 08 Comunicación Serial
- Programa implementado:
pá g. 20
Lab. N° 08 Comunicación Serial
- Lo que escribamos en el visual terminal, se mostrará en el LCD.
CONFIG FOSC = HS
CONFIG PWRT = OFF
CONFIG BOR = OFF
CONFIG BORV = 3
CONFIG VREGEN = OFF
CONFIG WDT = OFF
CONFIG PBADEN = OFF
CONFIG LVP = OFF
CONFIG MCLRE = ON
cblock 0x10
endc
ORG 0x0000
goto MAIN
ORG 0x7000
MENSAJE: da "ESCRIBIR DATO*"
ORG 0x0020
MAIN:
clrf TRISD ;Todo el puerto D como salida (LCD)
call LCD_CONFIG
call CURSOR_OFF
CALL Config_UART
Config_UART:
;****REGISTRO TXSTA, RCSTA, BAUDCON******
MOVLW B'00100100' ;TRANSMISION 8 BITS, TX=ON, MODO ASINCRONO, HIGH SPEED,
MOVWF TXSTA
MOVLW B'10010000' ; PUERTO SERIAL HABILITADO RX(RC7) y TX (RC6), RX 8 BITS, RX=ON,
MOVWF RCSTA
MOVLW B'00000000' ; SPBRG --> 8 BITS
pá g. 21
Lab. N° 08 Comunicación Serial
MOVWF BAUDCON
MOVLW .129 ; BAUD RATE= FOSC/(16(SPBRG+1)) 20000000/ (16 ( n + 1)) = 9600
MOVWF SPBRG ; SPBRG = (20000000/(9600 * 16)) - 1 = 129
BSF TRISC,RC7 ; RX
BCF TRISC,RC6 ; TX
return
#include "retardos.inc"
#include "LIB_LCD.INC"
END
pá g. 22
Lab. N° 08 Comunicación Serial
- Programa implementado:
pá g. 23
Lab. N° 08 Comunicación Serial
- Lo que escribamos en el visual terminal, se mostrará en el LCD.
4) RETO EN CLASE:
pá g. 24
Lab. N° 08 Comunicación Serial
pá g. 25
Lab. N° 08 Comunicación Serial
pá g. 26
Lab. N° 08 Comunicación Serial
pá g. 27
Lab. N° 08 Comunicación Serial
Conclusiones:
- El PIC18F4550 empleado en este laboratorio cuneta con varias funcionalidades, en
este caso lo utilizamos para desarrollar las funciones y circuitos.
- Después de detectar la presencia de bits en el puerto de comunicación serial, se
procede a realizar la lectura de estos datos, los cuales están destinados a ser mostrados
en el LCD. Esta lectura nos permite visualizar la información que hemos ingresado
previamente, este proceso de lectura y visualización en el LCD nos proporciona una
forma efectiva de verificar y confirmar la correcta transmisión y representación de los
datos que hemos introducido. Así, se asegura un flujo de información adecuado y se
facilita la interacción usuario-sistema en el contexto de los sistemas embebidos.
- Los bloques de memoria de multiplicación del PIC demostraron ser herramientas
altamente beneficiosas para facilitar la conversión entre diferentes escalas en el
sistema. Estos bloques permitieron ajustar la ubicación del punto decimal en los datos
antes de mostrarlos en el LCD. Esta capacidad de modificar la posición del punto
decimal resultó fundamental para presentar la información de manera legible y
comprensible en el display.
pá g. 28