You are on page 1of 15

Proyecto 1

Enviar desde el panel frontal de Labview un número que será visualizado en


ocho leds a la salida del Puerto B del pic 16f877A.

Lo primero que se realiza es abrir el entorno de labview seleccionando Blank VI

Donde tendremos el panel frontal que ilustrara los controles y visualizadores del
proyecto y el de diagramas que ilustra el conexionado especifico para el
funcionamiento.
Arquitectura VISA.

VISA: Virtual Instrument Software Architecture. Aprobado para lograr estandarizar


la manera de obtener y pedir datos desde y hacia instrumentos de medición
(VXIplug&play Systems Alliance).
Entre esta estandarización se incluyen los dispositivos de comunicación serie y
paralelo.

NI-VISA: Es la solución de “National Instruments” para VISA. Como toda


aplicación esta debe comenzar con la realización del código necesario para
ejecutar y terminar la aplicación. Para ello debe colocar un botón booleano de
salida y realizar el código siguiente:

Clic derecho en el diagrama de bloques en Structures se selecciona While Loop


y en el panel de control se ubica un control booleano como indica la figura:
Por último se realiza su conexionado en el diagrama de bloques de la siguiente
manera:

Es importante revisar cuales son los parámetros de configuración del puerto serie:

4. Establecer la velocidad de Tx y Rx (Baud rate).


5. Establecer la cantidad de bits de datos del protocolo de intercambio
serie.
6. Establecer la cantidad de bits de parada del protocolo de
intercambio serie.
7. Establecer la paridad del protocolo de intercambio serie.
8. Establecer el número del puerto a través del cual se realizará el
intercambio serie.
9. Establecer tamaño del buffer que almacenará los datos recibidos y/o
transmitidos.

La ejecución de esta aplicación tiene como primer paso la configuración del puerto
serie. Por lo tanto se utilizará una estructura secuencia donde antes de entrar al
ciclo principal se hace la configuración.

Ahora debemos agregar una secuencia pero que se ejecute antes de que se entre
en el ciclo principal de la aplicación, para ello se da clic derecho sobre la
estructura “secuence” y se selecciona la opción “Add Frame Before”. El código es:

Como es de esperar es una secuencia vacía. Antes de programar la configuración


debemos introducir los controles necesarios.
Para configurar el puerto a través del cual se recibirán y/o introducirán los datos es
necesario utilizar un control de recursos denominado “VISA Resource Name” en la
paleta de controles

Para los bits de parada utilizaremos un control “Enum” con los siguientes ítems:
1. 1 bits
2. 1,5 bits
3. 2 bits

Para Paridad utilizaremos un control “Enum” con los siguientes ítems:


1. None
2. Odd
3. Even
4. Mark
5. Space

Para Velocidad utilizaremos un control “Numeric” del tipo U16

Para Bits de datos utilizaremos un control “Numeric” del tipo U8

El panel Frontal queda diseñado de la siguiente manera:


Para configurar el puerto se utiliza la función de VISA diseñada para ello que se
encuentra en la paleta de funciones bajo el nombre: “VISA Configure Serial Port”.
Como se muestra a continuación:

Después de conectada esta función El código es:


Ya tenemos configurado el puerto serie por lo que estamos listos para enviar datos
a través del mismo.

La acción mecánica del botón “Enviar Datos” debe ser “Latch When Pressed”, ya
que al pulsar este botón solo debe ejecutarse el código asociado una sola vez.

Observaciones:

• Solo cuando se ejecute el botón “enviar datos” ejecutará el lazo.


• Cada valor se visualizará en el indicador del pic 16f877A“ Puerto”
introduciendo una demora en tiempo.
• Al finalizar el ciclo obtendremos un arreglo de ocho bits mostrados por
leds en PORTB.
• El ciclo se repetirá al presionar el botón una sola vez debido a su acción
mecánica.

Solo nos resta enviar estos valores a través del puerto serie. Para ello es
necesario obtener la función indicada para ello.
Esta función es muy sencilla toda vez que debemos pasarle el “recurso” abierto
(previamente configurado) y la cadena de caracteres que se quiere escribir en el
puerto serie.

Para ello creamos una variable local a partir del control “VISA Resource Name” la
conectamos al parámetro correspondiente:

Los datos que se enviarán deben estar en formato de cadena de caracteres para
que la información pueda escribirse en el puerto serie, sin embargo hasta este
momento tenemos un tipo de dato arreglo. Por esta razón debemos realizar una
conversión de tipos, utilizando la función “Byte Array To String”, que se muestra en
la figura:

Los valores a convertir es este caso han de ser valores enteros comprendidos de
0 a 255.Una vez que se tienen los datos a enviar en forma de String se puede
cablear a la entrada del icono Serial Port Write

Antes de finalizar debemos cerrar el recurso abierto. Para ello creamos otra
variable local del recurso y creamos otra secuencia después del ciclo principal y
utilizamos la función “VISA Close”

RECEPCION DE DATOS
PROGRAMACIÓN DEL MICROCONTROLADOR

Una vez detallados los requerimientos, deben ser satisfechos en la programación


del software. Se procede a explicar la programación del sistema, empezando con
la del microcontrolador. Se utiliza el paquete computacional MicroCode Studio y el
compilador PICBasic Pro 2.45.

PROGRAMACION POR HARDWARE

En este caso se configura el pic 16f877A para trabajar con el modo Usart a una
velocidad de 2400 baudios por el pin portc.7 del mismo.
PROGRAMACION POR SOFTWARE

El microcontrolador 16F877A tiene la posibilidad de comunicación serial mediante


el puerto USART. Si se utiliza esta herramienta se puede configurar el sistema de
forma que se obtenga interrupciones por recepción o transmisión. Los parámetros
de comunicación para el desarrollo del presente trabajo son:

- Comunicación asincrónica
- 2400 baudios
- 8 bits de datos
- 1 bit de parada
- Sin paridad

Para lo cual se ha configurado el PIC de la siguiente forma:

Se utiliza el comando SERIN para la recepción de datos y la librería


modedefs.bas, creando la variable para almacenar los datos enviados desde
Labview con una capacidad de 255 es decir un Byte, para posteriormente ilustrar
su valor por el puerto B del pic 16f877A.La velocidad de transmisión a N2400 para
no utilizar la MAX 232 y se desea utilizar se utiliza T2400. El dato es recibido
mediante la línea RC7/RX/DT.
Librería modedefs.bas:

Aquí se encuentran algunos parámetros para las comunicaciones por ejemplo


velocidades de transmisión de dato invertido: N (300,1200,2400,9600) y para dato
verdadero : T (300,1200,2400,9600).

CIRCUITO

El circuito que se ilustra a continuación es el desarrollado cuando se utiliza el


comando “N” determinado en la librería modedefs.bas, el dato enviado desde
labview es recibido mediante la línea RC7/RX/DT del pic 16f877A es decir el pin
26 del respectivo pic.

Circuito sin la Max:


Circuito con la Max 232:
 

You might also like