You are on page 1of 201

metaconta@gmail.

com

11/03/2009

metaconta@gmail.com

11/03/2009

NDICE

Presentacin 3 Visual C++ - 6 Visual Basic 78 Fotos 186 Vdeos 191 Libros 193 Otros manuales 195 Enlaces de inters 197 Versin 199 Contacto 200 Autor - 201

metaconta@gmail.com

11/03/2009

PRESENTACIN

metaconta@gmail.com

11/03/2009

PRESENTACIN

Aqu presentamos la parte principal del manual de Visual C# adaptado al Visual C++ y Visual Basic. Son tantas las preguntas de por qu no uno de VC++ y/o VB que haga lo mismo que al final me dio por hacerlo. Si eres novel se recomienda primero mirar el manual de Visual C# que puedes descargar aqu o aqu. Dejar claro que en el pequeo manual slo se utilizar la parte importante que es la comunicacin sobre el RS232 del puerto serie. Los extras que viene en el manual de Visual C# no se incluye aqu.
4

metaconta@gmail.com

11/03/2009

PRESENTACIN

Si no conoces el manual de Visual C# que es el tema principal, encontrars un resumen de su contenido aqu: En extras. - Acerca de - Enfoque del botn. - Redimensionar formulario. - Manual del PicRS232. - Contraer cdigo. - Icono. - Notificacin del Icono. - Enlaces Web. - Opacidad. - Instalador Create Install Free.

metaconta@gmail.com

11/03/2009

Introduccin

VISUAL C++

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL C++

De entrada vamos a descargar el compilador (gratuito) Visual C++ Express desde la Web oficial http://www.microsoft.com/exp ress/download/ Precisamente vamos a descargar la versin en espaol y si es posible instale los Service Pack ya que en esa actualizacin se han corregidos errores y mejor rendimiento. Pulsa Donwload para su descarga.

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL C++

metaconta@gmail.com

11/03/2009

REGISTRO DEL VISUAL C++


Llegars un momento en que te dice que te registres. Si no te registras slo funcionar el Visual C++ 30 das y despus si quieres usarlo siempre te pedir la clave del registro. Registrarse es gratuito y no tendrs que pagar ninguna cantidad de dinero, slo es para que lo puedas usar siempre. Se recomienda guardar la clave que te llega por e-mail.

metaconta@gmail.com

11/03/2009

VISUAL C++
En este manual se ha trabajado en su momento con: Windows XP SP3 Visual C++ 2008 Express FrameWork 3.5 SP1

10

metaconta@gmail.com

11/03/2009

11

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

12

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ
El objetivo principal de esta aplicacin es hacer una interfaz de Visual C++ capaz de comunicarse con un microcontrolador PIC16F84A al igual que lo hace el HyperTerminalde Windows o el Minicom de Linux con su propio diseo y control. Vamos a dar el primer paso del diseo de la interfaz.

13

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ
1) Introducir el nombre de nuestro programa en el formulario. 2) Centrar el formulario en el centro de la pantalla de nuestro monitor al ejecutar nuestra aplicacin o programa. 3) Introducir 5 botones en el formulario en la coordenada indicada. 4) Orden de tabulacin de los botones. 5) Depurar nuestra aplicacin.

14

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Crea un proyecto nuevo y llmalo PicRS232cpp como indica en la imagen.

15

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

16

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Pincha una vez en el centro del formulario o donde quieras. En Propiedades, pon el valor de la propiedad PicRS232cpp (sin las dobles comillas) ya que es el nombre del programa principal.
17

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Para centrar el formulario, el nombre de la propiedad, selecciona el valor de la propiedad CenterScreen. Al depurar el programa siempre se visualiza el formulario en el centro de la pantalla o nuestro monitor.
18

metaconta@gmail.com

11/03/2009

PROPIEDADES

En el cuadro de propiedades de la derecha, es un breve resumen de lo que hemos hecho menos la Propiedad Size, que es el que debemos tener si no hemos tocado nada al principio. Ahora en adelante sabr interpretar este cuadro, y podemos cambiar las propiedades ms rpidamente de cualquier objeto.

Propiedad Text StartPosition Size

Cambia a PicRS232cpp CenterScreen 300; 300

OBJETIVO DE LA INTERFAZ
19

metaconta@gmail.com

11/03/2009

PROPIEDADES

Introduces el botn llamado button1 en el formulario. Ahora toca cambiar las propiedades que se describe en el cuadro a continuacin para el button1.

Propiedad Text (Name) Location

Cambia a t Button_t 109; 38

OBJETIVO DE LA INTERFAZ
20

metaconta@gmail.com

11/03/2009

PROPIEDADES

Lo mismo con el botn b.

Propiedad Text (Name) Location

Cambia a b Button_b 109; 67

OBJETIVO DE LA INTERFAZ
21

metaconta@gmail.com

