Anda di halaman 1dari 6

#use RS232

Directiva que nos permite configurar las caractersticas del modulo USART
#use RS232 (BAUD=x,BITS=x,PARITY=N,XMIT=PIN_B1,RCV=PIN_B2)

Ejemplo:
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)
Esto quiere decir que cada vez que queramos utilizar la funcin printf
tenemos que haber incluido previamente esta directiva, que posibilita la
comunicacin del PIC con otro dispositivo utilizando el protocolo de
comunicacin serie RS232, adems de la funcin printf esta directiva permite
el uso de otras funciones para la entrada y salida de datos serie como: getc,
getchar, gets, puts y kbhit que iremos viendo poco a poco, pero la ms
importante para la salida de datos sin duda es printf, porque nos permite
formatear la salida de esos datos de la forma que nosotros queramos.
Como vemos la directiva #use RS232 admite una serie de parmetros que
son los que van entre parntesis separados por comas, estos son los
siguientes:

BAUD con este parmetro establecemos la velocidad en baudios a la


que queremos que se transmitan los datos por el puerto serie, 9600
es lo normal.
BITS nmero de bits que utilizaremos en la transmisin, el estndar
establece que pueden ser 8 9, para la comunicacin con
microcontroladores con 8 son suficientes.
PARITY nos permite utilizar un bit de paridad para la comprobacin
de errores, est opcin la dejamos a No.
XMIT est opcin nos configura porque patilla del PIC saldrn los
datos, est opcin junto con la siguiente s que la tendremos que
cambiar a nuestras necesidades.
RCV nos configura porque patilla del PIC se recibirn los datos. En el
ejemplo, los datos se transmiten por el PIN RB1 y se reciben por
RB2.

La forma de hacer la llamada a la funcin printf es la siguiente:

printf(Nombre Funcin, Cadena de caracteres , valores);


Como vemos la funcin printf tambin admite parmetros que podremos
utilizar para formatear el texto de salida. Vamos a ver cules son:
El primero es opcional y es el nombre de una funcin, si no lo ponemos los
datos se transmitirn va RS232 a travs de los pines que hayamos
configurado en la directiva #use RS232.
El segundo parmetro es una cadena de caracteres encerrada entre comillas
dobles.
Y el tercero son datos o nombres de variables cuyo valor queremos que se
muestren. Vamos a ver todo esto con ejemplos que es como mejor se ven las
cosas:
Conexin de MAX 232 al PIC 16f887
La figura a continuacin muestra una forma comn de conectar un
microcontrolador PIC proporcionado con el mdulo USART. El circuito RS-232
se utiliza como un convertidor de nivel de voltaje.

Es importante tener en cuenta que en el protocolo RS232 utiliza lgica


negativa, un nivel alto (1) es de -3V a -15 voltios, y un nivel bajo (0) es de
+3V a +15 voltios. Usualmente los valores son +/-12 voltios.

Puesto que un PIC utiliza niveles TTL es necesario un conversor de niveles. El


mas utilizado es el circuito integrado MAX232 de Dallas Semiconductor.
El MAX232 convierte los niveles RS232 a TTL y viceversa con slo una fuente
de 5 voltios. Contiene dos driver TTL-RS232 y dos driver RS232-TTL.
Utilizando un PIC para la comunicacin tenemos dos alternativas:

PIC con hardware especfico para el puerto serie Dispone de


una UART (Universal Asynchronous Receiver-Transmitter, TransmisorReceptor Asncrono Universal) para controlar los puertos y dispositivos
serie.

PIC que no disponen de este hardware por lo que es necesario


implementar por software todos los detalles de la comunicacin serie.

El microcontrolador PIC16F887 tiene varios mdulos de comunicacin serie


independientes y cada uno de ellos puede ser configurado para operar en
varios modos diferentes, que las hacen irremplazable en muchas situaciones.
El USART es uno de los sistemas de comunicacin en serie ms antiguos una
versin ms actual es EUSART .

EUSART
El mdulo (EUSART) Enhanced transmisor receptor asncrono universal
sncrono es una unidad perifrica Serial I / O de comunicacin. Tambin se
conoce como interfaz de comunicaciones serie (SCI). Contiene todos los
generadores de reloj, registros de desplazamiento y memorias intermedias
de datos necesarios para llevar a cabo una transferencia de datos en serie,
independientemente de la ejecucin del programa principal. Como su
nombre indica, adems de utilizar el reloj para la sincronizacin, este mdulo
puede tambin establecer la conexin asncrona, lo que hace que sea nica
para algunas de las aplicaciones. Por ejemplo, en caso de que sea difcil o
imposible proporcionar canales especiales para el reloj y la transferencia de
datos (por ejemplo, la radio o el control remoto de infrarrojos), el mdulo
EUSART es sin duda la mejor solucin posible.

