SlideShare ist ein Scribd-Unternehmen logo
1 von 201
Downloaden Sie, um offline zu lesen
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   29/03/2009


                                                 MOTOR DC CONTROLADO CON
PIC16F84A DB9 VC++ Y VISUAL BASIC
                                                   PIC16F84A BASE RS232




           Ver Vídeo 1                                    Ver Vídeo 2




VÍDEOS       (REQUIERE CONEXIÓN INTERNET)


                                                                               192
metaconta@gmail.com   29/03/2009




                               LIBROS




                                    193
metaconta@gmail.com   29/03/2009




   WWW.PIC16F84A.ORG             ELECTRÓNICA DIGITAL




LIBROS
                                                          194
metaconta@gmail.com   29/03/2009




   OTROS MANUALES




                                   195
metaconta@gmail.com   29/03/2009




                                    DESCARGAS DE MANUALES

   Puedes descargar otros
    manuales relacionado
    sobre temas de
    microcontroladores.
                                             Manuales.
                                             Manuales.




OTROS MANUALES
                                                                196
metaconta@gmail.com   29/03/2009




Enlaces de páginas Web donde podrás encontrar más información.

                           ENLACES DE INTERÉS




                                                                197
metaconta@gmail.com   29/03/2009




ENLACES DE INTERÉS
   Manual PicRS232 Visual C# Completo manual sobre Visual C# que puedes ver si no sigues la
    corriente con esta ampliación 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 electrónica trimestral de España para cualquier
    lector sea principiante, aficionado o profesional con kit de regalo para su montaje. Podrás
    entregar tus propios proyectos de electrónica con o sin microcontroladores e incluso ver el de
    los demás lectores explicado con todo detalle, esquemas eléctricos, esquema de los circuitos
    impresos, lista de componentes, código fuente, etc. Las bases mínimas para entregar los
    proyectos está detallada en la revista.

   www.microchip.com (En Inglés) Web oficial sobre los PIC entre otros dispositivos de la firma
    Microchip, donde podrás descargar las hojas de datos, ejemplos, compilador MPLAB y mucha
    más información.

   http://electronica-pic.blogspot.com/ Blog personal sobre cualquier manual relacionado con
    electrónica, microcontroladores y programación.




                                                                                                     198
metaconta@gmail.com   29/03/2009


Publicado por primera vez:
04/03/2009




                                Versión 1.03
VERSIÓN DEL MANUAL


                                                                        199
metaconta@gmail.com   29/03/2009




                                     Cualquier comentario,
Puedes publicar este tutorial o       sugerencia o mejoras del
manual en tu Web, foros, blogs,
CD, DVD o Blu-Ray para revistas       manual, me lo envían por
oficiales, etc, libremente.
                                      correo electrónico al
                                      metaconta@gmail.com



CONTACTO


                                                                             200
metaconta@gmail.com   29/03/2009




AUTOR:
Ángel Acaymo M. G.




                                                        201

Weitere ähnliche Inhalte

Was ist angesagt? (7)

Arduino consola y puerto serie
Arduino consola y puerto serieArduino consola y puerto serie
Arduino consola y puerto serie
 
Formulario windows con visual c++
Formulario windows con visual c++Formulario windows con visual c++
Formulario windows con visual c++
 
Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015
 
Manual geosoft pavco 1.0
Manual geosoft pavco 1.0Manual geosoft pavco 1.0
Manual geosoft pavco 1.0
 
Manual procedimiento para publicar una pagina web en el servidor home de univ...
Manual procedimiento para publicar una pagina web en el servidor home de univ...Manual procedimiento para publicar una pagina web en el servidor home de univ...
Manual procedimiento para publicar una pagina web en el servidor home de univ...
 
Como hacer una conexión usb
Como hacer una conexión usbComo hacer una conexión usb
Como hacer una conexión usb
 
Programación en c primer programa en c
Programación en c primer programa en cProgramación en c primer programa en c
Programación en c primer programa en c
 

