Practica No. 9 - Microprocesadores Bravo León ESIME ZACATENCO
Practica No. 9 - Microprocesadores Bravo León ESIME ZACATENCO
Practica No. 9 - Microprocesadores Bravo León ESIME ZACATENCO
PRÁCTICA NO. 9
“USART”
I. OBJETIVOS
-Transmisión y Recepción serie a través del módulo USART.
-Analizar los diagramas de flujo empleados para la transmisión y recepción de datos.
-Realizar las instrucciones en ensamblador para programarlo en el PIC18F4550
-Configurar los diferentes registros que se toman en cuenta.
2
Título del Trabajo Numero de trabajo
dispositivo tiene su propio reloj, es posible que los dos dispositivos no estén
sincronizados.
d. Paridad: Es una forma sencilla de verificar si hay errores en la
transmisión serial. Existen cuatro tipos de paridad: par, impar, marcada y
espaciada.
COMUNICACIÓN USART CON PIC18F4550
A continuación, se describen las características de este módulo USART.
3
Título del Trabajo Numero de trabajo
4
Título del Trabajo Numero de trabajo
CONFIGURACIÓN DE BAUD-RATE.
Para una correcta Transmisión/Recepción y sin pérdida de datos, es necesario configurar
correctamente el Baud-Rate a través de los registros SPBRGH y SPBRG. En la siguiente
tabla se muestra las ecuaciones para los modos Síncronos y Asíncronos.
5
Título del Trabajo Numero de trabajo
IV. DESARROLLO
4.1 Arma el siguiente circuito.
4.2 Elabore un programa que transmita en forma continua un carácter “#” (23H) a
través del puerto de comunicación USART.
El programa contemplará la siguiente estructura:
Un programa principal encargado de manejar las siguientes subrutinas:
a) Cpuertos.- Para la configuración de puertos
b) Cusart.- Para configurar el USART
c) TXbyte.- Para la transmisión de un carácter
4.3 Anexe para cada diagrama el archivo .LST generado en la compilación.
6
Título del Trabajo Numero de trabajo
Subrutina Cpuertos:
Encargada de la configuración
de puertos.
Subrutina Cusart
Subrutina Txbyte
7
Título del Trabajo Numero de trabajo
Subrutina Rxbyte
8
Título del Trabajo Numero de trabajo
V. Prueba de Transmisión
5.1 Coloque la punta del osciloscopio en la línea de transmisión TX del
microcontrolador.
5.2 Verifique que la señal en el osciloscopio corresponda a la señal mostrada en la
figura anexa.
5.3 Mida el ancho del pulso del bit de inicio. T = 104 µS.
9
Título del Trabajo Numero de trabajo
5.4 A partir del tiempo medido, calcule el BAUD RATE y verifique que sea 9600 bps.
1 𝑏𝑖𝑡 → 104 𝜇𝑠
? → 1𝑠𝑒𝑔
(1𝑠𝑒𝑔)(1𝑏𝑖𝑡)
𝑇 = 104 𝜇𝑆 → 𝑏𝑝𝑠 = = 9615.38 𝑏𝑝𝑠
104 𝜇𝑠
Ahora vemos que no salió exacto como esperábamos con 9600 bps. Lo que
podemos hacer es calcular el error en porcentaje.
𝐵𝐴𝑈𝐷𝐼𝑂𝑆 9600
𝐸𝑟𝑟𝑜𝑟 [%] = ( − 1) 𝑥100 = ( − 1) 𝑥100 = 0.1599 %
𝐵𝐴𝑈𝐷𝑚𝑒𝑑𝑖𝑑𝑜 9615.38
1 0 0 0 0 1 1 0
BIT DE FINAL
BIT DE INICIO
8 BITS DE DATOS
10
Título del Trabajo Numero de trabajo
BIT DE INICIO
Aquí se puede mostrar cómo es correcto el dato recibido con la rotación de nibbles.
11
Título del Trabajo Numero de trabajo
VII. Aplicación.
Elabore un programa de acuerdo al diagrama de flujo mostrado a continuación, de
forma que reciba a través del puerto USART un carácter que determine la velocidad
de giro del motor conectado en la línea 1 del PORTA.
SI
Subrutina LEER.
NO
Utiliza la subrutina Rxbyte para recibir la
velocidad de giro del motor. La rutina espera
por el comando de velocidad y a partir de este
establece los valores para los registros RH y RL.
Subrutina PWM.
12
Título del Trabajo Numero de trabajo
Subrutina GTime.
Subrutina TMR0.
Vector de INTEPRRUPCIÓN.
13
Título del Trabajo Numero de trabajo
14
Título del Trabajo Numero de trabajo
15
Título del Trabajo Numero de trabajo
VIII. CONCLUSIONES
A lo largo de toda esta práctica logramos de transmitir y recibir ciertos datos que
pedía la práctica y que estaban en un correcto funcionamiento estos puertos
configurados.
Con el uso del osciloscopio pudimos ver las diferentes gráficas que resultaban a
causa de configurar y programar el PIC con MPLAB. En estas gráficas veíamos
como había estados altos y bajos de acuerdo a como se ven los caracteres enviados
de forma binaria y que correspondían en su configuración ASCII y binaria.
Con respecto a la recepción de datos pudimos ver que el estado enviado 0xF0 y
después fue invertido, en su bit de stop, era ocupado por 2 periodos de tiempo y por
eso la gráfica tenía un bit de más. Y al final pudimos entender cómo es que trabajaba
la recepción.
Logramos también realizar la aplicación donde tuvimos que conectar nuestro celular
con el HC-05 (adquirimos este ya que era más barato y tenía más facilidades)
mediante bluetooth para enviar en código ASCII una seria de caracteres de 0 a F
que conforme íbamos elevando el valor, el motor iba acelerando y dando más
vueltas. Esto se logró también enmascarando los bits menos significativos para que
solo pasarán los más significativos al momento de enviarlo al receptor y al final junto
el sensor de luz y los BCD a 7 segmentos veíamos el conteo que iba de menor
velocidad a mayor velocidad.
16