CONTENIDO:
Comunicación Serial
Prácticas
1
LabView
MICROCONTROLADORES
& LABVIEW
2
LabView
Comunicación Serial:
Hardware
3
LabView
MICROCONTROLADOR - UC:
El corazón de todo módulo programable es el microcontrolador (el PIC16F886
para los ejemplos que mostraremos), por tanto debemos considerar lo
importante de conocer las pines de conexión del microcontrolador:
- Programación serial ICSP: MCLR (Pin1), ICSPDAT (Pin28), ICSPCLK (Pin27), VSS
(GND), VDD (Vcc).
- Entradas analógicas: AN0, AN1, AN2, AN3, AN4, AN8, AN9, AN10, AN11, AN12,
AN13.
- Modulación de Ancho de Pulso (PWM): CCP1 y CCP2.
- Comunicación serial: TX y RX.
4
LabView
MICROCONTROLADOR - UC:
ICSP Programación Serial en Circuito.
PWM
Entradas
Analógicas
Com.
Serial
GND
VCC
Master Clear
5
LabView
Pasos para configurar el uc:
Para programar el microcontrolador debemos saber configurar los registros, entre
los cuales destacan:
- Registro TRIS: Este registro de 8 bits nos permite configurar los puertos
(A,B,C,E) del microcontrolador pin a pin como entrada o salida.
- Registro ANSEL y ANSELH: Nos permite configurar como entradas digitales ó
analógicas de los pines que poseen la habilidad de digitalizar entradas
analógicas.
- Registro PORT: Nos permite obtener el estado lógico booleano de las entradas
digitales, sin embargo a los pines que son salido nos permite poner un estado
lógico booleano.
6
LabView
Pasos para configurar el uc:
MICROCONTROLADOR
PUERTOS:
TRISX=(7,6,5,4,3,2,1,0)
X=A,B,C,E.
1->In. 0->Out.
ENTRADAS:
ANSEL=(_,_,_,4,3,2,1,0)
ANSELH=(_,_,13,12,11,10
,9,8)
1->Anlg. 0->Dig.
SALIDAS:
PORTX=(7,6,5,4,3,2,1,0)
1, 0.
7
LabView
Pasos para programar:
Se desarrolla el
algoritmo de
programación en el
computador en un
ID o software de
desarrollo, para
microcontroladores.
Compilar código
realizado y
generamos el
archivo “.HEX”.
Programar el
microcontrolador
importando el
archivo “.HEX”.
8
LabView
Comunicación Serial:
Software
Software:
9
LabView
VISA Configure Serial Port:
10
LabView
VISA Write:
11
LabView
VISA Read:
VISA Bytes at Serial Port:
12
LabView
13
LabView
PRÁCTICA 1:
Uso de Botón y Leds
RECURSOS: Código PIC
14
LabView
Uso de Botón y Leds:
PIC16F886
Leds PuertoBBotón, E.3
BOTONERA
LEDS
Esta práctica nos enseñará el uso del botón para controlar el encendido y apagado de los
leds. Usaremos el botón para controlar el cambio de estado lógico de las salidas que
encienden o apagan los leds, adicional a ello deberá tener un anti rebote que evite cambiar
incontrolablemente el estado de la salida digital. Recordar que los leds están conectados por
hardware al puerto b.
15
LabView
Código de Programación:
1- Creamos symbol de el botón usado, el mismo que está conectado por
hardware al puerto E.3.
2- Empezamos configurando el registro TRISB como salida, además como entrada
el registro TRISE.3.
3- Usamos el registro TRISB para asignar valor booleanos a las salidas del puerto
B donde están conectados los leds por hardware.
4- Usamos la condición IF para validar el cambio de estado del botón, adicional a
ello usaremos el bucle WHILE para programar el anti rebote.
16
LabView
Código de Programación:
program ejerccio1
SYMBOL BOTON=PORTE.3
DIM VALOR AS BYTE
MAIN:
'----------------CONFIG IN-OUT----------------
' Registro PUERTO A
TRISA = 0X00 '%00000000=0' PORTA -> out
' Registro PUERTO B
TRISB = 0X00 ' PORTB -> out para los leds
' Registro PUERTO C
TRISC = 0X00 ' PORTB -> out para los leds
' Registro PUERTO E
TRISE = %00001000 ' PORTE.3 <-in
'----------------CONFIG IN -> DIG ó ANLG-----
' Seleccion de registro analogico. 1 analogico, 0
digitales
ANSEL = 0X00 ' AN<7:0> AN(_,_,_,4,3,2,1,0)
ANSELH = 0X00 ' AN<13:8> AN(_,13,12,11,10,9,8)
'---------------- SETEAR LAS SALIDAS---------
PORTB=%10101010
delay_ms(300)
PORTB=%01010101
delay_ms(300)
PORTB=0
'-----------------SET DE VARIABLES-----------
VALOR=0
WHILE(1)
IF(BOTON =0) THEN 'SI PRESIONO EL BOTON
MCLR
PORTB= NOT PORTB
WHILE(BOTON=0)WEND 'ESPERO QUE SUELTE
EL BOTON MCLR
END IF
WEND
END.
17
LabView
Cargar el Firmware:
1.- Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta
programable).
2.- Conectamos el hardware programador al computador y Haciendo uso del software
del programador de microcontroladores, luego importamos el archivo “.HEX”.
3.- Procedemos a programar el módulo de desarrollo.
18
LabView
PRÁCTICA 2:
Uso Contador y Leds
RECURSOS: Código PIC
LabView
Uso Contador y Leds:
Esta práctica nos enseñará el uso de variables para controlar la información binaria que se
muestra en los leds. Usaremos la variable como contador y para incrementar pausadamente
usaremos un delay de 200 ms. Recordar que los leds están conectados por hardware al
puerto b.
PIC16F886
Leds PuertoBBotón, E.3
LEDS=CONTADOR+1
20
LabView
Código de Programación:
1- Creamos symbol para el puerto b, que es donde están conectados los leds por hardware.
2- Creamos una variable tipo Byte llamada CNT.
3- Empezamos configurando el registro TRISB como salida.
4- Usaremos el symbol LED para asignar la varibale a las salidas de leds.
program leds
'----------SYMBOL.----------
SYMBOL LED=PORTB
SYMBOL BTN=PORTE.3
'-----CREAR VARIABLES-------
DIM CNT AS BYTE
main:
'------CONFIG IN (1)- OUT (0)------
TRISA=%00000000
TRISB=%00000000 'Leds -> OUT
TRISC=%00000000
TRISE=%00001000 'RE3 -> IN BOTONERA
'--CONFIG IN: DIG (0)- ANALOG (1)---
ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0>
'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5
ANSELH= %00000000 '<_,_,An13,An12,An11,An10,An9,An8>
'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0, An13->B5
'-----SET DE VARIABLES----
CNT=0
while (1)
LED=CNT
INC(CNT)
DELAY_MS(200)
wend
end.
21
LabView
Cargar el Firmware:
1.- Conectamos el programador de microcontroladores al módulo de desarrollo
(tarjeta programable).
2.- Conectamos el hardware programador al computador y Haciendo uso del software
del programador de microcontroladores, luego importamos el archivo “.HEX”.
3.- Procedemos a programar el módulo de desarrollo.
22
LabView
PRÁCTICA 3:
Uso Botón, Contador y Leds
RECURSOS: Código PIC
LabView
Uso Contador y Leds:
Esta práctica nos enseñará el uso del botón para manipular una variable, para controlar el
encendido de los leds. Usaremos el botón para incrementar la variable usándola así como
un contador. Recordar que los leds están conectados por hardware al puerto b.
Leds PuertoBBotón, E.3
PIC16F886
BOTONERA
LEDS=CONTADOR+1
24
LabView
Código de Programación:
1- Creamos un symbol de el botón usado, el mismo que está conectado por
hardware al puerto E.3.
2- Creamos un symbol para el puerto b, que es donde están conectados los leds por
hardware.
3- Creamos una variable tipo Byte llamada CNT.
4- Empezamos configurando el registro TRISB como salida, además como entrada el
registro TRISE.3.
5- La condición IF nos permite validar el cambio de estado del botón, adicional a ello
usaremos el bucle WHILE para programar el anti rebote y evitar así que incremente
la variable más de una vez.
6- Usamos la función INC para incrementar la variable en una unidad.
7- El registro TRISB nos permite asignar un valor a las salidas del puerto B donde
están conectados los leds por hardware.
25
LabView
Código de Programación:
program leds
'----------SYMBOL.----------
SYMBOL LED=PORTB
SYMBOL BOTON=PORTE.3
'-----CREAR VARIABLES-------
DIM CNT,VALOR AS BYTE
main:
'------CONFIG IN (1)- OUT (0)------
TRISA=%00000000
TRISB=%00000000 'Leds -> OUT
TRISC=%00000000
TRISE=%00001000 'RE3 -> IN BOTONERA
'--CONFIG IN: DIG (0)- ANALOG (1)---
ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0>
'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5
ANSELH= %00000000
'<_,_,An13,An12,An11,An10,An9,An8>
'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0,
An13->B5
'-----SET DE VARIABLES----
CNT=0
while (1)
IF(BOTON =0) THEN 'SI PRESIONO EL BOTON MCLR
INC(VALOR) 'INCREMENTO VALOR=VALOR+1
PORTB=VALOR 'ENVIO EL VALOR DE LA
VARIABLE A LOS LED-PORTB
WHILE(BOTON=0)WEND 'ESPERO QUE SUELTE
EL BOTON MCLR
END IF
wend
end.
26
LabView
Cargar el Firmware:
1.- Conectamos el programador de microcontroladores al módulo de desarrollo
(tarjeta programable).
2.- Conectamos el hardware programador al computador y Haciendo uso del software
del programador de microcontroladores, luego importamos el archivo “.HEX”.
3.- Procedemos a programar el módulo de desarrollo.
27
LabView
PRÁCTICA 4:
Ejemplo Slide-Meter
RECURSOS: Código LabView
LabView
Slide-Meter:
Diseñar un VI que permita desde el panel frontal ingresar un valor numérico de 8 bits sin
signo con un slide horizontal y que permita visualizar este valor en un Meter.
En este ejercicio aprendemos a realizar una interfaz. En el panel frontal usaremos un
control numérico para generar un valor numérico y también un indicador numérico para
visualizar dicho valor. Además usaremos un control booleano para dar stop al programa.
Front Panel:
LabView
Front Panel:
VI
LabView
Block Diagram:
En el diagrama de bloques inicializaremos el indicador numérico con una constante
cero. Usaremos un “While Loop” como una lazo condicional que dependerá del esta
booleano del control “Stop”. Dentro del lazo condicional conectaremos el control
numérico a la variable local del indicador numérico “Meter”.
LabView
Block Diagram:
32
LabView
PRÁCTICA 5:
Ejemplo Boolean, Char y Case
Structure
RECURSOS: Código LabView
LabView
Boolean, Char y Case Structure:
Diseñar un VI que permita desde un control booleano poner en un indicador numérico
dos posibles valores (0 ó 10) y en un indicador de texto (VERDADERO - FALSO). Usar la
estructura While Loop.
En este ejercicio aprendemos a realizar una interfaz con control booleano en indicador
numérico y booleano. En el panel frontal usaremos un control booleano para generar
dos posibles valores numéricos que veremos en el visualizador numérico, usaremos
también un indicador de texto, además el estado booleano del botón se verá en un led
indicador booleano. Además usaremos un control Boolean para dar stop al programa.
Front Panel:
LabView
Front Panel:
CASE
STRUCTURE
LabView
Block Diagram:
Usaremos un “While Loop” como una lazo condicional que dependerá del esta
booleano del control “Stop”. Dentro del lazo condicional usaremos un selector
condicional “Case Structure”, este selector condicional estará controlado por un botón
booleano. En la condición verdadera se asigna el texto “VERDADERO” en el indicador
de texto y además el valor numérico de 10 en el NumIndicator. En la condición falsa se
asigna el texto “FALSO” en el indicador de texto y además el valor numérico de 0 en el
NumIndicator.
LabView
Block Diagram:
37
LabView
PRÁCTICA 6:
Ejemplo Numeric,
Comparison, Boolean y Case
Structure
RECURSOS: Código LabView
LabView
Boolean, Char y Case Structure:
Diseñar un VI que permita desde el panel frontal ingresar un valor numérico de 8 bits sin
signo con un slide vertical y que permita visualizar este valor incrementado en 5
unidades en un Meter y en un indicador numérico, si el valor incrementado es mayor o
igual a 15 se activará un indicador booleano y en un Gauge se mostrará el valor de 100,
caso contrario 300. Si el valor incrementado en 5 unidades es menor o igual a 20
encenderá otro indicador booleano. Usar la estructura While Loop.
En este ejercicio aprendemos a realizar una interfaz con un control numérico y además
indicadores numéricos y booleano. En el panel frontal usaremos un control numérico
para generar un valor numérico que se validará con operadores relacionales para activar
los indicadores booleanos, se podrán usar operadores aritméticos para representar
valores en los indicadores numéricos. Además usaremos un control booleano para dar
stop al programa.
Front Panel:
LabView
Front Panel:
CASE
STRUCTURE
LabView
Block Diagram:
En el diagrama de bloques usaremos un “While Loop” como una lazo condicional que
dependerá del esta booleano del control “Stop”. Usaremos el operador aritmético de
suma para incrementar en dos unidades el valor del Slide cuyo resultado se mostrará
en “Meter” y además se comparará para con el resultado booleano controlar el “Case
Structure”, en cuyo caso falso se asignará el valor de 300 en el indicador numércio
“nombre” y en caso falso el valor de 100. Dentro del lazo condicional conectaremos el
control numérico a la variable local del indicador numérico “Meter”.
LabView
Block Diagram:
42
LabView
PRÁCTICA 7:
Ejemplo Envío de datos por
comunicación serial
RECURSOS: Código LabView Código PIC
LabView
Envío de datos por comunicación serial:
Programar el módulo MEI&T04 para que envíe por puerto serial el conteo ascendente de
una variable de 8 bits (0-255), el envío se realizará cada 500 milisegundos. Monitorear el
dato recibido en código ASCII por el AccesPort.
Para programar el microcontrolador debemos saber configurar los registros, entre los
cuales destacan:
- Registro TRIS: Este registro de 8 bits nos permite configurar los puertos (A,B,C,E) del
microcontrolador pin a pin como entrada o salida.
- Registro ANSEL y ANSELH: Nos permite configurar como entradas digitales ó analógicas
de los pines que poseen la habilidad de digitalizar entradas analógicas.
- Registro PORT: Nos permite obtener el estado lógico booleano de las entradas
digitales, sin embargo a los pines que son salido nos permite poner un estado lógico
booleano.
Pasos para configurar el uc:
44
LabView
Pasos para configurar el uc:
MICROCONTROLADOR
PUERTOS:
TRISX=(7,6,5,4,3,2,1,0)
X=A,B,C,E.
1->In. 0->Out.
ENTRADAS:
ANSEL=(_,_,_,4,3,2,1,0)
ANSELH=(_,_,13,12,11,10
,9,8)
1->Anlg. 0->Dig.
SALIDAS:
PORTX=(7,6,5,4,3,2,1,0)
1, 0.
45
LabView
Hardware:
INTERFAZ USB
UC 16F886
USB
46
LabView
Código de Programación:
program ejemplo2
' Declarations section
'1)----------SYMBOL.----------
SYMBOL LEDS=PORTB
'2)-----CREAR Y SET VARIABLES-------
DIM CNT AS BYTE
DIM txt as string[3]
CNT=0
'3)------CONFIG IN (1)- OUT (0)------
TRISA=%00000001 '<7,6,5,4,3,2,1,0>
TRISB=%00000000 'Leds -> OUT
TRISC=%00000000 '<7,6,5,4,3,2,1,0>
TRISE=%00000000 'RE3 -> IN BOTONERA
'4)--CONFIG IN: DIG (0)- ANALOG (1)---
ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0>
'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5
ANSELH= %00000000
'<_,_,An13,An12,An11,An10,An9,An8>
'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0,
An13->B5
'5)--- COMUNICACIÓN-------
UART1_Init(9600)
' Initialize UART module at 9600 bps
Delay_ms(50)
main:
' Main program
while(1)
inc(CNT)
LEDS=CNT
ByteToStr(CNT, txt)
UART1_Write_text(txt)' Dato
delay_ms(500)
wend
end.
47
LabView
Cargar el Firmware:
1.- Conectamos el programador de microcontroladores al módulo de desarrollo
(tarjeta programable).
2.- Conectamos el hardware programador al computador y Haciendo uso del software
del programador de microcontroladores, luego importamos el archivo “.HEX”.
3.- Procedemos a programar el módulo de desarrollo.
Pruebas Hardware:
48
LabView
Es importante que luego de la programación del código con comunicación serial
UART debemos cargar el código en el módulo de entrenamiento. Una buena
práctica de comprobación de que el código que usa comunicación serial que está en
le módulo de entrenamiento funciona, es conectarla al computador y verificar la
comunicación serial con tramas de comunicación, para lo cual usaremos en
AccesPort que es un Hiperterminal.
Pruebas Hardware:
49
LabView
ACCES PORT – HIPERTERMINAL
USB
USB a Serial.
50
LabView
PRÁCTICA 8:
Ejemplo Recepción de Datos
por Comunicación Serial
RECURSOS: Código LabView Código PIC
LabView
Recepción de Datos por Comunicación Serial:
Crear un VI en Labview que permita monitorear el dato recibido en código ASCII por el
AccesPort.
Front Panel:
LabView
Block Diagram:
Pruebas Software:
53
LabView
De igual forma que el hardware usaremos el Acces port para verificar las tramas
de comunicación con el Software Labview, pero debido a que ambos software
están en el computador debemos usar el Virtual Serial Por Emulator para crear
dos puertos de comunicación serial virtual y hacer las pruebas de la comunicación
serial.
Pruebas Software:
54
LabView
VIRTUAL
SERIAL
PORT
VIRTUAL
SERIAL
PORT
ACCES PORT – HIPERTERMINAL
VIRTUAL SERIAL PORT EMULATOR
LABVIEW
OJO: USB2 y USB3 virtuales deben
Ser diferentes a USB1 real.
Pruebas Hardware y Software:
55
LabView
Finalmente luego de las pruebas independientes tanto de hardware y software,
conectamos con seguridad el hardware del módulo de entrenamiento MEI&T04
con labview, haciendo para ello la conexión con el puerto USB el computador y el
micro USB del módulo de entrenamiento.
Pruebas Hardware y Software:
56
LabView
USB
OJO: USB1 real es
del módulo.
57
LabView
PRÁCTICA 9:
Ejemplo Manejo de Led Serial
RECURSOS: Código LabView Código PIC
58
LabView
Hardware:
INTERFAZ USB
UC 16F886
USB
59
LabView
Código de Programación:
program led_serial
'----------SYMBOL.----------
SYMBOL LED=PORTB
SYMBOL BTN=PORTE.3
'-----CREAR VARIABLES-------
main: '++++++++++++++++++++++++++++
'------CONFIG IN (1)- OUT (0)------
TRISA=%00000000
TRISB=%00000000 'Leds -> OUT
TRISC=%10000000
TRISE=%00001000 'RE3 -> IN BOTONERA
'--CONFIG IN: DIG (0)- ANALOG (1)---
ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0>
'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5
ANSELH= %00000000
'<_,_,An13,An12,An11,An10,An9,An8>
'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0,
An13->B5
'-----SET DE VARIABLES----
'------COMUNICACION SERIAL----
UART1_Init(9600)
PORTB=%10101010
DELAY_MS(200)
PORTB=%01010101
DELAY_MS(200)
while (1)
if BTN =0 THEN
WHILE (BTN=0)
UART1_Write(1)
LED=255
WEND
UART1_Write(0)
LED=0
END IF
wend
end.
60
LabView
Cargar el Firmware:
1.- Conectamos el programador de microcontroladores al módulo de desarrollo
(tarjeta programable).
2.- Conectamos el hardware programador al computador y Haciendo uso del software
del programador de microcontroladores, luego importamos el archivo “.HEX”.
3.- Procedemos a programar el módulo de desarrollo.
Pruebas Hardware:
61
LabView
ACCES PORT – HIPERTERMINAL
USB
USB a Serial.
LabView
Front Panel:
Block Diagram:
Pruebas Software:
64
LabView
VIRTUAL
SERIAL
PORT
VIRTUAL
SERIAL
PORT
ACCES PORT – HIPERTERMINAL
VIRTUAL SERIAL PORT EMULATOR
LABVIEW
OJO: USB2 y USB3 virtuales deben
Ser diferentes a USB1 real.
Pruebas Hardware y Software:
65
LabView
USB

