SlideShare una empresa de Scribd logo
1 de 510
Descargar para leer sin conexión
metaconta@gmail.com   18/03/2009




ÍNDICE 1/2
 Presentación – 4
 Visual C# .net – 6
 Entorno Visual C# – 44
 Ejecutar programa – 58
 Objetivo de la interfaz – 67
 Código ASM del PIC16F84A – 101
 Primer código C# – 121
 Recibir mensajes – 163


                                                        2
metaconta@gmail.com   18/03/2009




ÍNDICE 2/2
 Extras – 203
 Fotos – 490
 Vídeos – 498
 Libros – 500
 Otros manuales – 503
 Enlaces de interés – 505
 Versión del manual – 508
 Contacto – 509
 Autor – 510



                                                           3
metaconta@gmail.com   18/03/2009




            Presentación del manual.

          PRESENTACIÓN




                                       4
metaconta@gmail.com   18/03/2009




PRESENTACIÓN
   Este manual está orientado a personas nóveles en tema de microcontroladores PIC y el
    lenguaje C# en el Sistema Operativo Windows.
   No aprenderemos a programar PIC en ensamblador (asm) ni el lenguaje C#, sino que se
    darán los pasos necesarios para poder ser capaz de realizar estas tareas sin tener idea
    de programación.
   El objetivo de este manual es que cualquier persona sin conocimientos previos puedan
    hacer ciertas tareas sobre el puerto serie RS232 sin el HyperTerminal de Windows,
    Minicom de Linux o cualquier otro programa relacionado ya que nos centraremos en crear
    desde cero nuestro propio interfaz donde podemos añadirle cualquier función o diseño de
    botones, colores, posiciones, etc.
   Está relacionado con el libro “MICROCONTROLADOR PIC16F84. Desarrollo de
    proyectos” en el capítulo 20 con el ejemplo “RS232_11.asm” y/o RS232_11b.asm
   Independientemente del entorno de desarrollo que hayas elegido sea en Windows o
    Linux, siguiendo los pasos podrás controlar con tu interfaz el propio PIC a través del
    puerto serie RS232. También puedes recibir mensajes de texto al igual que lo hace el
    HyperTerminal y Minicom que también se visualiza en el LCD.
   Este manual básico les puede servir para proyectos de fin de curso sea de Ciclos
    Formativos Grado Medio, Ciclos Formativos Grado Superior e incluso una carrera
    universitaria.
                                                                                          5
metaconta@gmail.com   18/03/2009




                                   Introducción

           VISUAL C# .NET




                                                  6
metaconta@gmail.com   18/03/2009




VISUAL C# .NET EXPRESS
 Vamos a desarrollar un pequeño programa bajo
  el entorno de desarrollo Visual C# .net Express
  (gratuito) bajo el Sistema Operativo Windows.
 Si conoces el libro www.pic16f84a.org se tratará
  sobre el capítulo 20 en el cual explica paso a
  paso el control del PIC-16F84A.
 Si deseas obtener más información sobre el
  aprendizaje de Visual C# con vídeos incluidos
  entre en este enlace desde la Web oficial de
  MicroSoft. http://msdn.microsoft.com/es-
  es/beginner/bb308760.aspx

                                                             7
metaconta@gmail.com   18/03/2009




VISUAL C# .NET EXPRESS

 En este manual se ha trabajado en su
  momento con:
 Windows XP SP3.

 Visual C# Express Edition 2008 FrameWork
  3.5 SP1.




                                                         8
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS
   De entrada vamos a
    descargar el compilador
    (gratuito) Visual C# .net
    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.


                                                                      9
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS




                                                     10
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS

   Puede tardar unos
    minutos la instalación.
   Lea paso a paso y la
    licencia de su uso
    sobre la instalación del
    Visual C# .net. Tardará
    unos buenos minutos
    entre la descarga y la
    instalación.


                                                                  11
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS




                                                     12
metaconta@gmail.com   18/03/2009




REGISTRO DE VISUAL C# .NET
 Llegarás un momento en que te dice que te
  registres. Si no te registras sólo funcionará el
  Visual C# .net 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.

                                                             13
metaconta@gmail.com   18/03/2009




                                   14
metaconta@gmail.com   18/03/2009




                                   15
metaconta@gmail.com   18/03/2009




                                   16
metaconta@gmail.com   18/03/2009


Desde el botón de inicio de
Windows, pulsa “Todos los
programas”, “Microsoft Visual C#
2008 Express Edition” y ejecutarás
el Visual C#.
En caso de que hayas tocado algo
puedes restablecer las ventanas en
la barra de herramientas,
“VentanasRestablecer diseño de
la ventana”.




EJECUTAR VISUAL C# .NET


                                                                        17
metaconta@gmail.com   18/03/2009




RESTABLECER DISEÑO DE LA VENTANA




                                                     18
metaconta@gmail.com   18/03/2009




RESTABLECER DISEÑO DE LA VENTANA

   Le hará una pregunta
    antes de realizar la
    operación.
   Pulse “Sí” para
    reestablecer las
    ventanas.




                                                              19
metaconta@gmail.com   18/03/2009




RESTABLECER DISEÑO DE LA VENTANA




                                                     20
metaconta@gmail.com   18/03/2009




INICIO VISUAL C# .NET

   Como se muestra en
    la imagen, aparecerá
    una página llamada
    “Página de inicio”.




                                                              21
metaconta@gmail.com   18/03/2009




CREAR NUEVO PROYECTO
Creamos un nuevo proyecto en “ArchivoNuevaProyecto…”. Antes
de comenzar, vamos a explicar el entorno básico del Visual C# .NET
Express.


                                                                                      22
metaconta@gmail.com   18/03/2009




CREAR NUEVO PROYECTO




                                                    23
metaconta@gmail.com   18/03/2009


Se abrirá una ventana llamada
“Nuevo proyecto”. Eliges la primera
que se llama “Aplicación de
Windows Forms”.
Abajo donde dice “Nombre:”
podemos poner cualquier nombre,
en mi caso he puesto exactamente
PicRS232.
Cuando acabes pulsa el botón
“Aceptar”.




CREAR NUEVO PROYECTO


                                                                         24
metaconta@gmail.com   18/03/2009




CREAR NUEVO PROYECTO




                                                    25
metaconta@gmail.com   18/03/2009


Como puedes ver en la imagen, se
a creado una ventana llamada
“Form1” en el cual vamos a diseñar
nuestro formulario.
En cada paso que hagamos se
recomienda guardar el proyecto por
si hay corte de luz, fallo en el
sistema, etc así no perder
información o el trabajo que hemos
realizado que puedes ser de horas.




INICIO DE UN NUEVO PROYECTO


                                                                        26
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Pulsa el botón
    “Guardar todo” como
    indica en la imagen o
    pulsa en la barra de
    herramientas
    “ArchivoGuardar
    todo” para guardar el
    proyecto.



                                                               27
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      28
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Al pulsar “Guardar
    todo” aparece una
    ventana llamada
    “Guardar proyectos”.
    Deja el nombre como
    está y pulsa el botón
    “Guardar”.




                                                               29
metaconta@gmail.com   18/03/2009




                                   30
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   En la pestaña “Página
    de inicio, en su
    derecha pulsa la X
    para cerrarla” y no nos
    molestará en el futuro
    si abrimos muchas.




                                                                 31
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      32
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Pulsa la pestaña
    “Cuadro de
    herramientas” para
    abrir una ventana
    indicado en la imagen
    con un rectángulo rojo.




                                                                 33
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      34
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Se abrirá el “Cuadro
    de herramientas”
    como indica en el
    dibujo, pero aún no es
    fija.




                                                                35
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      36
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Se abrirá el “Cuadro
    de herramientas”
    como indica en el
    dibujo, pero aún no es
    fija.
   Para dejarla fija pulsa
    la chincheta como
    indica la marca roja de
    la imagen de la
    derecha.

                                                                 37
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Ahora permanece fija y
    es lo que nos interesa
    si estamos añadiendo
    componentes al
    formulario.
   Así se hará con este
    tipo de ventanas.




                                                                38
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO
Vamos abrir otro cuadro llamado “propiedades” para tener todo el
entorno preparado y con la chincheta fija.



                                                                                         39
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Dentro de la ficha que
    actualmente se llama
    Form1 (Más adelante
    cambiaremos el
    nombre), pulsa el
    botón derecho del
    ratón y dale en
    “Propiedades”.



                                                                40
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      41
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Una vez que todo esté
    como muestra en la
    imagen, vamos a
    explicar cada
    elemento para
    orientarnos y así saber
    de lo que estamos
    hablando y para qué
    es cada cosa.


                                                                 42
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




                                                      43
metaconta@gmail.com   18/03/2009




Nos familiarizamos con el entorno.

ENTORNO VISUAL C#




                                   44
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   Ahora que ya tenemos
    Visual C# a la vista,
    hay que saber de
    entrada donde
    introducir los códigos
    de programación.




                                                                45
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   Hay varias maneras de
    ver los códigos como
    muestra en la imagen.
   Si pulsas “Abrir
    diseñador” se muestra
    el diseño de formulario
    y si pulsas “Ver
    código” muestra el
    código fuente del
    programa.

                                                                 46
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#




                                                       47
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   También puedes ver el
    código pulsando con el
    botón derecho del
    ratón, luego “Ver
    código” e igualmente
    accede al código
    fuente.




                                                                48
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   En el código fuente
    escribiremos en el
    lenguaje C# (no en
    ensamblador) los
    códigos necesarios
    para poder comunicar
    el PIC 16F84A.




                                                              49
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#




                                                       50
metaconta@gmail.com    18/03/2009




                 CÓDIGO FUENTE                              DISEÑO
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PicRS232
{
  public partial class Form1 : Form
  {
    public Form1()
    {
       InitializeComponent();
    }
  }
}




ENTORNO VISUAL C#
                                                                          51
metaconta@gmail.com   18/03/2009


Vamos a explicar cada cuadro para
familiarizarnos y poder entender las
futuras explicaciones.
Se explicará el “Cuadro de
herramientas”, “Explorador de
soluciones”, “Propiedades” y algún
que otro según avanzamos.




ENTORNO VISUAL C#


                                                                          52
metaconta@gmail.com   18/03/2009




CUADRO DE HERRAMIENTAS
   En el “Cuadro de herramientas” hay
    componentes que puedes arrastrarlo al
    formulario Form1 o hacer doble clic con
    el ratón.
   NOTA: Se llama componentes a todos
    objetos que se pueda coger desde el
    “Cuadro de herramientas” y que se
    pueda arrastrar hacia el formulario con
    el fin de editar sus propiedades. Se
    dividen en dos grupos: los que forman
    parte de la interfaz de usuario, como
    botones, etiquetas de textos, etc, y
    aquellos que aportan funcionalidad pero
    no son visibles al ejecurtarlo. Los
    primeros se llaman controles
    normalmente, para diferenciarlos.
   En resumen: El Cuadro de
    herramientas y el Diseñador, para
    desarrollar rápidamente interfaces de
    usuario con el ratón.                                                        53
metaconta@gmail.com   18/03/2009




EXPLORADOR DE SOLUCIONES

   En el “Explorador de
    soluciones”, para ver y
    administrar archivos
    de proyecto y
    configuraciones.




                                                                 54
metaconta@gmail.com   18/03/2009




VENTANA DE PROPIEDADES

   En “Propiedades”,
    para configurar
    propiedades y eventos
    en los controles de la
    interfaz de usuario.




                                                                55
metaconta@gmail.com   18/03/2009




VENTANA DE PROPIEDADES




                                                    56
metaconta@gmail.com   18/03/2009




VENTANA DE PROPIEDADES

   Algunas veces, la
    “descripción de la
    propiedad” aparece
    escondida.
   Simplemente
    selecciona abajo con
    el ratón y lo arrastra
    hacia arriba hasta que
    se vea.


                                                                57
metaconta@gmail.com   18/03/2009




EJECUTAR PROGRAMA




                                    58
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA

   Para compilar o
    ejecutar el programa
    simplemente arriba en
    la barra de
    herramientas pulsa
    “DepurarIniciar
    depuración” o
    simplemente pulsa
    “F5”.


                                                               59
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA




                                                    60
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA

   También puedes
    pulsar la flecha verde
    que significa lo mismo
    que al pulsar “F5”.




                                                                61
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA




                                                    62
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA

   Para terminar la
    depuración
    simplemente pulsa
    “DepurarDetener
    depuración”.




                                                           63
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA




                                                    64
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA
   Puedes detener la
    depuración pulsando el
    botón cuadrado azul
    claro.
   En el formulario de la
    aplicación ejecutándose,
    también puedes pulsar
    la X para cerrar como
    cualquier otro programa.
    La X que está en la
    esquina superior
    derecha al lado de
    Minimizar y Maximizar.

                                                                  65