El sistema EUSART integrado en el microcontrolador PIC16F887 tiene las


siguientes caractersticas:

Transmisin asncrona dplex completo y recibir;


Caracteres anchos programable de 8 9 bits;
Deteccin de direcciones en el modo de 9 bits;
Memoria intermedia de entrada de deteccin de error de desbordamiento;
La comunicacin half-duplex en modo sncrono.

Transmision Usart

La parte central del transmisor EUSART es la TSR registro de desplazamiento


que no es directamente accesible por el usuario. Con el fin de iniciar la
transferencia de datos, el transmisor EUSART debe habilitarse estableciendo
el bit TXEN del registro TXSTA. Los datos que se enven deben ser escrito en
el registro TXREG, haciendo as que la siguiente secuencia de eventos que se
produzcan:
Byte ser transferido inmediatamente al registro de desplazamiento TSR;
El registro TXREG permanece vaco, lo cual se indica mediante el
establecimiento de la TXIF bit indicador del registro PIR1. Si el bit del registro
TXIE PIE1 se establece, se generar un rupt entre otras. Sin embargo, el
indicador se establece independientemente de si un inter rupt est
habilitado o no, y que no se puede borrar por software, pero al escribir
nuevos datos al registro de TXREG.

Los datos de la electrnica de control '' Empujn hacia el pin TX en


sincronizacin con el reloj interno: Bit de arranque (0) ... ... de datos bit de
parada (1).
Cuando el ltimo bit abandona el registro TSR, el bit TRMT del registro
TXSTA se ajusta automticamente.
Si el registro TXREG ha recibido un nuevo dato de carcter, mientras tanto,
todo el procedimiento se repetir inmediatamente despus del bit de parada
del carcter anterior se ha transmitido.
La transferencia de datos de 9 bits se habilita estableciendo el bit TX9 del
registro TXSTA. El bit TX9D del registro TXSTA es el noveno y el bit ms
significativo de datos. Al transferir datos 9- bits, el bit de datos TX9D debe
ser escrito antes de escribir los 8 bits menos significativos en el registro
TXREG. Todos los nueve bits de datos sern transferidos al registro de
desplazamiento TSR inmediatamente despus de la escritura TXREG es
completa.
Recepcion Usart

Similar a la activacin de transmisor EUSART, con el fin de permitir que el


receptor es necesario para configurar los siguientes bits:
CREN = 1 - receptor EUSART se habilita estableciendo el bit CREN del
registro RCSTA;
SYNC = 0 - EUSART est configurado para funcionar en modo asncrono
desactivando la sincronizacin de bits almacenados en el TXSTA registro; y
SPEN = 1 - Al establecer el bit SPEN del registro RCSTA, EUSART est
habilitado y el pin RX / DT se configura automticamente como una entrada.
Si este bit se utiliza simultneamente para alguna funcin analgica, se debe
deshabilitar desactivando el bit correspondiente del registro ANSEL.

Cuando esta primera se lleva a cabo y se detecta el bit de inicio, los datos se
transfieren a la RSR registro de desplazamiento a travs del pin RX. Cuando
se ha recibido el bit de parada, ocurre lo siguiente:
Los datos se envan automticamente al registro RCREG (si est vaco);
El RCIF bit de bandera se establece una interrupcin y, si est habilitado
por el bit del registro RCIE PIE1, se produce. Al igual que en el transmisor, el
bit de bandera se borra automticamente mediante la lectura del registro
RCREG. Tenga en cuenta que este es un registro FIFO dos caracteres
(primero en entrar, primero en salir) que permite una recepcin simultnea
de dos bytes de datos;
ISi el registro RCREG est ocupado (contiene dos bytes) y el registro de
desplazamiento detecta el nuevo bit de parada, se establece el bit de
desbordamiento OERR. En este caso, un nuevo datos que llegan se pierde, y
el bit OEER debe ser limpiado por el software. Se realiza mediante la
compensacin y restablecer el bit CREN;
Nota: no es posible recibir los nuevos datos por lo que el bit se establece
OERR.
Si el bit de parada es conducido bajo (0), se establecer el bit FERR del
registro RCSTA la deteccin de errores de recepcin; y
Para habilitar la recepcin de datos de 9 bits, es necesario establecer el bit
RX9 del registro RCSTA
http://perso.wanadoo.es/pictob/comunicacion_pic_pc_via_rs232.htm
http://www.mikroe.com/chapters/view/76pic-basic-book-chapter-3-pic16f887microcontroller/#c3v8
http://www.ccsinfo.com/content.php?page=compexamples
http://aprendiendoelectronicafacil.blogspot.com/2015/08/pic-c-compilercomunicacion-serial.html