⭐⭐⭐⭐⭐ #Microcontroladores y #LabView

  • 1.
  • 2.
  • 3.
    3 LabView MICROCONTROLADOR - UC: Elcorazón de todo módulo programable es el microcontrolador (el PIC16F886 para los ejemplos que mostraremos), por tanto debemos considerar lo importante de conocer las pines de conexión del microcontrolador: - Programación serial ICSP: MCLR (Pin1), ICSPDAT (Pin28), ICSPCLK (Pin27), VSS (GND), VDD (Vcc). - Entradas analógicas: AN0, AN1, AN2, AN3, AN4, AN8, AN9, AN10, AN11, AN12, AN13. - Modulación de Ancho de Pulso (PWM): CCP1 y CCP2. - Comunicación serial: TX y RX.
  • 4.
    4 LabView MICROCONTROLADOR - UC: ICSPProgramación Serial en Circuito. PWM Entradas Analógicas Com. Serial GND VCC Master Clear
  • 5.
    5 LabView Pasos para configurarel uc: Para programar el microcontrolador debemos saber configurar los registros, entre los cuales destacan: - Registro TRIS: Este registro de 8 bits nos permite configurar los puertos (A,B,C,E) del microcontrolador pin a pin como entrada o salida. - Registro ANSEL y ANSELH: Nos permite configurar como entradas digitales ó analógicas de los pines que poseen la habilidad de digitalizar entradas analógicas. - Registro PORT: Nos permite obtener el estado lógico booleano de las entradas digitales, sin embargo a los pines que son salido nos permite poner un estado lógico booleano.
  • 6.
    6 LabView Pasos para configurarel uc: MICROCONTROLADOR PUERTOS: TRISX=(7,6,5,4,3,2,1,0) X=A,B,C,E. 1->In. 0->Out. ENTRADAS: ANSEL=(_,_,_,4,3,2,1,0) ANSELH=(_,_,13,12,11,10 ,9,8) 1->Anlg. 0->Dig. SALIDAS: PORTX=(7,6,5,4,3,2,1,0) 1, 0.
  • 7.
    7 LabView Pasos para programar: Sedesarrolla el algoritmo de programación en el computador en un ID o software de desarrollo, para microcontroladores. Compilar código realizado y generamos el archivo “.HEX”. Programar el microcontrolador importando el archivo “.HEX”.
  • 8.
  • 9.
  • 10.
    VISA Configure SerialPort: 10 LabView
  • 11.
  • 12.
    VISA Bytes atSerial Port: 12 LabView
  • 13.
    13 LabView PRÁCTICA 1: Uso deBotón y Leds RECURSOS: Código PIC
  • 14.
    14 LabView Uso de Botóny Leds: PIC16F886 Leds PuertoBBotón, E.3 BOTONERA LEDS Esta práctica nos enseñará el uso del botón para controlar el encendido y apagado de los leds. Usaremos el botón para controlar el cambio de estado lógico de las salidas que encienden o apagan los leds, adicional a ello deberá tener un anti rebote que evite cambiar incontrolablemente el estado de la salida digital. Recordar que los leds están conectados por hardware al puerto b.
  • 15.
    15 LabView Código de Programación: 1-Creamos symbol de el botón usado, el mismo que está conectado por hardware al puerto E.3. 2- Empezamos configurando el registro TRISB como salida, además como entrada el registro TRISE.3. 3- Usamos el registro TRISB para asignar valor booleanos a las salidas del puerto B donde están conectados los leds por hardware. 4- Usamos la condición IF para validar el cambio de estado del botón, adicional a ello usaremos el bucle WHILE para programar el anti rebote.
  • 16.
    16 LabView Código de Programación: programejerccio1 SYMBOL BOTON=PORTE.3 DIM VALOR AS BYTE MAIN: '----------------CONFIG IN-OUT---------------- ' Registro PUERTO A TRISA = 0X00 '%00000000=0' PORTA -> out ' Registro PUERTO B TRISB = 0X00 ' PORTB -> out para los leds ' Registro PUERTO C TRISC = 0X00 ' PORTB -> out para los leds ' Registro PUERTO E TRISE = %00001000 ' PORTE.3 <-in '----------------CONFIG IN -> DIG ó ANLG----- ' Seleccion de registro analogico. 1 analogico, 0 digitales ANSEL = 0X00 ' AN<7:0> AN(_,_,_,4,3,2,1,0) ANSELH = 0X00 ' AN<13:8> AN(_,13,12,11,10,9,8) '---------------- SETEAR LAS SALIDAS--------- PORTB=%10101010 delay_ms(300) PORTB=%01010101 delay_ms(300) PORTB=0 '-----------------SET DE VARIABLES----------- VALOR=0 WHILE(1) IF(BOTON =0) THEN 'SI PRESIONO EL BOTON MCLR PORTB= NOT PORTB WHILE(BOTON=0)WEND 'ESPERO QUE SUELTE EL BOTON MCLR END IF WEND END.
  • 17.
    17 LabView Cargar el Firmware: 1.-Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta programable). 2.- Conectamos el hardware programador al computador y Haciendo uso del software del programador de microcontroladores, luego importamos el archivo “.HEX”. 3.- Procedemos a programar el módulo de desarrollo.
  • 18.
    18 LabView PRÁCTICA 2: Uso Contadory Leds RECURSOS: Código PIC
  • 19.
    LabView Uso Contador yLeds: Esta práctica nos enseñará el uso de variables para controlar la información binaria que se muestra en los leds. Usaremos la variable como contador y para incrementar pausadamente usaremos un delay de 200 ms. Recordar que los leds están conectados por hardware al puerto b. PIC16F886 Leds PuertoBBotón, E.3 LEDS=CONTADOR+1
  • 20.
    20 LabView Código de Programación: 1-Creamos symbol para el puerto b, que es donde están conectados los leds por hardware. 2- Creamos una variable tipo Byte llamada CNT. 3- Empezamos configurando el registro TRISB como salida. 4- Usaremos el symbol LED para asignar la varibale a las salidas de leds. program leds '----------SYMBOL.---------- SYMBOL LED=PORTB SYMBOL BTN=PORTE.3 '-----CREAR VARIABLES------- DIM CNT AS BYTE main: '------CONFIG IN (1)- OUT (0)------ TRISA=%00000000 TRISB=%00000000 'Leds -> OUT TRISC=%00000000 TRISE=%00001000 'RE3 -> IN BOTONERA '--CONFIG IN: DIG (0)- ANALOG (1)--- ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0> 'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5 ANSELH= %00000000 '<_,_,An13,An12,An11,An10,An9,An8> 'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0, An13->B5 '-----SET DE VARIABLES---- CNT=0 while (1) LED=CNT INC(CNT) DELAY_MS(200) wend end.
  • 21.
    21 LabView Cargar el Firmware: 1.-Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta programable). 2.- Conectamos el hardware programador al computador y Haciendo uso del software del programador de microcontroladores, luego importamos el archivo “.HEX”. 3.- Procedemos a programar el módulo de desarrollo.
  • 22.
    22 LabView PRÁCTICA 3: Uso Botón,Contador y Leds RECURSOS: Código PIC
  • 23.
    LabView Uso Contador yLeds: Esta práctica nos enseñará el uso del botón para manipular una variable, para controlar el encendido de los leds. Usaremos el botón para incrementar la variable usándola así como un contador. Recordar que los leds están conectados por hardware al puerto b. Leds PuertoBBotón, E.3 PIC16F886 BOTONERA LEDS=CONTADOR+1
  • 24.
    24 LabView Código de Programación: 1-Creamos un symbol de el botón usado, el mismo que está conectado por hardware al puerto E.3. 2- Creamos un symbol para el puerto b, que es donde están conectados los leds por hardware. 3- Creamos una variable tipo Byte llamada CNT. 4- Empezamos configurando el registro TRISB como salida, además como entrada el registro TRISE.3. 5- La condición IF nos permite validar el cambio de estado del botón, adicional a ello usaremos el bucle WHILE para programar el anti rebote y evitar así que incremente la variable más de una vez. 6- Usamos la función INC para incrementar la variable en una unidad. 7- El registro TRISB nos permite asignar un valor a las salidas del puerto B donde están conectados los leds por hardware.
  • 25.
    25 LabView Código de Programación: programleds '----------SYMBOL.---------- SYMBOL LED=PORTB SYMBOL BOTON=PORTE.3 '-----CREAR VARIABLES------- DIM CNT,VALOR AS BYTE main: '------CONFIG IN (1)- OUT (0)------ TRISA=%00000000 TRISB=%00000000 'Leds -> OUT TRISC=%00000000 TRISE=%00001000 'RE3 -> IN BOTONERA '--CONFIG IN: DIG (0)- ANALOG (1)--- ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0> 'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5 ANSELH= %00000000 '<_,_,An13,An12,An11,An10,An9,An8> 'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0, An13->B5 '-----SET DE VARIABLES---- CNT=0 while (1) IF(BOTON =0) THEN 'SI PRESIONO EL BOTON MCLR INC(VALOR) 'INCREMENTO VALOR=VALOR+1 PORTB=VALOR 'ENVIO EL VALOR DE LA VARIABLE A LOS LED-PORTB WHILE(BOTON=0)WEND 'ESPERO QUE SUELTE EL BOTON MCLR END IF wend end.
  • 26.
    26 LabView Cargar el Firmware: 1.-Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta programable). 2.- Conectamos el hardware programador al computador y Haciendo uso del software del programador de microcontroladores, luego importamos el archivo “.HEX”. 3.- Procedemos a programar el módulo de desarrollo.
  • 27.
  • 28.
    LabView Slide-Meter: Diseñar un VIque permita desde el panel frontal ingresar un valor numérico de 8 bits sin signo con un slide horizontal y que permita visualizar este valor en un Meter. En este ejercicio aprendemos a realizar una interfaz. En el panel frontal usaremos un control numérico para generar un valor numérico y también un indicador numérico para visualizar dicho valor. Además usaremos un control booleano para dar stop al programa. Front Panel:
  • 29.
  • 30.
    LabView Block Diagram: En eldiagrama de bloques inicializaremos el indicador numérico con una constante cero. Usaremos un “While Loop” como una lazo condicional que dependerá del esta booleano del control “Stop”. Dentro del lazo condicional conectaremos el control numérico a la variable local del indicador numérico “Meter”.
  • 31.
  • 32.
    32 LabView PRÁCTICA 5: Ejemplo Boolean,Char y Case Structure RECURSOS: Código LabView
  • 33.
    LabView Boolean, Char yCase Structure: Diseñar un VI que permita desde un control booleano poner en un indicador numérico dos posibles valores (0 ó 10) y en un indicador de texto (VERDADERO - FALSO). Usar la estructura While Loop. En este ejercicio aprendemos a realizar una interfaz con control booleano en indicador numérico y booleano. En el panel frontal usaremos un control booleano para generar dos posibles valores numéricos que veremos en el visualizador numérico, usaremos también un indicador de texto, además el estado booleano del botón se verá en un led indicador booleano. Además usaremos un control Boolean para dar stop al programa. Front Panel:
  • 34.
  • 35.
    LabView Block Diagram: Usaremos un“While Loop” como una lazo condicional que dependerá del esta booleano del control “Stop”. Dentro del lazo condicional usaremos un selector condicional “Case Structure”, este selector condicional estará controlado por un botón booleano. En la condición verdadera se asigna el texto “VERDADERO” en el indicador de texto y además el valor numérico de 10 en el NumIndicator. En la condición falsa se asigna el texto “FALSO” en el indicador de texto y además el valor numérico de 0 en el NumIndicator.
  • 36.
  • 37.
    37 LabView PRÁCTICA 6: Ejemplo Numeric, Comparison,Boolean y Case Structure RECURSOS: Código LabView
  • 38.
    LabView Boolean, Char yCase Structure: Diseñar un VI que permita desde el panel frontal ingresar un valor numérico de 8 bits sin signo con un slide vertical y que permita visualizar este valor incrementado en 5 unidades en un Meter y en un indicador numérico, si el valor incrementado es mayor o igual a 15 se activará un indicador booleano y en un Gauge se mostrará el valor de 100, caso contrario 300. Si el valor incrementado en 5 unidades es menor o igual a 20 encenderá otro indicador booleano. Usar la estructura While Loop. En este ejercicio aprendemos a realizar una interfaz con un control numérico y además indicadores numéricos y booleano. En el panel frontal usaremos un control numérico para generar un valor numérico que se validará con operadores relacionales para activar los indicadores booleanos, se podrán usar operadores aritméticos para representar valores en los indicadores numéricos. Además usaremos un control booleano para dar stop al programa. Front Panel:
  • 39.
  • 40.
    LabView Block Diagram: En eldiagrama de bloques usaremos un “While Loop” como una lazo condicional que dependerá del esta booleano del control “Stop”. Usaremos el operador aritmético de suma para incrementar en dos unidades el valor del Slide cuyo resultado se mostrará en “Meter” y además se comparará para con el resultado booleano controlar el “Case Structure”, en cuyo caso falso se asignará el valor de 300 en el indicador numércio “nombre” y en caso falso el valor de 100. Dentro del lazo condicional conectaremos el control numérico a la variable local del indicador numérico “Meter”.
  • 41.
  • 42.
    42 LabView PRÁCTICA 7: Ejemplo Envíode datos por comunicación serial RECURSOS: Código LabView Código PIC
  • 43.
    LabView Envío de datospor comunicación serial: Programar el módulo MEI&T04 para que envíe por puerto serial el conteo ascendente de una variable de 8 bits (0-255), el envío se realizará cada 500 milisegundos. Monitorear el dato recibido en código ASCII por el AccesPort. Para programar el microcontrolador debemos saber configurar los registros, entre los cuales destacan: - Registro TRIS: Este registro de 8 bits nos permite configurar los puertos (A,B,C,E) del microcontrolador pin a pin como entrada o salida. - Registro ANSEL y ANSELH: Nos permite configurar como entradas digitales ó analógicas de los pines que poseen la habilidad de digitalizar entradas analógicas. - Registro PORT: Nos permite obtener el estado lógico booleano de las entradas digitales, sin embargo a los pines que son salido nos permite poner un estado lógico booleano. Pasos para configurar el uc:
  • 44.
    44 LabView Pasos para configurarel uc: MICROCONTROLADOR PUERTOS: TRISX=(7,6,5,4,3,2,1,0) X=A,B,C,E. 1->In. 0->Out. ENTRADAS: ANSEL=(_,_,_,4,3,2,1,0) ANSELH=(_,_,13,12,11,10 ,9,8) 1->Anlg. 0->Dig. SALIDAS: PORTX=(7,6,5,4,3,2,1,0) 1, 0.
  • 45.
  • 46.
    46 LabView Código de Programación: programejemplo2 ' Declarations section '1)----------SYMBOL.---------- SYMBOL LEDS=PORTB '2)-----CREAR Y SET VARIABLES------- DIM CNT AS BYTE DIM txt as string[3] CNT=0 '3)------CONFIG IN (1)- OUT (0)------ TRISA=%00000001 '<7,6,5,4,3,2,1,0> TRISB=%00000000 'Leds -> OUT TRISC=%00000000 '<7,6,5,4,3,2,1,0> TRISE=%00000000 'RE3 -> IN BOTONERA '4)--CONFIG IN: DIG (0)- ANALOG (1)--- ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0> 'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5 ANSELH= %00000000 '<_,_,An13,An12,An11,An10,An9,An8> 'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0, An13->B5 '5)--- COMUNICACIÓN------- UART1_Init(9600) ' Initialize UART module at 9600 bps Delay_ms(50) main: ' Main program while(1) inc(CNT) LEDS=CNT ByteToStr(CNT, txt) UART1_Write_text(txt)' Dato delay_ms(500) wend end.
  • 47.
    47 LabView Cargar el Firmware: 1.-Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta programable). 2.- Conectamos el hardware programador al computador y Haciendo uso del software del programador de microcontroladores, luego importamos el archivo “.HEX”. 3.- Procedemos a programar el módulo de desarrollo.
  • 48.
    Pruebas Hardware: 48 LabView Es importanteque luego de la programación del código con comunicación serial UART debemos cargar el código en el módulo de entrenamiento. Una buena práctica de comprobación de que el código que usa comunicación serial que está en le módulo de entrenamiento funciona, es conectarla al computador y verificar la comunicación serial con tramas de comunicación, para lo cual usaremos en AccesPort que es un Hiperterminal.
  • 49.
    Pruebas Hardware: 49 LabView ACCES PORT– HIPERTERMINAL USB USB a Serial.
  • 50.
    50 LabView PRÁCTICA 8: Ejemplo Recepciónde Datos por Comunicación Serial RECURSOS: Código LabView Código PIC
  • 51.
    LabView Recepción de Datospor Comunicación Serial: Crear un VI en Labview que permita monitorear el dato recibido en código ASCII por el AccesPort. Front Panel:
  • 52.
  • 53.
    Pruebas Software: 53 LabView De igualforma que el hardware usaremos el Acces port para verificar las tramas de comunicación con el Software Labview, pero debido a que ambos software están en el computador debemos usar el Virtual Serial Por Emulator para crear dos puertos de comunicación serial virtual y hacer las pruebas de la comunicación serial.
  • 54.
    Pruebas Software: 54 LabView VIRTUAL SERIAL PORT VIRTUAL SERIAL PORT ACCES PORT– HIPERTERMINAL VIRTUAL SERIAL PORT EMULATOR LABVIEW OJO: USB2 y USB3 virtuales deben Ser diferentes a USB1 real.
  • 55.
    Pruebas Hardware ySoftware: 55 LabView Finalmente luego de las pruebas independientes tanto de hardware y software, conectamos con seguridad el hardware del módulo de entrenamiento MEI&T04 con labview, haciendo para ello la conexión con el puerto USB el computador y el micro USB del módulo de entrenamiento.
  • 56.
    Pruebas Hardware ySoftware: 56 LabView USB OJO: USB1 real es del módulo.
  • 57.
    57 LabView PRÁCTICA 9: Ejemplo Manejode Led Serial RECURSOS: Código LabView Código PIC
  • 58.
  • 59.
    59 LabView Código de Programación: programled_serial '----------SYMBOL.---------- SYMBOL LED=PORTB SYMBOL BTN=PORTE.3 '-----CREAR VARIABLES------- main: '++++++++++++++++++++++++++++ '------CONFIG IN (1)- OUT (0)------ TRISA=%00000000 TRISB=%00000000 'Leds -> OUT TRISC=%10000000 TRISE=%00001000 'RE3 -> IN BOTONERA '--CONFIG IN: DIG (0)- ANALOG (1)--- ANSEL= %00000000 '<_,_,_,An4,An3,An2,An1,An0> 'An0->A0, An1->A1, An2->A2, An3->A3, An4->A5 ANSELH= %00000000 '<_,_,An13,An12,An11,An10,An9,An8> 'An8->B2, An9->B3, An10->B1, An11->B4, An12->B0, An13->B5 '-----SET DE VARIABLES---- '------COMUNICACION SERIAL---- UART1_Init(9600) PORTB=%10101010 DELAY_MS(200) PORTB=%01010101 DELAY_MS(200) while (1) if BTN =0 THEN WHILE (BTN=0) UART1_Write(1) LED=255 WEND UART1_Write(0) LED=0 END IF wend end.
  • 60.
    60 LabView Cargar el Firmware: 1.-Conectamos el programador de microcontroladores al módulo de desarrollo (tarjeta programable). 2.- Conectamos el hardware programador al computador y Haciendo uso del software del programador de microcontroladores, luego importamos el archivo “.HEX”. 3.- Procedemos a programar el módulo de desarrollo.
  • 61.
    Pruebas Hardware: 61 LabView ACCES PORT– HIPERTERMINAL USB USB a Serial.
  • 62.
  • 63.
  • 64.
    Pruebas Software: 64 LabView VIRTUAL SERIAL PORT VIRTUAL SERIAL PORT ACCES PORT– HIPERTERMINAL VIRTUAL SERIAL PORT EMULATOR LABVIEW OJO: USB2 y USB3 virtuales deben Ser diferentes a USB1 real.
  • 65.
    Pruebas Hardware ySoftware: 65 LabView USB