metaconta@gmail.com   18/03/2009




EJECUTAR TU PROGRAMA




                                                    66
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                        67
metaconta@gmail.com   18/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
  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.

                                                           68
metaconta@gmail.com   18/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.



                                                             69
metaconta@gmail.com   18/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 “PicRS232”
    (sin las dobles
    comillas) ya que es el
    nombre del programa
    principal.

                                                                 70
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      71
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ
   En el nombre de la
    propiedad (Name) que el
    valor de la propiedad se
    llama “Form1” la cambiamos
    a “Form_Principal”.
   (Name) en formulario,
    botones, etiquetas o
    cualquier otro objeto, es el
    nombre interno del objeto y
    no se visualiza, por ejemplo
    un botón, no el nombre del
    botón “Text” que si se
    visualiza. El nombre interno
    de los objetos es para
    llamarlo.


                                                                      72
metaconta@gmail.com   18/03/2009




                                            CÓDIGO FUENTE

   Asegúrate que el código
    fuente es tal como se
    muestra.




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




OBJETIVO DE LA INTERFAZ




                                                      74
metaconta@gmail.com   18/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.

                                                                 75
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      76
metaconta@gmail.com   18/03/2009




                                                  PROPIEDADES

   En el cuadro de propiedades   Propiedad                 Cambie a
    de la derecha, es un breve    Text                      PicRS232
    resumen de lo que hemos
    hecho menos la “Propiedad”    (Name)                    Form_Principal
    “Size”, que es el que         StartPosition             CenterScreen
    debemos tener si no hemos
    tocado nada al principio.     Size                      300; 300
   Ahora en adelante sabrá
    interpretar este cuadro, y
    podemos cambiar las
    propiedades más
    rápidamente de cualquier
    objeto.



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




OBJETIVO DE LA INTERFAZ
   En la ventana de
    “Cuadro de
    herramientas” pulsa el
    botón izquierdo del ratón
    el objeto o control
    “Button” y sin soltar
    arrástralo al formulario y
    después suelta.
   También puedes pinchar
    2 veces clic en “Button”
    con el ratón y se agrega
    automáticamente en el
    formulario.

                                                                    78
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      79
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ
   Haz introducido el botón
    llamado “Button1” en el
    formulario.
   Ahora toca cambiar las
    propiedades que se
    describe en el cuadro a
    continuación.
   Da igual en que parte
    coloques el Button
    dentro del formulario, ya
    que lo colocaremos con
    las coordenadas en las
    propiedades más
    adelante.
                                                                   80
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      81
metaconta@gmail.com   18/03/2009




                                              PROPIEDADES

   Haz introducido el botón   Propiedad                 Cambie a
    llamado “button1” en el    Text                      t
    formulario.                (Name)                    button_t
                               Location                  109; 38
   Ahora toca cambiar las
    propiedades que se
    describe en el cuadro a
    continuación para el
    “button1”.




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




                                                PROPIEDADES

   Arrastra un “button” desde   Propiedad                 Cambie a
    el “Cuadro de                Text                      b
    herramientas” hacia el       (Name)                    button_b
    formulario en el cual se     Location                  109; 67
    llama “button2” y cambie
    las propiedades como
    hiciste en el apartado
    anterior.




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




                                        PROPIEDADES

   Ahora con button3.   Propiedad                 Cambie a
                         Text                      a
                         (Name)                    button_a
                         Location                  28; 67




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




                                                PROPIEDADES

   Ahora con button4 pero       Propiedad                 Cambie a
    cuidado una cosa, la letra   Text                      l
    que estamos usando es la     (Name)                    button_l
    letra “L” minúscula que      Location                  190; 67
    podemos confundirnos con
    la “I” latina mayúscula.




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




                                                 PROPIEDADES

   Ahora con Button5 de la       Propiedad                 Cambie 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
                                                                             86
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   En el “button5 o
    ahora“button_Espacio”
    , haz clic sobre él para
    ver sus propiedades.
   En ella, BackColor he
    seleccionado el color
    naranja que muestra
    en la imagen.



                                                                  87
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Cambiamos a
    “Negrita” en
    “Font.Bold” a modo
    “True”. Para acceder a
    Bold que significa
    “Negrita” pulsamos el
    símbolo + a – para
    acceder seguido de
    activarlo a True.


                                                                88
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Hay una manera más
    cómoda y rápida de
    ponerlo en “Negrita”
    que es pulsando
    directamente en “Font”
    sin abrirlo como
    muestra en la imagen.




                                                                89
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Tras a verlo pulsado,
    se abre una ventana
    muy cómoda y fácil de
    entender.
   En “Estilo de fuente:”
    señala “Negrita” y
    luego pulsa “Aceptar”.
   Así conseguimos el
    resultado que
    queremos.
                                                                90
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      91
metaconta@gmail.com   18/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.

                                                                   92
metaconta@gmail.com   18/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”.




                                                              93
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      94
metaconta@gmail.com   18/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.


                                                               95
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      96
metaconta@gmail.com   18/03/2009


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.




OBJETIVO DE LA INTERFAZ


                                                                          97
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Si quieres ver,
    seleccionar o modificar
    los nombres internos
    (Name) de los objetos
    más facilmente, pulsa
    arriba “VerOtras
    ventanasEsquema
    del documento”.



                                                                 98
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      99
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Esta ventana se llama
    “Esquema de
    documento”, como dije
    antes, puedes
    seleccionar los objetos
    aquí y cambiar su
    nombre interno
    (Name).



                                                                 100
metaconta@gmail.com   18/03/2009




CÓDIGO ASM DEL PIC16F84A




                                          101
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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.

                                                          102
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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 Code for Information
  Interchange” o lo que es lo mismo “Código
  Estadounidense Estándar para el Intercambio
  de Información”.

                                                             103
metaconta@gmail.com   18/03/2009




Tabla ASCII
1




                                                 104
metaconta@gmail.com   18/03/2009




Tabla ASCII
2




                                                 105
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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.


                                                                  106
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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.




                                                            107
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A




                                                    108
metaconta@gmail.com   18/03/2009




LISTA DE COMPONENTES

Componentes      Valor          C8                        22pF
IC1              LCD LM016L     Y1                        4 MHz
IC2              MAX232         R1 ajustable              10 kΩ
IC3              PIC16F84A-04   R2                        330 KΩ
C1               1µF            R3                        330 KΩ
C2               100nF          R4                        330 KΩ
C3               1µF            R5                        330 KΩ
C4               100nF          D1                        Led Rojo
C5               1µF            D2                        Led Rojo
C6               1µF            D3                        Led Rojo
C7               22pF           D4                        Led Rojo


CÓDIGO ENSAMBLADOR DEL PIC16F84A
                                                                     109
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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
                                                                    110
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
;************************************ RS232_11.asm **************************************
;
;        ===================================================================
;          Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot;
;          E. Palacios, F. Remiro y L. López.                                          www.pic16f84a.org
;          Editorial Ra-Ma. www.ra-ma.es
;        ===================================================================
;
; SISTEMA DE GOBIERNO DESDE ORDENADOR: Desde el teclado de un ordenador se desea comandar
; el movimiento de una estructura móvil, según la siguiente tabla:
;
;        TECLA (Por ejemplo)                 MOVIMIENTO
;        -------------------                                      ----------
;        t                                   Adelante
;        b                                   Atrás
;        a                                   Izquierda
;        l                                   Derecha
;        Espacio                             Parada
;
; La pulsación de cualquiera de estas teclas activa el estado de las salidas correspondiente
; RB3 (Adelante), RB2 (Atrás), RB1 (Izquierda), RB0 (Derecha) y apaga el resto.
;
; El movimiento que se está realizando aparece reflejado en un mensaje en el visualizador LCD
; del sistema y también en la pantalla del ordenador.
;
; El programa debe permitir modificar facilmente en posteriores revisiones en el hardware de
; la salida. Es decir, para activar las salidas conviene utilizar el direccionamiento por bit
; en lugar de por byte (utilizar instrucciones quot;bsfquot; y quot;bcfquot;, en lugar de quot;mov..quot;).
;
; ZONA DE DATOS **********************************************************************

       LIST                            P=16F84A
       INCLUDE                         <P16F84A.INC>




                                                                                                                                  111
metaconta@gmail.com                     18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
         __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

         CBLOCK 0x0C
         TeclaPulsada                                                             ; Va a guardar el contenido de la tecla pulsada.
         MensajeApuntado                                                          ; Va a guarda la dirección del mensaje apuntado.
         ENDC

#DEFINE    SalidaAdelante                                     PORTB,3             ; Define dónde se sitúan las salidas.
#DEFINE    SalidaAtras                                        PORTB,2
#DEFINE    SalidaIzquierda               PORTB,1
#DEFINE    SalidaDerecha                                      PORTB,0

TECLA_ADELANTE                           EQU                  't'                                      ; Código de las teclas utilizadas.
TECLA_ATRAS   EQU                        'b'
TECLA_IZQ     EQU                        'a'
TECLA_DER     EQU                        'l'
TECLA_PARADA EQU                         ''                                         ; Código de la tecla espaciadora, (hay un espacio,
                                                                                    ; tened cuidado al teclear el programa).
; ZONA DE CÓDIGOS ********************************************************************

         ORG        0
Inicio
        call        LCD_Inicializa
        call        RS232_Inicializa
        bsf                              STATUS,RP0                               ; Configura como salidas las 4 líneas del
        bcf                              SalidaAdelante                           ; del Puerto B respetando la configuración del
        bcf                              SalidaAtras                              ; resto de las líneas.
        bcf                              SalidaIzquierda
        bcf                              SalidaDerecha
        bcf                              STATUS,RP0
        call        Parado                                                        ; En principio todas las salidas deben estar
Principal                                                                         ; apagadas.
        call        RS232_LeeDato                                                 ; Espera a recibir un carácter.




                                                                                                                                                         112
metaconta@gmail.com                   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
         call            TesteaTeclado
         goto            Principal

; quot;Mensajesquot; ----------------------------------------------------------------------------
;
Mensajes
       addwf           PCL,F
MensajeParado
       DT quot;Sistema PARADOquot;, 0x00
MensajeAdelante
       DT quot;Marcha ADELANTEquot;, 0x00
MensajeAtras
       DT quot;Marcha ATRASquot;, 0x00
MensajeIzquierda
       DT quot;Hacia IZQUIERDAquot;, 0x00
MensajeDerecha
       DT quot;Hacia DERECHAquot;, 0x00

; Subrutina quot;TesteaTecladoquot; -------------------------------------------------------------
;
; Testea el teclado y actúa en consecuencia.

TesteaTeclado
      movwf              TeclaPulsada                                                       ; Guarda el contenido de la tecla pulsada.
      xorlw              TECLA_ADELANTE                                                                         ; ¿Es la tecla del movimiento hacia adelante?
      btfsc              STATUS,Z
      goto               Adelante                                                           ; Sí, se desea movimiento hacia adelante.
;
      movf               TeclaPulsada,W                                                     ; Recupera el contenido de la tecla pulsada.
      xorlw              TECLA_ATRAS                                                        ; ¿Es la tecla del movimiento hacia atrás?
      btfsc              STATUS,Z
      goto               Atras                                                              ; Sí, se desea movimiento hacia atrás.
;




                                                                                                                                                                113
metaconta@gmail.com                18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
         movf    TeclaPulsada,W                      ; Recupera el contenido de la tecla pulsada.
         xorlw   TECLA_IZQ                           ; ¿Es la tecla del movimiento hacia la izquierda?
         btfsc   STATUS,Z
         goto    Izquierda                           ; Sí, se desea movimiento hacia la izquierda.
;
         movf    TeclaPulsada,W                      ; Recupera el contenido de la tecla pulsada.
         xorlw   TECLA_DER                           ; ¿Es tecla del movimiento hacia la derecha?
         btfsc   STATUS,Z
         goto    Derecha                             ; Sí, se desea movimiento hacia la derecha.
;
         movf    TeclaPulsada,W                      ; Recupera el contenido de la tecla pulsada.
         xorlw   TECLA_PARADA                        ; ¿Es la tecla de parada?.
         btfss   STATUS,Z
         goto    Fin                                 ; No es ninguna tecla de movimiento. Sale.
Parado
       bcf                         SalidaAdelante    ; Como se ha pulsado la tecla de parada se
       bcf                         SalidaAtras       ; desactivan todas las salidas.
       bcf                         SalidaIzquierda
       bcf                         SalidaDerecha
       movlw     MensajeParado
       goto      Visualiza
Adelante
       bcf                         SalidaAtras
       bsf                         SalidaAdelante
       bcf                         SalidaIzquierda
       bcf                         SalidaDerecha
       movlw     MensajeAdelante
       goto      Visualiza