11/03/2009

PROPIEDADES

Lo mismo con el botn a.

Propiedad Text (Name) Location

Cambia a a Button_a 28; 67

OBJETIVO DE LA INTERFAZ
22

metaconta@gmail.com

11/03/2009

PROPIEDADES

Lo mismo con el botn l. (Ele minscula).

Propiedad Text (Name) Location

Cambia a l Button_l 190; 67

OBJETIVO DE LA INTERFAZ
23

metaconta@gmail.com

11/03/2009

PROPIEDADES

Ahora con Button5 de la tecla Espacio cambiaremos el color del botn y la fuente de letras en negrita como indica en el cuadro. Te lo dice directamente pero hay otra forma de hacerlo ms cmodo.

Propiedad BackColor Font.Bolt Text (Name)

Cambia a 255; 128; 0 True Espacio Button_Espacio

Location

190; 96

OBJETIVO DE LA INTERFAZ
24

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Vamos a ver algunas formas sobre orden de tabulacin de los botones. El Nombre de la propiedad TabIndex con valor 0, significa que es el primero en orden de tabulacin, el 1 el segundo, el 2 el tercero as sucesivamente.
25

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Tambin hay otro mtodo ms cmodo en seleccionar el orden de tabulacin. Accede al VerOrden de tabulacin.

26

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

27

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Directamente en el formulario puedes ver el orden que tiene la tabulacin. Puedes cambiarla pulsando con el ratn el cuadrado azul con su nmero correspondiente.

28

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

29

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Guarde el proyecto completo y luego pulse F5 o la flecha verde para iniciar la depuracin. Debemos tener algo similar como muestra en la imagen de la derecha. Puedes pulsar los botones que notars que no hace nada ya que no hemos programado ninguna accin sobre ellas. Ahora cierra el programa con la X como cualquier otro programa. Ya hemos cumplido el objetivo de esta parte. Ahora nos centramos a explicar un poco el cdigo del PIC16F84A y as entender cmo recibe los datos que Visual C++ enva por el puerto serie.
30

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

31

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


Para entender los datos que enviamos desde el Visual C++, debemos entender el cdigo fuente del PIC 16F84A, en este caso en ensamblador. Los datos que enviamos desde el Visual C++ es en hexadecimal en lo cual conviene ver la tabla ASCII que puedes ver en el APNDICE G del libro www.pic16f84a.org.

32

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


Si no tienes el libro puedes ver el cdigo ASCII en las pginas siguientes y el que vamos utilizar es la tabla ASCII 1. La tabla ASCII 2 es ms extendida, aunque en este manual no lo vamos a utilizar, es bueno tenerlo como referencia. ASCII, pronunciado ski significa del Ingls American Standard CodeforInformationInterchange o lo que es lo mismo Cdigo Estadounidense Estndar para el Intercambio de Informacin.

33

metaconta@gmail.com

11/03/2009

CDIGO ASCII

34

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


El ejemplo a utilizar es el archivo RS232_11.asm (tambin vale el RS232_11b.asm). Puedes obtenerlo desde el CD-ROM que acompaa el libro como tambin puedes descargarlo en su Web pinchando con el ratn aqu. La clave para abrir todos los archivos de esta Web corresponden con las iniciales del Ciclo Formativo de Grado Superior Desarrollo de Productos Electrnicos, uno de los estudios oficiales donde en Espaa se pueden estudiar los temas tratados en esta Web: D.P.E.
35

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

El esquema elctrico que vamos a usar es del captulo 20-15 del libro www.pic16f84a.org que se muestra en la pgina siguiente.

36

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Vamos a usar el cdigo del libro del archivo RS232_11.asm para poder entender lo que estamos haciendo. Slo explicar la parte fundamental para entender la parte de Visual C++ al enviar los datos. Si quieres saber la explicacin completa de estos temas del cdigo ASM, est bien detallada en el libro www.pic16f84a.org
37

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Puedes ver el cdigo ASM a partir de la pgina 111 del manual sobre Visual C#.

38

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Se preguntar el motivo de poner esas letras en los botones. Por qu esas letras? El programa del microcontrolador PIC16F84A tiene configuradas esas cuatro letras que significan lo que muestra en el cuadro de la derecha. Desde el cdigo fuente se puede modificar las letras o nmeros que quieras.

TECLA t b a l (Espacio)

MOVIMIENTO Adelante Atrs Izquierda Derecha Parada

39

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Mirando la tabla ASCII 1 de este manual o el APNDICE G del libro, debemos tener presente cual es cual expresado en hexadecimal. Por ejemplo, la letra t minscula en hexadecimal es el 74.
40

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

En el Visual C++ vamos a usar los caracteres hexadecimales que muestra en el cuadro de la derecha para enviar datos al PIC16F84A. No hace falta que mires la tabla ascii ya que precisamente vamos a usar la indicada aqu, excepto, que desees usar otros caracteres.

