.::COMUNICACIÓN SERIAL PIC A PIC::.

LA WEB DE MATLAB, SIMULINK, VHDL, FPGA...

COMUNICACIÓN SERIAL PIC A PIC

Para realizar la comunicación serial entre dos pics se usará la función serin para el caso de datos de recepción y serout para el caso de transmisión.

La sintaxis de la función serin es:

Serin pin, velocidad, variable

La sintaxis de la función serout es:

Serout pin, velocidad, [variable]

En PBP es necesario incluir la librería modedefs.bas cuando se realiza comunicación serial.

El programa para el micro transmisor es:

include "modedefs.bas"
trisb=0
portb=0
serout portb.0,T2400,["A"]
end

El programa para el micro receptor es:

include "modedefs.bas"
entrada var byte
trisb=1
serin portb.0,T2400,entrada
end

La velocidad T2400 significa: 2400 baudios en valores sin invertir (True).

La siguiente figura muestra el resultado de la simulación de este programa:

serial1

Es necesario establecer la velocidad de envío del virtual terminal a 2400.

Mejorando un poco el programa, se enviará una palabra y luego una secuencia de números. Modificamos el programa de transmisión de la siguiente manera:

include "modedefs.bas"
n var byte
trisb=0
portb=0
serout portb.0,T2400,["INICIO"]
pause 500
for n=1 to 10
serout portb.0,T2400,[#n]
pause 500
next
serout portb.0,T2400,["FIN"]
end

Para el programa de recepción se añade un LCD para mostrar los datos recibidos por el micro de recepción:

include "modedefs.bas"
define lcd_dreg portb
define lcd_dbit 4
define lcd_rsreg portb
define lcd_rsbit 3
define lcd_ereg portb
define lcd_ebit 2

entrada var byte
trisb=1
while 1
serin portb.0,T2400,entrada
lcdout $fe,1,"MATPIC.com"
lcdout $fe,$c0,entrada
wend
end

El resultado de estos programas lo muestra la siguiente figura:

serial2