Atras
       bcf                         SalidaAdelante
       bsf                         SalidaAtras
       bcf                         SalidaIzquierda
       bcf                         SalidaDerecha




                                                                                                                      114
metaconta@gmail.com    18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
        movlw       MensajeAtras
        goto        Visualiza
Izquierda
        bcf                             SalidaAdelante
        bcf                             SalidaAtras
        bsf                             SalidaIzquierda
        bcf                             SalidaDerecha
        movlw       MensajeIzquierda
        goto        Visualiza
Derecha
        bcf                             SalidaAdelante
        bcf                             SalidaAtras
        bcf                             SalidaIzquierda
        bsf                             SalidaDerecha
        movlw       MensajeDerecha

; Según el estado de las salidas visualiza el estado del sistema en el visualizador LCD y en
; el monitor del ordenador.

Visualiza
        movwf       MensajeApuntado                          ; Guarda la posición del mensaje.
        call        LCD_Borra                                ; Borra la pantalla del modulo LCD.
        movf        MensajeApuntado,W                                              ; Visualiza el mensaje en la pantalla
        call        LCD_Mensaje                              ; del visualizador LCD.
        call        RS232_LineasBlanco                       ; Borra la pantalla del ordenador.
        movf        MensajeApuntado,W
        call        RS232_Mensaje                            ; Lo visualiza en el HyperTerminal.
        call        RS232_LineasBlanco
Fin     return

       INCLUDE <RS232.INC>
       INCLUDE <RS232MEN.INC>
       INCLUDE <LCD_4BIT.INC>




                                                                                                                                        115
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
    INCLUDE <LCD_MENS.INC>
    INCLUDE <RETARDOS.INC>
    END

;   ===================================================================
;    Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot;
;    E. Palacios, F. Remiro y L. López.                     www.pic16f84a.org
;    Editorial Ra-Ma. www.ra-ma.es
;   ===================================================================




                                                                                                              116
metaconta@gmail.com   18/03/2009




RS232_11.HEX
:10012000080085158316051685118312080008300E
:100130008E00051A99288F2191210310051A0314A6
:100140008F0C8F218E0B9D288C210F080800303ECC
                                                 Abre un archivo de texto y pega el
:100150008F0008308E0085118F218F0C031CB22870
:100160008515B32885118F218E0BAD2885158C211F
:10017000080090000C309002900310080C209100B1
                                                  código que ves a la izquierda.
:1001800091080319C628A820900ABD2808000A3043
:1001900092000A30A820920BC9280D30A820080030
                                                  Fíjate que al final del código del
:1001A00083160510051185108312851005110510A1
:1001B0009F213030EA20A3213030EA208C213030DA       todo, debes dejar justo abajo un
                                                  espacio pulsando la tecla “Enter”.
:1001C000EA2094212030EA209421142112211021C8
:1001D000FE200800F039930006080F3993048316B7
:1001E000060895000F308605831213088600051552
:1001F000051183161508860083120800063015299C
:1002000080301529C030152994301529D43015298E
:1002100080381529C0381529083015290E301529C0      Precisamente aquí :00000001FF
:100220000C3015290130152928300510192905141D
:1002300021219400EA20140EEA20051CA521912119
:1002400008009300F13C031D2829EE309300352966
                                                  al final donde hay dos F pulsa
:100250001308D13C031D2F29EE30930035291308D4
:10026000BA3C031D3529DF30930013080800103015       Enter una vez.
:100270003E2901303E2902303E29033096002030CD
:100280001721960B3F2908009700F039031D4C29D0
:10029000203017214E299700170E4F2117080F39CC
:1002A0009600093C031C57291608303E59291608A8
                                                 Guarda el archivo de texto con la
:1002B000373E172998000C309802980318080C2034
:1002C00099009908031967291721980A5E290800DF
                                                  extensión .hex o llámalo así
:1002D00098000C30980298039A01122110301A02EB
:1002E000031D7729992199210F3098026C2918084C
:1002F0000C20990099080319812917219A0A980A54
                                                  RS232_11.hex.
:100300006E2908000000000000000000000000004E
:1003100008000000A43095290000403095291F30C6
:10032000952900000E30952905309B009B0B9629DE
                                                 Si deseas guardar los datos al
:100330000800C830A8296430A8293230A829143010
:10034000A8290A30A8290530A8290230A829013097       PIC, hay un manual de cómo
:100350009C00F9309B0000009B0BAB299C0BA9294A
:100360000800C830BC296430BC293230BC291430A4
:10037000BC290A30BC2905309D0064309C00F9304E
                                                  hacerlo explicado haciendo clic
:100380009B0000009B0BC1299C0BBF299D0BBD2925
:02039000080063                                   con el ratón aquí.
:02400E00F13F80
:00000001FF




CÓDIGO ENSAMBLADOR DEL PIC16F84A
                                                                                   117
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   Se preguntará el motivo de           TECLA                  MOVIMIENTO
    poner esas letras en los                 t                        Adelante
    botones. ¿Por qué esas
                                             b                         Atrás
    letras?
                                             a                        Izquierda
   El programa del
    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.

                                                                                  118
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR 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”.

                                                                   119
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   En el Visual C# vamos a           Hex                        Carácter
    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 carácteres.

                                                                             120
metaconta@gmail.com   18/03/2009




Códigos de envío de datos al PIC16F84A.

      PRIMER CÓDIGO C#




                                         121
metaconta@gmail.com   18/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#.

                                                                 122
metaconta@gmail.com   18/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#.




                                                           123
metaconta@gmail.com            18/03/2009




PRIMER CÓDIGO C#
   Puesta en marcha de la comunicación entre ordenador y PIC16F84A, circuito 20-13.
   Tengo dificultades para conseguir poner en marcha la comunicación entre un ordenador y el PIC16F84A del circuito de la figura 20-13,
    ¿qué puedo hacer?
   Le aconsejamos que siga el siguiente procedimiento:
   Compruebe con detenimiento el correcto montaje del esquema de la figura 20-13, en especial la conexión del MAX232, cableado del conector y
    polaridad de los condensadores.
   Con un polímetro compruebe el cable de conexión, para ello mida la continuidad entre los pines 2 de los conectores macho y hembra, y repita la
    operación para los pines 3 y pines 5. Algunos lectores que se construyen ellos mismo el cable RS232 con conectores DB9, conectan uno al
    revés. Esta es la avería más frecuente.
   Para un MAX232 los condensadores C1, C3, C5 y C6 deben ser de 1 microfaradios. Se ha detectado que hay lectores que tienen dificultades en
    la lectura del código en los condensadores y utilizan otros valores muy diferentes.
   Compruebe que el puerto seleccionado en el Hyperterminal corresponde con el realmente utilizado en el ordenador, COM 1 ó COM2.
    Compruebe que la configuración del puerto corresponde fielmente a la figura 20-10 del libro.
   Compruebe el correcto funcionamiento del MAX232 para ello, en reposo (y con el Hyperterminal conectado), debe tener las siguientes tensiones
    respecto de masa:

    - En el pin 16 tiene que haber + 5 V.
    - En los pines 11 y 12 tiene que haber entre + 3 y + 5 V.
    - En los pines 6, 13 y 14 tiene que haber entre -7 V y -12 V.
   Si todos los puntos anteriores son correctos pruebe de nuevo su circuito con el fichero actualizado Libreria RS232.INC (5.51 kB) que se ha
    incluido en el capítulo 20 de la sección Proyectos y el programa ejemplo RS232_02.asm del CDROM que acompaña al libro.

   Ver aquí.




                                                                                                                                                 124
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   Hay varias formas de
    seleccionar un objeto.
    Como indica la imagen
    de la derecha, en
    “Esquema de
    documento” ya
    explicado
    anteriormente o
    simplemente
    pinchando una vez
    encima del botón t.

                                                                125
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Pulsamos el botón
    “Eventos” y hacemos
    doble clic con el ratón
    donde indica la flecha
    roja.




                                                                 126
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Saltamos a la pestaña
    “Form1.cs” y se nos ha
    creado el código del
    evento:
   private void
    button_t_Click(object
    sender, EventArgs e)
       {

      }
                                                                127
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Volvamos a la pestaña
    “Form1.cs[Diseño]” y
    nos fijamos que se ha
    creado el evento
    “button_t_Click”.




                                                               128
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Pulsa el botón de
    “propiedades”.




                                                           129
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   La manera más cómoda
    es pinchando 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.
   A partir de ahora
    utilizamos este método
    por ser más rápido, el
    pinchar dos veces un
    botón.
                                                                  130
metaconta@gmail.com   18/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.




                                                          131
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C# (OBJETIVO)

 1) Introducir códigos en los botones para su
  funcionamiento.
 2) Depurar nuestra aplicación.




                                                           132
metaconta@gmail.com   18/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.



                                                            133
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      134
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   El código que vamos a introducir para que el
    PIC16F84A lea la letra “t” es este:

byte[] mBuffer = new byte[1];
        mBuffer[0] = 0x74; //ASCII letra quot;tquot;.
        serialPort1.Write(mBuffer, 0,
  mBuffer.Length);


                                                             135
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      136
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

 Fíjate bien en el dibujo de la página anterior
  que un texto con un cuadro amarillo dice:
 “El nombre „serialPort1‟ no existe en el
  contexto actual”
 Nos faltan dos cosas para tener un buen
  funcionamiento del programa.




                                                            137
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Justo debajo donde
    pone:
   using
    System.Windows.Form
    s;




                                                             138
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Ahora introduces el
    siguiente comando:
   using System.IO.Ports;




                                                                139
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   En el “Cuadro de
    herramientas”,
    “Componentes”, pincha o
    haces dos veces click 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”.

                                                                       140
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      141
metaconta@gmail.com   18/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.

                                                                   142
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
                            Propiedad                 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.




                                                                  143
metaconta@gmail.com   18/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:
 mBuffer[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.

                                                             144
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      145
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   Aún no hemos acabado. Introduces este código debajo del
    InitializeComponent();.
// Abrir puerto mientra se ejecute la aplicación
          if (!serialPort1.IsOpen)
          {
              try
              {
                 serialPort1.Open();
              }
              catch (System.Exception ex)
              {
                 MessageBox.Show(ex.ToString());
              }
          }


                                                                        146
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Para saber el números
    de líneas en el editor
    de Visual C#, pulsa:
   Herramientasopcion
    es…




                                                                147
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Se abre la ventana
    opciones.
   Abajo, pincha “Mostrar
    todas las
    configuraciones”.




                                                                148
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      149
metaconta@gmail.com   18/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”.




                                                                150
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      151
metaconta@gmail.com   18/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.

                                                               152
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      153
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      154
metaconta@gmail.com   18/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.

                                                            155
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

 En el formulario, pincha dos veces click en el
  botón b e introduce los códigos necesarios.
byte[] miBuffer = new byte[1];
        miBuffer[0] = 0x62; //ASCII letra quot;bquot;.
        serialPort1.Write(miBuffer, 0,
  miBuffer.Length);



                                                            156
metaconta@gmail.com   18/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.

   NOTA:
   Si deseas enviar varias tramas en un mismo click del botón, lo hacemos de la
    siguiente manera. En este manual no lo vamos a usar, es para que lo tengas en
    cuenta.

        // Enviar trama
        byte[] miBuffer = new byte[3]; // Tres máximo.
        miBuffer[0] = 0x74;
        miBuffer[1] = 0x54;
        miBuffer[2] = 0x13;
        this.serialPort1.Write(miBuffer, 0, miBuffer.Length);


                                                                                  157
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      158
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      159
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      160
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      161
metaconta@gmail.com   18/03/2009




            PICRS232.SLN                       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 “PicRS232.sln” para
    abrirlo junto con el Visual C#.



PRIMER CÓDIGO C#
                                                                            162
metaconta@gmail.com   18/03/2009




Recibir mensajes desde el microcontrolador PIC16F84A.

                     RECIBIR MENSAJES




                                                       163
metaconta@gmail.com   18/03/2009


Objetivos:
Leer los datos del PIC16F84A
                                  1) Arrastrar StatusStrip o barra
desde la interfaz del PC.          de estado al formulario.
                                  2) Un TextBox para leer los
                                   mensajes del PIC.
                                  3) Un Label o 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


                                                                           164
metaconta@gmail.com   18/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.

                                                                165
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#




                                                      166
metaconta@gmail.com   18/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”.
                                                                         167
metaconta@gmail.com   18/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.




                                                                                 168
metaconta@gmail.com   18/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




                                                                         169
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Esta es una de las
    maneras de cambiar a
    “Bottom”.




                                                              170
metaconta@gmail.com   18/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.
                                                                    171
