Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A

60 %
40 %
Information about Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Books

Published on March 12, 2009

Author: Metaconta

Source: slideshare.net

Description

Manual para crear una interfaz bajo lenguajes Visual C++ y Visual Basic controlando un PIC16F84A por puerto serie.

metaconta@gmail.com 29/03/2009 1

metaconta@gmail.com 29/03/2009 ÍNDICE  Presentación – 3  Visual C++ - 6  Visual Basic – 78  Fotos – 186  Vídeos – 191  Libros – 193  Otros manuales – 195  Enlaces de interés – 197  Versión – 199  Contacto – 200  Autor - 201 2

metaconta@gmail.com 29/03/2009 PRESENTACIÓN 3

metaconta@gmail.com 29/03/2009 PRESENTACIÓN  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 pequeño manual sólo se utilizará la parte importante que es la comunicación sobre el RS232 del puerto serie.  Los extras que viene en el manual de Visual C# no se incluye aquí. 4

metaconta@gmail.com 29/03/2009 PRESENTACIÓN  Si no conoces el manual de Visual C# que es el tema principal, encontrarás un resumen de su contenido aquí:  En extras.  - Acerca de…  - Enfoque del botón.  - Redimensionar formulario.  - Manual del PicRS232.  - Contraer código.  - Icono.  - Notificación del Icono.  - Enlaces Web.  - Opacidad.  - Instalador Create Install Free. 5

metaconta@gmail.com 29/03/2009 Introducción VISUAL C++ 6

metaconta@gmail.com 29/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 versión en español y si es posible instale los Service Pack ya que en esa actualización se han corregidos errores y mejor rendimiento.  Pulsa Donwload para su descarga. 7

metaconta@gmail.com 29/03/2009 DESCARGA DEL VISUAL C++ 8

metaconta@gmail.com 29/03/2009 REGISTRO DEL VISUAL C++  Llegarás un momento en que te dice que te registres. Si no te registras sólo funcionará el Visual C++ 30 días y después si quieres usarlo siempre te pedirá la clave del registro.  Registrarse es gratuito y no tendrás que pagar ninguna cantidad de dinero, sólo es para que lo puedas usar siempre.  Se recomienda guardar la clave que te llega por e-mail. 9

metaconta@gmail.com 29/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 29/03/2009 11

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 12

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  El objetivo principal de esta aplicación 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 diseño y control.  Vamos a dar el primer paso del diseño de la interfaz. 13

metaconta@gmail.com 29/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 aplicación o programa.  3) Introducir 5 botones en el formulario en la coordenada indicada.  4) Orden de tabulación de los botones.  5) Depurar nuestra aplicación. 14

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Crea un proyecto nuevo y llámalo PicRS232cpp como indica en la imagen. 15

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 16

metaconta@gmail.com 29/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 29/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 29/03/2009 PROPIEDADES  En el cuadro de propiedades Propiedad Cambia a de la derecha, es un breve Text PicRS232cpp resumen de lo que hemos hecho menos la “Propiedad” StartPosition CenterScreen “Size”, que es el que Size 300; 300 debemos tener si no hemos tocado nada al principio.  Ahora en adelante sabrá interpretar este cuadro, y podemos cambiar las propiedades más rápidamente de cualquier objeto. OBJETIVO DE LA INTERFAZ 19

metaconta@gmail.com 29/03/2009 PROPIEDADES  Introduces el botón llamado Propiedad Cambia a “button1” en el formulario. Text t (Name) Button_t  Ahora toca cambiar las Location 109; 38 propiedades que se describe en el cuadro a continuación para el “button1”. OBJETIVO DE LA INTERFAZ 20

metaconta@gmail.com 29/03/2009 PROPIEDADES  Lo mismo con el botón b. Propiedad Cambia a Text b (Name) Button_b Location 109; 67 OBJETIVO DE LA INTERFAZ 21

