Practica #2 Usart

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

INSTITUTO TECNOLOGICO SUPERIOR DE

COATZACOALCOS INGENIERIA
MECATRONICA
CAMPUS CENTRAL

MATERIA:M ICROCONTROLAD
ORES
PRACTICA #2 USO DEL MODULO USART

CATEDRATICO: JORGE ALBERTO SILVA VALENZUELA


EQUIPO: ALVARADO LOPEZ JOSE LUIS
CAPORAL PINEDA CRISTIAN JOVANNY
GARCIA LANDERO JUAN PABLO
MEDINA ASTACIO DIANA VICTORIA
PINEDA DIAZ JARED PORFIRIO
RAMOS OCAMPO FERDINAN HENRI

GRADO: 7 GRUPO: B

INTRODUCCION
USART PIC, viene de receptor transmisor síncrono asíncrono universal, es una
forma de comunicación entre dispositivos que tengan esta capacidad, donde los
datos son enviados en grupos de 8 bits o de 9 bits pero bit por bit, esto es en
serie, por eso se dice que esta es una comunicación serial, en esta sección se
comentará sobre este tipo de comunicación utilizando el módulo USART del
microcontrolador PIC, con el módulo USART PIC el microcontrolador puede
comunicarse e intercambiar datos con el ordenador, con otros microcontroladores,
etc.
Si la comunicación USART PIC es asíncrona, uno de los hilos será para la
transmisión de los datos de un dispositivo a otro y el otro hilo será para la
recepción de datos entre un dispositivo a otro, la transmisión y la recepción
pueden ocurrir en forma simultanea, lo que si se tiene que cumplir es que la
frecuencia de trabajo de ambos dispositivos tiene que ser la misma, a esto se le
conoce como los baudios que viene a ser la cantidad de bits por segundo que se
transmitirán entre ambos dispositivos.

Si la comunicación USART PIC es síncrona, uno de los hilos será utilizado


tanto para la transmisión y la recepción de datos por lo que la transmisión no
puede ocurrir en forma simultanea, el otro hilo será utilizado para enviar la señal
de reloj de sincronización entre ambos dispositivos, en este caso uno de los
dispositivos es llamado maestro y el otro esclavo, el maestro es el que controla la
señal de reloj y cuando se inicia o finaliza la comunicación.
El microcontrolador PIC utilizado como modelo será el PIC16F887, los pines de
este microcontrolador que trabajan con el módulo USART PIC son el pin RX o pin
receptor y el pin TX o pin transmisor, los que en la imagen están
resaltados resaltados.
DESARROLLO

CONFIGURACIÓN DE LOS FUSES

Imagen 2.- Configuracion de fuses

VARIABLES

Se declaran las siguientes variables que son utilizadas en el programa, en las cuales los numeros
que se guardan en los vectores son sacados del código ASCII,
CONFIGURACIÓN DE PUERTOS COMO ENTRADAS Y SALIDAS

En lenguaje c se pueden configurar los registros de la forma en como se muestra en el código, se


puede escribir el nombre del registro seguido del nombre del bit de dicho registro y se igualan al
número con el que se desea configurar el registro o bien se puede igualar el registro completo con
la configuración deseada.
Con el registro TRISC se configura PORTC como entrada o salida, en este código ponemos el bit 7
como entrada ya que aquí es donde esta RX (entrada de datos) y el pin 6 se pone como salida ya
que en este pin esta TX (envió de datos).

CONFIGURACION DE REGISTROS

La entrada y salida de datos se configura la entrada y salida de datos, en este caso al igualar
a TXSTA a ese numero binario, se configura el envio de datos de 8 bits, se escoge el modo
asíncrono y velocidad alta. Algunos bits del registro son irrelevantes si se ocupa una
configuración de envio de datos de manera asíncrona. En el registro BAUDCTL solo
ocupamos el bit 3 en el cual se configura el bit generador de velocidad en baudios de 8 bits.
En la siguiente imagen se muestra el registro TXSTA y la función de cada bit.
Al poner el valor de 10010000 en el registro RCSTA con el bit 7 en alto habilitamos el puerto
serial, posteriormente la recepción de datos la dejamos en 8 bits y con el bit 4 activo
habilitamos la recepción de datos continuo, de igual manera se anexa el registro con la
descripción de lo que configura cada bit de este registro.

Finalmente se configuran las interrupciones en el registro INTCON poniendo el bit 7 y 6 en


alto para activar las interrupciones globales y las interrupciones de los periféricos.
Con el regisro PIE1 en el bit 5 se activa la interrupción por recepción de datos, cada vez que
entre un dato al microcontrolador se activa el bit RCIF del registro PIR1 y se va directo a la
función de interrupcion
Para poder sacar los cálculos para cargar el SPBRG se hacen con la siguiente formula:

Aunque dicha formula puede llegar a cambiar dependiendo de la configuración que se


tenga, tanto del oscilador como de la velocidad de envio de datos. En el datasheet nos
muestran una tabla donde ya están los valores calculados para cargarlos en SPBRG para
ciertas configuraciones.