metaconta@gmail.com   18/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




                                                                       172
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Pulsa en la barra de
    herramientas.
    “VerOrden de
    tabulación” y muestra
    algo similar en l
    aimagen.




                                                               173
metaconta@gmail.com   18/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”.

                                                               174
metaconta@gmail.com   18/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”.

                                                                     175
metaconta@gmail.com   18/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
     string Recibidos;

 justo debajo del
public partial class Form1 : Form
    {
                                                                 176
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      177
metaconta@gmail.com   18/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.




                                                           178
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      179
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      180
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      181
metaconta@gmail.com   18/03/2009


hh:mm:ss
Representa hh a horas, mm a    Vamos a poner la hora
minutos y ss a segundos.
                                local de nuestro Sistema
                                Operativo en el
                                “StatusStrip1”.
                               Arrastra el “Timer” al
                                formulario con lo cual, se
                                llama “timer1” que lo
                                queremos para actualizar
                                lo valores de la hora.
RECIBIR MENSAJES


                                                                       182
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      183
metaconta@gmail.com   18/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.




                                                                184
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Eliges “StatusLabel”
    como indica la flecha
    roja de más bajo.




                                                               185
metaconta@gmail.com   18/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.

                                                                 186
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Ahora puedes ver que
    es hh:mm:ss.




                                                              187
metaconta@gmail.com   18/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.

                                                                       188
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Pincha dos veces al
    componente “timer1”
    para que puedas
    introducir el código
    necesario de la hora
    local de Windows.




                                                              189
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Se crea unos códigos
    pero no tiene función.




                                                                190
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      191
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   En su interior del código del “timer1”,
    introduce:

   statusStrip1.Items[0].Text =
    DateTime.Now.ToLongTimeString();




                                                               192
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      193
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

 Comprueba a partir de la página siguiente el
  código fuente completo.
 Hemos llegado a 90 líneas de código muy
  rápido.




                                                           194
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      195
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      196
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      197
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      198
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES




                                                      199
metaconta@gmail.com   18/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”.

                                                             200
metaconta@gmail.com   18/03/2009




    READONLY = FALSE               READONLY = TRUE




RECIBIR MENSAJES
                                                          201
metaconta@gmail.com   18/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.


CÓDIGO C#
                                                                      202
metaconta@gmail.com   18/03/2009




Puedes ampliar algunas funciones básicas para la interfaz

                                                    EXTRAS




                                                         203
metaconta@gmail.com   18/03/2009




EXTRAS
 A partir de aquí, ciertas funciones del programa
  no hace falta aunque otras son recomendables
  como hacer un cuadro de información de la
  aplicación normalmente llamado “Acerca de…”.
 Podrás introducir información como la página
  Web oficial, correo electrónico para contactar,
  versión, logotipo, etc.
 Con el tiempo, según voy actualizando este
  manual y sin previo aviso, quizás encuentren en
  esta parte del tema “Extras” algunos tutoriales
  nuevos.

                                                             204
metaconta@gmail.com   18/03/2009




ACERCA DE…
 En cualquier programa tienen un cuadro de
  información “Acerca de…”, me gustaría
  hacer algo similar. ¿Cómo puedo hacerlo?
 Hay varias formas de mostrar información del
  programa y vamos a aprender hacer varios y
  entre ellas elegirás la que más interese. Por
  ejemplo, un cuadro de información básica
  donde solo se mostrará texto y un icono de
  información, otro más complejo, detallado y con
  logotipo.

                                                            205
metaconta@gmail.com   18/03/2009


Objetivos:
Vamos a insertar varios tipos de
                                         1) Insertar un control
cuadros de información “Acerca
de…”.
                                          “MenuStrip” al formulario.
En tu aplicación final, sólo elegirás
uno, en este ejemplo hacemos             2) Salir.
unos cuantos para que veas cual
se te adapta mejor.                      3) Llamar manual.pdf en
                                          ayuda.
                                         4) Crear una ventana
                                          “Acerca de …” básico.
                                         5) Crear otra ventana
                                          “Acerca de…” con un Form.
                                         6) Agregar enlaces a Web.

ACERCA DE…


                                                                                 206
metaconta@gmail.com   18/03/2009




ACERCA DE…

 Antes que nada, haga una copia de
  seguridad de su proyecto completo a una
  carpeta o directorio.
 Siempre es bueno hacer una copia de
  seguridad antes de realizar alguna
  modificación.




                                                          207
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Como en cualquier
    programa, muchos
    tienen menú de
    opciones arriba.
   Podemos introducir
    cualquier opción que
    veremos poco a poco a
    lo largo del curso.
   Pincha o clickea dos
    veces el control
    “MenuStrip” con lo cual
    se agrega en la parte
    inferior “menuStrip1”.

                                                                 208
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                209
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Selecciona el objeto
    “menuStrip1”, en el
    cuadro de propiedades.
    Pulsa el valor de la
    propiedad “(Colección)”
    del “Items”.
   Podrás configurar las
    opciones que muestra la
    ventana en la página
    siguiente pero, no
    vamos a usar este
    método sino uno más
    directo y sencillo.

                                                                 210
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                211
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Pulsa “Cancelar” de la
    ventana “Editor de la
    colección de elementos”
    para cerrarla.
   Nos centraremos
    directamente en la barra
    de menú.
   Pincha una vez donde
    indica la imagen de la
    derecha, escribe
    “Opciones” y pulsa
    “Enter”.

                                                                  212
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Se ha creado
    “Opciones” y ahora
    abajo donde indica la
    flecha roja introduce
    “Salir”.




                                                               213
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Al lado introduces
    “Ayuda” y abajo
    “Acerca de…”.
   Bien, justo abajo
    introduces el guión –
    normal (No el guión
    bajo) y pulsa “Enter”.
   Verás una raya de
    separación.


                                                                214
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Justo de bajo de la
    raya pon “Acerca de
    2…” que es para
    introducir el segundo
    ejemplo de ventanas
    de información.
   Como muestra la
    imagen, falta una
    opción que
    introduciremos abajo y
    se llama “Contenido”.

                                                                215
metaconta@gmail.com   18/03/2009




ACERCA DE…

   “Contenido” es la
    ayuda del programa
    que puede ser desde
    un formulario o archivo
    externos que pueden
    ser PDF, XPS, DOC,
    DOCX, HTML, etc.




                                                                 216
metaconta@gmail.com   18/03/2009




ACERCA DE…
   “Contenido” lo
    queremos arriba, así
    que, pincha sin soltar
    con el ratón y
    arrástralo encima de
    “Acerca de…”.
   Si no lo has
    introducido bien, sólo
    tienes que corregirlo
    con deshacer
    pulsando “Control + Z”.

                                                                 217
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Muchas personas en
    cualquier programa,
    accedemos a los menús
    directamente con el teclado.
    Así que, vamos a colocar
    este símbolo “&” que está
    encima de la tecla “6”.
   En “Ayuda” ponemos la “&”
    delante de la “y” para que
    queda señalada en una raya
    debajo indicando la tecla de
    acceso. Por ejemplo,
    “A&yuda” y se muestra así:
   Ayuda.



                                                                      218
metaconta@gmail.com   18/03/2009




ACERCA DE…
                            &                         Resultado
   En este caso
                            &Opciones                 Opciones
    “&Opciones”, debajo
                            &Salir                    Salir
    “&Salir” así            A&yuda                    Ayuda
    sucesivamente.          Ac&erca de…               Acerca de…
   No se debe repetir la   Ace&rca de 2…             Acerca de 2…

    misma letra en el
    mismo formulario.
   También puedes
    introducir la “&” en
    botones.
                                                                     219
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Vamos a introducir el
    código Close();
    pinchando dos veces
    en “Salir”.




                                                               220
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Al introducir Close(); una
    cosa muy importante.
   Guarda todo el proyecto
    que hemos hecho hasta
    ahora.
   Ejecuta, compila o
    depura con       “F5” o la
    flecha verde      el
    programa o aplicación y
    comprueba que se
    cierra.
                                                                    221
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                222
metaconta@gmail.com   18/03/2009




ACERCA DE…

 Ahora nos toca abrir un archivo de ayuda en
  pdf dentro de “AyudaContenido”.
 De momento introducimos estos códigos
  necesarios para abrir el “manua.pdf” que por
  ahora no está. Como no lo encuentra, nos
  avisa con un mensaje.




                                                           223
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Has doble click en
    “Contenido” e
    introduce el código
    que muestra en la
    página siguiente.




                                                             224
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                225
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Debe quedar de la siguiente manera.




                                                            226
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                227
metaconta@gmail.com   18/03/2009




ACERCA DE…

   No olvides poner el
    “using” que indica en
    la imagen si no lo
    habías puesto ya.




                                                               228
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Guarda todo el
    proyecto y pulsa “F5”
    para depurar.
   Ejecuta
    “AyudaContenido”.
   Verás una ventana
    que se llama “Aviso:”
    porque no encuentra
    el archivo
    “manual.pdf”.
                                                               229
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                230
metaconta@gmail.com   18/03/2009




ACERCA DE…

 Busca cualquier archivo que tengas de pdf y
  llámalo “manual.pdf”.
 En realidad has una copia y renómbralo.

 Debes tener el Adobe Reader Instalado, si
  no lo tienes lo descarga gratuitamente aquí
  www.adobe.es .




                                                          231
metaconta@gmail.com   18/03/2009




ACERCA DE…

   En cualquiera de las
    pestañas, fijándote
    bien en la imagen y el
    de la página siguiente,
    clickea con el botón
    derecho y pinchas en
    “Abrir carpeta
    Contenido”.



                                                                 232
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                233
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A

Más contenido relacionado

La actualidad más candente

Presentation an IoT project - control LED through App Blynk on Wemos D1
Presentation an IoT project - control LED through App Blynk on Wemos D1Presentation an IoT project - control LED through App Blynk on Wemos D1
Presentation an IoT project - control LED through App Blynk on Wemos D1Hoàng Tuấn Lê
 
La electricidad y la electrónica tarjeta arduino.
La electricidad y la electrónica  tarjeta arduino. La electricidad y la electrónica  tarjeta arduino.
La electricidad y la electrónica tarjeta arduino. SantiagoZuluaga26
 
Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012assdl
 
Clase 12 arduino y el display de 7 segmentos controlado por puerto serial
Clase 12   arduino y el display de 7 segmentos controlado por puerto serialClase 12   arduino y el display de 7 segmentos controlado por puerto serial
Clase 12 arduino y el display de 7 segmentos controlado por puerto serialMarlonAguilarGmez
 
ppt of automatic room light controller and BI directional counter
ppt of automatic room light controller and BI directional counterppt of automatic room light controller and BI directional counter
ppt of automatic room light controller and BI directional counterMannavapremkumar
 
RFID based car PARKING SYSTEM
RFID based car PARKING SYSTEMRFID based car PARKING SYSTEM
RFID based car PARKING SYSTEMKunal Kabra
 
Arduino prima spiegazione
Arduino  prima spiegazioneArduino  prima spiegazione
Arduino prima spiegazioneFlaviano Fior
 
Final year report on remote control of home appliances via bluetooth
Final year report on remote control of home appliances via bluetoothFinal year report on remote control of home appliances via bluetooth
Final year report on remote control of home appliances via bluetoothShubham Bhattacharya
 
Vehicle fuel monitoring system using iot
Vehicle fuel monitoring system using iotVehicle fuel monitoring system using iot
Vehicle fuel monitoring system using iotMarkaVikaskumar
 
Arduino UNO Gas & Smoke Detection - Embedded Systems
Arduino UNO Gas & Smoke Detection - Embedded SystemsArduino UNO Gas & Smoke Detection - Embedded Systems
Arduino UNO Gas & Smoke Detection - Embedded SystemsImtiaze A.
 
Fire Alarm System Project
Fire Alarm System ProjectFire Alarm System Project
Fire Alarm System ProjectRinkuNahar
 
IoT Based Patient Monitoring
IoT Based Patient MonitoringIoT Based Patient Monitoring
IoT Based Patient Monitoringijtsrd
 
Fire Detection Using MATLAB
Fire Detection Using MATLABFire Detection Using MATLAB
Fire Detection Using MATLABAmey Mithsagar
 
SMART HOME AUTOMATION USING MOBILE APPLICATION
SMART HOME AUTOMATION USING MOBILE APPLICATIONSMART HOME AUTOMATION USING MOBILE APPLICATION
SMART HOME AUTOMATION USING MOBILE APPLICATIONEklavya Sharma
 
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3Abhishekvb
 
Temperature based fan speed control & monitoring using
Temperature based fan speed control & monitoring usingTemperature based fan speed control & monitoring using
Temperature based fan speed control & monitoring usingJagannath Dutta
 

La actualidad más candente (20)