Hex 74 62 61 6C 20

Carcter t b a l Espacio

41

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

42

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Vamos a introducir los primeros cdigos C++ en los botones y hacer funcionar a la primera apagar y encender los Led al mismo tiempo el mensaje que muestra en el LCD. Los mensajes del LCD ms adelante lo haremos tambin por la interfaz del Visual C++.
43

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Se recomienda probar el montaje del circuito si funciona bien con el HyperTerminal de Windows bien explicado en el libro www.pi16f84a.org. Cuando compruebes que toda va bien el circuito, empezamos a programar en C++.

44

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Pinchamos dos veces clic en el botn en este caso el de la letra t para ir al cdigo del evento generado, es decir, que al pulsar el botn una vez, se ejecuta una accin.

45

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Aqu por primera vez vamos a usar el cdigo en C++ creado por nosotros mismos. En cada botn enviamos los datos para activar los led. Nos aseguramos que el circuito funciona muy bien como haba dicho.

46

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++ (OBJETIVO)


1) Introducir cdigos en los botones para su funcionamiento. 2) Depurar nuestra aplicacin.

47

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Al hacer clic o pinchar dos veces el botn t, se genera el cdigo del evento de un clic para nosotros poder poner el cdigo necesario en su interior, y poder enviar datos al puerto serie RS232 al PIC16F84A. El cdigo generado del button_t es el que se muestra en la pgina siguiente.

48

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

49

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

El cdigo que vamos a introducir para que el PIC16F84A lea la letra t es este:

cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1); uno[0] = 0x74; //ASCII letra "t". serialPort1->Write(uno, 0, 1);

50

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

51

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


El nombre serialPort1 no existe en el contexto actual Nos faltan dos cosas para tener un buen funcionamiento del programa.

52

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Justo debajo donde pone: using namespace System::Drawing;

53

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Ahora introduces el siguiente comando: using namespace System::IO::Ports;

54

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

En el Cuadro de herramientas, Componentes, pincha o haces dos veces clicken el objeto SerialPort. (Tambin puedes arrastrarlo al formulario). Como vers, abajo se ha introducido un nuevo objeto llamado serialPort1 y no est dentro del formulario porque no es un objeto visible, slo tiene funciones internas. Con l podemos configurar el puerto serie COM 1.
55

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

56

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Aunque mediante programacin se puede hacer lo mismo, ms cmodo, fcil y rpido es utilizar este componente serialPort1, al lado cambiamos sus propiedades. Adems, est bien salvo en StopBits lo ponemos a Two como indica la imagen.
57

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

El programa RS232_11.asm que acompaa el libro, utiliza los datos de comunicacin es el que muestra en la imagen de la derecha.

Propiedades BaudRate DataBits Handshake Parity PortName StopBits

Cambiar a 9600 8 None None COM1 Two

58

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Una vez todo hecho como indica las pginas anteriores, el cdigo fuente sera tan simple como indica en la pgina siguiente. Hay una parte del cdigo que he agregado texto: uno[0] = 0x74; //ASCII letra "t". Poner las dos barras // expresan textos para poder explicar algn comentario en el compilador al igual que lo hacemos con ; en el MPLAB al escribir en ensamblador.

59

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

60

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

An no hemos acabado. Introduces este cdigo debajo del InitializeComponent();. if(!serialPort1->IsOpen) { try { serialPort1->Open(); } catch (Exception ^ex) { MessageBox::Show(ex->ToString()); } }

61

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Para saber el nmeros de lneas en el editor de Visual C++, pulsa: Herramientasopcion es

62

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Fjate en las flechas rojas. Seala General, y despus marca la casilla Nmeros de lnea. Al finalizar pulsa Aceptar.

63

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

64

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

Ya podemos guiarnos mejor con los nmeros de lnea que muestra en el compilador. Ahora continuamos con el cdigo fuente que debera ser igual que has hecho hasta ahora como muestra en las siguientes pginas.
65

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Guarda todo el proyecto y compila pulsando F5. El nico botn funcional es el button_t, que al pulsarlo se enciende un Led y en el LCD visualiza: Marcha ADELANTE. Sigamos introduciendo lneas de cdigo para los otros botones con su letra o carcter correspondiente.

66

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

En el formulario, pincha dos veces click en el botn b e introduce los cdigos necesarios.

cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1); uno[0] = 0x62; //ASCII letra "b". serialPort1->Write(uno, 0, 1);

67

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++


Sigue as con los dems botones. El procedimiento es el mismo que el primer botn. A continuacin mostramos el cdigo fuente completo.

68

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

69

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

70

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

71

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

72

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

73

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

74

metaconta@gmail.com

11/03/2009

PRIMER CDIGO C++

75

metaconta@gmail.com

