0
metaconta@gmail.com   18/03/2009




ÍNDICE 1/2
 Presentación – 4
 Visual C# .net – 6
 Entorno Visual C# – 44
 Ejecuta...
metaconta@gmail.com   18/03/2009




ÍNDICE 2/2
 Extras – 203
 Fotos – 490
 Vídeos – 498
 Libros – 500
 Otros manuale...
metaconta@gmail.com   18/03/2009




            Presentación del manual.

          PRESENTACIÓN




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




PRESENTACIÓN
   Este manual está orientado a personas nóveles en tema de microcontro...
metaconta@gmail.com   18/03/2009




                                   Introducción

           VISUAL C# .NET




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




VISUAL C# .NET EXPRESS
 Vamos a desarrollar un pequeño programa bajo
  el entorno de...
metaconta@gmail.com   18/03/2009




VISUAL C# .NET EXPRESS

 En este manual se ha trabajado en su
  momento con:
 Windo...
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS
   De entrada vamos a
    descargar el compilado...
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS




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




DESCARGA DEL VISUAL C# .NET EXPRESS

   Puede tardar unos
    minutos la instalación...
metaconta@gmail.com   18/03/2009




DESCARGA DEL VISUAL C# .NET EXPRESS




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




REGISTRO DE VISUAL C# .NET
 Llegarás un momento en que te dice que te
  registres. S...
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#
...
metaconta@gmail.com   18/03/2009




RESTABLECER DISEÑO DE LA VENTANA




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




RESTABLECER DISEÑO DE LA VENTANA

   Le hará una pregunta
    antes de realizar la
 ...
metaconta@gmail.com   18/03/2009




RESTABLECER DISEÑO DE LA VENTANA




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




INICIO VISUAL C# .NET

   Como se muestra en
    la imagen, aparecerá
    una página...
metaconta@gmail.com   18/03/2009




CREAR NUEVO PROYECTO
Creamos un nuevo proyecto en “ArchivoNuevaProyecto…”. Antes
de...
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 “Aplicac...
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 ...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Pulsa el botón
    “Guardar todo” como
    indica en...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




INICIO DE UN NUEVO PROYECTO

   Al pulsar “Guardar
    todo” aparece una
    ventana...
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
    derec...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




INICIO DE UN NUEVO PROYECTO

   Pulsa la pestaña
    “Cuadro de
    herramientas” pa...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




INICIO DE UN NUEVO PROYECTO

   Se abrirá el “Cuadro
    de herramientas”
    como i...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




INICIO DE UN NUEVO PROYECTO

   Se abrirá el “Cuadro
    de herramientas”
    como i...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Ahora permanece fija y
    es lo que nos interesa
  ...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO
Vamos abrir otro cuadro llamado “propiedades” para tener ...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO

   Dentro de la ficha que
    actualmente se llama
    ...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




INICIO DE UN NUEVO PROYECTO

   Una vez que todo esté
    como muestra en la
    ima...
metaconta@gmail.com   18/03/2009




INICIO DE UN NUEVO PROYECTO




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




Nos familiarizamos con el entorno.

ENTORNO VISUAL C#




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




ENTORNO VISUAL C#

   Ahora que ya tenemos
    Visual C# a la vista,
    hay que sab...
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   Hay varias maneras de
    ver los códigos como
    muestra en ...
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 der...
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#

   En el código fuente
    escribiremos en el
    lenguaje C# (no...
metaconta@gmail.com   18/03/2009




ENTORNO VISUAL C#




                                                       50
metaconta@gmail.com    18/03/2009




                 CÓDIGO FUENTE                              DISEÑO
using System;
usi...
metaconta@gmail.com   18/03/2009


Vamos a explicar cada cuadro para
familiarizarnos y poder entender las
futuras explicac...
metaconta@gmail.com   18/03/2009




CUADRO DE HERRAMIENTAS
   En el “Cuadro de herramientas” hay
    componentes que pue...
metaconta@gmail.com   18/03/2009