Presentation an IoT project - control LED through App Blynk on Wemos D1
Presentation an IoT project - control LED through App Blynk on Wemos D1Presentation an IoT project - control LED through App Blynk on Wemos D1
Presentation an IoT project - control LED through App Blynk on Wemos D1
 
La electricidad y la electrónica tarjeta arduino.
La electricidad y la electrónica  tarjeta arduino. La electricidad y la electrónica  tarjeta arduino.
La electricidad y la electrónica tarjeta arduino.
 
Amplificador de audio
Amplificador de audioAmplificador de audio
Amplificador de audio
 
Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012Taller de introducción a Arduino FesTICval 2012
Taller de introducción a Arduino FesTICval 2012
 
Clase 12 arduino y el display de 7 segmentos controlado por puerto serial
Clase 12   arduino y el display de 7 segmentos controlado por puerto serialClase 12   arduino y el display de 7 segmentos controlado por puerto serial
Clase 12 arduino y el display de 7 segmentos controlado por puerto serial
 
ppt of automatic room light controller and BI directional counter
ppt of automatic room light controller and BI directional counterppt of automatic room light controller and BI directional counter
ppt of automatic room light controller and BI directional counter
 
Cong vao ra lpt
Cong vao ra lptCong vao ra lpt
Cong vao ra lpt
 
RFID based car PARKING SYSTEM
RFID based car PARKING SYSTEMRFID based car PARKING SYSTEM
RFID based car PARKING SYSTEM
 
Arduino prima spiegazione
Arduino  prima spiegazioneArduino  prima spiegazione
Arduino prima spiegazione
 
Final year report on remote control of home appliances via bluetooth
Final year report on remote control of home appliances via bluetoothFinal year report on remote control of home appliances via bluetooth
Final year report on remote control of home appliances via bluetooth
 
GSM BASED GAS LEAKAGE DETECTION SYSTEM
GSM BASED GAS LEAKAGE DETECTION SYSTEMGSM BASED GAS LEAKAGE DETECTION SYSTEM
GSM BASED GAS LEAKAGE DETECTION SYSTEM
 
Vehicle fuel monitoring system using iot
Vehicle fuel monitoring system using iotVehicle fuel monitoring system using iot
Vehicle fuel monitoring system using iot
 
Máquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDLMáquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDL
 
Arduino UNO Gas & Smoke Detection - Embedded Systems
Arduino UNO Gas & Smoke Detection - Embedded SystemsArduino UNO Gas & Smoke Detection - Embedded Systems
Arduino UNO Gas & Smoke Detection - Embedded Systems
 
Fire Alarm System Project
Fire Alarm System ProjectFire Alarm System Project
Fire Alarm System Project
 
IoT Based Patient Monitoring
IoT Based Patient MonitoringIoT Based Patient Monitoring
IoT Based Patient Monitoring
 
Fire Detection Using MATLAB
Fire Detection Using MATLABFire Detection Using MATLAB
Fire Detection Using MATLAB
 
SMART HOME AUTOMATION USING MOBILE APPLICATION
SMART HOME AUTOMATION USING MOBILE APPLICATIONSMART HOME AUTOMATION USING MOBILE APPLICATION
SMART HOME AUTOMATION USING MOBILE APPLICATION
 
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3
A Report on Bidirectional Visitor Counter using IR sensors and Arduino Uno R3
 
Temperature based fan speed control & monitoring using
Temperature based fan speed control & monitoring usingTemperature based fan speed control & monitoring using
Temperature based fan speed control & monitoring using
 

Similar a Pic Rs232 puerto serie con PIC16F84A

Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AÁngel Acaymo M. G.
 
Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017Ángel Acaymo M. G.
 
Instalación c++
Instalación c++Instalación c++
Instalación c++bolibochi
 
Simulacion fluid sim con step 7 por Edgar Chacca Cuti
Simulacion fluid sim con step 7 por Edgar Chacca CutiSimulacion fluid sim con step 7 por Edgar Chacca Cuti
Simulacion fluid sim con step 7 por Edgar Chacca CutiEdgar Chacca Cuti
 
Curso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10pCurso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10pRuderocker Billy
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarEduardo Méndez
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarJuan Hoyos
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarblasty2
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarblasty2
 
1+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs081+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs08Dario Klug
 
Practicas de vacaciones 1 10
Practicas de vacaciones 1  10Practicas de vacaciones 1  10
Practicas de vacaciones 1 10edidson fuentes
 
Winpic800tutorial_manual de usuarioa.pdf
Winpic800tutorial_manual de usuarioa.pdfWinpic800tutorial_manual de usuarioa.pdf
Winpic800tutorial_manual de usuarioa.pdfluissaravia846
 
Guía de instalación saint contable
Guía de instalación saint contableGuía de instalación saint contable
Guía de instalación saint contableana marin
 

Similar a Pic Rs232 puerto serie con PIC16F84A (20)

Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
 
Manual básico Minicom
Manual básico MinicomManual básico Minicom
Manual básico Minicom
 
Manual Ic Prog
Manual Ic ProgManual Ic Prog
Manual Ic Prog
 
Formulariowindowsconvisualc2017
Formulariowindowsconvisualc2017Formulariowindowsconvisualc2017
Formulariowindowsconvisualc2017
 
Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017
 
Parpadear un LED
Parpadear un LEDParpadear un LED
Parpadear un LED
 
Instalación c++
Instalación c++Instalación c++
Instalación c++
 
Simulacion fluid sim con step 7 por Edgar Chacca Cuti
Simulacion fluid sim con step 7 por Edgar Chacca CutiSimulacion fluid sim con step 7 por Edgar Chacca Cuti
Simulacion fluid sim con step 7 por Edgar Chacca Cuti
 
Curso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10pCurso MPLAB pic 4 compilando y simulando el programa 10p
Curso MPLAB pic 4 compilando y simulando el programa 10p
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
S7 1200 paso-a_paso_v1.0
S7 1200 paso-a_paso_v1.0S7 1200 paso-a_paso_v1.0
S7 1200 paso-a_paso_v1.0
 
S7 1200 paso-a_paso_v1.0
S7 1200 paso-a_paso_v1.0S7 1200 paso-a_paso_v1.0
S7 1200 paso-a_paso_v1.0
 
Mplab Inicio Rapido
Mplab Inicio RapidoMplab Inicio Rapido
Mplab Inicio Rapido
 
1+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs081+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs08
 
Practicas de vacaciones 1 10
Practicas de vacaciones 1  10Practicas de vacaciones 1  10
Practicas de vacaciones 1 10
 
Winpic800tutorial_manual de usuarioa.pdf
Winpic800tutorial_manual de usuarioa.pdfWinpic800tutorial_manual de usuarioa.pdf
Winpic800tutorial_manual de usuarioa.pdf
 
Guía de instalación saint contable
Guía de instalación saint contableGuía de instalación saint contable
Guía de instalación saint contable
 

Último

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

