COMUNICACIÓN RS232

14
COMUNICACIÓN RS-232 PIC BASIC PRO

Transcript of COMUNICACIÓN RS232

Page 1: COMUNICACIÓN RS232

COMUNICACIÓN RS-232

PIC BASIC PRO

Page 2: COMUNICACIÓN RS232

Protocolo RS-232

• Las instrucciones en PicBasic para la comunicación serial, se rigen bajo el protocolo de comunicación RS-232, el cual es una norma o estándar mundial que define los parámetros en la comunicación serial. Este protocolo define además estándares como la velocidad de transmisión en baudios (300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200 y 128000 bps), niveles de voltaje, distancia entre dispositivos, entre otros.

Page 3: COMUNICACIÓN RS232

• Cuando se trata de comunicación 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 están comprendidos entre +12V y -12V, y en un microcontrolador los niveles de voltaje están comprendidos entre 0V y 5V.

Page 4: COMUNICACIÓN RS232

SerIn:• La instrucción SerIn se encarga de recibir uno o mas

valores a través de un pin específico, usando el formato asíncrono estándar 8N1 que significa 8 bits de datos, sin revisión 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.

Page 5: COMUNICACIÓN RS232

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 transmisión en baudios.

Sintaxis:

Page 6: COMUNICACIÓN RS232

VALOR NUMÉRICO MODO TASA DE BPS

0 T2400 2400

1 T2100 1200

2 T9600 9600

3 T300 300

4 N2400 2400

5 N1200 1200

6 N9600 9600

7 N300 300

Page 7: COMUNICACIÓN RS232

El campo “Modo” también puede ser definido como se muestra en la columna 2 de la tabla 12.1, incluyendo la librería MODEDEFS.BAS en el inicio del programa(Include "modedefs.bas"), o utilizando directamente la instrucción “SYMBOL” como se muestra a continuación:

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)

Page 8: COMUNICACIÓN RS232

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”, también definida por el programador.

Variable: En este campo se especifica la variable en la cual se desea sean almacenados los datos recibidos.

Page 9: COMUNICACIÓN RS232
Page 10: COMUNICACIÓN RS232

MAX 232

Page 11: COMUNICACIÓN RS232

SerOut: La instrucción SerOut en PicBasic se encarga de enviar

uno o mas valores a través de un pin específico, usando el formato asíncrono estándar 8N1, que significa 8 bits de datos, sin revisión de paridad y 1 bit de parada (stop).

Page 12: COMUNICACIÓN RS232

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 Bytepause 500 ' Pausa de 500 milisegundos para la LCDLCDOut $fe, 1 ' Limpia la LCD

inicio: SerIn PORTC.7, T9600, dato ' espera datos durante 1 msLCDOUT $fe, 2,"Dato: " LCDOut $fe,$C0,#dato," "GoTo inicio ' Salta a inicio

End

Page 13: COMUNICACIÓN RS232

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 transmisión en baudios y emplea la misma tabla de la instrucción Serin

• Variable:En este campo se especifica la variable que contiene los datos que serán enviados a través de pin especificado.

Page 14: COMUNICACIÓN RS232

Ejemplo de SerOutDefine Osc 4 ' Define el Oscilador para un Cristal de 4MhzSymbol T9600 = 2 ' Dato verdadero (Driven True) I VAR Byte ' Define la variable “I” como Byte

inicio: For I = 0 To 9 ' Repetición de 0 a 9, envía secuencia de 0 a 9SerOut PORTC.6, T9600, [#I] 'Envía los datos a través del pinRC6pause 1000 ' Pausa de 1 segundoNext I GoTo inicio ' Salta a inicio

End