Comunicacion serial

Solo disponible en BuenasTareas
  • Páginas : 2 (380 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de diciembre de 2011
Leer documento completo
Vista previa del texto
COMUNICACIÓN SERIAL PC - PIC USANDO MATLAB Y PIC BASIC PRO
|
RESUMEN: La comunicación serial entre un dispositivo 16F628A de Microchip con Matlab es sencilla. En este artículo se ensayará elcódigo necesario para la tx de datos desde Matlab para encender un led con el microcontrolador 16F628A. Para esta simulación, se configuran dos puertos virtuales usando el demo del programa Virtual SerialPort Driver v.6.
MATLAB
El código necesario para la inicializar el puerto serial es:
SerPIC = serial('COM2'); set(SerPIC,'BaudRate',2400); set(SerPIC,'DataBits',8); set(SerPIC,'Parity','none');set(SerPIC,'StopBits',1); set(SerPIC,'FlowControl','none'); |
La función serial crea un objeto que contiene todos los parámetros correspondientes al puerto serial como baudios, bits de datos, bit deparada, etc. Estos parámetros se los modifica con la función set.
Una vez establecidos los parámetros de la comunicación, se procede a abrir el puerto con la función fopen:
fopen(SerPIC); |
Lafunción para escribir el puerto serial es fprintf:
fprintf(SerPIC,'%s','A') |
En la línea precedente se escribe en el puerto la letra A en formato string. (También es posible escribir caracteres,reemplazando %s por %c y enviando los datos con la función char.)
Una vez terminada la comunicación, se procede a cerrar el puerto con el siguiente código:
fclose(SerPIC); delete(SerPIC) clear SerPIC|

MICROCONTROLADOR
En el microcontrolador tenemos el siguiente programa:
include "modedefs.bas" valor var byte trisb =%00000001portb =%00000000 inicio:serin portb.0,T2400,valorif valor == "E"then high portb.1 'E->Encendidoif valor == "A" then low portb.1  'A->Apagadogoto inicio |
Como se trata de una transmisión serial, siempre va la librería modedefs.bas. No olvidar que lavelocidad de envío debe ser la misma que la velocidad de recepción (2400 en este caso).
En este programa si el dato recibido es “E”, enciende el pin 1 del puerto B. Si recibe “A” pone a 0 ese mismo pin....
tracking img