metaconta@gmail.com 29/03/2009 PROPIEDADES  Lo mismo con el botón a. Propiedad Cambia a Text a (Name) Button_a Location 28; 67 OBJETIVO DE LA INTERFAZ 22

metaconta@gmail.com 29/03/2009 PROPIEDADES  Lo mismo con el botón l. Propiedad Cambia a (Ele minúscula). Text l (Name) Button_l Location 190; 67 OBJETIVO DE LA INTERFAZ 23

metaconta@gmail.com 29/03/2009 PROPIEDADES  Ahora con Button5 de la Propiedad Cambia a tecla “Espacio” BackColor 255; 128; 0 cambiaremos el color del Font.Bolt True botón y la fuente de letras Text Espacio en negrita como indica en (Name) Button_Espacio el cuadro. Location 190; 96  Te lo dice directamente pero hay otra forma de hacerlo más cómodo. OBJETIVO DE LA INTERFAZ 24

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Vamos a ver algunas formas sobre orden de tabulación de los botones.  El “Nombre de la propiedad” “TabIndex” con valor “0”, significa que es el primero en orden de tabulación, el 1 el segundo, el 2 el tercero así sucesivamente. 25

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  También hay otro método más cómodo en seleccionar el orden de tabulación.  Accede al “VerOrden de tabulación”. 26

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 27

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Directamente en el formulario puedes ver el orden que tiene la tabulación.  Puedes cambiarla pulsando con el ratón el cuadrado azul con su número correspondiente. 28

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 29

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Guarde el proyecto completo y luego pulse “F5” o la flecha verde para iniciar la depuración.  Debemos tener algo similar como muestra en la imagen de la derecha.  Puedes pulsar los botones que notarás que no hace nada ya que no hemos programado ninguna acción 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 código del PIC16F84A y así entender cómo recibe los datos que Visual C++ envía por el puerto serie. 30

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A 31

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Para entender los datos que enviamos desde el Visual C++, debemos entender el código 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 APÉNDICE G del libro www.pic16f84a.org. 32

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Si no tienes el libro puedes ver el código ASCII en las páginas siguientes y el que vamos utilizar es la tabla ASCII 1.  La tabla ASCII 2 es más extendida, aunque en este manual no lo vamos a utilizar, es bueno tenerlo como referencia.  ASCII, pronunciado “áski” significa del Inglés “American Standard CodeforInformationInterchange” o lo que es lo mismo “Código Estadounidense Estándar para el Intercambio de Información”. 33