EXPLORADOR DE SOLUCIONES

   En el “Explorador de
    soluciones”, para ver y
    ad...
metaconta@gmail.com   18/03/2009




VENTANA DE PROPIEDADES

   En “Propiedades”,
    para configurar
    propiedades y e...
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” a...
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 ar...
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...
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
    “...
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 cuadr...
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 in...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ
 1) Introducir el nombre de nuestro programa en
  el formula...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Pincha una vez en el
    centro del formulario o
    don...
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 ...
metaconta@gmail.com   18/03/2009




                                            CÓDIGO FUENTE

   Asegúrate que el códig...
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 propi...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      76
metaconta@gmail.com   18/03/2009




                                                  PROPIEDADES

   En el cuadro de pr...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ
   En la ventana de
    “Cuadro de
    herramientas” pulsa e...
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
    ...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ




                                                      81
metaconta@gmail.com   18/03/2009




                                              PROPIEDADES

   Haz introducido el bot...
metaconta@gmail.com   18/03/2009




                                                PROPIEDADES

   Arrastra un “button”...
metaconta@gmail.com   18/03/2009




                                        PROPIEDADES

   Ahora con button3.   Propied...
metaconta@gmail.com   18/03/2009




                                                PROPIEDADES

   Ahora con button4 pe...
metaconta@gmail.com   18/03/2009




                                                 PROPIEDADES

   Ahora con Button5 d...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   En el “button5 o
    ahora“button_Espacio”
    , haz cli...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Cambiamos a
    “Negrita” en
    “Font.Bold” a modo
    ...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Hay una manera más
    cómoda y rápida de
    ponerlo en...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Tras a verlo pulsado,
    se abre una ventana
    muy có...
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
    tabulac...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   También hay otro
    método más cómodo
    en selecciona...
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 orde...
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 depura...
metaconta@gmail.com   18/03/2009




OBJETIVO DE LA INTERFAZ

   Si quieres ver,
    seleccionar o modificar
    los nomb...
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”, co...
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 V...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
 Si no tienes el libro puedes ver el código ASCII
 ...
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...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A

   El esquema eléctrico que vamos a usar es
    de...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A




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




LISTA DE COMPONENTES

Componentes      Valor          C8                        22pF
...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   Vamos a usar el código del
    libro del archivo...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
;************************************ RS232_11.asm *...
metaconta@gmail.com                     18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
         __CONFIG _CP_OFF & _WDT_O...
metaconta@gmail.com                   18/03/2009




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




CÓDIGO ENSAMBLADOR DEL PIC16F84A
         movf    TeclaPulsada,W        ...
metaconta@gmail.com    18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
        movlw       MensajeAtras
        goto      ...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
    INCLUDE <LCD_MENS.INC>
    INCLUDE <RETARDOS.INC...
metaconta@gmail.com   18/03/2009




RS232_11.HEX
:10012000080085158316051685118312080008300E
:100130008E00051A99288F21912...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   Se preguntará el motivo de           TECLA      ...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   Mirando la tabla ASCII
    1 de este manual o el...
metaconta@gmail.com   18/03/2009




CÓDIGO ENSAMBLADOR DEL PIC16F84A
   En el Visual C# vamos a           Hex           ...
metaconta@gmail.com   18/03/2009




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

      PRIMER CÓDIGO C#




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




PRIMER CÓDIGO C#
   Vamos a introducir los
    primeros códigos C# en
    los botone...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

 Se recomienda probar el montaje del circuito
  si funciona bien c...
metaconta@gmail.com            18/03/2009




PRIMER CÓDIGO C#
   Puesta en marcha de la comunicación entre ordenador y P...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   Hay varias formas de
    seleccionar un objeto.
    Como indica ...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Pulsamos el botón
    “Eventos” y hacemos
    doble clic con el...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Saltamos a la pestaña
    “Form1.cs” y se nos ha
    creado el ...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Volvamos a la pestaña
    “Form1.cs[Diseño]” y
    nos fijamos ...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Pulsa el botón de
    “propiedades”.




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