11/03/2009

DESCARGA CDIGO FUENTE 1


Guarda todo el proyecto, y pulsa F5 para compilar el programa. Si has seguido paso a paso esta aplicacin, debera funcionar a la primera. En caso contrario vuelva a repetir los pasos. Descargue el ejemplo Fuente 1 para ver el resultado o mire las pginas anteriores. Ejecuta el archivo PicRS232cpp.sln para abrirlo junto con el Visual C++.

Fuente 1 Fuente 1

PRIMER CDIGO C++


76

metaconta@gmail.com

11/03/2009

77

metaconta@gmail.com

11/03/2009

Introduccin

VISUAL BASIC

78

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL BASIC

De entrada vamos a descargar el compilador (gratuito) Visual Basic Express desde la Web oficial http://www.microsoft.com/exp ress/download/ Precisamente vamos a descargar la versin en espaol y si es posible instale los Service Pack ya que en esa actualizacin se han corregidos errores y mejor rendimiento. Pulsa Donwload para su descarga.

79

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL BASIC

80

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL BASIC


Llegars un momento en que te dice que te registres. Si no te registras slo funcionar el Visual Basic 30 das y despus si quieres usarlo siempre te pedir la clave del registro. Registrarse es gratuito y no tendrs que pagar ninguna cantidad de dinero, slo es para que lo puedas usar siempre. Se recomienda guardar la clave que te llega por e-mail.

81

metaconta@gmail.com

11/03/2009

DESCARGA DEL VISUAL BASIC


En este manual se ha trabajado en su momento con: Windows XP SP3 Visual Basic 2008 Express FrameWork 3.5 SP1

82

metaconta@gmail.com

11/03/2009

83

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

84

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ
El objetivo principal de esta aplicacin es hacer una interfaz de Visual Basic capaz de comunicarse con un microcontroladorPIC16F84A al igual que lo hace el HyperTerminal de Windows o el Minicom de Linux con su propio diseo y control. Vamos a dar el primer paso del diseo de la interfaz.

85

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ
1) Introducir el nombre de nuestro programa en el formulario. 2) Centrar el formulario en el centro de la pantalla de nuestro monitor al ejecutar nuestra aplicacin o programa. 3) Introducir 5 botones en el formulario en la coordenada indicada. 4) Orden de tabulacin de los botones. 5) Depurar nuestra aplicacin.

86

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Crea un proyecto nuevo y llmalo PicRS232vb como indica en la imagen.

87

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

88

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Pincha una vez en el centro del formulario o donde quieras. En Propiedades, pon el valor de la propiedad Form_Pincipal (sin las dobles comillas) ya que es el nombre del programa principal.
89

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

En Propiedades, pon el valor de la propiedad PicRS232vb (sin las dobles comillas) ya que es el nombre del programa principal.

90

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Para centrar el formulario, el nombre de la propiedad, selecciona el valor de la propiedad CenterScreen. Al depurar el programa siempre se visualiza el formulario en el centro de la pantalla o nuestro monitor.
91

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

En el cuadro de propiedades de la derecha, es un breve resumen de lo que hemos hecho menos la Propiedad Size, que es el que debemos tener si no hemos tocado nada al principio. Ahora en adelante sabr interpretar este cuadro, y podemos cambiar las propiedades ms rpidamente de cualquier objeto.

Propiedad Text (Name) StartPosition Size

Cambie a PicRS232vb Form_Principal CenterScreen 300; 300

92

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Introduces el botn llamado button1 en el formulario. Ahora toca cambiar las propiedades que se describe en el cuadro a continuacin para el button1.

Propiedad Text (Name) Location

Cambie a t Button_t 109; 38

93

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Lo mismo con el botn b.

Propiedad Text (Name) Location

Cambie a b Button_b 109; 67

94

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Lo mismo con el botn a.

Propiedad Text (Name) Location

Cambie a a Button_a 28; 67

95

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Lo mismo con el botn l. (Ele minuscula).

Propiedad Text (Name) Location

Cambie a l Button_l 190; 67

96

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Ahora con Button5 de la tecla Espacio cambiaremos el color del botn y la fuente de letras en negrita como indica en el cuadro. Te lo dice directamente pero hay otra forma de hacerlo ms cmodo.

Propiedad BackColor Font.Bolt Text (Name) Location

Cambie a 255;128; 0 True Espacio Button_Espacio 190; 96

97

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Vamos a ver algunas formas sobre orden de tabulacin de los botones. El Nombre de la propiedad TabIndex con valor 0, significa que es el primero en orden de tabulacin, el 1 el segundo, el 2 el tercero as sucesivamente.
98

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Tambin hay otro mtodo ms cmodo en seleccionar el orden de tabulacin. Accede al VerOrden de tabulacin.

99

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

