Practica #2 Usart
Practica #2 Usart
Practica #2 Usart
COATZACOALCOS INGENIERIA
MECATRONICA
CAMPUS CENTRAL
MATERIA:M ICROCONTROLAD
ORES
PRACTICA #2 USO DEL MODULO USART
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.
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
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.
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
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 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
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/