En nuestro caso con el oscilador en 4 MHz y con configuración a alta velocidad nos da
como resultado 25, por lo que es el valor al que igualaremos SPBRG para 9600 baudios.
CODIGO PRINCIPAL
En el código principal preguntamos si la variable aux (la cual esta igualada a 1) esta en uno,
muestra un mensaje en código ASCII, debido a que muestra carácter por carácter ,
utilizamos un ciclo for para poder mostrar todos los caracteres guardados en el vector p[x]
mandándolos al registro TXREG ya que los caracteres guardados en este registro son los
que se muestran en el terminal. Con el bit TRMT nos auxiliamos ya que cuando este esta en
0 significa que ya tiene un valor cargado y de esta manera se envían los datos del vector en
código ASCII y son mostrados en la terminal virtual, posteriormente cuando termina de
enviar los 44 datos del texto se sale del ciclo for e igualamos la variable aux a “0” para que
ya no vuelva a mostrar ese mensaje y si ocurre una recepción de datos se pasa a la función
de interrupción .
FUNCION DE INTERRUPCION

Cuando ocurre una recepción de datos en el microcontrolador, el programa se va a la


función de interrupcion en donde valuando el bit RCIF del registro PIR1 podemos verificar
cuando un dato ha sido recibido, ya que cuando este registro se encuentra en 1 significa
que ocurrió un ingreso de datos y que el registro RCREG contiene un valor y posteriormente
recuperamos el carácter en la variable entrada.
Después preguntamos si la variable entrada es igual al carácter “a” nos mostrara una serie
de caracteres los cuales están puestos en código ASCII dentro de vectores los cuales
muestran los integrantes del equipo.

Una vez que el dato ingresado ha sido evaluado y corresponde a la letra “a”, se hace el
envio de datos en código ASCII a travez del pin TX, con ayuda del registro TXREG ya que lo
que esta en este registro es lo que se va mostrando en el terminal virtual, de igual manera se
pone un delay de 10 milisegundos entre la escritura de cada carácter y con ayuda del ciclo
for, se va mandando carácter por carácter puesto en código ASCII dentro de un vector, para
que al mostrarse muestra una serie de palabras.

De esta manera se al abrir el terminal virtual aparece el mensaje de “Precione la tecla “A”
para ver integrantes, y si se aprieta esta tecla o cualquier otra se va directo a la interrupción
y en esta parte se verifica que la bandera de la interrupción (el bitRCIF) este en 1(es decir
que haya ocurrido una interrupción, es decir que un dato haya sido recibido) y si es cierto
entra en el if y evaluamos con otro if si la tecla presionada fue la tecla “a” y en caso de que
sea asi, se mostrara la lista de los integrantes de equipo, en caso de que se apriete
cualquier otra tecla que no sea la letra “a” el terminal virtual no mostrara nada.
SIMULACION
Se realizaron las simulaciones en proteus para ver como se comportaría de manera física el
programa.
CONCLUSION

En conclusión, en esta practica se aprendio a configurar los registros asociados al modulo


USART para el envio y recepción de datos.
Se aprendieron a configurar los registros TXSTA y RCSTA, asi como encontrar o calcular el
valor de SBPRG de acuerdo a la velocidad que se escoja y a la frecuencia en la que se
configure el oscilador del microcontrolador.
De igual manera se vieron los registros TXREG y RCREG los cuales son los encargados de
almacenar los caracteres ya sea que entren o salgan del microcontrolador.

En esta practica se cumple con los requerimientos puestos por el profesor ya que al
imprimir valores en el terminal virtual de proteus se cumple la función del envio de datos del
microcontrolador y al poder poner una condición para que se muestren los mensajes
ocultos únicamente si se preciona una cierta letra, podemos decir que se hace de manera
correcta la recepción de datos ya que estamos recogiendo el datos ingresado al
microcontrolador y lo procesamos para que pueda ejecutar otra función de acuerdo al
carácter insertado.
CODIGO EN GITHUB

https://github.com/Juan-Pablo372/Pr-ctica-2-Uso-del-M-dulo-USART.git

LINK DEL VIDEO EN YOUTUBE

REFERENCIAS

 https://www.unioviedo.es/ate/alberto/manualPic.pdf
 https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con-
ejemplos/caracteristicas-basicas-del-pic16f887
 https://es.wikipedia.org/wiki/Microcontrolador_PIC
 http://sherlin.xbot.es/microcontroladores/introduccion-a-los-
microcontroladores/arquitectura-de-microcontroladores
 https://electronica.guru/questions/106063/el-proyecto-c-para-pic-no-se-creara-cuando-
llamo-las-funcion
 http://www.tecbolivia.com/index.php/articulos-y-tutoriales-microcontroladores/34-
entendiendo-los-bits-de-configuracion-en-el-pic16-de-microchip
 https://www.alldatasheet.com/view.jsp?Searchword=Datasheet
%20pic16f887&gclid=CjwKCAjwn9v7BRBqEiwAbq1Ey6at3mLCxDxmzLVs6tvC0wVXowI8l
Bgfa9kSKJ1ke3KxDSBc2o3NIBoCsHkQAvD_BwE
 https://hetpro-store.com/TUTORIALES/display-7-segmentos-anodo-catodo-comun/

También podría gustarte