100

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Directamente en el formulario puedes ver el orden que tiene la tabulacin. Puedes cambiarla pulsando con el ratn el cuadrado azul con su nmero correspondiente.

101

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

102

metaconta@gmail.com

11/03/2009

OBJETIVO DE LA INTERFAZ

Guarde el proyecto completo y luego pulse F5 o la flecha verde para iniciar la depuracin. Debemos tener algo similar como muestra en la imagen de la derecha. Puedes pulsar los botones que notars que no hace nada ya que no hemos programado ninguna accin sobre ellas. Ahora cierra el programa con la X como cualquier otro programa. Ya hemos cumplido el objetivo de esta parte. Ahora nos centramos a explicar un poco el cdigo del PIC16F84A y as entender cmo recibe los datos que Visual Basic enva por el puerto serie.
103

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

104

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


Para entender los datos que enviamos desde el Visual Basic, debemos entender el cdigo fuente del PIC 16F84A, en este caso en ensamblador. Los datos que enviamos desde el Visual Basic es en hexadecimal en lo cual conviene ver la tabla ASCII que puedes ver en el APNDICE G del libro www.pic16f84a.org.

105

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


Si no tienes el libro puedes ver el cdigo ASCII en las pginas siguientes y el que vamos utilizar es la tabla ASCII 1. La tabla ASCII 2 es ms extendida, aunque en este manual no lo vamos a utilizar, es bueno tenerlo como referencia. ASCII, pronunciado ski significa del Ingls American Standard CodeforInformationInterchange o lo que es lo mismo Cdigo Estadounidense Estndar para el Intercambio de Informacin.

106

metaconta@gmail.com

11/03/2009

CDIGO ASCII

107

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A


El ejemplo a utilizar es el archivo RS232_11.asm (tambin vale el RS232_11b.asm). Puedes obtenerlo desde el CD-ROM que acompaa el libro como tambin puedes descargarlo en su Web pinchando con el ratn aqu. La clave para abrir todos los archivos de esta Web corresponden con las iniciales del Ciclo Formativo de Grado Superior Desarrollo de Productos Electrnicos, uno de los estudios oficiales donde en Espaa se pueden estudiar los temas tratados en esta Web: D.P.E.
108

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

El esquema elctrico que vamos a usar es del captulo 20-15 del libro www.pic16f84a.org que se muestra en la pgina siguiente.

109

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Vamos a usar el cdigo del libro del archivo RS232_11.asm para poder entender lo que estamos haciendo. Slo explicar la parte fundamental para entender la parte de Visual Basic al enviar los datos. Si quieres saber la explicacin completa de estos temas del cdigo ASM, est bien detallada en el libro www.pic16f84a.org
110

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Puedes ver el cdigo ASM a partir de la pgina 111 del manual sobre Visual C#.

111

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Se preguntar el motivo de poner esas letras en los botones. Por qu esas letras? El programa del microcontrolador PIC16F84A tiene configuradas esas cuatro letras que significan lo que muestra en el cuadro de la derecha. Desde el cdigo fuente se puede modificar las letras o nmeros que quieras.

TECLA t b a l (Espacio)

MOVIMIENTO Adelante Atrs Izquierda Derecha Parada

112

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

Mirando la tabla ASCII 1 de este manual o el APNDICE G del libro, debemos tener presente cual es cual expresado en hexadecimal. Por ejemplo, la letra t minscula en hexadecimal es el 74.
113

metaconta@gmail.com

11/03/2009

CDIGO ASM DEL PIC16F84A

En el Visual Basic vamos a usar los caracteres hexadecimales que muestra en el cuadro de la derecha para enviar datos al PIC16F84A. No hace falta que mires la tabla ascii ya que precisamente vamos a usar la indicada aqu, excepto, que desees usar otros caracteres.

Hex 74 62 61 6C 20

Carcter t b a l Espacio

114

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

115

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Vamos a introducir los primeros cdigos Visual Basic en los botones y hacer funcionar a la primera apagar y encender los Led al mismo tiempo el mensaje que muestra en el LCD. Los mensajes del LCD ms adelante lo haremos tambin por la interfaz del Visual Basic.
116

metaconta@gmail.com

11/03/2009

PRIMER CDIGO BASIC


Se recomienda probar el montaje del circuito si funciona bien con el HyperTerminal de Windows bien explicado en el libro www.pi16f84a.org. Cuando compruebes que toda va bien el circuito, empezamos a programar en Visual Basic.

117

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Pinchamos dos veces clic en el botn en este caso el de la letra t para ir al cdigo del evento generado, es decir, que al pulsar el botn una vez, se ejecuta una accin.

118

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


Aqu por primera vez vamos a usar el cdigo en Visual Basic creado por nosotros mismos. En cada botn enviamos los datos para activar los led. Nos aseguramos que el circuito funciona muy bien como haba dicho.

119

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