Ähnlich wie Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A

Manual+de+eagle+point+2001+modulos+de+topografia
Manual+de+eagle+point+2001+modulos+de+topografiaManual+de+eagle+point+2001+modulos+de+topografia
Manual+de+eagle+point+2001+modulos+de+topografia
henry briceño
 
Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009
Eber Mallqui
 
Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009
Yayuk Setiyowati
 
Mundo Visual - Visual Basic - Tema 4
Mundo Visual - Visual Basic - Tema 4Mundo Visual - Visual Basic - Tema 4
Mundo Visual - Visual Basic - Tema 4
degarden
 
Profe231 practica1 vb
Profe231 practica1 vbProfe231 practica1 vb
Profe231 practica1 vb
mafre1975
 
Manual civil 3 d 2007 sofware microgeo
Manual civil 3 d 2007 sofware microgeoManual civil 3 d 2007 sofware microgeo
Manual civil 3 d 2007 sofware microgeo
ing_eliali4748
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistencia
Victor Aravena
 

Ähnlich wie Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A (20)

Manual+de+eagle+point+2001+modulos+de+topografia
Manual+de+eagle+point+2001+modulos+de+topografiaManual+de+eagle+point+2001+modulos+de+topografia
Manual+de+eagle+point+2001+modulos+de+topografia
 
Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009
 
Actividad 2
Actividad 2Actividad 2
Actividad 2
 
Fundamentos.net-Guia n1 2012
Fundamentos.net-Guia n1 2012Fundamentos.net-Guia n1 2012
Fundamentos.net-Guia n1 2012
 
Sesion 01
Sesion 01Sesion 01
Sesion 01
 
Sesion 01
Sesion 01Sesion 01
Sesion 01
 
Sesion 01
Sesion 01Sesion 01
Sesion 01
 
Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009Autocad civil 3 d land desktop companion 2009
Autocad civil 3 d land desktop companion 2009
 
Mundo Visual - Visual Basic - Tema 4
Mundo Visual - Visual Basic - Tema 4Mundo Visual - Visual Basic - Tema 4
Mundo Visual - Visual Basic - Tema 4
 
Guia unidad ii programacion
Guia unidad ii programacionGuia unidad ii programacion
Guia unidad ii programacion
 
Taller tecnologia
Taller tecnologiaTaller tecnologia
Taller tecnologia
 
Profe231 practica1 vb
Profe231 practica1 vbProfe231 practica1 vb
Profe231 practica1 vb
 
Taller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeansTaller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeans
 
Manual Project 2003
Manual Project 2003Manual Project 2003
Manual Project 2003
 
Manual civil 3 d 2007 sofware microgeo
Manual civil 3 d 2007 sofware microgeoManual civil 3 d 2007 sofware microgeo
Manual civil 3 d 2007 sofware microgeo
 
Manual de civil 3 d completo 2016
Manual de civil 3 d completo 2016Manual de civil 3 d completo 2016
Manual de civil 3 d completo 2016
 
Manual de civil 3 d completo 2016 ing dcp (1)
Manual de civil 3 d completo 2016 ing dcp (1)Manual de civil 3 d completo 2016 ing dcp (1)
Manual de civil 3 d completo 2016 ing dcp (1)
 
Manual de civil 3 d completo 2016 ing dcp
Manual de civil 3 d completo 2016 ing dcpManual de civil 3 d completo 2016 ing dcp
Manual de civil 3 d completo 2016 ing dcp
 
Ta3 Csp03 Lc1 310109
Ta3 Csp03 Lc1 310109Ta3 Csp03 Lc1 310109
Ta3 Csp03 Lc1 310109
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistencia
 

Kürzlich hochgeladen

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 

Kürzlich hochgeladen (20)

FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 

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

  • 1. metaconta@gmail.com 29/03/2009 1
  • 2. 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
  • 3. metaconta@gmail.com 29/03/2009 PRESENTACIÓN 3
  • 4. 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
  • 5. 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
  • 6. metaconta@gmail.com 29/03/2009 Introducción VISUAL C++ 6
  • 7. 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
  • 8. metaconta@gmail.com 29/03/2009 DESCARGA DEL VISUAL C++ 8
  • 9. 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
  • 10. 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
  • 11. metaconta@gmail.com 29/03/2009 11
  • 12. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 12
  • 13. 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
  • 14. 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
  • 15. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Crea un proyecto nuevo y llámalo PicRS232cpp como indica en la imagen. 15
  • 16. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 16
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 27
  • 28. 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
  • 29. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 29
  • 30. 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
  • 31. metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A 31
  • 32. 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
  • 33. 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
  • 34. metaconta@gmail.com 29/03/2009 CÓDIGO ASCII 34
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 42
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 49
  • 50. 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
  • 51. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 51
  • 52. 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
  • 53. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Justo debajo donde pone:  using namespace System::Drawing; 53
  • 54. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++  Ahora introduces el siguiente comando:  using namespace System::IO::Ports; 54
  • 55. 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
  • 56. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 56
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 60
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 64
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 69
  • 70. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 70
  • 71. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 71
  • 72. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 72
  • 73. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 73
  • 74. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 74
  • 75. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO C++ 75
  • 76. 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
  • 77. metaconta@gmail.com 29/03/2009 77
  • 78. metaconta@gmail.com 29/03/2009 Introducción VISUAL BASIC 78
  • 79. 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
  • 80. metaconta@gmail.com 29/03/2009 DESCARGA DEL VISUAL BASIC 80
  • 81. 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
  • 82. 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
  • 83. metaconta@gmail.com 29/03/2009 83
  • 84. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 84
  • 85. 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
  • 86. 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
  • 87. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ  Crea un proyecto nuevo y llámalo PicRS232vb como indica en la imagen. 87
  • 88. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 88
  • 89. 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
  • 90. 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
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. 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
  • 95. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. 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
  • 100. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 100
  • 101. 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
  • 102. metaconta@gmail.com 29/03/2009 OBJETIVO DE LA INTERFAZ 102
  • 103. 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
  • 104. metaconta@gmail.com 29/03/2009 CÓDIGO ASM DEL PIC16F84A 104
  • 105. 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
  • 106. 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
  • 107. metaconta@gmail.com 29/03/2009 CÓDIGO ASCII 107
  • 108. 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
  • 109. 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
  • 110. 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
  • 111. 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
  • 112. 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
  • 113. 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
  • 114. 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
  • 115. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 115
  • 116. 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
  • 117. 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
  • 118. 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
  • 119. 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
  • 120. 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
  • 121. 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
  • 122. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 122
  • 123. 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
  • 124. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 124
  • 125. 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
  • 126. 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
  • 127. 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
  • 128. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 128
  • 129. 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
  • 130. 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
  • 131. 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
  • 132. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 132
  • 133. 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
  • 134. 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
  • 135. 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
  • 136. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 136
  • 137. 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
  • 138. 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
  • 139. 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
  • 140. 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
  • 141. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 141
  • 142. metaconta@gmail.com 29/03/2009 PRIMER CÓDIGO VISUAL BASIC 142
  • 143. 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
  • 144. metaconta@gmail.com 29/03/2009 144
  • 145. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 145
  • 146. 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
  • 147. 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
  • 148. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 148
  • 149. 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
  • 150. 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
  • 151. 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
  • 152. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Esta es una de las maneras de cambiar a “Bottom”. 152
  • 153. 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
  • 154. 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
  • 155. 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
  • 156. 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
  • 157. 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
  • 158. 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
  • 159. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 159
  • 160. 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
  • 161. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 161
  • 162. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 162
  • 163. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 163
  • 164. 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
  • 165. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 165
  • 166. 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
  • 167. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Eliges “StatusLabel” como indica la flecha roja de más bajo. 167
  • 168. 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
  • 169. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Ahora puedes ver que es hh:mm:ss. 169
  • 170. 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
  • 171. 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
  • 172. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Se crea unos códigos pero no tiene función. 172
  • 173. 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
  • 174. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 174
  • 175. 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
  • 176. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 176
  • 177. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 177
  • 178. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES  Comprueba a partir de la página siguiente el código fuente completo. 178
  • 179. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 179
  • 180. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 180
  • 181. metaconta@gmail.com 29/03/2009 RECIBIR MENSAJES 181
  • 182. 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
  • 183. metaconta@gmail.com 29/03/2009 READONLY = FALSE READONLY = TRUE RECIBIR MENSAJES 183
  • 184. 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
  • 185. metaconta@gmail.com 29/03/2009 185
  • 186. metaconta@gmail.com 29/03/2009 FOTOS 186
  • 187. metaconta@gmail.com 29/03/2009 187
  • 188. metaconta@gmail.com 29/03/2009 188
  • 189. metaconta@gmail.com 29/03/2009 189
  • 190. metaconta@gmail.com 29/03/2009 190
  • 191. metaconta@gmail.com 29/03/2009 Puedes ver algunos vídeos en youtube.com sobre este proyecto. VÍDEOS 191
  • 192. metaconta@gmail.com 29/03/2009 MOTOR DC CONTROLADO CON PIC16F84A DB9 VC++ Y VISUAL BASIC PIC16F84A BASE RS232  Ver Vídeo 1  Ver Vídeo 2 VÍDEOS (REQUIERE CONEXIÓN INTERNET) 192
  • 193. metaconta@gmail.com 29/03/2009 LIBROS 193
  • 194. metaconta@gmail.com 29/03/2009 WWW.PIC16F84A.ORG ELECTRÓNICA DIGITAL LIBROS 194
  • 195. metaconta@gmail.com 29/03/2009 OTROS MANUALES 195
  • 196. metaconta@gmail.com 29/03/2009 DESCARGAS DE MANUALES  Puedes descargar otros manuales relacionado sobre temas de microcontroladores.  Manuales.  Manuales. OTROS MANUALES 196
  • 197. metaconta@gmail.com 29/03/2009 Enlaces de páginas Web donde podrás encontrar más información. ENLACES DE INTERÉS 197
  • 198. metaconta@gmail.com 29/03/2009 ENLACES DE INTERÉS  Manual PicRS232 Visual C# Completo manual sobre Visual C# que puedes ver si no sigues la corriente con esta ampliación 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 electrónica trimestral de España para cualquier lector sea principiante, aficionado o profesional con kit de regalo para su montaje. Podrás entregar tus propios proyectos de electrónica con o sin microcontroladores e incluso ver el de los demás lectores explicado con todo detalle, esquemas eléctricos, esquema de los circuitos impresos, lista de componentes, código fuente, etc. Las bases mínimas para entregar los proyectos está detallada en la revista.  www.microchip.com (En Inglés) Web oficial sobre los PIC entre otros dispositivos de la firma Microchip, donde podrás descargar las hojas de datos, ejemplos, compilador MPLAB y mucha más información.  http://electronica-pic.blogspot.com/ Blog personal sobre cualquier manual relacionado con electrónica, microcontroladores y programación. 198
  • 199. metaconta@gmail.com 29/03/2009 Publicado por primera vez: 04/03/2009  Versión 1.03 VERSIÓN DEL MANUAL 199
  • 200. metaconta@gmail.com 29/03/2009  Cualquier comentario, Puedes publicar este tutorial o sugerencia o mejoras del manual en tu Web, foros, blogs, CD, DVD o Blu-Ray para revistas manual, me lo envían por oficiales, etc, libremente. correo electrónico al metaconta@gmail.com CONTACTO 200
  • 201. metaconta@gmail.com 29/03/2009 AUTOR: Ángel Acaymo M. G. 201