metaconta@gmail.com 29/03/2009 CÓDIGO ASCII 34

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  El ejemplo a utilizar es el archivo RS232_11.asm (también vale el RS232_11b.asm).  Puedes obtenerlo desde el CD-ROM que acompaña el libro como también puedes descargarlo en su Web pinchando con el ratón aquí.  La clave para abrir todos los archivos de esta Web corresponden con las iniciales del Ciclo Formativo de Grado Superior Desarrollo de Productos Electrónicos, uno de los estudios oficiales donde en España se pueden estudiar los temas tratados en esta Web:  D.P.E. 35

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  El esquema eléctrico que vamos a usar es del capítulo 20-15 del libro www.pic16f84a.org que se muestra en la página siguiente. 36

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Vamos a usar el código del libro del archivo RS232_11.asm para poder entender lo que estamos haciendo.  Sólo explicaré la parte fundamental para entender la parte de Visual C++ al enviar los datos.  Si quieres saber la explicación completa de estos temas del código ASM, está bien detallada en el libro www.pic16f84a.org 37

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Puedes ver el código ASM a partir de la página 111 del manual sobre Visual C#. 38

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Se preguntará el motivo de TECLA MOVIMIENTO poner esas letras en los botones. ¿Por qué esas t Adelante letras? b Atrás  El programa del a Izquierda microcontrolador l Derecha PIC16F84A tiene (Espacio) Parada configuradas esas cuatro letras que significan lo que muestra en el cuadro de la derecha.  Desde el código fuente se puede modificar las letras o números que quieras. 39

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Mirando la tabla ASCII 1 de este manual o el APÉNDICE G del libro, debemos tener presente cual es cual expresado en hexadecimal.  Por ejemplo, la letra “t” minúscula en hexadecimal es el “74”. 40

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  En el Visual C++ vamos Hex Carácter a usar los caracteres 74 t hexadecimales que 62 b muestra en el cuadro de 61 a la derecha para enviar 6C l datos al PIC16F84A. 20 Espacio  No hace falta que mires la tabla ascii ya que precisamente vamos a usar la indicada aquí, excepto, que desees usar otros caracteres. 41

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 42

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Vamos a introducir los primeros códigos 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 más adelante lo haremos también por la interfaz del Visual C++. 43

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO 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 29/03/2009 PRIMER CÓDIGO C++  Pinchamos dos veces clic en el botón en este caso el de la letra “t” para ir al código del evento generado, es decir, que al pulsar el botón una vez, se ejecuta una acción. 45

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Aquí por primera vez vamos a usar el código en C++ creado por nosotros mismos.  En cada botón enviamos los datos para activar los led.  Nos aseguramos que el circuito funciona muy bien como había dicho. 46

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ (OBJETIVO)  1) Introducir códigos en los botones para su funcionamiento.  2) Depurar nuestra aplicación. 47

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Al hacer clic o pinchar dos veces el botón “t”, se genera el código del evento de un clic para nosotros poder poner el código necesario en su interior, y poder enviar datos al puerto serie RS232 al PIC16F84A.  El código generado del “button_t” es el que se muestra en la página siguiente. 48

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 49

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  El código 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 quot;tquot;. serialPort1->Write(uno, 0, 1); 50

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 51

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO 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 29/03/2009 PRIMER CÓDIGO C++  Justo debajo donde pone:  using namespace System::Drawing; 53

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Ahora introduces el siguiente comando:  using namespace System::IO::Ports; 54

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  En el “Cuadro de herramientas”, “Componentes”, pincha o haces dos veces clicken el objeto SerialPort. (También puedes arrastrarlo al formulario).  Como verás, abajo se ha introducido un nuevo objeto llamado “serialPort1” y no está dentro del formulario porque no es un objeto visible, sólo tiene funciones internas.  Con él podemos configurar el puerto serie “COM 1”. 55

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 56

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Aunque mediante programación se puede hacer lo mismo, más cómodo, fácil y rápido es utilizar este componente serialPort1, al lado cambiamos sus propiedades.  Además, está bien salvo en “StopBits” lo ponemos a Two como indica la imagen. 57

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ Propiedades Cambiar a  El programa BaudRate 9600 RS232_11.asm que DataBits 8 acompaña el libro, Handshake None utiliza los datos de Parity None comunicación es el PortName COM1 que muestra en la StopBits Two imagen de la derecha. 58

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Una vez todo hecho como indica las páginas anteriores, el código fuente sería tan simple como indica en la página siguiente.  Hay una parte del código que he agregado texto:  uno[0] = 0x74; //ASCII letra quot;tquot;.  Poner las dos barras // expresan textos para poder explicar algún comentario en el compilador al igual que lo hacemos con ; en el MPLAB al escribir en ensamblador. 59

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 60

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Aún no hemos acabado. Introduces este código debajo del InitializeComponent();. if(!serialPort1->IsOpen) { try { serialPort1->Open(); } catch (Exception ^ex) { MessageBox::Show(ex->ToString()); } } 61

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Para saber el números de líneas en el editor de Visual C++, pulsa:  Herramientasopcion es… 62

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Fíjate en las flechas rojas. Señala General, y después marca la casilla “Números de línea”.  Al finalizar pulsa “Aceptar”. 63

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 64

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Ya podemos guiarnos mejor con los números de línea que muestra en el compilador.  Ahora continuamos con el código fuente que debería ser igual que has hecho hasta ahora como muestra en las siguientes páginas. 65

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Guarda todo el proyecto y compila pulsando “F5”.  El único botón funcional es el “button_t”, que al pulsarlo se enciende un Led y en el LCD visualiza: Marcha ADELANTE.  Sigamos introduciendo líneas de código para los otros botones con su letra o carácter correspondiente. 66

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  En el formulario, pincha dos veces click en el botón b e introduce los códigos necesarios. cli::array<unsigned char> ^uno = gcnew cli::array<unsigned char>(1); uno[0] = 0x62; //ASCII letra quot;bquot;. serialPort1->Write(uno, 0, 1); 67

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Sigue así con los demás botones. El procedimiento es el mismo que el primer botón.  A continuación mostramos el código fuente completo. 68

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 69

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 70

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 71

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 72

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 73

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 74

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 75