1) Introducir cdigos en los botones para su funcionamiento. 2) Depurar nuestra aplicacin.

120

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


Al hacer clic o pinchar dos veces el botn t, se genera el cdigo del evento de un clic para nosotros poder poner el cdigo necesario en su interior, y poder enviar datos al puerto serie RS232 al PIC16F84A. El cdigo generado del button_t es el que se muestra en la pgina siguiente.

121

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

122

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

El cdigo que vamos a introducir para que el PIC16F84A lea la letra t es este:

Dim mBuffer As Byte() = New Byte(0) {} mBuffer(0) = &H74 'ASCII letra "t". SerialPort1.Write(mBuffer, 0, mBuffer.Length)

123

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

124

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


El nombre serialPort1 no existe en el contexto actual Nos faltan dos cosas para tener un buen funcionamiento del programa.

125

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Pon este cdigo arriba del todo del compilador: Imports System.IO.Ports

126

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

En el Cuadro de herramientas, Componentes, pincha o haces dos veces clic en el objeto SerialPort. (Tambin puedes arrastrarlo al formulario). Como vers, abajo se ha introducido un nuevo objeto llamado serialPort1 y no est dentro del formulario porque no es un objeto visible, slo tiene funciones internas. Con l podemos configurar el puerto serie COM 1.
127

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

128

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Aunque mediante programacin se puede hacer lo mismo, ms cmodo, fcil y rpido es utilizar este componente serialPort1, al lado cambiamos sus propiedades. Adems, est bien salvo en StopBits lo ponemos a Two como indica la imagen.
129

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

El programa RS232_11.asm que acompaa el libro, utiliza los datos de comunicacin es el que muestra en la imagen de la derecha.

Propiedades BaudRate DataBits Handshake Parity PortName StopBits

Cambiar a 9600 8 None None COM1 Two

130

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


Una vez todo hecho como indica las pginas anteriores, el cdigo fuente sera tan simple como indica en la pgina siguiente. Hay una parte del cdigo que he agregado texto: uno[0] = 0x74; //ASCII letra "t". Poner las dos barras // expresan textos para poder explicar algn comentario en el compilador al igual que lo hacemos con ; en el MPLAB al escribir en ensamblador.

131

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

132

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

An no hemos acabado. Introduces este cdigo debajo del Public Class Form_Principal.

Public Sub New() InitializeComponent() ' Abrir puerto mientras se ejecute la aplicacin If Not SerialPort1.IsOpen Then Try SerialPort1.Open() Catch ex As System.Exception MessageBox.Show(ex.ToString()) End Try End If End Sub

133

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Para saber el nmeros de lneas en el editor de Visual Basic, pulsa: Herramientasopcion es

134

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Fjate en las flechas rojas. Seala General, y despus marca la casilla Nmeros de lnea. Al finalizar pulsa Aceptar.

135

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

136

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

Ya podemos guiarnos mejor con los nmeros de lnea que muestra en el compilador. Ahora continuamos con el cdigo fuente que debera ser igual que has hecho hasta ahora como muestra en las siguientes pginas.
137

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


Guarda todo el proyecto y compila pulsando F5. El nico botn funcional es el button_t, que al pulsarlo se enciende un Ledy en el LCD visualiza: Marcha ADELANTE. Sigamos introduciendo lneas de cdigo para los otros botones con su letra o carcter correspondiente.

138

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

En el formulario, pincha dos veces clic en el botn b e introduce los cdigos necesarios.

Dim mBuffer As Byte() = New Byte(0) {} mBuffer(0) = &H62 'ASCII letra "b". SerialPort1.Write(mBuffer, 0, mBuffer.Length)

139

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC


Sigue as con los dems botones. El procedimiento es el mismo que el primer botn. A continuacin mostramos el cdigo fuente completo.

140

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

141

metaconta@gmail.com

11/03/2009

PRIMER CDIGO VISUAL BASIC

142

metaconta@gmail.com

11/03/2009

DESCARGA CDIGO FUENTE 1


Guarda todo el proyecto, y pulsa F5 para compilar el programa. Si has seguido paso a paso esta aplicacin, debera funcionar a la primera. En caso contrario vuelva a repetir los pasos. Descargue el ejemplo Fuente 1 para ver el resultado o mire las pginas anteriores. Ejecuta el archivo PicRS232vb.sln para abrirlo junto con el Visual Basic.

Fuente 1 Fuente 1

PRIMER CDIGO VISUAL BASIC


143

metaconta@gmail.com

11/03/2009

144

metaconta@gmail.com

11/03/2009

Recibir mensajes desde el microcontroladorPIC16F84A.

RECIBIR MENSAJES

145

metaconta@gmail.com

11/03/2009

Objetivos: Leer los datos del PIC16F84A desde la interfaz del PC.