PRIMER CÓDIGO C#
   La manera más cómoda
    es pinchando dos veces
    clic en el b...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

 Aquí por primera vez vamos a usar el código
  en C# creado por no...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C# (OBJETIVO)

 1) Introducir códigos en los botones para su
  funcion...
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ó...
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 ...
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...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Justo debajo donde
    pone:
   using
    System.Windows.Form
...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Ahora introduces el
    siguiente comando:
   using System.IO....
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   En el “Cuadro de
    herramientas”,
    “Componentes”, pincha o
...
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á...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
                            Propiedad                 Cambiar a
   ...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
 Una vez todo hecho como indica las páginas
  anteriores, el código...
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
    Init...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Para saber el números
    de líneas en el editor
    de Visual ...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

   Se abre la ventana
    opciones.
   Abajo, pincha “Mostrar
   ...
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 ...
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 m...
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...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#

 En el formulario, pincha dos veces click en el
  botón b e introd...
metaconta@gmail.com   18/03/2009




PRIMER CÓDIGO C#
   Sigue así con los demás botones. El procedimiento es el mismo qu...
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 t...
metaconta@gmail.com   18/03/2009




Recibir mensajes desde el microcontrolador PIC16F84A.

                     RECIBIR M...
metaconta@gmail.com   18/03/2009


Objetivos:
Leer los datos del PIC16F84A
                                  1) Arrastrar...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   En el “Cuadro de
    herramientas”, “Menús
    y barra de
    h...
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
  ...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
   Puedes cambiar la propiedad            Propiedad                ...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
                              Propiedad                 Cambiar a
 ...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

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




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




RECIBIR MENSAJES

   Debe por ahora quedar
    como muestra en la
    imagen de la d...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
                              Propiedad                 Cambiar a
 ...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Pulsa en la barra de
    herramientas.
    “VerOrden de
    ta...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
   Deja como muestra en
    la imagen el orden de
    tabulación.
...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Si lo deseas, en el        Propiedad                 Cambiar a
...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
   Nos toca introducir los códigos necesarios para que
    el “text...
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á colocad...
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....
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 Operati...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Eliges “StatusLabel”
    como indica la flecha
    roja de más ...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES
   Se ha creado un
    “toolStripStatusLabel1”
    .
   En la prop...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

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




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




RECIBIR MENSAJES
   Selecciona el componente     Propiedad                 Cambiar a...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

   Pincha dos veces al
    componente “timer1”
    para que puedas...
metaconta@gmail.com   18/03/2009




RECIBIR MENSAJES

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




           ...
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:

   sta...
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 comp...
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 ...
metaconta@gmail.com   18/03/2009




    READONLY = FALSE               READONLY = TRUE




RECIBIR MENSAJES
             ...
metaconta@gmail.com   18/03/2009




                                         DESCARGA CÓDIGO FUENTE 2

   Perfectamente ...
metaconta@gmail.com   18/03/2009




Puedes ampliar algunas funciones básicas para la interfaz

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




EXTRAS
 A partir de aquí, ciertas funciones del programa
  no hace falta aunque otra...
metaconta@gmail.com   18/03/2009




ACERCA DE…
 En cualquier programa tienen un cuadro de
  información “Acerca de…”, me...
metaconta@gmail.com   18/03/2009


Objetivos:
Vamos a insertar varios tipos de
                                         1...
metaconta@gmail.com   18/03/2009




ACERCA DE…

 Antes que nada, haga una copia de
  seguridad de su proyecto completo a...
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Como en cualquier
    programa, muchos
    tienen menú de
    opciones...
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...
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 elem...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Se ha creado
    “Opciones” y ahora
    abajo donde indica la
    fle...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Al lado introduces
    “Ayuda” y abajo
    “Acerca de…”.
   Bien, ju...
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Justo de bajo de la
    raya pon “Acerca de
    2…” que es para
    in...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   “Contenido” es la
    ayuda del programa
    que puede ser desde
    ...