Pic Rs232 puerto serie con PIC16F84A

  • 1.
  • 2. metaconta@gmail.com 18/03/2009 ÍNDICE 1/2  Presentación – 4  Visual C# .net – 6  Entorno Visual C# – 44  Ejecutar programa – 58  Objetivo de la interfaz – 67  Código ASM del PIC16F84A – 101  Primer código C# – 121  Recibir mensajes – 163 2
  • 3. metaconta@gmail.com 18/03/2009 ÍNDICE 2/2  Extras – 203  Fotos – 490  Vídeos – 498  Libros – 500  Otros manuales – 503  Enlaces de interés – 505  Versión del manual – 508  Contacto – 509  Autor – 510 3
  • 4. metaconta@gmail.com 18/03/2009 Presentación del manual. PRESENTACIÓN 4
  • 5. metaconta@gmail.com 18/03/2009 PRESENTACIÓN  Este manual está orientado a personas nóveles en tema de microcontroladores PIC y el lenguaje C# en el Sistema Operativo Windows.  No aprenderemos a programar PIC en ensamblador (asm) ni el lenguaje C#, sino que se darán los pasos necesarios para poder ser capaz de realizar estas tareas sin tener idea de programación.  El objetivo de este manual es que cualquier persona sin conocimientos previos puedan hacer ciertas tareas sobre el puerto serie RS232 sin el HyperTerminal de Windows, Minicom de Linux o cualquier otro programa relacionado ya que nos centraremos en crear desde cero nuestro propio interfaz donde podemos añadirle cualquier función o diseño de botones, colores, posiciones, etc.  Está relacionado con el libro “MICROCONTROLADOR PIC16F84. Desarrollo de proyectos” en el capítulo 20 con el ejemplo “RS232_11.asm” y/o RS232_11b.asm  Independientemente del entorno de desarrollo que hayas elegido sea en Windows o Linux, siguiendo los pasos podrás controlar con tu interfaz el propio PIC a través del puerto serie RS232. También puedes recibir mensajes de texto al igual que lo hace el HyperTerminal y Minicom que también se visualiza en el LCD.  Este manual básico les puede servir para proyectos de fin de curso sea de Ciclos Formativos Grado Medio, Ciclos Formativos Grado Superior e incluso una carrera universitaria. 5
  • 6. metaconta@gmail.com 18/03/2009 Introducción VISUAL C# .NET 6
  • 7. metaconta@gmail.com 18/03/2009 VISUAL C# .NET EXPRESS  Vamos a desarrollar un pequeño programa bajo el entorno de desarrollo Visual C# .net Express (gratuito) bajo el Sistema Operativo Windows.  Si conoces el libro www.pic16f84a.org se tratará sobre el capítulo 20 en el cual explica paso a paso el control del PIC-16F84A.  Si deseas obtener más información sobre el aprendizaje de Visual C# con vídeos incluidos entre en este enlace desde la Web oficial de MicroSoft. http://msdn.microsoft.com/es- es/beginner/bb308760.aspx 7
  • 8. metaconta@gmail.com 18/03/2009 VISUAL C# .NET EXPRESS  En este manual se ha trabajado en su momento con:  Windows XP SP3.  Visual C# Express Edition 2008 FrameWork 3.5 SP1. 8
  • 9. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS  De entrada vamos a descargar el compilador (gratuito) Visual C# .net 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. 9
  • 10. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS 10
  • 11. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS  Puede tardar unos minutos la instalación.  Lea paso a paso y la licencia de su uso sobre la instalación del Visual C# .net. Tardará unos buenos minutos entre la descarga y la instalación. 11
  • 12. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS 12
  • 13. metaconta@gmail.com 18/03/2009 REGISTRO DE VISUAL C# .NET  Llegarás un momento en que te dice que te registres. Si no te registras sólo funcionará el Visual C# .net 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. 13
  • 14. metaconta@gmail.com 18/03/2009 14
  • 15. metaconta@gmail.com 18/03/2009 15
  • 16. metaconta@gmail.com 18/03/2009 16
  • 17. metaconta@gmail.com 18/03/2009 Desde el botón de inicio de Windows, pulsa “Todos los programas”, “Microsoft Visual C# 2008 Express Edition” y ejecutarás el Visual C#. En caso de que hayas tocado algo puedes restablecer las ventanas en la barra de herramientas, “VentanasRestablecer diseño de la ventana”. EJECUTAR VISUAL C# .NET 17
  • 18. metaconta@gmail.com 18/03/2009 RESTABLECER DISEÑO DE LA VENTANA 18
  • 19. metaconta@gmail.com 18/03/2009 RESTABLECER DISEÑO DE LA VENTANA  Le hará una pregunta antes de realizar la operación.  Pulse “Sí” para reestablecer las ventanas. 19
  • 20. metaconta@gmail.com 18/03/2009 RESTABLECER DISEÑO DE LA VENTANA 20
  • 21. metaconta@gmail.com 18/03/2009 INICIO VISUAL C# .NET  Como se muestra en la imagen, aparecerá una página llamada “Página de inicio”. 21
  • 22. metaconta@gmail.com 18/03/2009 CREAR NUEVO PROYECTO Creamos un nuevo proyecto en “ArchivoNuevaProyecto…”. Antes de comenzar, vamos a explicar el entorno básico del Visual C# .NET Express. 22
  • 23. metaconta@gmail.com 18/03/2009 CREAR NUEVO PROYECTO 23
  • 24. metaconta@gmail.com 18/03/2009 Se abrirá una ventana llamada “Nuevo proyecto”. Eliges la primera que se llama “Aplicación de Windows Forms”. Abajo donde dice “Nombre:” podemos poner cualquier nombre, en mi caso he puesto exactamente PicRS232. Cuando acabes pulsa el botón “Aceptar”. CREAR NUEVO PROYECTO 24
  • 25. metaconta@gmail.com 18/03/2009 CREAR NUEVO PROYECTO 25
  • 26. metaconta@gmail.com 18/03/2009 Como puedes ver en la imagen, se a creado una ventana llamada “Form1” en el cual vamos a diseñar nuestro formulario. En cada paso que hagamos se recomienda guardar el proyecto por si hay corte de luz, fallo en el sistema, etc así no perder información o el trabajo que hemos realizado que puedes ser de horas. INICIO DE UN NUEVO PROYECTO 26
  • 27. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Pulsa el botón “Guardar todo” como indica en la imagen o pulsa en la barra de herramientas “ArchivoGuardar todo” para guardar el proyecto. 27
  • 28. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 28
  • 29. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Al pulsar “Guardar todo” aparece una ventana llamada “Guardar proyectos”. Deja el nombre como está y pulsa el botón “Guardar”. 29
  • 30. metaconta@gmail.com 18/03/2009 30
  • 31. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  En la pestaña “Página de inicio, en su derecha pulsa la X para cerrarla” y no nos molestará en el futuro si abrimos muchas. 31
  • 32. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 32
  • 33. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Pulsa la pestaña “Cuadro de herramientas” para abrir una ventana indicado en la imagen con un rectángulo rojo. 33
  • 34. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 34
  • 35. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Se abrirá el “Cuadro de herramientas” como indica en el dibujo, pero aún no es fija. 35
  • 36. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 36
  • 37. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Se abrirá el “Cuadro de herramientas” como indica en el dibujo, pero aún no es fija.  Para dejarla fija pulsa la chincheta como indica la marca roja de la imagen de la derecha. 37
  • 38. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Ahora permanece fija y es lo que nos interesa si estamos añadiendo componentes al formulario.  Así se hará con este tipo de ventanas. 38
  • 39. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO Vamos abrir otro cuadro llamado “propiedades” para tener todo el entorno preparado y con la chincheta fija. 39
  • 40. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Dentro de la ficha que actualmente se llama Form1 (Más adelante cambiaremos el nombre), pulsa el botón derecho del ratón y dale en “Propiedades”. 40
  • 41. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 41
  • 42. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO  Una vez que todo esté como muestra en la imagen, vamos a explicar cada elemento para orientarnos y así saber de lo que estamos hablando y para qué es cada cosa. 42
  • 43. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 43
  • 44. metaconta@gmail.com 18/03/2009 Nos familiarizamos con el entorno. ENTORNO VISUAL C# 44
  • 45. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C#  Ahora que ya tenemos Visual C# a la vista, hay que saber de entrada donde introducir los códigos de programación. 45
  • 46. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C#  Hay varias maneras de ver los códigos como muestra en la imagen.  Si pulsas “Abrir diseñador” se muestra el diseño de formulario y si pulsas “Ver código” muestra el código fuente del programa. 46
  • 47. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C# 47
  • 48. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C#  También puedes ver el código pulsando con el botón derecho del ratón, luego “Ver código” e igualmente accede al código fuente. 48
  • 49. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C#  En el código fuente escribiremos en el lenguaje C# (no en ensamblador) los códigos necesarios para poder comunicar el PIC 16F84A. 49
  • 50. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C# 50
  • 51. metaconta@gmail.com 18/03/2009 CÓDIGO FUENTE DISEÑO using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace PicRS232 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } } ENTORNO VISUAL C# 51
  • 52. metaconta@gmail.com 18/03/2009 Vamos a explicar cada cuadro para familiarizarnos y poder entender las futuras explicaciones. Se explicará el “Cuadro de herramientas”, “Explorador de soluciones”, “Propiedades” y algún que otro según avanzamos. ENTORNO VISUAL C# 52
  • 53. metaconta@gmail.com 18/03/2009 CUADRO DE HERRAMIENTAS  En el “Cuadro de herramientas” hay componentes que puedes arrastrarlo al formulario Form1 o hacer doble clic con el ratón.  NOTA: Se llama componentes a todos objetos que se pueda coger desde el “Cuadro de herramientas” y que se pueda arrastrar hacia el formulario con el fin de editar sus propiedades. Se dividen en dos grupos: los que forman parte de la interfaz de usuario, como botones, etiquetas de textos, etc, y aquellos que aportan funcionalidad pero no son visibles al ejecurtarlo. Los primeros se llaman controles normalmente, para diferenciarlos.  En resumen: El Cuadro de herramientas y el Diseñador, para desarrollar rápidamente interfaces de usuario con el ratón. 53
  • 54. metaconta@gmail.com 18/03/2009 EXPLORADOR DE SOLUCIONES  En el “Explorador de soluciones”, para ver y administrar archivos de proyecto y configuraciones. 54
  • 55. metaconta@gmail.com 18/03/2009 VENTANA DE PROPIEDADES  En “Propiedades”, para configurar propiedades y eventos en los controles de la interfaz de usuario. 55
  • 56. metaconta@gmail.com 18/03/2009 VENTANA DE PROPIEDADES 56
  • 57. metaconta@gmail.com 18/03/2009 VENTANA DE PROPIEDADES  Algunas veces, la “descripción de la propiedad” aparece escondida.  Simplemente selecciona abajo con el ratón y lo arrastra hacia arriba hasta que se vea. 57
  • 58. metaconta@gmail.com 18/03/2009 EJECUTAR PROGRAMA 58
  • 59. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA  Para compilar o ejecutar el programa simplemente arriba en la barra de herramientas pulsa “DepurarIniciar depuración” o simplemente pulsa “F5”. 59
  • 60. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 60
  • 61. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA  También puedes pulsar la flecha verde que significa lo mismo que al pulsar “F5”. 61
  • 62. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 62
  • 63. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA  Para terminar la depuración simplemente pulsa “DepurarDetener depuración”. 63
  • 64. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 64
  • 65. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA  Puedes detener la depuración pulsando el botón cuadrado azul claro.  En el formulario de la aplicación ejecutándose, también puedes pulsar la X para cerrar como cualquier otro programa. La X que está en la esquina superior derecha al lado de Minimizar y Maximizar. 65
  • 66. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 66
  • 67. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 67
  • 68. metaconta@gmail.com 18/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 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. 68
  • 69. metaconta@gmail.com 18/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. 69
  • 70. metaconta@gmail.com 18/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 “PicRS232” (sin las dobles comillas) ya que es el nombre del programa principal. 70
  • 71. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 71
  • 72. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  En el nombre de la propiedad (Name) que el valor de la propiedad se llama “Form1” la cambiamos a “Form_Principal”.  (Name) en formulario, botones, etiquetas o cualquier otro objeto, es el nombre interno del objeto y no se visualiza, por ejemplo un botón, no el nombre del botón “Text” que si se visualiza. El nombre interno de los objetos es para llamarlo. 72
  • 73. metaconta@gmail.com 18/03/2009 CÓDIGO FUENTE  Asegúrate que el código fuente es tal como se muestra. OBJETIVO DE LA INTERFAZ 73
  • 74. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 74
  • 75. metaconta@gmail.com 18/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. 75
  • 76. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 76
  • 77. metaconta@gmail.com 18/03/2009 PROPIEDADES  En el cuadro de propiedades Propiedad Cambie a de la derecha, es un breve Text PicRS232 resumen de lo que hemos hecho menos la “Propiedad” (Name) Form_Principal “Size”, que es el que StartPosition CenterScreen debemos tener si no hemos tocado nada al principio. Size 300; 300  Ahora en adelante sabrá interpretar este cuadro, y podemos cambiar las propiedades más rápidamente de cualquier objeto. OBJETIVO DE LA INTERFAZ 77
  • 78. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  En la ventana de “Cuadro de herramientas” pulsa el botón izquierdo del ratón el objeto o control “Button” y sin soltar arrástralo al formulario y después suelta.  También puedes pinchar 2 veces clic en “Button” con el ratón y se agrega automáticamente en el formulario. 78
  • 79. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 79
  • 80. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Haz introducido el botón llamado “Button1” en el formulario.  Ahora toca cambiar las propiedades que se describe en el cuadro a continuación.  Da igual en que parte coloques el Button dentro del formulario, ya que lo colocaremos con las coordenadas en las propiedades más adelante. 80
  • 81. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 81
  • 82. metaconta@gmail.com 18/03/2009 PROPIEDADES  Haz introducido el botón Propiedad Cambie a llamado “button1” en el Text t formulario. (Name) button_t Location 109; 38  Ahora toca cambiar las propiedades que se describe en el cuadro a continuación para el “button1”. OBJETIVO DE LA INTERFAZ 82
  • 83. metaconta@gmail.com 18/03/2009 PROPIEDADES  Arrastra un “button” desde Propiedad Cambie a el “Cuadro de Text b herramientas” hacia el (Name) button_b formulario en el cual se Location 109; 67 llama “button2” y cambie las propiedades como hiciste en el apartado anterior. OBJETIVO DE LA INTERFAZ 83
  • 84. metaconta@gmail.com 18/03/2009 PROPIEDADES  Ahora con button3. Propiedad Cambie a Text a (Name) button_a Location 28; 67 OBJETIVO DE LA INTERFAZ 84
  • 85. metaconta@gmail.com 18/03/2009 PROPIEDADES  Ahora con button4 pero Propiedad Cambie a cuidado una cosa, la letra Text l que estamos usando es la (Name) button_l letra “L” minúscula que Location 190; 67 podemos confundirnos con la “I” latina mayúscula. OBJETIVO DE LA INTERFAZ 85
  • 86. metaconta@gmail.com 18/03/2009 PROPIEDADES  Ahora con Button5 de la Propiedad Cambie 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 86
  • 87. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  En el “button5 o ahora“button_Espacio” , haz clic sobre él para ver sus propiedades.  En ella, BackColor he seleccionado el color naranja que muestra en la imagen. 87
  • 88. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Cambiamos a “Negrita” en “Font.Bold” a modo “True”. Para acceder a Bold que significa “Negrita” pulsamos el símbolo + a – para acceder seguido de activarlo a True. 88
  • 89. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Hay una manera más cómoda y rápida de ponerlo en “Negrita” que es pulsando directamente en “Font” sin abrirlo como muestra en la imagen. 89
  • 90. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Tras a verlo pulsado, se abre una ventana muy cómoda y fácil de entender.  En “Estilo de fuente:” señala “Negrita” y luego pulsa “Aceptar”.  Así conseguimos el resultado que queremos. 90
  • 91. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 91
  • 92. metaconta@gmail.com 18/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. 92
  • 93. metaconta@gmail.com 18/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”. 93
  • 94. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 94
  • 95. metaconta@gmail.com 18/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. 95
  • 96. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 96
  • 97. metaconta@gmail.com 18/03/2009 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. OBJETIVO DE LA INTERFAZ 97
  • 98. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Si quieres ver, seleccionar o modificar los nombres internos (Name) de los objetos más facilmente, pulsa arriba “VerOtras ventanasEsquema del documento”. 98
  • 99. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 99
  • 100. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ  Esta ventana se llama “Esquema de documento”, como dije antes, puedes seleccionar los objetos aquí y cambiar su nombre interno (Name). 100
  • 101. metaconta@gmail.com 18/03/2009 CÓDIGO ASM DEL PIC16F84A 101
  • 102. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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. 102
  • 103. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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 Code for Information Interchange” o lo que es lo mismo “Código Estadounidense Estándar para el Intercambio de Información”. 103
  • 104. metaconta@gmail.com 18/03/2009 Tabla ASCII 1 104
  • 105. metaconta@gmail.com 18/03/2009 Tabla ASCII 2 105
  • 106. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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. 106
  • 107. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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. 107
  • 108. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A 108
  • 109. metaconta@gmail.com 18/03/2009 LISTA DE COMPONENTES Componentes Valor C8 22pF IC1 LCD LM016L Y1 4 MHz IC2 MAX232 R1 ajustable 10 kΩ IC3 PIC16F84A-04 R2 330 KΩ C1 1µF R3 330 KΩ C2 100nF R4 330 KΩ C3 1µF R5 330 KΩ C4 100nF D1 Led Rojo C5 1µF D2 Led Rojo C6 1µF D3 Led Rojo C7 22pF D4 Led Rojo CÓDIGO ENSAMBLADOR DEL PIC16F84A 109
  • 110. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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 110
  • 111. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A ;************************************ RS232_11.asm ************************************** ; ; =================================================================== ; Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot; ; E. Palacios, F. Remiro y L. López. www.pic16f84a.org ; Editorial Ra-Ma. www.ra-ma.es ; =================================================================== ; ; SISTEMA DE GOBIERNO DESDE ORDENADOR: Desde el teclado de un ordenador se desea comandar ; el movimiento de una estructura móvil, según la siguiente tabla: ; ; TECLA (Por ejemplo) MOVIMIENTO ; ------------------- ---------- ; t Adelante ; b Atrás ; a Izquierda ; l Derecha ; Espacio Parada ; ; La pulsación de cualquiera de estas teclas activa el estado de las salidas correspondiente ; RB3 (Adelante), RB2 (Atrás), RB1 (Izquierda), RB0 (Derecha) y apaga el resto. ; ; El movimiento que se está realizando aparece reflejado en un mensaje en el visualizador LCD ; del sistema y también en la pantalla del ordenador. ; ; El programa debe permitir modificar facilmente en posteriores revisiones en el hardware de ; la salida. Es decir, para activar las salidas conviene utilizar el direccionamiento por bit ; en lugar de por byte (utilizar instrucciones quot;bsfquot; y quot;bcfquot;, en lugar de quot;mov..quot;). ; ; ZONA DE DATOS ********************************************************************** LIST P=16F84A INCLUDE <P16F84A.INC> 111
  • 112. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC CBLOCK 0x0C TeclaPulsada ; Va a guardar el contenido de la tecla pulsada. MensajeApuntado ; Va a guarda la dirección del mensaje apuntado. ENDC #DEFINE SalidaAdelante PORTB,3 ; Define dónde se sitúan las salidas. #DEFINE SalidaAtras PORTB,2 #DEFINE SalidaIzquierda PORTB,1 #DEFINE SalidaDerecha PORTB,0 TECLA_ADELANTE EQU 't' ; Código de las teclas utilizadas. TECLA_ATRAS EQU 'b' TECLA_IZQ EQU 'a' TECLA_DER EQU 'l' TECLA_PARADA EQU '' ; Código de la tecla espaciadora, (hay un espacio, ; tened cuidado al teclear el programa). ; ZONA DE CÓDIGOS ******************************************************************** ORG 0 Inicio call LCD_Inicializa call RS232_Inicializa bsf STATUS,RP0 ; Configura como salidas las 4 líneas del bcf SalidaAdelante ; del Puerto B respetando la configuración del bcf SalidaAtras ; resto de las líneas. bcf SalidaIzquierda bcf SalidaDerecha bcf STATUS,RP0 call Parado ; En principio todas las salidas deben estar Principal ; apagadas. call RS232_LeeDato ; Espera a recibir un carácter. 112
  • 113. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A call TesteaTeclado goto Principal ; quot;Mensajesquot; ---------------------------------------------------------------------------- ; Mensajes addwf PCL,F MensajeParado DT quot;Sistema PARADOquot;, 0x00 MensajeAdelante DT quot;Marcha ADELANTEquot;, 0x00 MensajeAtras DT quot;Marcha ATRASquot;, 0x00 MensajeIzquierda DT quot;Hacia IZQUIERDAquot;, 0x00 MensajeDerecha DT quot;Hacia DERECHAquot;, 0x00 ; Subrutina quot;TesteaTecladoquot; ------------------------------------------------------------- ; ; Testea el teclado y actúa en consecuencia. TesteaTeclado movwf TeclaPulsada ; Guarda el contenido de la tecla pulsada. xorlw TECLA_ADELANTE ; ¿Es la tecla del movimiento hacia adelante? btfsc STATUS,Z goto Adelante ; Sí, se desea movimiento hacia adelante. ; movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada. xorlw TECLA_ATRAS ; ¿Es la tecla del movimiento hacia atrás? btfsc STATUS,Z goto Atras ; Sí, se desea movimiento hacia atrás. ; 113
  • 114. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada. xorlw TECLA_IZQ ; ¿Es la tecla del movimiento hacia la izquierda? btfsc STATUS,Z goto Izquierda ; Sí, se desea movimiento hacia la izquierda. ; movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada. xorlw TECLA_DER ; ¿Es tecla del movimiento hacia la derecha? btfsc STATUS,Z goto Derecha ; Sí, se desea movimiento hacia la derecha. ; movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada. xorlw TECLA_PARADA ; ¿Es la tecla de parada?. btfss STATUS,Z goto Fin ; No es ninguna tecla de movimiento. Sale. Parado bcf SalidaAdelante ; Como se ha pulsado la tecla de parada se bcf SalidaAtras ; desactivan todas las salidas. bcf SalidaIzquierda bcf SalidaDerecha movlw MensajeParado goto Visualiza Adelante bcf SalidaAtras bsf SalidaAdelante bcf SalidaIzquierda bcf SalidaDerecha movlw MensajeAdelante goto Visualiza Atras bcf SalidaAdelante bsf SalidaAtras bcf SalidaIzquierda bcf SalidaDerecha 114
  • 115. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A movlw MensajeAtras goto Visualiza Izquierda bcf SalidaAdelante bcf SalidaAtras bsf SalidaIzquierda bcf SalidaDerecha movlw MensajeIzquierda goto Visualiza Derecha bcf SalidaAdelante bcf SalidaAtras bcf SalidaIzquierda bsf SalidaDerecha movlw MensajeDerecha ; Según el estado de las salidas visualiza el estado del sistema en el visualizador LCD y en ; el monitor del ordenador. Visualiza movwf MensajeApuntado ; Guarda la posición del mensaje. call LCD_Borra ; Borra la pantalla del modulo LCD. movf MensajeApuntado,W ; Visualiza el mensaje en la pantalla call LCD_Mensaje ; del visualizador LCD. call RS232_LineasBlanco ; Borra la pantalla del ordenador. movf MensajeApuntado,W call RS232_Mensaje ; Lo visualiza en el HyperTerminal. call RS232_LineasBlanco Fin return INCLUDE <RS232.INC> INCLUDE <RS232MEN.INC> INCLUDE <LCD_4BIT.INC> 115
  • 116. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A INCLUDE <LCD_MENS.INC> INCLUDE <RETARDOS.INC> END ; =================================================================== ; Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot; ; E. Palacios, F. Remiro y L. López. www.pic16f84a.org ; Editorial Ra-Ma. www.ra-ma.es ; =================================================================== 116
  • 117. metaconta@gmail.com 18/03/2009 RS232_11.HEX :10012000080085158316051685118312080008300E :100130008E00051A99288F2191210310051A0314A6 :100140008F0C8F218E0B9D288C210F080800303ECC  Abre un archivo de texto y pega el :100150008F0008308E0085118F218F0C031CB22870 :100160008515B32885118F218E0BAD2885158C211F :10017000080090000C309002900310080C209100B1 código que ves a la izquierda. :1001800091080319C628A820900ABD2808000A3043 :1001900092000A30A820920BC9280D30A820080030 Fíjate que al final del código del :1001A00083160510051185108312851005110510A1 :1001B0009F213030EA20A3213030EA208C213030DA todo, debes dejar justo abajo un espacio pulsando la tecla “Enter”. :1001C000EA2094212030EA209421142112211021C8 :1001D000FE200800F039930006080F3993048316B7 :1001E000060895000F308605831213088600051552 :1001F000051183161508860083120800063015299C :1002000080301529C030152994301529D43015298E :1002100080381529C0381529083015290E301529C0  Precisamente aquí :00000001FF :100220000C3015290130152928300510192905141D :1002300021219400EA20140EEA20051CA521912119 :1002400008009300F13C031D2829EE309300352966 al final donde hay dos F pulsa :100250001308D13C031D2F29EE30930035291308D4 :10026000BA3C031D3529DF30930013080800103015 Enter una vez. :100270003E2901303E2902303E29033096002030CD :100280001721960B3F2908009700F039031D4C29D0 :10029000203017214E299700170E4F2117080F39CC :1002A0009600093C031C57291608303E59291608A8  Guarda el archivo de texto con la :1002B000373E172998000C309802980318080C2034 :1002C00099009908031967291721980A5E290800DF extensión .hex o llámalo así :1002D00098000C30980298039A01122110301A02EB :1002E000031D7729992199210F3098026C2918084C :1002F0000C20990099080319812917219A0A980A54 RS232_11.hex. :100300006E2908000000000000000000000000004E :1003100008000000A43095290000403095291F30C6 :10032000952900000E30952905309B009B0B9629DE  Si deseas guardar los datos al :100330000800C830A8296430A8293230A829143010 :10034000A8290A30A8290530A8290230A829013097 PIC, hay un manual de cómo :100350009C00F9309B0000009B0BAB299C0BA9294A :100360000800C830BC296430BC293230BC291430A4 :10037000BC290A30BC2905309D0064309C00F9304E hacerlo explicado haciendo clic :100380009B0000009B0BC1299C0BBF299D0BBD2925 :02039000080063 con el ratón aquí. :02400E00F13F80 :00000001FF CÓDIGO ENSAMBLADOR DEL PIC16F84A 117
  • 118. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A  Se preguntará el motivo de TECLA MOVIMIENTO poner esas letras en los t Adelante botones. ¿Por qué esas b Atrás letras? a Izquierda  El programa del 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. 118
  • 119. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR 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”. 119
  • 120. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A  En el Visual C# vamos a Hex Carácter 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 carácteres. 120
  • 121. metaconta@gmail.com 18/03/2009 Códigos de envío de datos al PIC16F84A. PRIMER CÓDIGO C# 121
  • 122. metaconta@gmail.com 18/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#. 122
  • 123. metaconta@gmail.com 18/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#. 123
  • 124. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Puesta en marcha de la comunicación entre ordenador y PIC16F84A, circuito 20-13.  Tengo dificultades para conseguir poner en marcha la comunicación entre un ordenador y el PIC16F84A del circuito de la figura 20-13, ¿qué puedo hacer?  Le aconsejamos que siga el siguiente procedimiento:  Compruebe con detenimiento el correcto montaje del esquema de la figura 20-13, en especial la conexión del MAX232, cableado del conector y polaridad de los condensadores.  Con un polímetro compruebe el cable de conexión, para ello mida la continuidad entre los pines 2 de los conectores macho y hembra, y repita la operación para los pines 3 y pines 5. Algunos lectores que se construyen ellos mismo el cable RS232 con conectores DB9, conectan uno al revés. Esta es la avería más frecuente.  Para un MAX232 los condensadores C1, C3, C5 y C6 deben ser de 1 microfaradios. Se ha detectado que hay lectores que tienen dificultades en la lectura del código en los condensadores y utilizan otros valores muy diferentes.  Compruebe que el puerto seleccionado en el Hyperterminal corresponde con el realmente utilizado en el ordenador, COM 1 ó COM2. Compruebe que la configuración del puerto corresponde fielmente a la figura 20-10 del libro.  Compruebe el correcto funcionamiento del MAX232 para ello, en reposo (y con el Hyperterminal conectado), debe tener las siguientes tensiones respecto de masa: - En el pin 16 tiene que haber + 5 V. - En los pines 11 y 12 tiene que haber entre + 3 y + 5 V. - En los pines 6, 13 y 14 tiene que haber entre -7 V y -12 V.  Si todos los puntos anteriores son correctos pruebe de nuevo su circuito con el fichero actualizado Libreria RS232.INC (5.51 kB) que se ha incluido en el capítulo 20 de la sección Proyectos y el programa ejemplo RS232_02.asm del CDROM que acompaña al libro.  Ver aquí. 124
  • 125. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Hay varias formas de seleccionar un objeto. Como indica la imagen de la derecha, en “Esquema de documento” ya explicado anteriormente o simplemente pinchando una vez encima del botón t. 125
  • 126. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Pulsamos el botón “Eventos” y hacemos doble clic con el ratón donde indica la flecha roja. 126
  • 127. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Saltamos a la pestaña “Form1.cs” y se nos ha creado el código del evento:  private void button_t_Click(object sender, EventArgs e) { } 127
  • 128. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Volvamos a la pestaña “Form1.cs[Diseño]” y nos fijamos que se ha creado el evento “button_t_Click”. 128
  • 129. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Pulsa el botón de “propiedades”. 129
  • 130. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  La manera más cómoda es pinchando 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.  A partir de ahora utilizamos este método por ser más rápido, el pinchar dos veces un botón. 130
  • 131. metaconta@gmail.com 18/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. 131
  • 132. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# (OBJETIVO)  1) Introducir códigos en los botones para su funcionamiento.  2) Depurar nuestra aplicación. 132
  • 133. metaconta@gmail.com 18/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. 133
  • 134. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 134
  • 135. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  El código que vamos a introducir para que el PIC16F84A lea la letra “t” es este: byte[] mBuffer = new byte[1]; mBuffer[0] = 0x74; //ASCII letra quot;tquot;. serialPort1.Write(mBuffer, 0, mBuffer.Length); 135
  • 136. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 136
  • 137. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Fíjate bien en el dibujo de la página anterior que un texto con un cuadro amarillo dice:  “El nombre „serialPort1‟ no existe en el contexto actual”  Nos faltan dos cosas para tener un buen funcionamiento del programa. 137
  • 138. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Justo debajo donde pone:  using System.Windows.Form s; 138
  • 139. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Ahora introduces el siguiente comando:  using System.IO.Ports; 139
  • 140. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  En el “Cuadro de herramientas”, “Componentes”, pincha o haces dos veces click 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”. 140
  • 141. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 141
  • 142. metaconta@gmail.com 18/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. 142
  • 143. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# Propiedad 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. 143
  • 144. metaconta@gmail.com 18/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:  mBuffer[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. 144
  • 145. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 145
  • 146. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Aún no hemos acabado. Introduces este código debajo del InitializeComponent();. // Abrir puerto mientra se ejecute la aplicación if (!serialPort1.IsOpen) { try { serialPort1.Open(); } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } } 146
  • 147. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Para saber el números de líneas en el editor de Visual C#, pulsa:  Herramientasopcion es… 147
  • 148. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Se abre la ventana opciones.  Abajo, pincha “Mostrar todas las configuraciones”. 148
  • 149. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 149
  • 150. metaconta@gmail.com 18/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”. 150
  • 151. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 151
  • 152. metaconta@gmail.com 18/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. 152
  • 153. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 153
  • 154. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 154
  • 155. metaconta@gmail.com 18/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. 155
  • 156. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  En el formulario, pincha dos veces click en el botón b e introduce los códigos necesarios. byte[] miBuffer = new byte[1]; miBuffer[0] = 0x62; //ASCII letra quot;bquot;. serialPort1.Write(miBuffer, 0, miBuffer.Length); 156
  • 157. metaconta@gmail.com 18/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.  NOTA:  Si deseas enviar varias tramas en un mismo click del botón, lo hacemos de la siguiente manera. En este manual no lo vamos a usar, es para que lo tengas en cuenta. // Enviar trama byte[] miBuffer = new byte[3]; // Tres máximo. miBuffer[0] = 0x74; miBuffer[1] = 0x54; miBuffer[2] = 0x13; this.serialPort1.Write(miBuffer, 0, miBuffer.Length); 157
  • 158. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 158
  • 159. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 159
  • 160. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 160
  • 161. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 161
  • 162. metaconta@gmail.com 18/03/2009 PICRS232.SLN 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 “PicRS232.sln” para abrirlo junto con el Visual C#. PRIMER CÓDIGO C# 162
  • 163. metaconta@gmail.com 18/03/2009 Recibir mensajes desde el microcontrolador PIC16F84A. RECIBIR MENSAJES 163
  • 164. metaconta@gmail.com 18/03/2009 Objetivos: Leer los datos del PIC16F84A  1) Arrastrar StatusStrip o barra desde la interfaz del PC. de estado al formulario.  2) Un TextBox para leer los mensajes del PIC.  3) Un Label o 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 164
  • 165. metaconta@gmail.com 18/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. 165
  • 166. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 166
  • 167. metaconta@gmail.com 18/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”. 167
  • 168. metaconta@gmail.com 18/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. 168
  • 169. metaconta@gmail.com 18/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 169
  • 170. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Esta es una de las maneras de cambiar a “Bottom”. 170
  • 171. metaconta@gmail.com 18/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. 171
  • 172. metaconta@gmail.com 18/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 172
  • 173. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Pulsa en la barra de herramientas. “VerOrden de tabulación” y muestra algo similar en l aimagen. 173
  • 174. metaconta@gmail.com 18/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”. 174
  • 175. metaconta@gmail.com 18/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”. 175
  • 176. metaconta@gmail.com 18/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 string Recibidos; justo debajo del public partial class Form1 : Form { 176
  • 177. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 177
  • 178. metaconta@gmail.com 18/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. 178
  • 179. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 179
  • 180. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 180
  • 181. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 181
  • 182. metaconta@gmail.com 18/03/2009 hh:mm:ss Representa hh a horas, mm a  Vamos a poner la hora minutos y ss a segundos. local de nuestro Sistema Operativo en el “StatusStrip1”.  Arrastra el “Timer” al formulario con lo cual, se llama “timer1” que lo queremos para actualizar lo valores de la hora. RECIBIR MENSAJES 182
  • 183. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 183
  • 184. metaconta@gmail.com 18/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. 184
  • 185. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Eliges “StatusLabel” como indica la flecha roja de más bajo. 185
  • 186. metaconta@gmail.com 18/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. 186
  • 187. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Ahora puedes ver que es hh:mm:ss. 187
  • 188. metaconta@gmail.com 18/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. 188
  • 189. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Pincha dos veces al componente “timer1” para que puedas introducir el código necesario de la hora local de Windows. 189
  • 190. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Se crea unos códigos pero no tiene función. 190
  • 191. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 191
  • 192. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  En su interior del código del “timer1”, introduce:  statusStrip1.Items[0].Text = DateTime.Now.ToLongTimeString(); 192
  • 193. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 193
  • 194. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Comprueba a partir de la página siguiente el código fuente completo.  Hemos llegado a 90 líneas de código muy rápido. 194
  • 195. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 195
  • 196. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 196
  • 197. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 197
  • 198. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 198
  • 199. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 199
  • 200. metaconta@gmail.com 18/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”. 200
  • 201. metaconta@gmail.com 18/03/2009 READONLY = FALSE READONLY = TRUE RECIBIR MENSAJES 201
  • 202. metaconta@gmail.com 18/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. CÓDIGO C# 202
  • 203. metaconta@gmail.com 18/03/2009 Puedes ampliar algunas funciones básicas para la interfaz EXTRAS 203
  • 204. metaconta@gmail.com 18/03/2009 EXTRAS  A partir de aquí, ciertas funciones del programa no hace falta aunque otras son recomendables como hacer un cuadro de información de la aplicación normalmente llamado “Acerca de…”.  Podrás introducir información como la página Web oficial, correo electrónico para contactar, versión, logotipo, etc.  Con el tiempo, según voy actualizando este manual y sin previo aviso, quizás encuentren en esta parte del tema “Extras” algunos tutoriales nuevos. 204
  • 205. metaconta@gmail.com 18/03/2009 ACERCA DE…  En cualquier programa tienen un cuadro de información “Acerca de…”, me gustaría hacer algo similar. ¿Cómo puedo hacerlo?  Hay varias formas de mostrar información del programa y vamos a aprender hacer varios y entre ellas elegirás la que más interese. Por ejemplo, un cuadro de información básica donde solo se mostrará texto y un icono de información, otro más complejo, detallado y con logotipo. 205
  • 206. metaconta@gmail.com 18/03/2009 Objetivos: Vamos a insertar varios tipos de  1) Insertar un control cuadros de información “Acerca de…”. “MenuStrip” al formulario. En tu aplicación final, sólo elegirás uno, en este ejemplo hacemos  2) Salir. unos cuantos para que veas cual se te adapta mejor.  3) Llamar manual.pdf en ayuda.  4) Crear una ventana “Acerca de …” básico.  5) Crear otra ventana “Acerca de…” con un Form.  6) Agregar enlaces a Web. ACERCA DE… 206
  • 207. metaconta@gmail.com 18/03/2009 ACERCA DE…  Antes que nada, haga una copia de seguridad de su proyecto completo a una carpeta o directorio.  Siempre es bueno hacer una copia de seguridad antes de realizar alguna modificación. 207
  • 208. metaconta@gmail.com 18/03/2009 ACERCA DE…  Como en cualquier programa, muchos tienen menú de opciones arriba.  Podemos introducir cualquier opción que veremos poco a poco a lo largo del curso.  Pincha o clickea dos veces el control “MenuStrip” con lo cual se agrega en la parte inferior “menuStrip1”. 208
  • 209. metaconta@gmail.com 18/03/2009 ACERCA DE… 209
  • 210. metaconta@gmail.com 18/03/2009 ACERCA DE…  Selecciona el objeto “menuStrip1”, en el cuadro de propiedades. Pulsa el valor de la propiedad “(Colección)” del “Items”.  Podrás configurar las opciones que muestra la ventana en la página siguiente pero, no vamos a usar este método sino uno más directo y sencillo. 210
  • 211. metaconta@gmail.com 18/03/2009 ACERCA DE… 211
  • 212. metaconta@gmail.com 18/03/2009 ACERCA DE…  Pulsa “Cancelar” de la ventana “Editor de la colección de elementos” para cerrarla.  Nos centraremos directamente en la barra de menú.  Pincha una vez donde indica la imagen de la derecha, escribe “Opciones” y pulsa “Enter”. 212
  • 213. metaconta@gmail.com 18/03/2009 ACERCA DE…  Se ha creado “Opciones” y ahora abajo donde indica la flecha roja introduce “Salir”. 213
  • 214. metaconta@gmail.com 18/03/2009 ACERCA DE…  Al lado introduces “Ayuda” y abajo “Acerca de…”.  Bien, justo abajo introduces el guión – normal (No el guión bajo) y pulsa “Enter”.  Verás una raya de separación. 214
  • 215. metaconta@gmail.com 18/03/2009 ACERCA DE…  Justo de bajo de la raya pon “Acerca de 2…” que es para introducir el segundo ejemplo de ventanas de información.  Como muestra la imagen, falta una opción que introduciremos abajo y se llama “Contenido”. 215
  • 216. metaconta@gmail.com 18/03/2009 ACERCA DE…  “Contenido” es la ayuda del programa que puede ser desde un formulario o archivo externos que pueden ser PDF, XPS, DOC, DOCX, HTML, etc. 216
  • 217. metaconta@gmail.com 18/03/2009 ACERCA DE…  “Contenido” lo queremos arriba, así que, pincha sin soltar con el ratón y arrástralo encima de “Acerca de…”.  Si no lo has introducido bien, sólo tienes que corregirlo con deshacer pulsando “Control + Z”. 217
  • 218. metaconta@gmail.com 18/03/2009 ACERCA DE…  Muchas personas en cualquier programa, accedemos a los menús directamente con el teclado. Así que, vamos a colocar este símbolo “&” que está encima de la tecla “6”.  En “Ayuda” ponemos la “&” delante de la “y” para que queda señalada en una raya debajo indicando la tecla de acceso. Por ejemplo, “A&yuda” y se muestra así:  Ayuda. 218
  • 219. metaconta@gmail.com 18/03/2009 ACERCA DE… & Resultado  En este caso &Opciones Opciones “&Opciones”, debajo &Salir Salir “&Salir” así A&yuda Ayuda sucesivamente. Ac&erca de… Acerca de…  No se debe repetir la Ace&rca de 2… Acerca de 2… misma letra en el mismo formulario.  También puedes introducir la “&” en botones. 219
  • 220. metaconta@gmail.com 18/03/2009 ACERCA DE…  Vamos a introducir el código Close(); pinchando dos veces en “Salir”. 220
  • 221. metaconta@gmail.com 18/03/2009 ACERCA DE…  Al introducir Close(); una cosa muy importante.  Guarda todo el proyecto que hemos hecho hasta ahora.  Ejecuta, compila o depura con “F5” o la flecha verde el programa o aplicación y comprueba que se cierra. 221
  • 222. metaconta@gmail.com 18/03/2009 ACERCA DE… 222
  • 223. metaconta@gmail.com 18/03/2009 ACERCA DE…  Ahora nos toca abrir un archivo de ayuda en pdf dentro de “AyudaContenido”.  De momento introducimos estos códigos necesarios para abrir el “manua.pdf” que por ahora no está. Como no lo encuentra, nos avisa con un mensaje. 223
  • 224. metaconta@gmail.com 18/03/2009 ACERCA DE…  Has doble click en “Contenido” e introduce el código que muestra en la página siguiente. 224
  • 225. metaconta@gmail.com 18/03/2009 ACERCA DE… 225
  • 226. metaconta@gmail.com 18/03/2009 ACERCA DE…  Debe quedar de la siguiente manera. 226
  • 227. metaconta@gmail.com 18/03/2009 ACERCA DE… 227
  • 228. metaconta@gmail.com 18/03/2009 ACERCA DE…  No olvides poner el “using” que indica en la imagen si no lo habías puesto ya. 228
  • 229. metaconta@gmail.com 18/03/2009 ACERCA DE…  Guarda todo el proyecto y pulsa “F5” para depurar.  Ejecuta “AyudaContenido”.  Verás una ventana que se llama “Aviso:” porque no encuentra el archivo “manual.pdf”. 229
  • 230. metaconta@gmail.com 18/03/2009 ACERCA DE… 230
  • 231. metaconta@gmail.com 18/03/2009 ACERCA DE…  Busca cualquier archivo que tengas de pdf y llámalo “manual.pdf”.  En realidad has una copia y renómbralo.  Debes tener el Adobe Reader Instalado, si no lo tienes lo descarga gratuitamente aquí www.adobe.es . 231
  • 232. metaconta@gmail.com 18/03/2009 ACERCA DE…  En cualquiera de las pestañas, fijándote bien en la imagen y el de la página siguiente, clickea con el botón derecho y pinchas en “Abrir carpeta Contenido”. 232
  • 233. metaconta@gmail.com 18/03/2009 ACERCA DE… 233