1) Arrastrar StatusStrip o barra de estado al formulario. 2) Un TextBox para leer los mensajes del PIC. 3) Un Labelo etiqueta. 4) Poner el TextBox en modo lectura. 5) Cdigo para el TextBox. 6) Escribir cdigo en el StatusStrip para mostrar la hora. 7) Depurar nuestra aplicacin.

RECIBIR MENSAJES

146

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

En el Cuadro de herramientas, Mens y barra de herramientas, clickea dos veces al control StatusStrip. Comprobars en la pgina siguiente que se introduce a la base del formulario.
147

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

148

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Arrastra un TextBox al formulario. Est donde est colocado el TextBox dentro del formulario, vers que se ir colocando correctamente segn cambies las propiedades del recuadro. Fjate en la pgina siguiente que vamos a cambiar otra propiedad llamada Dock.

Propiedad ScrollsBar Multilinea (Name) Anchor Location Size

Cambiar a Vertical True textBox_visualizar_ mensaje Top, Bottom, Left, Right 0; 132 287; 82

149

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Puedes cambiar la propiedad Dock a Bottom para pegarlo hacia abajo y las paredes. Tambin puedes hacerlo ms cmodo como se muestra en la imagen de la pgina siguiente. Si cambias Dock a Bottom, automaticamente, Anchor se vuelve a cambiar slo a Top, Left. Vuelva a cambiar Anchor a Top, Bottom, Left, Right. Al final Dock se cambia a None. Si logramos esto, a la hora de Maximizar la ventana, el textBox_visualizar_mensaje se redimensiona bien.

Propiedad Dock

Cambiar a Bottom

150

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Todo debera quedar as siguiendo el pie de la letra para que al Maximizar el formulario, el textBox_visualizar_m ensaje lo haga correctamente.

Propiedad ScrollsBar Multilinea (Name) Anchor Location Size Dock

Cambiar a Vertical True textBox_visualizar_ mensaje Top, Bottom, Left, Right 0; 132 287; 82 None

151

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Esta es una de las maneras de cambiar a Bottom.

152

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Debe por ahora quedar como muestra en la imagen de la derecha. Si toda va bien, sigue adelante. Si no te ha ido bien, pulsa Control+Z para retroceder hasta llegar el punto donde cometiste algn error y poder corregir.
153

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Arrastra un Label en el formulario y cambia sus propiedades como indica el recuadro.

Propiedad Text (Name) Autosize Location Size

Cambiar a Mensaje desde el PIC label_mensaje_pic True 25; 146 110; 13

154

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Pulsa en la barra de herramientas. VerOrden de tabulacin y muestra algo similar en l aimagen.

155

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Deja como muestra en la imagen el orden de tabulacin. Puedes si lo deseas poner el orden que prefieras. Para quitar los nmeros que se ve de la tabulacin, VerOrden de tabulacin.
156

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Si lo deseas, en el control ahora llamado textBox_visualizar_men saje, puedes dejarlo en modo lectura para que no pueda modificar su contenido al recibir mensajes desde el pic. En mi caso, no activo el modo lectura y lo dejo en False.

Propiedad ReadOnly

Cambiar a True

157

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Nos toca introducir los cdigos necesarios para que el textBox_visualizar_mensaje pueda recibir los mensajes de avisos desde el PIC. Introduce este cdigo de abajo,

'Utilizaremos un string como buffer de recepcion Dim Recibidos As String

justo debajo del Public Class Form_Principal

158

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

159

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES
Ahora toca a por el siguiente cdigo. Fjate dnde est colocado en la lneas de nmeros del compilador. Seguiremos as sucesivamente.

160

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

161

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

162

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

163

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

hh:mm:ss Representa hha horas, mm a minutos y ssa segundos.

Vamos a poner la hora local de nuestro Sistema Operativo en el StatusStrip1. Arrastra el Timer al formulario con lo cual, se llama timer1 que lo queremos para actualizar lo valores de la hora.
164

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

165

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Vamos a aadir la hora local de nuestro Sistema Operativo en el StatusStrip1. Seala con el ratn el StatusStrip1.

166

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Eliges StatusLabel como indica la flecha roja de ms bajo.

167

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Se ha creado un toolStripStatusLabel1 . En la propiedad Text, sustituye el valor toolStripStatusLabel1 por el valor hh:mm:ss. Como dije antes, significa, horas, minutos y segundos.
168

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Ahora puedes ver que es hh:mm:ss.

169

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Selecciona el componente timer1 y cambie de propiedades como indica en cuadro. Enabled en True activa el timer1. Interval a 1000, 1000 significa 1 segundo como 15000, 15 segundos. Se expresa en milisegundos, as, 1000 milisengundos que en realidad es 1 segundo. 1000 miliseg. = 1 seg.

Propiedad Enabled Interval

Cambiar a True 1000

