7/5/2017
USART PIC Comuni cación ser ial - MICROCONTROLADORES
MICROCONTR OLADORES OLADORES Programación de Microcontroladores PIC, AVR, ARDUINO
Regístrate en Facebook® Inicio » USART PIC Comunicación serial
USART PIC Comunic Comunicación ación serial Compartir: Compartir:
9
0
0
1
0
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, microcontroladores, etc.
Descarga este contenido en PDF desde aquí. Para la comunicación entre microcontroladores y para la comunicación entre el microcontrolador y el ordenador, se necesitan 2 hilos de conducción para la transmisión y recepción de datos, y un hilo de conducción para la conexión de los los comunes o GND GND que tienen que ser los mismos, para la comunicación comunicación serial entre el microcontrolador y el ordenador se seguirá la norma RS232. RS232. 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, 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 PIC16F877A, PIC16F877A, 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, transmisor , los que en la imagen están resaltados resaltados. El pin RX es el pin para la recepción de datos y tendrá que ser configurado como una entrada digital. El pin TX es el pin para la transmisión de datos y tendrá que ser configurado como una salida digital. El pin RX del PIC tiene que ser conectado al pin TX del otro dispositivo. El pin TX del PIC tiene que ser conectado al pin RX del otro dispositivo Los comunes de ambos dispositivos también tienen que estar conectados entres si. Los niveles de tensión con los que trabajan los pines del módulo USART PIC son de 0V y 5V un bajo será 0V mientras que un alto será 5V, por eso cuando la comunicación es entre microcontroladores la conexión entre pines se puede hacer directamente, pero cuando la comunicación es entre el microcontrolador y un ordenador la conexión entre pines tiene que hacerse a través de un conversor de nivel como el MAX232, MAX232, ya que los niveles de tensión para la comunicación serial del ordenador son mayores que para el PIC típicamente entre -12V y 12V, además de trabajar con lógica negativa, esto es para el ordenador un bajo será 12V mientras un alto será -12V. Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra polític a de cookies .
Acepto
Puede obtener más
información, o bien conocer cómo cambiar la configuración, en este enlace.
http://m icrocontroladores-mrelber ni.com /usart-pi c- com uni cacion- ser ial/
1/8
7/5/2017
USART PIC Comunicación serial - MICROCONTROLADORES
Hay otra manera de conectar el PIC con el ordenador para la comunicación serial mediante resistencias y la compuerta inversora tipo Schmitt 74HC14 como se ve en la siguiente imagen.
El socket donde se conectará el PIC con el ordenador para la comunicación serial es del tipo DB9 y se conoce como puerto serie, pero resulta que este tipo de puerto ya no viene en los ordenadores portátiles que son los que hoy en día la mayoría utiliza, lo que traen ahora son puertos USB, por lo que para realizar la comunicación serial con el módulo USART PIC será necesario la utilización de un conversor SERIE-USB como el que se muestra en la siguiente imagen.
El conector DB9 es el que se utiliza para la comunicación serial con el módulo USAR T PIC, este conector consta de de 9 pin es, los hay hembra y macho, de este conector solo se utilizarán 3 pines, uno para el pin RX, otro para el pin TX y el otro para el tierra, estos pines tiene una numeración que hay que respetar.
El conversor serie-USB viene con el conector DB9 macho, si el cable que trae es corto se tendrá que conseguir un cable serie DB9 del que la hembra se conectará al conector DB9 macho del conversor serie-USB y el DB9 macho del cable serie DB9 al microcontrolador PIC ya sea a través del MAX232 o con el uso de la compuerta inversora como se comento lineas arriba, por lo que los pines a conectar del DB9 macho con el módulo USART PIC son en el siguiente orden: El pin 2 que es pin receptor RX del conector DB9 macho que viene del ordenador, se conectará a través del MAX232 o con el uso de la compuerta Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer inversora y la resistencia de 1K al pin transmisor o pin TX del microcontrolador. Acepto contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies . Puede obtener más El pin 3 que es pin transmisor TX del conector DB9 macho que viene del ordenador, se conectará a través del MAX232 o con el uso de la compuerta información, bien cómo cambiar la configuración, en este enlace. inversora y la resistencia de 22K al pin receptor o opin RXconocer del microcontrolador.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
2/8
7/5/2017
USART PIC Comunicación serial - MICROCONTROLADORES
El pin 5 que es pin GND o tierra o común del conector DB9 macho que viene del ordenador, se conectará al pin Vss del microcontrolador. Las conexiones del módulo USART PIC con el ordenador a través de la compuerta inversora y las resistencias, con el uso del conversor serie-USB será como se indica en la siguiente imagen.
USART PIC PROGRAMACIÓN Para programar el módulo USART PIC en el PIC16F877A, se utilizan los siguientes registros: el registro TXSTA, el registro RCSTA, el registro SPBRG, el registro TXREG, el registro RXREG, y si se utilizan interrupciones USART PIC los registros PIE1 y PIR1. El registro TXSTA es el registro de control de la transmisión de datos.
El bit7 CSRC es útil cuando se utiliza la comunicación serial síncrona, mediante este bit se elige la fuente de reloj esto es quien de los dispositivos será el maestro, en la comunicación serial asíncrona este bit no tiene efecto. El bit6 TX9 Es para elegir si la transmisión de datos será a 9 bits o a 8 bits, si este bit se pone a 1 la transmisión será a 9 bits y se este bit se pone a 0 la transmisión será a 8 bits. El bit5 TXEN Este es el bit que habilita la transmisión de datos, al ponerlo a 1 se habilita la transmisión de datos y si se lo pone a 0 la transmisión de datos estará deshabilitada. El bit4 SYNC Con este bit se elige el tipo de comunicación serial a utilizar con el módulo USART PIC, al ponerlo a 1 la comunicación serial será síncrona y al ponerlo a 0 la comunicación será asíncrona. El bit3 no se utiliza. El bit2 BRGH Este bit es para seleccionar la velocidad de los baudios, que es la cantidad de bits que se enviarán por segundo en el modo asíncrono, si se pone a 1 será de alta velocidad, si se pone a 0 será de baja velocidad. El bit1 TRMT Este bit indica el estado del registro TSR utilizado para la transmisión de datos, trabaja automáticamente, si está a 1 indica que el registro esta vació, si está a 0 indica que el registro está lleno. El bit 0 TX9D Este bit será el noveno bit se se utilizan 9 bits en la transmisión de datos. El Registro RCSTA Es el registro de control de la recepción de datos.
El bit7 SPEN Este bit es que permite la habilitación del uso del módulo USART PIC, si se pone a 1 se habilita el uso del módulo USART PIC, si se pone a 0 no es posible utilizar el módulo USART PIC. El bit6 RX9 Es para elegir si la recepción de datos será a 9 bits o a 8 bits, si este bit se pone a 1 la recepción será a 9 bits y se este bit se pone a 0 la recepción será a 8 bits. El bit5 SREN Este es el bit se utiliza en el modo síncrono para habilitar la recepción síncrona, en el modo asíncrono no es utilizado. El bit4 CREN Con este bit se habilita la recepción continua de datos al ponerlo a 1, si se pone a 0 la recepción continua de datos está deshabilitada. Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer
Acepto contenidos y publicidad de en interés. Al continuar con la recepción navegaciónde entendemos se acepta nuestra política de cookies Puede obtener más El bit3 ADDEN Es utilizado el modo asíncrono si la datos es deque 9 bits. Si la recepción de datos es a 8 .bits no es utilizado
información, o bien conocer cómo cambiar la configuración, en este enlace.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
3/8
7/5/2017
USART PIC Comunicación serial - MICROCONTROLADORES
El bit2 FERR Este bit trabaja automáticamente si se pone a 1 es que se ha recibido un dato no válido. El bit1 OERR Este bit t rabaja automáticamente y se pondrá a 1 si se ha producido un error por sobreescritura del dato recibido. El bit 0 RX9D Este bit será el noveno bit se se utilizan 9 bits en la recepción de datos. El registro SPBRG Es el registro donde se debe cargar el valor con el que se elige la velocidad de transmisión de los datos, esto es los baudios o la cantidad de bits por segundo que se enviarán en la comunicación serial con el módulo USART PIC, trabaja junto con el bit BRGH del registro TXSTA. El valor a cargar en el registro SPBFG se calcula con las siguientes fórmulas que dependerán de la velocidad elegida con el bit BRGH, de la frecuencia del oscilador utilizado y de si la comunicación será síncrona o asíncrona.
Los ejemplos que se harán serán para la transmisión asíncrona a alta velocidad por lo que la fórmula que se utilizará será: Velocidad en baudios=Fosc/(16*(SPBRG+1)) Es importante recordar que la velocidad en baudios de los dispositivos que se estén comunicando tienen que ser iguales, la mas común es la de 9600 baudios, si en la fórmula anterior se reemplaza y se despeja se tendrá: SPBRG=(Fosc/(16*9600))-1 de donde: SPBRG=(Fosc/153600)-1 Por ejemplo si el oscilador es de 4MHz se tendrá SPBRG=(4000000/153600)-1=25 Por lo que para obtener un una velocidad de 9600 baudios se tendrá que cargar el registro SPBRG con 25. Hay un cuadro en la hoja de datos donde se tienen algunos valores a cargar en este registro para el modo síncrono y asíncrono dependiendo de la frecuencia del oscilador utilizado y de la velocidad elegida.
El registro TXREG Es el registro donde se debe escribir el dato que se quiera enviar el la comunicación serial con el módulo USART PIC. El registro RCREG Es el registro donde se debe leer al recibir algún dato en la comunicación serial con el módulo USART PIC. El registro PIE1 Al poner el bit4 de este registro a 1 se habilita el uso de interrupciones por la finalización de la transmisión del dato y al poner el bit5 de este registro a 1 se habilita el uso de las interrupciones por la finalización de la recepción del dato. El registrocon PIR1 bitcookies bit4 dede este registro seespañola, pondrá ase1 informa cuando que se ha terminado la transmisión del dato, se pondrá automáticamente a 0,ysiofrecer esta Cumpliendo la leyElde la legislación este sitio utiliza cookies de google paraluego mejorar la experiencia de navegación, habilitada la interrupción finalización de la transmisión del dato este bit será indica que ha ocurrido la interrupción. El bit5 de este registro Acepto contenidos y publicidad por de interés. Al continuar con la navegación entendemos queelseque acepta nuestra política de cookies . Puede obtener más se
pondrá a 1 cuando se ha terminado la recepción del dato, luego se pondrá automáticamente a 0, si esta habilitada la interrupción por finalización de la información, o bien conocer cómo cambiar la configuración, en este enlace.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
4/8
7/5/2017
USART PIC Comunicación serial - MICROCONTROLADORES
recepción del dato este bit será el que indica que ha ocurrido la interrupción.
USART PIC PROGRAMACIÓN en el XC8 Para la programación del módulo USART PIC se utilizará el XC8, ya que este permite trabajar directamente con los registros y esto es de gran ayuda para conocer mucho mas sobre el manejo de los microcontroladores PIC, en este caso se comentará como se puede proceder para utilizar el módulo USART PIC del PIC16F877A, lo aquí comentado es muy similar para otros microcontroladores PIC Para iniciar el módulo USART PIC. Los pines del PIC116F877A para el manejo del módulo USART PIC son el pin RC7 para la recepción de datos por lo que en este caso se le llama pin RX, y el pin RC6 para la transmisión de datos, en este caso se le llama pin TX, el pin RX se tiene que configurar como una entrada digital y el pin TX se tiene que configurar como una salida digital, esto en el XC8 se puede hacer así: TRISCbits.TRISC7=1; //pin RX como una entrada digit al TRISCbits.TRISC6=0; //pin RX como una salida d igital Configuración del registro TXSTA para el control de la transmisión de datos, en este caso se hará para que la transmisión sea a 8 bits en forma asíncrona de alta velocidad por lo que: El bit7 en modo asíncrono no se usa por lo que se pondrá a 0. El bit6 se pondrá a 0 para que la transmisión sea a 8 bits. El bit5 se pondrá a 1 para que esté habilitada la transmisión de datos. El bit4 se pondrá a 0 porque la transmisión será asíncrona. El bit3 no se utiliza por lo que se lo pondrá a 0. El bit2 se pondrá a 1 para que el módulo USART PIC trabaje a alta velocidad. El bit1 es un bit de estado trabaja automáticamente e indica cuando el registro donde se coloca el dato a transmitir está lleno o vacío, se lo puede poner a 1 o a 0 para iniciar, en este caso se lo pondrá a 1 porque se está iniciando y tendría que estar vacío. El bit0 no se utiliza porque es el bit de paridad cuando se utiliza la transmisión de 9 bits pero como se utilizará la transmisión a 8 bits no influye y se lo pondrá a 0. Luego en la inicialización del módulo USART PIC el registro TXSTA en el XC8 quedará así: TXSTA=0b00100110; // 8bits, transmisión habilitada, asíncrono, alta velocidad Configuración del registro RCSTA para el control de la recepción de datos, en este caso se hará para que la recepción sea a 8 bits en forma asíncrona de alta velocidad por lo que: El bit7 se pondrá a 1 para habilitar el uso del módulo USART PIC. El bit6 se pondrá a 0 para que la recepción sea a 8 bits. El bit5 se pone a 0 porque no se usa en la comunicación asíncrona. El bit4 se pone a 1 para habilitar la recepción de datos. El bit3 se pone a 0 porque la recepción será a 8 bit. El bit2 este bit trabaja automáticamente cuando se pone a 1 indica que se ha recibido un dato no válido. El bit1 este bit trabaja automáticamente cuando se pone a 1 indica que se ha producido un error por sobreescritura de algún dato recibido. El bit0 no se utiliza porque es el bit de paridad cuando se utiliza la recepción de 9 bits pero como se utilizará la recepción a 8 bits no influye y se lo pondrá a 0. Luego en la inicialización del módulo USART PIC el registro RCSTA en el XC8 quedará así: RCSTA=0b10010000; //habilitado el USART PIC, recepción 8 bits, habilitada, asíncrono Carga del registro SPBRG para los baudios o la cantidad de bits por segundo para la comunicación serial, como será a alta velocidad por lo que el bit BRGH del registro TXSTA se puso a 1 y en forma asíncrona, se utilizará la fórmula. Velocidad en baudios=baudios=Fosc/(16*(SPBRG+1)) Al despejar se tendrá SPBRG=(Fosc/(16*baudios))-1 En los ejemplos que se harán se utilizará una Fosc de 4Mhz y la velocidad será de 9600 baudios, por lo que al reemplazar se tendrá que el valor a cargar en el registro SPBRG será de 25, luego en el XC8 será: SPBRG=25; //para una velocidad de 9600baudios con un oscilador de 4Mhz Cumpliendo con la leyiniciar de cookies de la legislación informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer Entonces se puede el módulo USART PICespañola, en el XC8sede la siguiente manera: Acepto contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies . Puede obtener más
información, o bien conocer cómo cambiar la configuración, en este enlace.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
5/8
7/5/2017 1 2 3 4 5 6 7 8 9
USART PIC Comunicación serial - MICROCONTROLADORES /////////////////////////////////////////////// //inicialización del módulo USART PIC en el XC8 modo asíncrono, a 8bits, //a 9600 baudios TRISCbits.TRISC7= 1;//pin RX como una entrada digital TRISCbits.TRISC6= 0;//pin TX como una salida digital TXSTA=0b00100110;// 8bits, transmisión habilitada, asíncrono, alta velocidad RCSTA=0b10010000;//habilitado el USART PIC, recepción 8 bits, //habilitada, asíncrono SPBRG=25;//para una velocidad de 9600baudios con un oscilador de 4Mhz
La inicialización podría hacerse dentro de una función a la que se le puede dar el nombre que se quiera, en este caso se la llamará iniciar_usart() lo que en el XC8 será así: 1 /////////////////////////////////////////////// 2 //inicialización del módulo USART PIC modo asíncrono 3 //en una función, a 8bits,a 9600 baudios 4 ///////////////////////////////////////////////////// 5 void iniciar_usart(){ 6 TRISCbits.TRISC7= 1;//pin RX como una entrada digital 7 TRISCbits.TRISC6= 0;//pin RX como una salida digital 8 TXSTA=0b00100110 ;// 8bits, transmisión habilitada, asíncrono, alta velocidad 9 RCSTA=0b10010000 ;//habilitado el USART PIC, recepción 8 bits, habilitada, asíncrono 10 SPBRG=25;//para una velocidad de 9600baudios con un oscilador de 4Mhz 11 }
Para la recepción de datos con el módulo USART PIC. Los datos que se reciben son de tipo caracter, cuando se va recibir un dato a través del pin RX se tendrá que esperar a que el bit5 del registro PIR1 se ponga a 1, este bit indica que se ha completado la recepción del dato, el dato recibido es de tipo caracter char y estará en el registro RCREG, cuando se lee el dato guardándolo en alguna variable de tipo caracter char este bit se pondrá automáticamente a 0, la recepción de los datos en el XC8 se hará en una función a la que se le puede llamar como se desee, en este caso se le llamará recibe_caracter_usart() . 1 /////////////////////////////////////////////// 2 //recepción de datos del módulo USART PIC modo asíncrono 3 //////////////////////////////////////////////////////////// 4 unsigned char recibe_caracter_usart(){ if(PIR1bits.RCIF== 1){//si el bit5 del registro PIR1 se ha puesto a 1 5 return RCREG;//devuelve el dato almacenado en el registro RCREG 6 7 } else //sino 8 return ;//retorna sin hacer nada 9 10 }
Para la transmisión de datos con el módulo USART PIC. Los datos que se transmiten son de tipo caracter, cuando se va transmitir un dato a través del pin TX se tendrá que esperar a que el registro TSR donde se ponen los datos que se van a enviar esté vacío, esto se hace esperando a que el bit1 TRMT del registro TXSTA se ponga a 1, este bit indica que se ha completado la transmisión de un d ato anterior mientras el dato que está en espera se coloca en el registro TXR EG, cuando se vacíe el registro TSR se podrá enviar el otro dato que está esperando en el registro TXREG pasándolo en forma automática al registro TSR, el dato transmitido es de tipo caracter char, cuando se pasa el dato del registro TXREG al registro TSR este bit se pondrá automáticamente a 0, la transmisión de los datos en el XC8 se hará en una función a la que se le puede llamar como se desee, en este caso se le llamará envia_caracter_usart() . 1 /////////////////////////////////////////////// 2 //transmisión de datos del módulo USART PIC modo asíncrono 3 /////////////////////////////////////////////// 4 void envia_caracter_usart( unsigned char caracter){ while (TXSTAbits.TRMT== 0);// mientras el registro TSR esté lleno espera 5 6 TXREG = caracter; //cuando el el registro TSR está vacio se envia el caracter 7 }
Para la transmisión de cadenas de caracteres con el módulo USART PIC se puede utilizar la función vista anteriormente para la transmisión de caracteres para enviar cadenas de caracteres, para ello se creará otra función que se puede llamar
como se desee pero en este caso se le llamará
envia_cadena_usart() . 1 2 3 4 5 6 7 8 9 10 11
/////////////////////////////////////////////// //transmisión de cadenas de caracteres con el módulo USART PIC modo asíncrono /////////////////////////////////////////////// void envia_cadena_usart( char * cadena){//cadena de caracteres de tipo char while (*cadena !=0x00){//mientras el último valor de la cadena sea diferente //de el caracter nulo envia_caracter_usart(*cadena); //transmite los caracteres de cadena cadena++;//incrementa la ubicación de los caracteres en cadena //para enviar el siguiente caracter de cadena } }
ARCHIVO DE CABECERA PARA EL USO DEL MÓDULO USART PIC EN EL XC8 Se puede agrupar todas la funciones vistas anteriormente para el uso del módulo USART PIC en el XC8 en forma asíncrona, 8 bits y a 9600 baudios en un archivo de cabecera al que se le llamará en este caso usart.h, aunque se le puede dar el nombre que se desee, se hará uso de este archivo de cabecera en los ejemplos que se realizarán con el PIC16F877A, si se utiliza otro pic u otra velocidad de comunicación es fácil hacer los cambios que se necesiten dentro del archivo usart.h, se verá algún ejemplo.
Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies .
Acepto
Puede obtener más
información, o bien conocer cómo cambiar la configuración, en este enlace.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
6/8
7/5/2017 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
USART PIC Comunicación serial - MICROCONTROLADORES
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //Archivo de cabecera para el uso del módulo USART PIC con el XC8/// /////////////////////////////////////////////////////////////////// #ifndef USART_H #define USART_H void iniciar_usart(); //función para iniciar el USART PIC asíncron, 8 bits, 9600 baudios unsigned char recibe_caracter_usart(); //función para la recepción de caracteres void envia_caracter_usart( unsigned char );//función para la transmisión de caracteres void envia_cadena_usart( char *);//función para la transmisión de cadenas de caracteres
/////////////////////////////////////////////// //inicialización del módulo USART PIC modo asíncrono //en una función, a 8bits,a 9600 baudios ///////////////////////////////////////////////////// void iniciar_usart(){ TRISCbits.TRISC7= 1;//pin RX como una entrada digital TRISCbits.TRISC6= 0;//pin TX como una salida digital TXSTA=0b00100110 ;// 8bits, transmisión habilitada, asíncrono, alta velocidad RCSTA=0b10010000 ;//habilitado el USART PIC, recepción 8 bits, habilitada, asíncrono SPBRG=25;//para una velocidad de 9600baudios con un oscilador de 4Mhz } /////////////////////////////////////////////// //recepción de datos del módulo USART PIC modo asíncrono //////////////////////////////////////////////////////////// unsigned char recibe_caracter_usart(){ if(PIR1bits.RCIF== 1){//si el bit5 del registro PIR1 se ha puesto a 1 return RCREG;//devuelve el dato almacenado en el registro RCREG } else //sino return ;//retorna sin hacer nada } /////////////////////////////////////////////// //transmisión de datos del módulo USART PIC modo asíncrono /////////////////////////////////////////////// void envia_caracter_usart( unsigned char caracter){ while (TXSTAbits.TRMT== 0);// mientras el registro TSR esté lleno espera TXREG = caracter; //cuando el el registro TSR está vacio se envia el caracter }
/////////////////////////////////////////////// //transmisión de cadenas de caracteres con el módulo USART PIC modo asíncrono /////////////////////////////////////////////// void envia_cadena_usart( char * cadena){//cadena de caracteres de tipo char while (*cadena !=0x00){//mientras el último valor de la cadena sea diferente //de el caracter nulo envia_caracter_usart(*cadena); //transmite los caracteres de cadena cadena++;//incrementa la ubicación de los caracteres en cadena //para enviar el siguiente caracter de cadena } } #endif
/* USART_H */
USART PIC PROGRAMACIÓN Ejemplos en el XC8 Para ver los ejemplos del manejo del módulo USART PIC visitar este enlace. Si he podido ayudarte con el uso del módulo USART PIC, comparte este enlace para poder ayudar a muchas personas mas. Muchas Gracias. Atte: MrElberni. Compartir:
9
0
0
1
Buscar
Enlaces del sitio › INICIO
Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies .
Acepto
Puede obtener más
información, o bien conocer cómo cambiar la configuración, en este enlace.
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
7/8
7/5/2017
USART PIC Comunicación serial - MICROCONTROLADORES
Breakdancing
Crece - tu Negocio con YouTube
› MICROCONTROLADORES PIC › Introducción › Bits de configuración PIC › Entradas salidas digitales PIC › Temporizador contador PIC › Timer0 PIC › Timer1 PIC › Timer2 PIC › Interrupciones con el PIC › Interrupción Externa PIC › Interrupción timer0 PIC › Interrupción por cambio de estado en el puerto B PIC › Interrupción ADC PIC › Interrupción USART PIC › Conversor analógico digital PIC › Módulo CCP › CCP PIC modo captura › CCP PIC modo comparación › CCP PIC modo PWM modulación por ancho de pulso › USART PIC Comunicación serial › USART PIC ejemplos › I2C PIC comunicación serial › I2C PIC ejemplos › EEPROM PIC Memoria interna › MICROCONTROLADORES AVR › Introducción › Entradas salidas digitales con el AVR › Temporizador AVR › Timer0 AVR › Timer1 AVR Cumpliendo con la ley de cookies de la legislación española, se informa que este sitio utiliza cookies de google para mejorar la experiencia de navegación, y ofrecer › yTimer2 contenidos publicidad AVR de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies .
Acepto
Puede obtener más
información, o bien conocer cómo cambiar la configuración, en este enlace. › PWM AVR modulación por ancho de pulso
http://microcontroladores-mrelberni.com/usart-pic-comunicacion-serial/
8/8