metaconta@gmail.com   18/03/2009




ACERCA DE…
   “Contenido” lo
    queremos arriba, así
    que, pincha sin soltar
   ...
metaconta@gmail.com   18/03/2009




ACERCA DE…
   Muchas personas en
    cualquier programa,
    accedemos a los menús
 ...
metaconta@gmail.com   18/03/2009




ACERCA DE…
                            &                         Resultado
   En est...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Vamos a introducir el
    código Close();
    pinchando dos veces
   ...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Al introducir Close(); una
    cosa muy importante.
   Guarda todo e...
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Cont...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Has doble click en
    “Contenido” e
    introduce el código
    que ...
metaconta@gmail.com   18/03/2009




ACERCA DE…




                                                225
metaconta@gmail.com   18/03/2009




ACERCA DE…

   Debe quedar de la siguiente manera.




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




ACERCA DE…

   Guarda todo el
    proyecto y pulsa “F5”
    para depurar.
   Ejecut...
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”.
 E...
metaconta@gmail.com   18/03/2009




ACERCA DE…

   En cualquiera de las
    pestañas, fijándote
    bien en la imagen y ...
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
Pic Rs232 puerto serie con PIC16F84A
Upcoming SlideShare
Loading in...5
×

Pic Rs232 puerto serie con PIC16F84A

126,631

Published on

Manual puerto serie RS232 con PIC16F84A controlado con Visual C# .net.

Published in: Education
42 Comments
29 Likes
Statistics
Notes
  • @Jim Reyes Condor Hola, el boot loader es para cargar el firmeare fácilmente sin tener que extraer el PIC, tenga o no el bootloader puedes hacer lo mismo. Ya haré ejemplos de lo que dices y lo publicaré. Eso si, en el futuro, que ahora estoy haciendo un programa para leer ROM de SNES y cambiar los valores como quieres hacerlo con PIC.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Busque info de la modificacion de .hex y si es como ud dice, lo que hacen es usar el bootloader el cual este importa y exporta el .hex pero a este bootloader lo modifican por dentro para tener una aplicacion personal y en ello pueden activar o desactivar un puerto, para luego volver a cargar el .hex____ estos programas son buenos para que alguien que o sepa de programacion y que no sea nosotros pueda tener un control del pic sin.. estarea la espera su manual y por cierto tendras mi apoyo ya que necesito este programa. salu2
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @Jim Reyes Condor Normalmente uso ASM con el MPLAB, ahora estoy con Arduino a fondo, ejjejeje. Antes estaba un poco con el CCS, el que se recomienda ahora es el XC8 con el MPLAB incluido. Más actualizado, más ejemplos desde su web oficial, más compatbilidad. Para este tipo de cosas que quieres hacer, el asm es el más recomendado porque encuentras rápido los pines de los relés. Se puede hacer con cualquier compilador, l que al lenguaje alto, genera más códigos asm que hacerlo directamente nativo. Haré prueba com curiosidad.Saludos.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Seria genial amigo que nos darias pautas sobre esto, no sbia que se pudiera cambiar las zonas de un .hex, no se si las personas usan mucho este tipo de programas pero veo vastante en los comercios por ejemplo este es un programa que cambia la configuracion del pic y lo guarda, fijate en la parte donde dice reles http://tucontrol.net/crg_tango/fotos_crg_tango/Panel_de_control.jpg yo estoy trabajando con mikroc PRO, pero buscando en google veo que mayormente usan ccs y talves empiese a aprender ccs.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @Jim Reyes Condor Reyes Condor Hola: Se puede hacer, ya que hace mucho tiempo hice pruebas con el PIC16F84A. Lo que tienes que saber cuando el archivo esté compilado a .hex, saber la zona de memoria juston cual es par modificarlo. Hay que leerse los demá archivos después de compilar, si es en asm, lo pillas rápido. Haré pruebas otra vez como curiosidad y haré un tutorial sobre ello. No pensé que haya gente que le interesaría. Saludos.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
126,631
On Slideshare
0
From Embeds
0
Number of Embeds
56
Actions
Shares
0
Downloads
6,123
Comments
42
Likes
29
Embeds 0
No embeds