metaconta@gmail.com 29/03/2009 DESCARGA CÓDIGO FUENTE 1  Guarda todo el proyecto, y pulsa “F5” para compilar el programa.  Si has seguido paso a paso esta aplicación, debería funcionar a la primera.  En caso contrario vuelva a  Fuente 1 repetir los pasos.  Descargue el ejemplo “Fuente 1”  Fuente 1 para ver el resultado o mire las páginas anteriores. Ejecuta el archivo “PicRS232cpp.sln” para abrirlo junto con el Visual C++. PRIMER CÓDIGO C++ 76

metaconta@gmail.com 29/03/2009 77

metaconta@gmail.com 29/03/2009 Introducción VISUAL BASIC 78

metaconta@gmail.com 29/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 versión en español y si es posible instale los Service Pack ya que en esa actualización se han corregidos errores y mejor rendimiento.  Pulsa Donwload para su descarga. 79

metaconta@gmail.com 29/03/2009 DESCARGA DEL VISUAL BASIC 80

metaconta@gmail.com 29/03/2009 DESCARGA DEL VISUAL BASIC  Llegarás un momento en que te dice que te registres. Si no te registras sólo funcionará el Visual Basic 30 días y después si quieres usarlo siempre te pedirá la clave del registro.  Registrarse es gratuito y no tendrás que pagar ninguna cantidad de dinero, sólo es para que lo puedas usar siempre.  Se recomienda guardar la clave que te llega por e-mail. 81

metaconta@gmail.com 29/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 29/03/2009 83

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 84

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  El objetivo principal de esta aplicación 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 diseño y control.  Vamos a dar el primer paso del diseño de la interfaz. 85

metaconta@gmail.com 29/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 aplicación o programa.  3) Introducir 5 botones en el formulario en la coordenada indicada.  4) Orden de tabulación de los botones.  5) Depurar nuestra aplicación. 86

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Crea un proyecto nuevo y llámalo PicRS232vb como indica en la imagen. 87

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 88

metaconta@gmail.com 29/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 29/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 29/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 29/03/2009 OBJETIVO DE LA INTERFAZ  En el cuadro de Propiedad Cambie a propiedades de la Text PicRS232vb derecha, es un breve (Name) Form_Principal resumen de lo que hemos hecho menos la StartPosition CenterScreen “Propiedad” “Size”, que es Size 300; 300 el que debemos tener si no hemos tocado nada al principio.  Ahora en adelante sabrá interpretar este cuadro, y podemos cambiar las propiedades más rápidamente de cualquier objeto. 92

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ Propiedad Cambie a  Introduces el botón Text t llamado “button1” en el (Name) Button_t formulario. Location 109; 38  Ahora toca cambiar las propiedades que se describe en el cuadro a continuación para el “button1”. 93

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ Propiedad Cambie a  Lo mismo con el botón Text b b. (Name) Button_b Location 109; 67 94

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ Propiedad Cambie a  Lo mismo con el botón Text a a. (Name) Button_a Location 28; 67 95

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ Propiedad Cambie a  Lo mismo con el botón Text l l. (Ele minñuscula). (Name) Button_l Location 190; 67 96

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Ahora con Button5 de Propiedad Cambie a la tecla “Espacio” BackColor 255;128; 0 cambiaremos el color Font.Bolt True Text Espacio del botón y la fuente (Name) Button_Espacio de letras en negrita Location 190; 96 como indica en el cuadro.  Te lo dice directamente pero hay otra forma de hacerlo más cómodo. 97

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Vamos a ver algunas formas sobre orden de tabulación de los botones.  El “Nombre de la propiedad” “TabIndex” con valor “0”, significa que es el primero en orden de tabulación, el 1 el segundo, el 2 el tercero así sucesivamente. 98

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  También hay otro método más cómodo en seleccionar el orden de tabulación.  Accede al “VerOrden de tabulación”. 99

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 100

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Directamente en el formulario puedes ver el orden que tiene la tabulación.  Puedes cambiarla pulsando con el ratón el cuadrado azul con su número correspondiente. 101

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 102

metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Guarde el proyecto completo y luego pulse “F5” o la flecha verde para iniciar la depuración.  Debemos tener algo similar como muestra en la imagen de la derecha.  Puedes pulsar los botones que notarás que no hace nada ya que no hemos programado ninguna acción 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 código del PIC16F84A y así entender cómo recibe los datos que Visual Basic envía por el puerto serie. 103

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A 104

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Para entender los datos que enviamos desde el Visual Basic, debemos entender el código 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 APÉNDICE G del libro www.pic16f84a.org. 105

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Si no tienes el libro puedes ver el código ASCII en las páginas siguientes y el que vamos utilizar es la tabla ASCII 1.  La tabla ASCII 2 es más extendida, aunque en este manual no lo vamos a utilizar, es bueno tenerlo como referencia.  ASCII, pronunciado “áski” significa del Inglés “American Standard CodeforInformationInterchange” o lo que es lo mismo “Código Estadounidense Estándar para el Intercambio de Información”. 106

metaconta@gmail.com 29/03/2009 CÓDIGO ASCII 107

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  El ejemplo a utilizar es el archivo RS232_11.asm (también vale el RS232_11b.asm).  Puedes obtenerlo desde el CD-ROM que acompaña el libro como también puedes descargarlo en su Web pinchando con el ratón aquí.  La clave para abrir todos los archivos de esta Web corresponden con las iniciales del Ciclo Formativo de Grado Superior Desarrollo de Productos Electrónicos, uno de los estudios oficiales donde en España se pueden estudiar los temas tratados en esta Web:  D.P.E. 108

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  El esquema eléctrico que vamos a usar es del capítulo 20-15 del libro www.pic16f84a.org que se muestra en la página siguiente. 109

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Vamos a usar el código del libro del archivo RS232_11.asm para poder entender lo que estamos haciendo.  Sólo explicaré la parte fundamental para entender la parte de Visual Basic al enviar los datos.  Si quieres saber la explicación completa de estos temas del código ASM, está bien detallada en el libro www.pic16f84a.org 110

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Puedes ver el código ASM a partir de la página 111 del manual sobre Visual C#. 111

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Se preguntará el motivo de TECLA MOVIMIENTO poner esas letras en los botones. ¿Por qué esas t Adelante letras? b Atrás  El programa del a Izquierda microcontrolador l Derecha PIC16F84A tiene (Espacio) Parada configuradas esas cuatro letras que significan lo que muestra en el cuadro de la derecha.  Desde el código fuente se puede modificar las letras o números que quieras. 112

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  Mirando la tabla ASCII 1 de este manual o el APÉNDICE G del libro, debemos tener presente cual es cual expresado en hexadecimal.  Por ejemplo, la letra “t” minúscula en hexadecimal es el “74”. 113

metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A  En el Visual Basic Hex Carácter vamos a usar los 74 t caracteres 62 b hexadecimales que 61 a muestra en el cuadro de 6C l la derecha para enviar datos al PIC16F84A. 20 Espacio  No hace falta que mires la tabla ascii ya que precisamente vamos a usar la indicada aquí, excepto, que desees usar otros caracteres. 114

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 115

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Vamos a introducir los primeros códigos 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 más adelante lo haremos también por la interfaz del Visual Basic. 116

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO 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 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Pinchamos dos veces clic en el botón en este caso el de la letra “t” para ir al código del evento generado, es decir, que al pulsar el botón una vez, se ejecuta una acción. 118

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Aquí por primera vez vamos a usar el código en Visual Basic creado por nosotros mismos.  En cada botón enviamos los datos para activar los led.  Nos aseguramos que el circuito funciona muy bien como había dicho. 119

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  1) Introducir códigos en los botones para su funcionamiento.  2) Depurar nuestra aplicación. 120

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Al hacer clic o pinchar dos veces el botón “t”, se genera el código del evento de un clic para nosotros poder poner el código necesario en su interior, y poder enviar datos al puerto serie RS232 al PIC16F84A.  El código generado del “button_t” es el que se muestra en la página siguiente. 121

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 122

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  El código 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 quot;tquot;. SerialPort1.Write(mBuffer, 0, mBuffer.Length) 123

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 124

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO 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 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Pon este código arriba del todo del compilador:  Imports System.IO.Ports 126

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  En el “Cuadro de herramientas”, “Componentes”, pincha o haces dos veces clic en el objeto SerialPort. (También puedes arrastrarlo al formulario).  Como verás, abajo se ha introducido un nuevo objeto llamado “serialPort1” y no está dentro del formulario porque no es un objeto visible, sólo tiene funciones internas.  Con él podemos configurar el puerto serie “COM 1”. 127

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 128

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Aunque mediante programación se puede hacer lo mismo, más cómodo, fácil y rápido es utilizar este componente serialPort1, al lado cambiamos sus propiedades.  Además, está bien salvo en “StopBits” lo ponemos a Two como indica la imagen. 129

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC Propiedades Cambiar a  El programa BaudRate 9600 RS232_11.asm que DataBits 8 acompaña el libro, Handshake None utiliza los datos de Parity None comunicación es el PortName COM1 que muestra en la StopBits Two imagen de la derecha. 130

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Una vez todo hecho como indica las páginas anteriores, el código fuente sería tan simple como indica en la página siguiente.  Hay una parte del código que he agregado texto:  uno[0] = 0x74; //ASCII letra quot;tquot;.  Poner las dos barras // expresan textos para poder explicar algún comentario en el compilador al igual que lo hacemos con ; en el MPLAB al escribir en ensamblador. 131

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 132

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Aún no hemos acabado. Introduces este código debajo del Public Class Form_Principal. Public Sub New() InitializeComponent() ' Abrir puerto mientras se ejecute la aplicación 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 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Para saber el números de líneas en el editor de Visual Basic, pulsa:  Herramientasopcion es… 134

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Fíjate en las flechas rojas. Señala General, y después marca la casilla “Números de línea”.  Al finalizar pulsa “Aceptar”. 135

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 136

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Ya podemos guiarnos mejor con los números de línea que muestra en el compilador.  Ahora continuamos con el código fuente que debería ser igual que has hecho hasta ahora como muestra en las siguientes páginas. 137

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Guarda todo el proyecto y compila pulsando “F5”.  El único botón funcional es el “button_t”, que al pulsarlo se enciende un Ledy en el LCD visualiza: Marcha ADELANTE.  Sigamos introduciendo líneas de código para los otros botones con su letra o carácter correspondiente. 138

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  En el formulario, pincha dos veces clic en el botón b e introduce los códigos necesarios. Dim mBuffer As Byte() = New Byte(0) {} mBuffer(0) = &H62 'ASCII letra quot;bquot;. SerialPort1.Write(mBuffer, 0, mBuffer.Length) 139

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC  Sigue así con los demás botones. El procedimiento es el mismo que el primer botón.  A continuación mostramos el código fuente completo. 140

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 141

metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 142

metaconta@gmail.com 29/03/2009 DESCARGA CÓDIGO FUENTE 1  Guarda todo el proyecto, y pulsa “F5” para compilar el programa.  Si has seguido paso a paso esta aplicación, debería funcionar a la primera.  En caso contrario vuelva a  Fuente 1 repetir los pasos.  Descargue el ejemplo “Fuente 1”  Fuente 1 para ver el resultado o mire las páginas anteriores. Ejecuta el archivo “PicRS232vb.sln” para abrirlo junto con el Visual Basic. PRIMER CÓDIGO VISUAL BASIC 143

metaconta@gmail.com 29/03/2009 144

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 145

metaconta@gmail.com 29/03/2009 Objetivos:  1) Arrastrar StatusStrip o barra Leer los datos del PIC16F84A desde la interfaz del PC. 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) Código para el TextBox.  6) Escribir código en el StatusStrip para mostrar la hora.  7) Depurar nuestra aplicación. RECIBIR MENSAJES 146

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  En el “Cuadro de herramientas”, “Menús y barra de herramientas”, clickea dos veces al control StatusStrip.  Comprobarás en la página siguiente que se introduce a la base del formulario. 147

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 148

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Arrastra un TextBox al Propiedad Cambiar a formulario. ScrollsBar Vertical  Esté donde esté Multilinea True colocado el TextBox (Name) textBox_visualizar_ dentro del formulario, mensaje verás que se irá Anchor Top, Bottom, Left, colocando Right correctamente según Location 0; 132 cambies las propiedades Size 287; 82 del recuadro.  Fíjate en la página siguiente que vamos a cambiar otra propiedad llamada “Dock”. 149

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Puedes cambiar la propiedad Propiedad Cambiar a “Dock” a “Bottom” para pegarlo hacia abajo y las paredes. Dock Bottom  También puedes hacerlo más cómodo como se muestra en la imagen de la página siguiente.  Si cambias “Dock” a “Bottom”, automaticamente, “Anchor” se vuelve a cambiar sólo 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. 150

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES Propiedad Cambiar a  Todo debería quedar ScrollsBar Vertical así siguiendo el pie de Multilinea True la letra para que al (Name) textBox_visualizar_ Maximizar el mensaje formulario, el Anchor Top, Bottom, Left, Right “textBox_visualizar_m Location 0; 132 ensaje” lo haga Size 287; 82 correctamente. Dock None 151

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Esta es una de las maneras de cambiar a “Bottom”. 152

metaconta@gmail.com 29/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 algún error y poder corregir. 153

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES Propiedad Cambiar a  Arrastra un Label en el Text Mensaje desde el formulario y cambia PIC sus propiedades como (Name) label_mensaje_pic indica el recuadro. Autosize True Location 25; 146 Size 110; 13 154

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Pulsa en la barra de herramientas. “VerOrden de tabulación” y muestra algo similar en l aimagen. 155

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Deja como muestra en la imagen el orden de tabulación.  Puedes si lo deseas poner el orden que prefieras.  Para quitar los números que se ve de la tabulación, “VerOrden de tabulación”. 156

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Si lo deseas, en el Propiedad Cambiar a ReadOnly True 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”. 157

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Nos toca introducir los códigos necesarios para que el “textBox_visualizar_mensaje” pueda recibir los mensajes de avisos desde el PIC.  Introduce este código de abajo, 'Utilizaremos un string como buffer de recepcion Dim Recibidos As String justo debajo del Public Class Form_Principal 158

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 159

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Ahora toca a por el siguiente código.  Fíjate dónde está colocado en la líneas de números del compilador.  Seguiremos así sucesivamente. 160

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 161

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 162

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 163

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  hh:mm:ss  Vamos a poner la hora  Representa hha horas, local de nuestro mm a minutos y ssa Sistema Operativo en el segundos. “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 29/03/2009 RECIBIR MENSAJES 165

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Vamos a añadir la hora local de nuestro Sistema Operativo en el “StatusStrip1”.  Señala con el ratón el StatusStrip1. 166

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Eliges “StatusLabel” como indica la flecha roja de más bajo. 167

