Está en la página 1de 14

COMUNICACIN RS-232

PIC BASIC PRO

Protocolo RS-232
Las instrucciones en PicBasic para la comunicacin serial, se rigen bajo el protocolo de comunicacin RS-232, el cual es una norma o estndar mundial que define los parmetros en la comunicacin serial. Este protocolo define adems estndares como la velocidad de transmisin en baudios (300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200 y 128000 bps), niveles de voltaje, distancia entre dispositivos, entre otros.

Cuando se trata de comunicacin serial entre un microcontrolador y un PC, es importante tomar en cuenta que los niveles de voltaje entre ambos dispositivos deben ser acoplados, ya que en un puerto serial de un PC, los niveles de voltaje estn comprendidos entre +12V y -12V, y en un microcontrolador los niveles de voltaje estn comprendidos entre 0V y 5V.

SerIn:
La instruccin SerIn se encarga de recibir uno o mas valores a travs de un pin especfico, usando el formato asncrono estndar 8N1 que significa 8 bits de datos, sin revisin de paridad y 1 bit de parada (stop). SerIntrabaja por defecto con un oscilador de 4 Mhz, y para tener una transferencia de datos segura con otros osciladores de mayor valor, ser necesario utilizar la directiva Define Osc al inicio del programa.

Sintaxis:
SERIN pin, modo,{tiempo, etiqueta}, variable Serin PortA.3, 2, 10, inicio, variable Pin: en este campo definiremos cual ser el pin de entrada entre los puertos disponibles del microcontrolador. Modo: define la velocidad de transmisin en baudios.

VALOR NUMRICO 0 1 2 3 4 5

MODO T2400 T2100 T9600 T300 N2400 N1200

TASA DE BPS 2400 1200 9600 300 2400 1200

6
7

N9600
N300

9600
300

El campo Modo tambin puede ser definido como se muestra en la columna 2 de la tabla 12.1, incluyendo la librera MODEDEFS.BAS en el inicio del programa(Include "modedefs.bas"), o utilizando directamente la instruccin SYMBOL como se muestra a continuacin: Symbol T2400 = 0 ' Dato verdadero (Driven True) Symbol T1200 = 1 ' Dato verdadero (Driven True) Symbol T9600 = 2 ' Dato verdadero (Driven True) Symbol T300 = 3 ' Dato verdadero (Driven True) Symbol N2400 = 4 ' Dato invertido (Driven inverted) Symbol N1200 = 5 ' Dato invertido (Driven inverted) Symbol N9600 = 6 ' Dato invertido (Driven inverted) Symbol N300 = 7 ' Dato invertido (Driven inverted)

Tiempo: este campo es opcional al igual que el campo etiqueta, y su objetivo es establecer un tiempo en milisegundos definido por el programador, el cual una vez vencido, har que se realice un salto a la etiqueta, tambin definida por el programador. Variable: En este campo se especifica la variable en la cual se desea sean almacenados los datos recibidos.

MAX 232

SerOut:
La instruccin SerOut en PicBasic se encarga de enviar uno o mas valores a travs de un pin especfico, usando el formato asncrono estndar 8N1, que significa 8 bits de datos, sin revisin de paridad y 1 bit de parada (stop).

Ejemplo de SerIn:
'Programa en Pic Basic Pro Define Osc 4 ' Define el Oscilador para un Cristal de 4 Mhz. Symbol T9600 = 2 ' Dato verdadero (Driven True) dato var Byte ' Define la variable dato como Byte pause 500 ' Pausa de 500 milisegundos para la LCD LCDOut $fe, 1 ' Limpia la LCD inicio:
SerIn PORTC.7, T9600, dato ' espera datos durante 1 ms LCDOUT $fe, 2,"Dato: " LCDOut $fe,$C0,#dato," " GoTo inicio ' Salta a inicio

End

Sintaxis:
SEROUTpin, modo, [variable] SerOut PORTC.6, T9600, [variable]

Pin: en este campo definiremos cual ser el pin de salida entre los puertos disponibles del microcontrolador. Ejemplo: PortB.5 Modo: define la velocidad de transmisin en baudios y emplea la misma tabla de la instruccin Serin Variable:En este campo se especifica la variable que contiene los datos que sern enviados a travs de pin especificado.

Ejemplo de SerOut
Define Osc 4 ' Define el Oscilador para un Cristal de 4Mhz Symbol T9600 = 2 ' Dato verdadero (Driven True) I VAR Byte ' Define la variable I como Byte inicio:
For I = 0 To 9 ' Repeticin de 0 a 9, enva secuencia de 0 a 9 SerOut PORTC.6, T9600, [#I] 'Enva los datos a travs del pinRC6 pause 1000 ' Pausa de 1 segundo Next I GoTo inicio ' Salta a inicio

End