170

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Pincha dos veces al componente timer1 para que puedas introducir el cdigo necesario de la hora local de Windows.

171

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Se crea unos cdigos pero no tiene funcin.

172

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

En su interior del cdigo del timer1, introduce:


StatusStrip1.Items(0).Text = DateTime.Now.ToLongTimeString()

173

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

174

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Al cerrar la aplicacin puede quedarse el PIC activado e incluso si quitamos el cable db9. Vamos a tratar este tema ya que puede ser muy incmodo esta situacin, as que al cerrar la aplicacin se comportar justo ante de cerrarse como si pulsara el botn naranja de la aplicacin, Espacio.
175

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

176

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

177

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

Comprueba a partir de la pgina siguiente el cdigo fuente completo.

178

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

179

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

180

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES

181

metaconta@gmail.com

11/03/2009

RECIBIR MENSAJES
Ya, en el ltimo paso de este objetivo, guarde todo el proyecto y pulsa F5 para compilar o depurar tu programa. Recuerda que en el textBox_visualizar_mensaje si has dejado el valor True o False en ReadOnly (Solamente lectura), no solo le afecta el comportamiento si no el color, es decir, su apariencia. En la siguiente pgina sabrs la diferencia y si has activado ReadOnly o no a True.

182

metaconta@gmail.com

11/03/2009

READONLY = FALSE

READONLY = TRUE

RECIBIR MENSAJES
183

metaconta@gmail.com

11/03/2009

DESCARGA CDIGO FUENTE 2

Perfectamente ya puedes probar el programa con el circuito. Si algo falla, vuelve a empezar desde el principio o simplemente te descargas el archivo Fuente 2. Este es el final de la aplicacin de la interfaz aunque puedes ampliar algunos extras en pginas siguientes.

Fuente 2 Fuente 2

RECIBIR MENSAJES
184

metaconta@gmail.com

11/03/2009

185

metaconta@gmail.com

11/03/2009

FOTOS

186

metaconta@gmail.com

11/03/2009

187

metaconta@gmail.com

11/03/2009

188

metaconta@gmail.com

11/03/2009

189

metaconta@gmail.com

11/03/2009

190

metaconta@gmail.com

11/03/2009

Puedes ver algunos vdeos en youtube.com sobre este proyecto.

VDEOS

191

metaconta@gmail.com

11/03/2009

PIC16F84A DB9 VC++ Y VISUAL BASIC

MOTOR DC CONTROLADO CON PIC16F84A BASE RS232

Ver Vdeo 1

Ver Vdeo 2

VDEOS

(REQUIERE CONEXIN INTERNET)

192

metaconta@gmail.com

11/03/2009

LIBROS

193

metaconta@gmail.com

11/03/2009

WWW.PIC16F84A.ORG

ELECTRNICA DIGITAL

LIBROS
194

metaconta@gmail.com

11/03/2009

OTROS MANUALES

195

metaconta@gmail.com

11/03/2009

DESCARGAS DE MANUALES

Puedes descargar otros manuales relacionado sobre temas de microcontroladores.


Manuales. Manuales.

OTROS MANUALES
196

metaconta@gmail.com

11/03/2009

Enlaces de pginas Web donde podrs encontrar ms informacin.

ENLACES DE INTERS

197

metaconta@gmail.com

11/03/2009

ENLACES DE INTERS

Manual PicRS232 Visual C# Completo manual sobre Visual C# que puedes ver si no sigues la corriente con esta ampliacin sobre VC++ y VB. www.microsoft.com/express/ Descargas de las versiones gratuitas del Visual C++ y Visual Basic Express .net www.todoelectronica.com/ Revista oficial de electrnica trimestral de Espaa para cualquier lector sea principiante, aficionado o profesional con kit de regalo para su montaje. Podrs entregar tus propios proyectos de electrnica con o sin microcontroladores e incluso ver el de los dems lectores explicado con todo detalle, esquemas elctricos, esquema de los circuitos impresos, lista de componentes, cdigo fuente, etc. Las bases mnimas para entregar los proyectos est detallada en la revista. www.microchip.com (En Ingls) Web oficial sobre los PIC entre otros dispositivos de la firma Microchip, donde podrs descargar las hojas de datos, ejemplos, compilador MPLAB y mucha ms informacin.

198

metaconta@gmail.com

11/03/2009

Publicado por primera vez: 04/03/2009

VERSIN DEL MANUAL

Versin 1.01

199

metaconta@gmail.com

11/03/2009

Puedes publicar este tutorial o manual en tu Web, foros, blogs, CD, DVD o Blu-Ray para revistas oficiales, etc, libremente.

Cualquier comentario, sugerencia o mejoras del manual, me lo envan por correo electrnico al metaconta@gmail.com

CONTACTO

200

metaconta@gmail.com

11/03/2009

AUTOR:
ngel Acaymo M. G.

201

You might also like