No notes for slide

Transcript of "Pic Rs232 puerto serie con PIC16F84A"

  1. 1. 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
  2. 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
  3. 3. metaconta@gmail.com 18/03/2009 Presentación del manual. PRESENTACIÓN 4
  4. 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
  5. 5. metaconta@gmail.com 18/03/2009 Introducción VISUAL C# .NET 6
  6. 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
  7. 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
  8. 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
  9. 9. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS 10
  10. 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
  11. 11. metaconta@gmail.com 18/03/2009 DESCARGA DEL VISUAL C# .NET EXPRESS 12
  12. 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
  13. 13. metaconta@gmail.com 18/03/2009 14
  14. 14. metaconta@gmail.com 18/03/2009 15
  15. 15. metaconta@gmail.com 18/03/2009 16
  16. 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
  17. 17. metaconta@gmail.com 18/03/2009 RESTABLECER DISEÑO DE LA VENTANA 18
  18. 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
  19. 19. metaconta@gmail.com 18/03/2009 RESTABLECER DISEÑO DE LA VENTANA 20
  20. 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
  21. 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
  22. 22. metaconta@gmail.com 18/03/2009 CREAR NUEVO PROYECTO 23
  23. 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
  24. 24. metaconta@gmail.com 18/03/2009 CREAR NUEVO PROYECTO 25
  25. 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
  26. 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
  27. 27. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 28
  28. 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
  29. 29. metaconta@gmail.com 18/03/2009 30
  30. 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
  31. 31. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 32
  32. 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
  33. 33. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 34
  34. 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
  35. 35. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 36
  36. 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
  37. 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
  38. 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
  39. 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
  40. 40. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 41
  41. 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
  42. 42. metaconta@gmail.com 18/03/2009 INICIO DE UN NUEVO PROYECTO 43
  43. 43. metaconta@gmail.com 18/03/2009 Nos familiarizamos con el entorno. ENTORNO VISUAL C# 44
  44. 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
  45. 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
  46. 46. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C# 47
  47. 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
  48. 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
  49. 49. metaconta@gmail.com 18/03/2009 ENTORNO VISUAL C# 50
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 55. metaconta@gmail.com 18/03/2009 VENTANA DE PROPIEDADES 56
  56. 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
  57. 57. metaconta@gmail.com 18/03/2009 EJECUTAR PROGRAMA 58
  58. 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
  59. 59. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 60
  60. 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
  61. 61. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 62
  62. 62. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA  Para terminar la depuración simplemente pulsa “DepurarDetener depuración”. 63
  63. 63. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 64
  64. 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
  65. 65. metaconta@gmail.com 18/03/2009 EJECUTAR TU PROGRAMA 66
  66. 66. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 67
  67. 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
  68. 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
  69. 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
  70. 70. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 71
  71. 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
  72. 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
  73. 73. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 74
  74. 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
  75. 75. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 76
  76. 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
  77. 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
  78. 78. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 79
  79. 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
  80. 80. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 81
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 90. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 91
  91. 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
  92. 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
  93. 93. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 94
  94. 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
  95. 95. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 96
  96. 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
  97. 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
  98. 98. metaconta@gmail.com 18/03/2009 OBJETIVO DE LA INTERFAZ 99
  99. 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
  100. 100. metaconta@gmail.com 18/03/2009 CÓDIGO ASM DEL PIC16F84A 101
  101. 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
  102. 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
  103. 103. metaconta@gmail.com 18/03/2009 Tabla ASCII 1 104
  104. 104. metaconta@gmail.com 18/03/2009 Tabla ASCII 2 105
  105. 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
  106. 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
  107. 107. metaconta@gmail.com 18/03/2009 CÓDIGO ENSAMBLADOR DEL PIC16F84A 108
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 120. metaconta@gmail.com 18/03/2009 Códigos de envío de datos al PIC16F84A. PRIMER CÓDIGO C# 121
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 128. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Pulsa el botón de “propiedades”. 129
  129. 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
  130. 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
  131. 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
  132. 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
  133. 133. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 134
  134. 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
  135. 135. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 136
  136. 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
  137. 137. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Justo debajo donde pone:  using System.Windows.Form s; 138
  138. 138. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Ahora introduces el siguiente comando:  using System.IO.Ports; 139
  139. 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
  140. 140. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 141
  141. 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
  142. 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
  143. 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
  144. 144. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 145
  145. 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
  146. 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
  147. 147. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C#  Se abre la ventana opciones.  Abajo, pincha “Mostrar todas las configuraciones”. 148
  148. 148. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 149
  149. 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
  150. 150. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 151
  151. 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
  152. 152. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 153
  153. 153. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 154
  154. 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
  155. 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
  156. 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
  157. 157. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 158
  158. 158. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 159
  159. 159. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 160
  160. 160. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 161
  161. 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
  162. 162. metaconta@gmail.com 18/03/2009 Recibir mensajes desde el microcontrolador PIC16F84A. RECIBIR MENSAJES 163
  163. 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
  164. 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
  165. 165. metaconta@gmail.com 18/03/2009 PRIMER CÓDIGO C# 166
  166. 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
  167. 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
  168. 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
  169. 169. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Esta es una de las maneras de cambiar a “Bottom”. 170
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 176. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 177
  177. 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
  178. 178. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 179
  179. 179. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 180
  180. 180. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 181
  181. 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
  182. 182. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 183
  183. 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
  184. 184. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Eliges “StatusLabel” como indica la flecha roja de más bajo. 185
  185. 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
  186. 186. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Ahora puedes ver que es hh:mm:ss. 187
  187. 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
  188. 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
  189. 189. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES  Se crea unos códigos pero no tiene función. 190
  190. 190. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 191
  191. 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
  192. 192. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 193
  193. 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
  194. 194. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 195
  195. 195. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 196
  196. 196. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 197
  197. 197. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 198
  198. 198. metaconta@gmail.com 18/03/2009 RECIBIR MENSAJES 199
  199. 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
  200. 200. metaconta@gmail.com 18/03/2009 READONLY = FALSE READONLY = TRUE RECIBIR MENSAJES 201
  201. 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
  202. 202. metaconta@gmail.com 18/03/2009 Puedes ampliar algunas funciones básicas para la interfaz EXTRAS 203
  203. 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
  204. 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
  205. 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
  206. 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
  207. 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
  208. 208. metaconta@gmail.com 18/03/2009 ACERCA DE… 209
  209. 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
  210. 210. metaconta@gmail.com 18/03/2009 ACERCA DE… 211
  211. 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
  212. 212. metaconta@gmail.com 18/03/2009 ACERCA DE…  Se ha creado “Opciones” y ahora abajo donde indica la flecha roja introduce “Salir”. 213
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 219. metaconta@gmail.com 18/03/2009 ACERCA DE…  Vamos a introducir el código Close(); pinchando dos veces en “Salir”. 220
  220. 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
  221. 221. metaconta@gmail.com 18/03/2009 ACERCA DE… 222
  222. 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
  223. 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
  224. 224. metaconta@gmail.com 18/03/2009 ACERCA DE… 225
  225. 225. metaconta@gmail.com 18/03/2009 ACERCA DE…  Debe quedar de la siguiente manera. 226
  226. 226. metaconta@gmail.com 18/03/2009 ACERCA DE… 227
  227. 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
  228. 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
  229. 229. metaconta@gmail.com 18/03/2009 ACERCA DE… 230
  230. 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
  231. 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
  232. 232. metaconta@gmail.com 18/03/2009 ACERCA DE… 233
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×