This document provides an index and introduction for a manual on using Visual C# .NET and a PIC microcontroller. The index lists topics such as an introduction to Visual C# .NET, creating a new project, familiarizing oneself with the development environment, and connecting a PIC microcontroller to send and receive messages via RS232 serial communication.
5. metaconta@gmail.com 18/03/2009
PRESENTACIÓN
Este manual está orientado a personas nóveles en tema de microcontroladores PIC y el
lenguaje C# en el Sistema Operativo Windows.
No aprenderemos a programar PIC en ensamblador (asm) ni el lenguaje C#, sino que se
darán los pasos necesarios para poder ser capaz de realizar estas tareas sin tener idea
de programación.
El objetivo de este manual es que cualquier persona sin conocimientos previos puedan
hacer ciertas tareas sobre el puerto serie RS232 sin el HyperTerminal de Windows,
Minicom de Linux o cualquier otro programa relacionado ya que nos centraremos en crear
desde cero nuestro propio interfaz donde podemos añadirle cualquier función o diseño de
botones, colores, posiciones, etc.
Está relacionado con el libro “MICROCONTROLADOR PIC16F84. Desarrollo de
proyectos” en el capítulo 20 con el ejemplo “RS232_11.asm” y/o RS232_11b.asm
Independientemente del entorno de desarrollo que hayas elegido sea en Windows o
Linux, siguiendo los pasos podrás controlar con tu interfaz el propio PIC a través del
puerto serie RS232. También puedes recibir mensajes de texto al igual que lo hace el
HyperTerminal y Minicom que también se visualiza en el LCD.
Este manual básico les puede servir para proyectos de fin de curso sea de Ciclos
Formativos Grado Medio, Ciclos Formativos Grado Superior e incluso una carrera
universitaria.
5
7. metaconta@gmail.com 18/03/2009
VISUAL C# .NET EXPRESS
Vamos a desarrollar un pequeño programa bajo
el entorno de desarrollo Visual C# .net Express
(gratuito) bajo el Sistema Operativo Windows.
Si conoces el libro www.pic16f84a.org se tratará
sobre el capítulo 20 en el cual explica paso a
paso el control del PIC-16F84A.
Si deseas obtener más información sobre el
aprendizaje de Visual C# con vídeos incluidos
entre en este enlace desde la Web oficial de
MicroSoft. http://msdn.microsoft.com/es-
es/beginner/bb308760.aspx
7
8. metaconta@gmail.com 18/03/2009
VISUAL C# .NET EXPRESS
En este manual se ha trabajado en su
momento con:
Windows XP SP3.
Visual C# Express Edition 2008 FrameWork
3.5 SP1.
8
9. metaconta@gmail.com 18/03/2009
DESCARGA DEL VISUAL C# .NET EXPRESS
De entrada vamos a
descargar el compilador
(gratuito) Visual C# .net
Express desde la Web oficial
http://www.microsoft.com/exp
ress/download/
Precisamente vamos a
descargar la versión en
español y si es posible
instale los Service Pack ya
que en esa actualización se
han corregidos errores y
mejor rendimiento.
Pulsa Donwload para su
descarga.
9
11. metaconta@gmail.com 18/03/2009
DESCARGA DEL VISUAL C# .NET EXPRESS
Puede tardar unos
minutos la instalación.
Lea paso a paso y la
licencia de su uso
sobre la instalación del
Visual C# .net. Tardará
unos buenos minutos
entre la descarga y la
instalación.
11
13. metaconta@gmail.com 18/03/2009
REGISTRO DE VISUAL C# .NET
Llegarás un momento en que te dice que te
registres. Si no te registras sólo funcionará el
Visual C# .net 30 días y después si quieres
usarlo siempre te pedirá la clave del registro.
Registrarse es gratuito y no tendrás que
pagar ninguna cantidad de dinero, sólo es
para que lo puedas usar siempre.
Se recomienda guardar la clave que te llega
por e-mail.
13
17. metaconta@gmail.com 18/03/2009
Desde el botón de inicio de
Windows, pulsa “Todos los
programas”, “Microsoft Visual C#
2008 Express Edition” y ejecutarás
el Visual C#.
En caso de que hayas tocado algo
puedes restablecer las ventanas en
la barra de herramientas,
“VentanasRestablecer diseño de
la ventana”.
EJECUTAR VISUAL C# .NET
17
19. metaconta@gmail.com 18/03/2009
RESTABLECER DISEÑO DE LA VENTANA
Le hará una pregunta
antes de realizar la
operación.
Pulse “Sí” para
reestablecer las
ventanas.
19
21. metaconta@gmail.com 18/03/2009
INICIO VISUAL C# .NET
Como se muestra en
la imagen, aparecerá
una página llamada
“Página de inicio”.
21
22. metaconta@gmail.com 18/03/2009
CREAR NUEVO PROYECTO
Creamos un nuevo proyecto en “ArchivoNuevaProyecto…”. Antes
de comenzar, vamos a explicar el entorno básico del Visual C# .NET
Express.
22
24. metaconta@gmail.com 18/03/2009
Se abrirá una ventana llamada
“Nuevo proyecto”. Eliges la primera
que se llama “Aplicación de
Windows Forms”.
Abajo donde dice “Nombre:”
podemos poner cualquier nombre,
en mi caso he puesto exactamente
PicRS232.
Cuando acabes pulsa el botón
“Aceptar”.
CREAR NUEVO PROYECTO
24
26. metaconta@gmail.com 18/03/2009
Como puedes ver en la imagen, se
a creado una ventana llamada
“Form1” en el cual vamos a diseñar
nuestro formulario.
En cada paso que hagamos se
recomienda guardar el proyecto por
si hay corte de luz, fallo en el
sistema, etc así no perder
información o el trabajo que hemos
realizado que puedes ser de horas.
INICIO DE UN NUEVO PROYECTO
26
27. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Pulsa el botón
“Guardar todo” como
indica en la imagen o
pulsa en la barra de
herramientas
“ArchivoGuardar
todo” para guardar el
proyecto.
27
29. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Al pulsar “Guardar
todo” aparece una
ventana llamada
“Guardar proyectos”.
Deja el nombre como
está y pulsa el botón
“Guardar”.
29
31. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
En la pestaña “Página
de inicio, en su
derecha pulsa la X
para cerrarla” y no nos
molestará en el futuro
si abrimos muchas.
31
33. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Pulsa la pestaña
“Cuadro de
herramientas” para
abrir una ventana
indicado en la imagen
con un rectángulo rojo.
33
35. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Se abrirá el “Cuadro
de herramientas”
como indica en el
dibujo, pero aún no es
fija.
35
37. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Se abrirá el “Cuadro
de herramientas”
como indica en el
dibujo, pero aún no es
fija.
Para dejarla fija pulsa
la chincheta como
indica la marca roja de
la imagen de la
derecha.
37
38. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Ahora permanece fija y
es lo que nos interesa
si estamos añadiendo
componentes al
formulario.
Así se hará con este
tipo de ventanas.
38
39. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Vamos abrir otro cuadro llamado “propiedades” para tener todo el
entorno preparado y con la chincheta fija.
39
40. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Dentro de la ficha que
actualmente se llama
Form1 (Más adelante
cambiaremos el
nombre), pulsa el
botón derecho del
ratón y dale en
“Propiedades”.
40
42. metaconta@gmail.com 18/03/2009
INICIO DE UN NUEVO PROYECTO
Una vez que todo esté
como muestra en la
imagen, vamos a
explicar cada
elemento para
orientarnos y así saber
de lo que estamos
hablando y para qué
es cada cosa.
42
44. metaconta@gmail.com 18/03/2009
Nos familiarizamos con el entorno.
ENTORNO VISUAL C#
44
45. metaconta@gmail.com 18/03/2009
ENTORNO VISUAL C#
Ahora que ya tenemos
Visual C# a la vista,
hay que saber de
entrada donde
introducir los códigos
de programación.
45
46. metaconta@gmail.com 18/03/2009
ENTORNO VISUAL C#
Hay varias maneras de
ver los códigos como
muestra en la imagen.
Si pulsas “Abrir
diseñador” se muestra
el diseño de formulario
y si pulsas “Ver
código” muestra el
código fuente del
programa.
46
48. metaconta@gmail.com 18/03/2009
ENTORNO VISUAL C#
También puedes ver el
código pulsando con el
botón derecho del
ratón, luego “Ver
código” e igualmente
accede al código
fuente.
48
49. metaconta@gmail.com 18/03/2009
ENTORNO VISUAL C#
En el código fuente
escribiremos en el
lenguaje C# (no en
ensamblador) los
códigos necesarios
para poder comunicar
el PIC 16F84A.
49
51. metaconta@gmail.com 18/03/2009
CÓDIGO FUENTE DISEÑO
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PicRS232
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
ENTORNO VISUAL C#
51
52. metaconta@gmail.com 18/03/2009
Vamos a explicar cada cuadro para
familiarizarnos y poder entender las
futuras explicaciones.
Se explicará el “Cuadro de
herramientas”, “Explorador de
soluciones”, “Propiedades” y algún
que otro según avanzamos.
ENTORNO VISUAL C#
52
53. metaconta@gmail.com 18/03/2009
CUADRO DE HERRAMIENTAS
En el “Cuadro de herramientas” hay
componentes que puedes arrastrarlo al
formulario Form1 o hacer doble clic con
el ratón.
NOTA: Se llama componentes a todos
objetos que se pueda coger desde el
“Cuadro de herramientas” y que se
pueda arrastrar hacia el formulario con
el fin de editar sus propiedades. Se
dividen en dos grupos: los que forman
parte de la interfaz de usuario, como
botones, etiquetas de textos, etc, y
aquellos que aportan funcionalidad pero
no son visibles al ejecurtarlo. Los
primeros se llaman controles
normalmente, para diferenciarlos.
En resumen: El Cuadro de
herramientas y el Diseñador, para
desarrollar rápidamente interfaces de
usuario con el ratón. 53
54. metaconta@gmail.com 18/03/2009
EXPLORADOR DE SOLUCIONES
En el “Explorador de
soluciones”, para ver y
administrar archivos
de proyecto y
configuraciones.
54
55. metaconta@gmail.com 18/03/2009
VENTANA DE PROPIEDADES
En “Propiedades”,
para configurar
propiedades y eventos
en los controles de la
interfaz de usuario.
55
57. metaconta@gmail.com 18/03/2009
VENTANA DE PROPIEDADES
Algunas veces, la
“descripción de la
propiedad” aparece
escondida.
Simplemente
selecciona abajo con
el ratón y lo arrastra
hacia arriba hasta que
se vea.
57
59. metaconta@gmail.com 18/03/2009
EJECUTAR TU PROGRAMA
Para compilar o
ejecutar el programa
simplemente arriba en
la barra de
herramientas pulsa
“DepurarIniciar
depuración” o
simplemente pulsa
“F5”.
59
65. metaconta@gmail.com 18/03/2009
EJECUTAR TU PROGRAMA
Puedes detener la
depuración pulsando el
botón cuadrado azul
claro.
En el formulario de la
aplicación ejecutándose,
también puedes pulsar
la X para cerrar como
cualquier otro programa.
La X que está en la
esquina superior
derecha al lado de
Minimizar y Maximizar.
65
68. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
El objetivo principal de esta aplicación es
hacer una interfaz de Visual C# capaz de
comunicarse con un microcontrolador
PIC16F84A al igual que lo hace el
HyperTerminal de Windows o el Minicom de
Linux con su propio diseño y control.
Vamos a dar el primer paso del diseño de la
interfaz.
68
69. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
1) Introducir el nombre de nuestro programa en
el formulario.
2) Centrar el formulario en el centro de la
pantalla de nuestro monitor al ejecutar nuestra
aplicación o programa.
3) Introducir 5 botones en el formulario en la
coordenada indicada.
4) Orden de tabulación de los botones.
5) Depurar nuestra aplicación.
69
70. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Pincha una vez en el
centro del formulario o
donde quieras.
En “Propiedades”, pon
el valor de la
propiedad “PicRS232”
(sin las dobles
comillas) ya que es el
nombre del programa
principal.
70
72. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
En el nombre de la
propiedad (Name) que el
valor de la propiedad se
llama “Form1” la cambiamos
a “Form_Principal”.
(Name) en formulario,
botones, etiquetas o
cualquier otro objeto, es el
nombre interno del objeto y
no se visualiza, por ejemplo
un botón, no el nombre del
botón “Text” que si se
visualiza. El nombre interno
de los objetos es para
llamarlo.
72
73. metaconta@gmail.com 18/03/2009
CÓDIGO FUENTE
Asegúrate que el código
fuente es tal como se
muestra.
OBJETIVO DE LA INTERFAZ
73
75. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Para centrar el
formulario, el nombre
de la propiedad,
selecciona el valor de
la propiedad
“CenterScreen”.
Al depurar el programa
siempre se visualiza el
formulario en el centro
de la pantalla o
nuestro monitor.
75
77. metaconta@gmail.com 18/03/2009
PROPIEDADES
En el cuadro de propiedades Propiedad Cambie a
de la derecha, es un breve Text PicRS232
resumen de lo que hemos
hecho menos la “Propiedad” (Name) Form_Principal
“Size”, que es el que StartPosition CenterScreen
debemos tener si no hemos
tocado nada al principio. Size 300; 300
Ahora en adelante sabrá
interpretar este cuadro, y
podemos cambiar las
propiedades más
rápidamente de cualquier
objeto.
OBJETIVO DE LA INTERFAZ
77
78. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
En la ventana de
“Cuadro de
herramientas” pulsa el
botón izquierdo del ratón
el objeto o control
“Button” y sin soltar
arrástralo al formulario y
después suelta.
También puedes pinchar
2 veces clic en “Button”
con el ratón y se agrega
automáticamente en el
formulario.
78
80. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Haz introducido el botón
llamado “Button1” en el
formulario.
Ahora toca cambiar las
propiedades que se
describe en el cuadro a
continuación.
Da igual en que parte
coloques el Button
dentro del formulario, ya
que lo colocaremos con
las coordenadas en las
propiedades más
adelante.
80
82. metaconta@gmail.com 18/03/2009
PROPIEDADES
Haz introducido el botón Propiedad Cambie a
llamado “button1” en el Text t
formulario. (Name) button_t
Location 109; 38
Ahora toca cambiar las
propiedades que se
describe en el cuadro a
continuación para el
“button1”.
OBJETIVO DE LA INTERFAZ
82
83. metaconta@gmail.com 18/03/2009
PROPIEDADES
Arrastra un “button” desde Propiedad Cambie a
el “Cuadro de Text b
herramientas” hacia el (Name) button_b
formulario en el cual se Location 109; 67
llama “button2” y cambie
las propiedades como
hiciste en el apartado
anterior.
OBJETIVO DE LA INTERFAZ
83
84. metaconta@gmail.com 18/03/2009
PROPIEDADES
Ahora con button3. Propiedad Cambie a
Text a
(Name) button_a
Location 28; 67
OBJETIVO DE LA INTERFAZ
84
85. metaconta@gmail.com 18/03/2009
PROPIEDADES
Ahora con button4 pero Propiedad Cambie a
cuidado una cosa, la letra Text l
que estamos usando es la (Name) button_l
letra “L” minúscula que Location 190; 67
podemos confundirnos con
la “I” latina mayúscula.
OBJETIVO DE LA INTERFAZ
85
86. metaconta@gmail.com 18/03/2009
PROPIEDADES
Ahora con Button5 de la Propiedad Cambie a
tecla “Espacio” BackColor 255; 128; 0
cambiaremos el color del Font.Bolt True
botón y la fuente de letras Text Espacio
en negrita como indica en (Name) button_Espacio
el cuadro. Location 190; 96
Te lo dice directamente
pero hay otra forma de
hacerlo más cómodo.
OBJETIVO DE LA INTERFAZ
86
87. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
En el “button5 o
ahora“button_Espacio”
, haz clic sobre él para
ver sus propiedades.
En ella, BackColor he
seleccionado el color
naranja que muestra
en la imagen.
87
88. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Cambiamos a
“Negrita” en
“Font.Bold” a modo
“True”. Para acceder a
Bold que significa
“Negrita” pulsamos el
símbolo + a – para
acceder seguido de
activarlo a True.
88
89. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Hay una manera más
cómoda y rápida de
ponerlo en “Negrita”
que es pulsando
directamente en “Font”
sin abrirlo como
muestra en la imagen.
89
90. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Tras a verlo pulsado,
se abre una ventana
muy cómoda y fácil de
entender.
En “Estilo de fuente:”
señala “Negrita” y
luego pulsa “Aceptar”.
Así conseguimos el
resultado que
queremos.
90
92. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Vamos a ver algunas
formas sobre orden de
tabulación de los
botones.
El “Nombre de la
propiedad” “TabIndex”
con valor “0”, significa
que es el primero en
orden de tabulación, el 1
el segundo, el 2 el
tercero así
sucesivamente.
92
93. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
También hay otro
método más cómodo
en seleccionar el
orden de tabulación.
Accede al “VerOrden
de tabulación”.
93
95. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Directamente en el
formulario puedes ver
el orden que tiene la
tabulación.
Puedes cambiarla
pulsando con el ratón
el cuadrado azul con
su número
correspondiente.
95
97. metaconta@gmail.com 18/03/2009
Guarde el proyecto completo y
luego pulse “F5” o la flecha verde
para iniciar la depuración.
Debemos tener algo similar como
muestra en la imagen de la
derecha.
Puedes pulsar los botones que
notarás que no hace nada ya que
no hemos programado ninguna
acción sobre ellas.
Ahora cierra el programa con la X
como cualquier otro programa.
Ya hemos cumplido el objetivo de
esta parte.
Ahora nos centramos a explicar un
poco el código del PIC16F84A y así
entender cómo recibe los datos que
Visual C# envía por el puerto serie.
OBJETIVO DE LA INTERFAZ
97
98. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Si quieres ver,
seleccionar o modificar
los nombres internos
(Name) de los objetos
más facilmente, pulsa
arriba “VerOtras
ventanasEsquema
del documento”.
98
100. metaconta@gmail.com 18/03/2009
OBJETIVO DE LA INTERFAZ
Esta ventana se llama
“Esquema de
documento”, como dije
antes, puedes
seleccionar los objetos
aquí y cambiar su
nombre interno
(Name).
100
102. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
Para entender los datos que enviamos
desde el Visual C#, debemos entender el
código fuente del PIC 16F84A, en este caso
en ensamblador.
Los datos que enviamos desde el Visual C#
es en hexadecimal en lo cual conviene ver la
tabla ASCII que puedes ver en el APÉNDICE
G del libro www.pic16f84a.org.
102
103. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
Si no tienes el libro puedes ver el código ASCII
en las páginas siguientes y el que vamos utilizar
es la tabla ASCII 1.
La tabla ASCII 2 es más extendida, aunque en
este manual no lo vamos a utilizar, es bueno
tenerlo como referencia.
ASCII, pronunciado “áski” significa del Inglés
“American Standard Code for Information
Interchange” o lo que es lo mismo “Código
Estadounidense Estándar para el Intercambio
de Información”.
103
106. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
El ejemplo a utilizar es el archivo RS232_11.asm
(también vale el RS232_11b.asm).
Puedes obtenerlo desde el CD-ROM que acompaña el
libro como también puedes descargarlo en su Web
pinchando con el ratón aquí.
La clave para abrir todos los archivos de esta Web
corresponden con las iniciales del Ciclo Formativo de
Grado Superior Desarrollo de Productos Electrónicos,
uno de los estudios oficiales donde en España se pueden
estudiar los temas tratados en esta Web:
D.P.E.
106
107. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
El esquema eléctrico que vamos a usar es
del capítulo 20-15 del libro
www.pic16f84a.org que se muestra en la
página siguiente.
107
109. metaconta@gmail.com 18/03/2009
LISTA DE COMPONENTES
Componentes Valor C8 22pF
IC1 LCD LM016L Y1 4 MHz
IC2 MAX232 R1 ajustable 10 kΩ
IC3 PIC16F84A-04 R2 330 KΩ
C1 1µF R3 330 KΩ
C2 100nF R4 330 KΩ
C3 1µF R5 330 KΩ
C4 100nF D1 Led Rojo
C5 1µF D2 Led Rojo
C6 1µF D3 Led Rojo
C7 22pF D4 Led Rojo
CÓDIGO ENSAMBLADOR DEL PIC16F84A
109
110. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
Vamos a usar el código del
libro del archivo
RS232_11.asm para poder
entender lo que estamos
haciendo.
Sólo explicaré la parte
fundamental para entender
la parte de Visual C# al
enviar los datos.
Si quieres saber la
explicación completa de
estos temas del código
ASM, está bien detallada
en el libro
www.pic16f84a.org
110
111. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
;************************************ RS232_11.asm **************************************
;
; ===================================================================
; Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot;
; E. Palacios, F. Remiro y L. López. www.pic16f84a.org
; Editorial Ra-Ma. www.ra-ma.es
; ===================================================================
;
; SISTEMA DE GOBIERNO DESDE ORDENADOR: Desde el teclado de un ordenador se desea comandar
; el movimiento de una estructura móvil, según la siguiente tabla:
;
; TECLA (Por ejemplo) MOVIMIENTO
; ------------------- ----------
; t Adelante
; b Atrás
; a Izquierda
; l Derecha
; Espacio Parada
;
; La pulsación de cualquiera de estas teclas activa el estado de las salidas correspondiente
; RB3 (Adelante), RB2 (Atrás), RB1 (Izquierda), RB0 (Derecha) y apaga el resto.
;
; El movimiento que se está realizando aparece reflejado en un mensaje en el visualizador LCD
; del sistema y también en la pantalla del ordenador.
;
; El programa debe permitir modificar facilmente en posteriores revisiones en el hardware de
; la salida. Es decir, para activar las salidas conviene utilizar el direccionamiento por bit
; en lugar de por byte (utilizar instrucciones quot;bsfquot; y quot;bcfquot;, en lugar de quot;mov..quot;).
;
; ZONA DE DATOS **********************************************************************
LIST P=16F84A
INCLUDE <P16F84A.INC>
111
112. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
#DEFINE SalidaAdelante PORTB,3 ; Define dónde se sitúan las salidas.
#DEFINE SalidaAtras PORTB,2
#DEFINE SalidaIzquierda PORTB,1
#DEFINE SalidaDerecha PORTB,0
TECLA_ADELANTE EQU 't' ; Código de las teclas utilizadas.
TECLA_ATRAS EQU 'b'
TECLA_IZQ EQU 'a'
TECLA_DER EQU 'l'
TECLA_PARADA EQU '' ; Código de la tecla espaciadora, (hay un espacio,
; tened cuidado al teclear el programa).
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
Inicio
call LCD_Inicializa
call RS232_Inicializa
bsf STATUS,RP0 ; Configura como salidas las 4 líneas del
bcf SalidaAdelante ; del Puerto B respetando la configuración del
bcf SalidaAtras ; resto de las líneas.
bcf SalidaIzquierda
bcf SalidaDerecha
bcf STATUS,RP0
call Parado ; En principio todas las salidas deben estar
Principal ; apagadas.
call RS232_LeeDato ; Espera a recibir un carácter.
112
113. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
call TesteaTeclado
goto Principal
; quot;Mensajesquot; ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
MensajeParado
DT quot;Sistema PARADOquot;, 0x00
MensajeAdelante
DT quot;Marcha ADELANTEquot;, 0x00
MensajeAtras
DT quot;Marcha ATRASquot;, 0x00
MensajeIzquierda
DT quot;Hacia IZQUIERDAquot;, 0x00
MensajeDerecha
DT quot;Hacia DERECHAquot;, 0x00
; Subrutina quot;TesteaTecladoquot; -------------------------------------------------------------
;
; Testea el teclado y actúa en consecuencia.
TesteaTeclado
movwf TeclaPulsada ; Guarda el contenido de la tecla pulsada.
xorlw TECLA_ADELANTE ; ¿Es la tecla del movimiento hacia adelante?
btfsc STATUS,Z
goto Adelante ; Sí, se desea movimiento hacia adelante.
;
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_ATRAS ; ¿Es la tecla del movimiento hacia atrás?
btfsc STATUS,Z
goto Atras ; Sí, se desea movimiento hacia atrás.
;
113
114. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_IZQ ; ¿Es la tecla del movimiento hacia la izquierda?
btfsc STATUS,Z
goto Izquierda ; Sí, se desea movimiento hacia la izquierda.
;
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_DER ; ¿Es tecla del movimiento hacia la derecha?
btfsc STATUS,Z
goto Derecha ; Sí, se desea movimiento hacia la derecha.
;
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TECLA_PARADA ; ¿Es la tecla de parada?.
btfss STATUS,Z
goto Fin ; No es ninguna tecla de movimiento. Sale.
Parado
bcf SalidaAdelante ; Como se ha pulsado la tecla de parada se
bcf SalidaAtras ; desactivan todas las salidas.
bcf SalidaIzquierda
bcf SalidaDerecha
movlw MensajeParado
goto Visualiza
Adelante
bcf SalidaAtras
bsf SalidaAdelante
bcf SalidaIzquierda
bcf SalidaDerecha
movlw MensajeAdelante
goto Visualiza
Atras
bcf SalidaAdelante
bsf SalidaAtras
bcf SalidaIzquierda
bcf SalidaDerecha
114
115. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
movlw MensajeAtras
goto Visualiza
Izquierda
bcf SalidaAdelante
bcf SalidaAtras
bsf SalidaIzquierda
bcf SalidaDerecha
movlw MensajeIzquierda
goto Visualiza
Derecha
bcf SalidaAdelante
bcf SalidaAtras
bcf SalidaIzquierda
bsf SalidaDerecha
movlw MensajeDerecha
; Según el estado de las salidas visualiza el estado del sistema en el visualizador LCD y en
; el monitor del ordenador.
Visualiza
movwf MensajeApuntado ; Guarda la posición del mensaje.
call LCD_Borra ; Borra la pantalla del modulo LCD.
movf MensajeApuntado,W ; Visualiza el mensaje en la pantalla
call LCD_Mensaje ; del visualizador LCD.
call RS232_LineasBlanco ; Borra la pantalla del ordenador.
movf MensajeApuntado,W
call RS232_Mensaje ; Lo visualiza en el HyperTerminal.
call RS232_LineasBlanco
Fin return
INCLUDE <RS232.INC>
INCLUDE <RS232MEN.INC>
INCLUDE <LCD_4BIT.INC>
115
116. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END
; ===================================================================
; Del libro quot;MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOSquot;
; E. Palacios, F. Remiro y L. López. www.pic16f84a.org
; Editorial Ra-Ma. www.ra-ma.es
; ===================================================================
116
117. metaconta@gmail.com 18/03/2009
RS232_11.HEX
:10012000080085158316051685118312080008300E
:100130008E00051A99288F2191210310051A0314A6
:100140008F0C8F218E0B9D288C210F080800303ECC
Abre un archivo de texto y pega el
:100150008F0008308E0085118F218F0C031CB22870
:100160008515B32885118F218E0BAD2885158C211F
:10017000080090000C309002900310080C209100B1
código que ves a la izquierda.
:1001800091080319C628A820900ABD2808000A3043
:1001900092000A30A820920BC9280D30A820080030
Fíjate que al final del código del
:1001A00083160510051185108312851005110510A1
:1001B0009F213030EA20A3213030EA208C213030DA todo, debes dejar justo abajo un
espacio pulsando la tecla “Enter”.
:1001C000EA2094212030EA209421142112211021C8
:1001D000FE200800F039930006080F3993048316B7
:1001E000060895000F308605831213088600051552
:1001F000051183161508860083120800063015299C
:1002000080301529C030152994301529D43015298E
:1002100080381529C0381529083015290E301529C0 Precisamente aquí :00000001FF
:100220000C3015290130152928300510192905141D
:1002300021219400EA20140EEA20051CA521912119
:1002400008009300F13C031D2829EE309300352966
al final donde hay dos F pulsa
:100250001308D13C031D2F29EE30930035291308D4
:10026000BA3C031D3529DF30930013080800103015 Enter una vez.
:100270003E2901303E2902303E29033096002030CD
:100280001721960B3F2908009700F039031D4C29D0
:10029000203017214E299700170E4F2117080F39CC
:1002A0009600093C031C57291608303E59291608A8
Guarda el archivo de texto con la
:1002B000373E172998000C309802980318080C2034
:1002C00099009908031967291721980A5E290800DF
extensión .hex o llámalo así
:1002D00098000C30980298039A01122110301A02EB
:1002E000031D7729992199210F3098026C2918084C
:1002F0000C20990099080319812917219A0A980A54
RS232_11.hex.
:100300006E2908000000000000000000000000004E
:1003100008000000A43095290000403095291F30C6
:10032000952900000E30952905309B009B0B9629DE
Si deseas guardar los datos al
:100330000800C830A8296430A8293230A829143010
:10034000A8290A30A8290530A8290230A829013097 PIC, hay un manual de cómo
:100350009C00F9309B0000009B0BAB299C0BA9294A
:100360000800C830BC296430BC293230BC291430A4
:10037000BC290A30BC2905309D0064309C00F9304E
hacerlo explicado haciendo clic
:100380009B0000009B0BC1299C0BBF299D0BBD2925
:02039000080063 con el ratón aquí.
:02400E00F13F80
:00000001FF
CÓDIGO ENSAMBLADOR DEL PIC16F84A
117
118. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
Se preguntará el motivo de TECLA MOVIMIENTO
poner esas letras en los t Adelante
botones. ¿Por qué esas
b Atrás
letras?
a Izquierda
El programa del
microcontrolador l Derecha
PIC16F84A tiene (Espacio) Parada
configuradas esas cuatro
letras que significan lo que
muestra en el cuadro de la
derecha.
Desde el código fuente se
puede modificar las letras
o números que quieras.
118
119. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
Mirando la tabla ASCII
1 de este manual o el
APÉNDICE G del libro,
debemos tener
presente cual es cual
expresado en
hexadecimal.
Por ejemplo, la letra “t”
minúscula en
hexadecimal es el
“74”.
119
120. metaconta@gmail.com 18/03/2009
CÓDIGO ENSAMBLADOR DEL PIC16F84A
En el Visual C# vamos a Hex Carácter
usar los caracteres 74 t
hexadecimales que 62 b
muestra en el cuadro de 61 a
la derecha para enviar 6C l
datos al PIC16F84A. 20 (Espacio)
No hace falta que mires
la tabla ascii ya que
precisamente vamos a
usar la indicada aquí,
excepto, que desees
usar otros carácteres.
120
121. metaconta@gmail.com 18/03/2009
Códigos de envío de datos al PIC16F84A.
PRIMER CÓDIGO C#
121
122. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Vamos a introducir los
primeros códigos C# en
los botones y hacer
funcionar a la primera
apagar y encender los
Led al mismo tiempo el
mensaje que muestra en
el LCD.
Los mensajes del LCD
más adelante lo
haremos también por la
interfaz del Visual C#.
122
123. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Se recomienda probar el montaje del circuito
si funciona bien con el HyperTerminal de
Windows bien explicado en el libro
www.pi16f84a.org.
Cuando compruebes que toda va bien el
circuito, empezamos a programar en C#.
123
124. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Puesta en marcha de la comunicación entre ordenador y PIC16F84A, circuito 20-13.
Tengo dificultades para conseguir poner en marcha la comunicación entre un ordenador y el PIC16F84A del circuito de la figura 20-13,
¿qué puedo hacer?
Le aconsejamos que siga el siguiente procedimiento:
Compruebe con detenimiento el correcto montaje del esquema de la figura 20-13, en especial la conexión del MAX232, cableado del conector y
polaridad de los condensadores.
Con un polímetro compruebe el cable de conexión, para ello mida la continuidad entre los pines 2 de los conectores macho y hembra, y repita la
operación para los pines 3 y pines 5. Algunos lectores que se construyen ellos mismo el cable RS232 con conectores DB9, conectan uno al
revés. Esta es la avería más frecuente.
Para un MAX232 los condensadores C1, C3, C5 y C6 deben ser de 1 microfaradios. Se ha detectado que hay lectores que tienen dificultades en
la lectura del código en los condensadores y utilizan otros valores muy diferentes.
Compruebe que el puerto seleccionado en el Hyperterminal corresponde con el realmente utilizado en el ordenador, COM 1 ó COM2.
Compruebe que la configuración del puerto corresponde fielmente a la figura 20-10 del libro.
Compruebe el correcto funcionamiento del MAX232 para ello, en reposo (y con el Hyperterminal conectado), debe tener las siguientes tensiones
respecto de masa:
- En el pin 16 tiene que haber + 5 V.
- En los pines 11 y 12 tiene que haber entre + 3 y + 5 V.
- En los pines 6, 13 y 14 tiene que haber entre -7 V y -12 V.
Si todos los puntos anteriores son correctos pruebe de nuevo su circuito con el fichero actualizado Libreria RS232.INC (5.51 kB) que se ha
incluido en el capítulo 20 de la sección Proyectos y el programa ejemplo RS232_02.asm del CDROM que acompaña al libro.
Ver aquí.
124
125. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Hay varias formas de
seleccionar un objeto.
Como indica la imagen
de la derecha, en
“Esquema de
documento” ya
explicado
anteriormente o
simplemente
pinchando una vez
encima del botón t.
125
126. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Pulsamos el botón
“Eventos” y hacemos
doble clic con el ratón
donde indica la flecha
roja.
126
127. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Saltamos a la pestaña
“Form1.cs” y se nos ha
creado el código del
evento:
private void
button_t_Click(object
sender, EventArgs e)
{
}
127
128. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Volvamos a la pestaña
“Form1.cs[Diseño]” y
nos fijamos que se ha
creado el evento
“button_t_Click”.
128
129. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Pulsa el botón de
“propiedades”.
129
130. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
La manera más cómoda
es pinchando dos veces
clic en el botón en este
caso el de la letra “t”
para ir al código del
evento generado, es
decir, que al pulsar el
botón una vez, se
ejecuta una acción.
A partir de ahora
utilizamos este método
por ser más rápido, el
pinchar dos veces un
botón.
130
131. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Aquí por primera vez vamos a usar el código
en C# creado por nosotros mismos.
En cada botón enviamos los datos para
activar los led.
Nos aseguramos que el circuito funciona
muy bien como había dicho.
131
132. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C# (OBJETIVO)
1) Introducir códigos en los botones para su
funcionamiento.
2) Depurar nuestra aplicación.
132
133. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Al hacer clic o pinchar dos veces el botón “t”,
se genera el código del evento de un clic
para nosotros poder poner el código
necesario en su interior, y poder enviar datos
al puerto serie RS232 al PIC16F84A.
El código generado del “button_t” es el que
se muestra en la página siguiente.
133
135. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
El código que vamos a introducir para que el
PIC16F84A lea la letra “t” es este:
byte[] mBuffer = new byte[1];
mBuffer[0] = 0x74; //ASCII letra quot;tquot;.
serialPort1.Write(mBuffer, 0,
mBuffer.Length);
135
137. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Fíjate bien en el dibujo de la página anterior
que un texto con un cuadro amarillo dice:
“El nombre „serialPort1‟ no existe en el
contexto actual”
Nos faltan dos cosas para tener un buen
funcionamiento del programa.
137
138. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Justo debajo donde
pone:
using
System.Windows.Form
s;
138
139. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Ahora introduces el
siguiente comando:
using System.IO.Ports;
139
140. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
En el “Cuadro de
herramientas”,
“Componentes”, pincha o
haces dos veces click en el
objeto SerialPort. (También
puedes arrastrarlo al
formulario).
Como verás, abajo se ha
introducido un nuevo objeto
llamado “serialPort1” y no
está dentro del formulario
porque no es un objeto
visible, sólo tiene funciones
internas.
Con él podemos configurar el
puerto serie “COM 1”.
140
142. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Aunque mediante
programación se puede
hacer lo mismo, más
cómodo, fácil y rápido es
utilizar este componente
serialPort1, al lado
cambiamos sus
propiedades.
Además, está bien salvo
en “StopBits” lo
ponemos a Two como
indica la imagen.
142
143. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Propiedad Cambiar a
El programa
BaudRate 9600
RS232_11.asm que
DataBits 8
acompaña el libro, Handshake None
utiliza los datos de Parity None
comunicación es el PortName COM1
que muestra en la StopBits Two
imagen de la derecha.
143
144. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Una vez todo hecho como indica las páginas
anteriores, el código fuente sería tan simple
como indica en la página siguiente.
Hay una parte del código que he agregado
texto:
mBuffer[0] = 0x74; //ASCII letra quot;tquot;.
Poner las dos barras // expresan textos para
poder explicar algún comentario en el
compilador al igual que lo hacemos con ; en el
MPLAB al escribir en ensamblador.
144
146. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Aún no hemos acabado. Introduces este código debajo del
InitializeComponent();.
// Abrir puerto mientra se ejecute la aplicación
if (!serialPort1.IsOpen)
{
try
{
serialPort1.Open();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
146
147. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Para saber el números
de líneas en el editor
de Visual C#, pulsa:
Herramientasopcion
es…
147
148. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Se abre la ventana
opciones.
Abajo, pincha “Mostrar
todas las
configuraciones”.
148
150. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Fíjate en las flechas
rojas. Señala General,
y después marca la
casilla “Números de
línea”.
Al finalizar pulsa
“Aceptar”.
150
152. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Ya podemos guiarnos
mejor con los números
de línea que muestra
en el compilador.
Ahora continuamos
con el código fuente
que debería ser igual
que has hecho hasta
ahora como muestra
en las siguientes
páginas.
152
155. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Guarda todo el proyecto y compila pulsando
“F5”.
El único botón funcional es el “button_t”, que
al pulsarlo se enciende un Led y en el LCD
visualiza: Marcha ADELANTE.
Sigamos introduciendo líneas de código para
los otros botones con su letra o carácter
correspondiente.
155
156. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
En el formulario, pincha dos veces click en el
botón b e introduce los códigos necesarios.
byte[] miBuffer = new byte[1];
miBuffer[0] = 0x62; //ASCII letra quot;bquot;.
serialPort1.Write(miBuffer, 0,
miBuffer.Length);
156
157. metaconta@gmail.com 18/03/2009
PRIMER CÓDIGO C#
Sigue así con los demás botones. El procedimiento es el mismo que el primer
botón.
A continuación mostramos el código fuente completo.
NOTA:
Si deseas enviar varias tramas en un mismo click del botón, lo hacemos de la
siguiente manera. En este manual no lo vamos a usar, es para que lo tengas en
cuenta.
// Enviar trama
byte[] miBuffer = new byte[3]; // Tres máximo.
miBuffer[0] = 0x74;
miBuffer[1] = 0x54;
miBuffer[2] = 0x13;
this.serialPort1.Write(miBuffer, 0, miBuffer.Length);
157
162. metaconta@gmail.com 18/03/2009
PICRS232.SLN DESCARGA CÓDIGO FUENTE 1
Guarda todo el proyecto, y pulsa
“F5” para compilar el programa.
Si has seguido paso a paso esta
aplicación, debería funcionar a la
primera.
En caso contrario vuelva a Fuente 1
repetir los pasos.
Descargue el ejemplo “Fuente 1” Fuente 1
para ver el resultado o mire las
páginas anteriores. Ejecuta el
archivo “PicRS232.sln” para
abrirlo junto con el Visual C#.
PRIMER CÓDIGO C#
162
163. metaconta@gmail.com 18/03/2009
Recibir mensajes desde el microcontrolador PIC16F84A.
RECIBIR MENSAJES
163
164. metaconta@gmail.com 18/03/2009
Objetivos:
Leer los datos del PIC16F84A
1) Arrastrar StatusStrip o barra
desde la interfaz del PC. de estado al formulario.
2) Un TextBox para leer los
mensajes del PIC.
3) Un Label o etiqueta.
4) Poner el TextBox en modo
lectura.
5) Código para el TextBox.
6) Escribir código en el
StatusStrip para mostrar la
hora.
7) Depurar nuestra aplicación.
RECIBIR MENSAJES
164
165. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
En el “Cuadro de
herramientas”, “Menús
y barra de
herramientas”, clickea
dos veces al control
StatusStrip.
Comprobarás en la
página siguiente que
se introduce a la base
del formulario.
165
167. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Arrastra un TextBox al Propiedad Cambiar a
formulario. ScrollsBar Vertical
Esté donde esté Multilinea True
colocado el TextBox (Name) textBox_visualizar_
dentro del formulario, mensaje
verás que se irá Anchor Top, Bottom, Left,
colocando Right
correctamente según Location 0; 132
cambies las propiedades Size 287; 82
del recuadro.
Fíjate en la página
siguiente que vamos a
cambiar otra propiedad
llamada “Dock”.
167
168. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Puedes cambiar la propiedad Propiedad Cambiar a
“Dock” a “Bottom” para pegarlo
hacia abajo y las paredes. Dock Bottom
También puedes hacerlo más
cómodo como se muestra en la
imagen de la página siguiente.
Si cambias “Dock” a “Bottom”,
automaticamente, “Anchor” se
vuelve a cambiar sólo a “Top, Left”.
Vuelva a cambiar “Anchor” a “Top,
Bottom, Left, Right”.
Al final “Dock” se cambia a “None”.
Si logramos esto, a la hora de
Maximizar la ventana, el
“textBox_visualizar_mensaje” se
redimensiona bien.
168
169. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Propiedad Cambiar a
Todo debería quedar
ScrollsBar Vertical
así siguiendo el pie de
Multilinea True
la letra para que al (Name) textBox_visualizar_
Maximizar el mensaje
formulario, el Anchor Top, Bottom, Left,
Right
“textBox_visualizar_m Location 0; 132
ensaje” lo haga Size 287; 82
correctamente. Dock None
169
170. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Esta es una de las
maneras de cambiar a
“Bottom”.
170
171. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Debe por ahora quedar
como muestra en la
imagen de la derecha.
Si toda va bien, sigue
adelante.
Si no te ha ido bien,
pulsa “Control+Z” para
retroceder hasta llegar el
punto donde cometiste
algún error y poder
corregir.
171
172. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Propiedad Cambiar a
Arrastra un Label en el
Text Mensaje desde el
formulario y cambia PIC
sus propiedades como (Name) label_mensaje_pic
indica el recuadro. Autosize True
Location 25; 146
Size 110; 13
172
173. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Pulsa en la barra de
herramientas.
“VerOrden de
tabulación” y muestra
algo similar en l
aimagen.
173
174. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Deja como muestra en
la imagen el orden de
tabulación.
Puedes si lo deseas
poner el orden que
prefieras.
Para quitar los
números que se ve de
la tabulación,
“VerOrden de
tabulación”.
174
175. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Si lo deseas, en el Propiedad Cambiar a
ReadOnly True
control ahora llamado
“textBox_visualizar_men
saje”, puedes dejarlo en
modo lectura para que
no pueda modificar su
contenido al recibir
mensajes desde el pic.
En mi caso, no activo el
modo lectura y lo dejo
en “False”.
175
176. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Nos toca introducir los códigos necesarios para que
el “textBox_visualizar_mensaje” pueda recibir los
mensajes de avisos desde el PIC.
Introduce este código de abajo,
// Utilizaremos un string como buffer de recepcion
string Recibidos;
justo debajo del
public partial class Form1 : Form
{
176
178. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Ahora toca a por el siguiente código.
Fíjate dónde está colocado en la líneas de
números del compilador.
Seguiremos así sucesivamente.
178
182. metaconta@gmail.com 18/03/2009
hh:mm:ss
Representa hh a horas, mm a Vamos a poner la hora
minutos y ss a segundos.
local de nuestro Sistema
Operativo en el
“StatusStrip1”.
Arrastra el “Timer” al
formulario con lo cual, se
llama “timer1” que lo
queremos para actualizar
lo valores de la hora.
RECIBIR MENSAJES
182
184. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Vamos a añadir la hora
local de nuestro
Sistema Operativo en
el “StatusStrip1”.
Señala con el ratón el
StatusStrip1.
184
185. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Eliges “StatusLabel”
como indica la flecha
roja de más bajo.
185
186. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Se ha creado un
“toolStripStatusLabel1”
.
En la propiedad “Text”,
sustituye el valor
“toolStripStatusLabel1”
por el valor
“hh:mm:ss”.
Como dije antes,
significa, horas,
minutos y segundos.
186
187. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Ahora puedes ver que
es hh:mm:ss.
187
188. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Selecciona el componente Propiedad Cambiar a
“timer1” y cambie de Enabled True
propiedades como indica
Interval 1000
en cuadro.
“Enabled” en “True” activa
el “timer1”.
“Interval” a “1000”, 1000
significa 1 segundo como
15000, 15 segundos.
Se expresa en
milisegundos, así, 1000
milisengundos que en
realidad es 1 segundo.
1000 miliseg. = 1 seg.
188
189. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Pincha dos veces al
componente “timer1”
para que puedas
introducir el código
necesario de la hora
local de Windows.
189
190. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Se crea unos códigos
pero no tiene función.
190
192. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
En su interior del código del “timer1”,
introduce:
statusStrip1.Items[0].Text =
DateTime.Now.ToLongTimeString();
192
194. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Comprueba a partir de la página siguiente el
código fuente completo.
Hemos llegado a 90 líneas de código muy
rápido.
194
200. metaconta@gmail.com 18/03/2009
RECIBIR MENSAJES
Ya, en el último paso de este objetivo, guarde
todo el proyecto y pulsa “F5” para compilar o
depurar tu programa.
Recuerda que en el
“textBox_visualizar_mensaje” si has dejado el
valor True o False en “ReadOnly” (Solamente
lectura), no solo le afecta el comportamiento si
no el color, es decir, su apariencia.
En la siguiente página sabrás la diferencia y si
has activado “ReadOnly” o no a “True”.
200
202. metaconta@gmail.com 18/03/2009
DESCARGA CÓDIGO FUENTE 2
Perfectamente ya puedes
probar el programa con el
circuito.
Si algo falla, vuelve a
empezar desde el principio o
simplemente te descargas el Fuente 2
archivo “Fuente 2”.
Fuente 2
Este es el final de la
aplicación de la interfaz
aunque puedes ampliar
algunos extras en páginas
siguientes.
CÓDIGO C#
202
203. metaconta@gmail.com 18/03/2009
Puedes ampliar algunas funciones básicas para la interfaz
EXTRAS
203
204. metaconta@gmail.com 18/03/2009
EXTRAS
A partir de aquí, ciertas funciones del programa
no hace falta aunque otras son recomendables
como hacer un cuadro de información de la
aplicación normalmente llamado “Acerca de…”.
Podrás introducir información como la página
Web oficial, correo electrónico para contactar,
versión, logotipo, etc.
Con el tiempo, según voy actualizando este
manual y sin previo aviso, quizás encuentren en
esta parte del tema “Extras” algunos tutoriales
nuevos.
204
205. metaconta@gmail.com 18/03/2009
ACERCA DE…
En cualquier programa tienen un cuadro de
información “Acerca de…”, me gustaría
hacer algo similar. ¿Cómo puedo hacerlo?
Hay varias formas de mostrar información del
programa y vamos a aprender hacer varios y
entre ellas elegirás la que más interese. Por
ejemplo, un cuadro de información básica
donde solo se mostrará texto y un icono de
información, otro más complejo, detallado y con
logotipo.
205
206. metaconta@gmail.com 18/03/2009
Objetivos:
Vamos a insertar varios tipos de
1) Insertar un control
cuadros de información “Acerca
de…”.
“MenuStrip” al formulario.
En tu aplicación final, sólo elegirás
uno, en este ejemplo hacemos 2) Salir.
unos cuantos para que veas cual
se te adapta mejor. 3) Llamar manual.pdf en
ayuda.
4) Crear una ventana
“Acerca de …” básico.
5) Crear otra ventana
“Acerca de…” con un Form.
6) Agregar enlaces a Web.
ACERCA DE…
206
207. metaconta@gmail.com 18/03/2009
ACERCA DE…
Antes que nada, haga una copia de
seguridad de su proyecto completo a una
carpeta o directorio.
Siempre es bueno hacer una copia de
seguridad antes de realizar alguna
modificación.
207
208. metaconta@gmail.com 18/03/2009
ACERCA DE…
Como en cualquier
programa, muchos
tienen menú de
opciones arriba.
Podemos introducir
cualquier opción que
veremos poco a poco a
lo largo del curso.
Pincha o clickea dos
veces el control
“MenuStrip” con lo cual
se agrega en la parte
inferior “menuStrip1”.
208
210. metaconta@gmail.com 18/03/2009
ACERCA DE…
Selecciona el objeto
“menuStrip1”, en el
cuadro de propiedades.
Pulsa el valor de la
propiedad “(Colección)”
del “Items”.
Podrás configurar las
opciones que muestra la
ventana en la página
siguiente pero, no
vamos a usar este
método sino uno más
directo y sencillo.
210
212. metaconta@gmail.com 18/03/2009
ACERCA DE…
Pulsa “Cancelar” de la
ventana “Editor de la
colección de elementos”
para cerrarla.
Nos centraremos
directamente en la barra
de menú.
Pincha una vez donde
indica la imagen de la
derecha, escribe
“Opciones” y pulsa
“Enter”.
212
213. metaconta@gmail.com 18/03/2009
ACERCA DE…
Se ha creado
“Opciones” y ahora
abajo donde indica la
flecha roja introduce
“Salir”.
213
214. metaconta@gmail.com 18/03/2009
ACERCA DE…
Al lado introduces
“Ayuda” y abajo
“Acerca de…”.
Bien, justo abajo
introduces el guión –
normal (No el guión
bajo) y pulsa “Enter”.
Verás una raya de
separación.
214
215. metaconta@gmail.com 18/03/2009
ACERCA DE…
Justo de bajo de la
raya pon “Acerca de
2…” que es para
introducir el segundo
ejemplo de ventanas
de información.
Como muestra la
imagen, falta una
opción que
introduciremos abajo y
se llama “Contenido”.
215
216. metaconta@gmail.com 18/03/2009
ACERCA DE…
“Contenido” es la
ayuda del programa
que puede ser desde
un formulario o archivo
externos que pueden
ser PDF, XPS, DOC,
DOCX, HTML, etc.
216
217. metaconta@gmail.com 18/03/2009
ACERCA DE…
“Contenido” lo
queremos arriba, así
que, pincha sin soltar
con el ratón y
arrástralo encima de
“Acerca de…”.
Si no lo has
introducido bien, sólo
tienes que corregirlo
con deshacer
pulsando “Control + Z”.
217
218. metaconta@gmail.com 18/03/2009
ACERCA DE…
Muchas personas en
cualquier programa,
accedemos a los menús
directamente con el teclado.
Así que, vamos a colocar
este símbolo “&” que está
encima de la tecla “6”.
En “Ayuda” ponemos la “&”
delante de la “y” para que
queda señalada en una raya
debajo indicando la tecla de
acceso. Por ejemplo,
“A&yuda” y se muestra así:
Ayuda.
218
219. metaconta@gmail.com 18/03/2009
ACERCA DE…
& Resultado
En este caso
&Opciones Opciones
“&Opciones”, debajo
&Salir Salir
“&Salir” así A&yuda Ayuda
sucesivamente. Ac&erca de… Acerca de…
No se debe repetir la Ace&rca de 2… Acerca de 2…
misma letra en el
mismo formulario.
También puedes
introducir la “&” en
botones.
219
220. metaconta@gmail.com 18/03/2009
ACERCA DE…
Vamos a introducir el
código Close();
pinchando dos veces
en “Salir”.
220
221. metaconta@gmail.com 18/03/2009
ACERCA DE…
Al introducir Close(); una
cosa muy importante.
Guarda todo el proyecto
que hemos hecho hasta
ahora.
Ejecuta, compila o
depura con “F5” o la
flecha verde el
programa o aplicación y
comprueba que se
cierra.
221
223. metaconta@gmail.com 18/03/2009
ACERCA DE…
Ahora nos toca abrir un archivo de ayuda en
pdf dentro de “AyudaContenido”.
De momento introducimos estos códigos
necesarios para abrir el “manua.pdf” que por
ahora no está. Como no lo encuentra, nos
avisa con un mensaje.
223
224. metaconta@gmail.com 18/03/2009
ACERCA DE…
Has doble click en
“Contenido” e
introduce el código
que muestra en la
página siguiente.
224
228. metaconta@gmail.com 18/03/2009
ACERCA DE…
No olvides poner el
“using” que indica en
la imagen si no lo
habías puesto ya.
228
229. metaconta@gmail.com 18/03/2009
ACERCA DE…
Guarda todo el
proyecto y pulsa “F5”
para depurar.
Ejecuta
“AyudaContenido”.
Verás una ventana
que se llama “Aviso:”
porque no encuentra
el archivo
“manual.pdf”.
229
231. metaconta@gmail.com 18/03/2009
ACERCA DE…
Busca cualquier archivo que tengas de pdf y
llámalo “manual.pdf”.
En realidad has una copia y renómbralo.
Debes tener el Adobe Reader Instalado, si
no lo tienes lo descarga gratuitamente aquí
www.adobe.es .
231
232. metaconta@gmail.com 18/03/2009
ACERCA DE…
En cualquiera de las
pestañas, fijándote
bien en la imagen y el
de la página siguiente,
clickea con el botón
derecho y pinchas en
“Abrir carpeta
Contenido”.
232