metaconta@gmail.com 29/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 29/03/2009 RECIBIR MENSAJES  Ahora puedes ver que es hh:mm:ss. 169

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Selecciona el componente Propiedad Cambiar a “timer1” y cambie de Enabled True propiedades como indica Interval 1000 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. 170

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Pincha dos veces al componente “timer1” para que puedas introducir el código necesario de la hora local de Windows. 171

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Se crea unos códigos pero no tiene función. 172

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  En su interior del código del “timer1”, introduce: StatusStrip1.Items(0).Text = DateTime.Now.ToLongTimeString() 173

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 174

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Al cerrar la aplicación puede quedarse el PIC activado e incluso si quitamos el cable db9.  Vamos a tratar este tema ya que puede ser muy incómodo esta situación, así que al cerrar la aplicación se comportará justo ante de cerrarse como si pulsara el botón naranja de la aplicación, “Espacio”. 175

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 176

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 177

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Comprueba a partir de la página siguiente el código fuente completo. 178

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 179

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 180

metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 181

metaconta@gmail.com 29/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 página sabrás la diferencia y si has activado “ReadOnly” o no a “True”. 182

metaconta@gmail.com 29/03/2009 READONLY = FALSE READONLY = TRUE RECIBIR MENSAJES 183

metaconta@gmail.com 29/03/2009 DESCARGA CÓDIGO 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  Fuente 2 archivo “Fuente 2”.  Fuente 2  Este es el final de la aplicación de la interfaz aunque puedes ampliar algunos extras en páginas siguientes. RECIBIR MENSAJES 184

metaconta@gmail.com 29/03/2009 185

metaconta@gmail.com 29/03/2009 FOTOS 186

metaconta@gmail.com 29/03/2009 187

metaconta@gmail.com 29/03/2009 188

metaconta@gmail.com 29/03/2009 189

metaconta@gmail.com 29/03/2009 190

metaconta@gmail.com 29/03/2009 Puedes ver algunos vídeos en youtube.com sobre este proyecto. VÍDEOS 191

metaconta@gmail.com

Add a comment

Related presentations

Related pages

Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A

Manual Interfaz con VC++ y VB para puerto serie y ... magnífico manual del Manual_PicRS232_vcpp_vb ... con VC++ y VB para puerto serie y PIC16F84A.
Read more

Manual (PDF) Puerto serie PIC16F84A VC++ y Visual Basic

Puerto serie PIC16F84A VC++ y Visual Basic Gracias a muchos foros, en especial este, he conseguido hacer este fabuloso manual en PDF para que sea portable.
Read more

Taringa! - Manual Interfaz VC++ y VB .NET puerto serie

Manual sobre controlas el puerto serie con Visual C++ y Visual Basic ... Manual Interfaz VC++ y VB .NET puerto serie. ... Ingresa a Taringa! para leer ...
Read more

Manual Interfaz VC++ y Visual Basic controlando puerto ...

Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A. ... Interfaz VC++ y Visual Basic controlando puerto serie con PIC16F84A; Interfaz puerto ...
Read more

Puerto serie PIC16F84A VC++ y Visual Basic

Interfaz con Visual C++ 2008 y Visual Basic 2008 para controlar mediante el puerto serie ... un microcontrolador PIC16F84A. En este pequeño manual ...
Read more

Manual Puerto serie con PIC16F84A bajo VC++ y VB

Manual Puerto serie con PIC16F84A ... Manual Puerto serie con PIC16F84A bajo VC++ y VB ... Presento este manual en PDF para el manejo del puerto serie ...
Read more

Angel Acaymo - Manuales

Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A Escrito por Angel Acaymo Jueves ... Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A.
Read more