Sei sulla pagina 1di 181

M i c r o c h i p

INCLUYE CD - ROM
ELECTRNICA PRCTICA
CON MICROCONTROLADORES PIC
Sant i ago Corral es V.
Di rect or de Invest i gaci n de la Empresa BC Technol ogy Apl i cat i on S.A.
Gerent e de la Empresa S.C.' PIC ELECTRNICA & COMPUTACIN
Pr of esor de Mi crocontrol adores PIC
Ttulo Original:
ELECTRNICA PRCTICA CON MICROCONTROLADORES PIC
DERECHOS RESERVADOS
Diseo de Portada: Santiago Corrales V.
Programacin: Santiago Corrales V.
Fotografa: Santiago Corrales V.
Prohibida la reproduccin total o parcial de este libro
2006: Santiago Corrales V.
Pedidos de ejemplares, Entrenadores de PIC. Servomotores. Placas, etc.
A los Telfs.:02 - 2506145 / 2553526 03-2729075
CEL: 096340838 / 097087999
Email: S_C_PIC@Hotmail.com
Impreso en: Imprenta Grfica
Derechos del autor N 024624
ISBN-10: ISBN-9978-45-295-8
1SBN-13: ISBN-978-9978-45-295-0
IMPRESO EN ECUADOR
Agosto 2006
S.C. ' PIC M i c r o c h i p
CONTENIDO
PROLOGO................................................................................................................................. 7
1. MICROCONTROLADORES PIC CONOCIMIENTOS BASICOS
Introduccin a los microcontroladores.................................................................................. 9
Microcontroladores PI C........................................................................................................... 9
Microcontroladores PIC 16F628A......................................................................................... 13
Microcontroladores PIC 16F819............................................................................................. 14
Microcontroladores PIC 16F877A......................................................................................... 15
Sntesis del manejo del software PIC BASIC PRO............................................................. 16
Sntesis del manejo del software IC - PROG...................................................................... 18
Sntesis del manejo del software PROTEUS........................................................................ 22
Manejo del programador puerto paralelo de S.C.' PIC.......................................................24
2. PROGRAMANDO EL PIC 16F628A
Manejo de secuencias..............................................................................................................25
Estudio de subrutinas................................................................................................................29
Variables.................................................................................................................................... 32
Cambio de nombre a los puertos............................................................................................ 33
Instrucciones mltiples.............................................................................................................33
Instruccin FOR - NEXT........................................................................................................34
Pulsadores y switch..................................................................................................................35
Instruccin IF - ELSE - ENDIF.............................................................................................36
Instruccin SELECT - CASE.................................................................................................40
Proyectos con Pulsadores y LEDs..........................................................................................41
Manejo de teclados hexadecimales........................................................................................ 45
Displays......................................................................................................................................49
Proyectos con teclados y displays..........................................................................................53
Rels de 12V.............................................................................................................................59
Diseo y construccin de 1PLC de 8 entradas y
8 salidas controlado por un PIC 16F628A............................................................................62
Proyectos con teclados y rels de 12V.................................................................................. 65
Instrucciin EEPROM - READ - WRITE.......................................................................... 73
Manejo de mdulos LCD....................................................................................................... 79
Instruccin DEFINE - LCDOUT..........................................................................................81
Proyectos con LCDs.......... .....................................................................................................
3
$
S.C. ' P I C Mic r o c hip
Instruccin SOUND................................................................................................................. 89
Instruccin FREQOUT........................................................................................................... 90
Instruccin DTMFOUT.......................................................................................................... 91
3. COM U NI CA CI N SERI A L CON EL M I CROCON T ROL A DOR
PI C 16F628A
Instruccin SERIN - SEROUT.............................................................................................. 95
Comunicacin serial PIC - PIC............................................................................................. 96
Comunicacin serial Infrarroja.............................................................................................. 97
Comunicacin serial PC - PI C.............................................................................................. 99
Comunicacin serial con Visual Basic 6.0...........................................................................100
Manejo del Software LABVIEW 7.0................................................................................... 111
Comunicacin serial con LABVIEW 7.0.............................................................................119
4. M A NEJ O DE M ODUL OS DE RA DI O FRECU ENCI A
Mdulo Transmisor..................................................................................................................130
Mdulo Receptor......................................................................................................................131
Proyectos con Mdulos de radio - frecuencia..................................................................... 132
Mdulos de radio - frecuencia utilizando microcontroladores pie....................................133
Instruccin COUNT................................................................................................................. 135
Mdulos de radio-frecuencia con RF-PIC............................................................................140
Instruccin POT........................................................................................................................141
5. PROGRA M A NDO EL PI C 16F819 Y EL 16F877A
Microcontrolador PIC 16F819................................................................................................143
Conversor ANALOGO - DIGITAL......................................................................................143
Instruccin ADCIN.................................................................................................................. 143
Diferencias entre el PIC 16F628A y el PIC 16F819............................................................146
Microcontrolador PIC 16F877A............................................................................................ 147
Diferencias entre el PIC 16F628A, 16F819 y 16F877A.................................................... 149
Central de Alarmas utilizando un microcontrolador PIC 16F877A..................................149
6. MANEJ O DE MOTORES
Motores PASO - PASO...........................................................................................................163
Motores PASO - PASO UNIPOLARES..............................................................................164
Secuencia WAVE DRIVE...................................................................................................... 166
Secuencia FULL STEP............................................................................................................167
Motores PASO - PASO BIPOLARES................................................................................. 168
4
S.C. ' PIC
$
Mic r q c hip
Manejo de Servomotores........................................................................................................ 169
Instruccin PWM.................................................................................................................... 171
7. INTERRUPCIONES
Interrupciones...........................................................................................................................175
8. ANEXOS
Anexo A................................................................................................................................. 179
Anexo B...............................................................................................................................179
5
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
by_D@rw@nzio
S.C. ' PIC Mic r o c hip
PROLOGO
En la actualidad los microcontroladores son la herramienta fundamental para el desarrollo
cientfico y tecnolgico, saber sobre estas mini computadoras es muy importante ya que
se encuentran en nuestro trabajo, nuestro hogar, en los computadores, en proyectos
aeroespaciales, etc.
Todas estas reas de aplicacin, junto con mi labor de profesor de microcontroladores
PIC, me han motivado a realizar este libro en el cual he puesto todos mis conocimientos
adquiridos por estudio y por experiencia, en el cual mis estudiantes tendrn un refuerzo a
cada uno de los temas tratados en clase. Tambin servir de gran ayuda a las personas que
se encuentren desarrollando proyectos a nivel empresarial, a estudiantes en sus tesis de
grado, entre otros.
Lo he realizado de una manera clara para que el lector no tenga dificultad en el
aprendizaje y pueda encontrar soluciones a diversos problemas que podr hallar en su
vida cotidiana.
Los diferentes temas que se encontrar en el libro son exclusivamente trabajados con
microcontroladores PIC por ser ms econmicos y muy fciles de encontrarlos en las
tiendas electrnicas. En el capitulo 1 se encuentran conocimientos bsicos que el lector
debe conocer para introducirse en el manejo de estos dispositivos electrnicos, el capitulo
2 trata sobre la programacin para el microcontrolador, para explicar las instrucciones del
lenguaje BASIC para PIC se ha elegido el 16F628A por varias ventajas que las ir
conociendo en el transcurso del libro. El capitulo 3 aprender a manejar comunicacin
serial con el computador, entre microcontroladores, y monitoreo con LABVIEW y Visual
Basic 6.0. En el capitulo 4 se encuentra el manejo de dos dispositivos de radio frecuencia,
con los cuales podr introducirse en la era inalmbrica que est gobernando el mundo
entero. En el capitulo 5 se detalla el funcionamiento de dos microcontroladores ms por
ser de gran ayuda a la hora de realizar un proyecto, y en el que podr construir su propia
central de proteccin para su hogar, oficina, etc. En el captulo 6 el lector aprender a
manejar diversos motores para realizar proyectos de robtica, en el captulo 7 se indica el
manejo de interrupciones que son de gran importancia en cualquier proyecto que se
realice. Y en el captulo 8 podr informarse sobre la empresa S.C. ' PIC ELECTRNICA
& COMPUTACION y en la que observar un entrenador Digital muy econmico que le
ayudar a aprender de mejor manera cada uno de los proyectos que se encuentran en el
libro.
Se utiliza un software de simulacin por ser de gran ayuda, ya que permite probar cada
proyecto sin necesidad de comprar los elementos que en muchas ocasiones son
susceptibles a daos. Cada proyecto que se encuentra en el libro ha sido 100% probado
7
S.C. ' P I C
$
M i c r o c h i p
En el CD encontrar los ejercicios realizados en el libro junto a fotografas, simuladores,
datashetts y un archivo que le guiar en el proceso de descarga de software (PIC BASIC
PRO Y PROTEUS) que son necesarios para realizar tanto la programacin como la
simulacin de proyectos.
Mi agradecimiento es primeramente a DIOS por haber permitido culminar con un
objetivo ms de los que me he planteado en mi vida, 2m:s padres por su incondicional
apoyo en el transcurso de mi carrera. A mis maestros, quienes en su noble labor me han
transmitido sus valiosos conocimientos, en especiad a los Ingenieros del rea de
electrnica del colegio tcnico particular Herrr.ano Miguel de la ciudad de Latacunga.
A mi esposa y mi hija por su apoyo moral y su ayuda en la realizacin del libro.
Agradezco tambin a mis amigos quienes han aponado con sus conocimientos
despejando ciertas dudas y finalmente a la empress CORPOIMPEX representantes de
Microchip para el Ecuador.
8
S.C. ' PIC
$
M i c r o c h i p
INTRODUCCION A LOS MICROCONTROLADORES
Existen varias empresas que actualmente se encuentran fabricando estas
microcomputadoras, las cuales poseen variedad de modelos que nos facilitan la
implementacin de proyectos que se pueden realizar. En este libro se detallar el estudio
de los Microcontroladores PIC de MICROCHIP TECHNOLOGY Inc.
Microchip es una empresa que est liderando las ventas de este dispositivo, por su bajo
costo, por tener una gran variedad de modelos, y por su programacin muy sencilla, la
que hace que el microcontrolador PIC se est estudiando en diversas universidades de
gran prestigio a nivel mundial.
MICROCONTROLADOR PIC
En s un microcontrolador es un circuito integrado programable, capaz de ejecutar las
rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los
cuales cumplen una tarea especfica, sus partes o componentes principales son:
MICROCONTROLADORES PIC
CONOCIMIENTOS BASICOS
Memor i a ROM (Memoria de slo lectura)
Memor i a RAM (Memoria de acceso aleatorio)
Lneas de en t r ad a/s al i d a ( I / O ) Tambin llamados puertos
Lgi ca de cont r ol Coordina la interaccin entre los dems bloques
Dispositivos
-
Microcontrolador
Dispositivos
de entrada
I B
dft salida
Ent radas
Ci rcui t o Ext erno
de Rel oj
(Cri st al u osci l ador)
Sal i das
GND +5V
9
f
S.C. ' PIC M i c r o c h i p
En la figura se puede observar la estructura interna de un microcontrolador, y como se
puede apreciar posee un circuito extemo de reloj, el cual indica al micro la velocidad a la
que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple
pero de vital importancia para el buen funcionamiento del sistema, ya que sin l no
podramos ejecutar las rdenes o las lneas de instruccin que se encuentran programadas
en el mismo.
Los diferentes tipos de cristal ms comunes para un microcontrolador PIC son:
RC. Oscilador con resistencia y condensador.
Segn las recomendaciones de Microchip R puede tomar valores entre 5k y 1OOk, y C
superior a 20pF.
XT. Cristal.
HS. Cristal de alta velocidad.
LP. Cristal para baja frecuencia y bajo consumo de potencia.
El microcontrolador como se ha visto anteriormente es un microcomputador, el cual
necesita de perifricos de entrada y salida para su correcta utilizacin. Las entradas
dependiendo de la aplicacin pueden ser: sensores, teclados, pulsadores, switch, etc. Las
salidas igualmente dependiendo de la aplicacin pueden ser: leds, display, LCD, rels,
computadoras, etc.
Arquitectura interna del PIC.
Hay dos arquitecturas conocidas: la clsica de Yon Neumann, y la arquitectura Harvard,
Vcc
= C
10
S.C. ' PIC
$
M i c r o c h i p
Arquitectura Von Neumann Dispone de una sola memoria principal donde se
almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs
de un sistema de buses nico (direcciones, datos y control).
UCP
Bus de
MEMORJA
di recci ones
Inst rucci ones
Bus de dat os
e i nst rucci ones
+
Dat os
Arquitectura Harvard Dispone de dos memorias independientes, una que contiene slo
instrucciones, y otra que contiene slo datos. Ambas disponen de sus respectivos sistemas
de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura)
simultneamente en ambas memorias, sta es la estructura para los PIC's.
Memoria de programa
Esta vendra a ser la memoria de instrucciones, aqu es donde almacenaremos nuestro
programa o cdigo que el micro debe ejecutar. No hay posibilidad de utilizar memorias
externas de ampliacin.
Memorias EEPROM. (Electrical Erasable Programmable Read Only Memory -
Memoria de slo lectura Programable y borrable elctricamente).- sta tarea se hace a
travs de un circuito grabador y bajo el control de un PC (IC-PROG). El nmero de veces
que puede grabarse y borrarse una memoria EEPROM es finito aproximadamente 1000
veces.
Memorias FLASH. Posee las mismas caractersticas que la EEPROM, pero sta
tiene menor consumo de energa y mayor capacidad de almacenamiento, por ello
est sustituyendo a la memoria EEPROM.
11
S.C. ' PIC
$
M i c r o c h i p
La memoria de programa se divide en pginas de 2048 posiciones.
o
i
2 &
J-00
8
3
PC<12:0>
RETURN
> 13
, F.ETLW ,
l i
Stack Level 1

*
Slack Level 8
Reset Vector oooon
Peripheral Interruot Vector 0004h
r ^
3FFh
1FFFh
Cuando ocurre un Reset, el contador de programa (PC) apunta a la direccin OOOOh, y el
micro se inicia nuevamente. Por esta razn, en la primera direccin del programa se debe
escribir todo lo relacionado con la iniciacin del mismo.
Ahora, si ocurre una interrupcin el contador de programa (PC) apunta a la direccin
0004h, entonces ah escribiremos la programacin necesaria para atender dicha
interrupcin.
Memoria de datos
Posee dos zonas distintas:
1. RAM esttica SRAM: donde residen los Registros Especficos (SFR) con 24
posiciones de tamao byte, aunque dos de ellas no son operativas y los Registros de
Propsito General (GPR) con 68 posiciones.
12
S.C. PIC
$
M i c r o c h i p
File Address____________________________Ne Address
OOh lfSd>fct addr.11* Indirect addr.'11 san
01h TMRO OPTION eih
02h PCL PCL 82h
03h STATUS STATUS 83h
04h FSR FSR 64 h
05h PORTA TRISA 85h
06h PORTB TRIS8 86h
07h 87h
08h EEDATA EECON1 88H
09h EEAOR EECON2<*> 89n
CAi PCLATH PCLATH 8Ati
CBh INTCON (NTCON 8Bh
OCh
68
General
Purposs
regjsters
(SRAM)
Mapped
(accesses)
ir. Bank 0
8Ch
4Fh CFh
50h
L _____
OOh
_
7Fh FFh
Bank 0
Bank 1
2. EEPROM: de 64 bytes donde, opcionalmente, se pueden almacenar datos que no se
pierden al desconectar la alimentacin.
MI CROCONTROLADOR PI C 16F628A
El microcontrolador PIC 16F628A, soporta 1000 ciclos de escritura en su memoria
FLASH y 1.000.000 de ciclos en su memoria EEPROM, la memoria de programa que
posee es de 2048 Words, memoria de datos EEPROM es de 128 bytes, la memoria RAM
es de 224 bytes, 16 pines de entrada y salida, y posee 2 comparadores.
A ms de esto posee grandes ventajas como son: Comunicacin AUSART, Oscilador
interno de 4 MHz, Master Clear (MCLR) programable, etc.
La alimentacin del microcontrolador PIC en general es de Vss =GND = 0V y de Vdd =
Vcc = 5V, este valor de Vdd puede variar desde 3V hasta 5.5V. Posee a ms de ello 2
puertos de I/O el Puerto A y el Puerto B, los cuales trabajan a 8 bits cada uno y entregan
25mA por cada PIN, y en modo sumidero pueden soportar hasta 25mA por cada PIN.
13
$
S.C. ' PIC Mi cnocHi P
RA2'AN2/VRf
RA3AN3/CMP1 -
RA4/TOCK I /CMP2 *
RAS/MCLRA/P P ---------
V ss --------
RBOflNT -----
RB1/RX/DT *
RB2TTX/CK--------[
RB3/CCP1 -*-----
c
1 18 }------ RA1/AN1
2
n
17 ] * ----- RAOr'ANO
3
O
-*
16
}------ RA7/OSC1/CLK I N
4
T
i
15 y -------- RA&'OSC2?CLKOUT
5 14 --------VOO
6
i
13
] * ----- RB7/T10SV PGD
1
12 ]------ RB6/T10SO/T 1CK l/PGC
8
11 }-------- RB5
9 10 ]-------- RB4/PGM
DISTRIBUCION DE PINES DEL PIC 16F628A
MICROCONTROLADOR PIC 16F819
El microcontrolador PIC 16F819, posee una memoria de programa de 2048 Words,
Memoria de datos EEPROM de 256 bytes, memoria RAM de 256 bytes y 16 pines de
entrada y salida, no posee comparadores pero tiene una gran ventaja de poseer 5
conversores anlogo - digital AT>, siendo sta la diferencia principal con el
microcontrolador PIC 16F628A. Cada uno de estos conversores trabaja a lObits.
Tambin posee MCLR programable, comunicacin AUSART y oscilador interno, el cual
se puede calibrar hasta 8 posiciones, desde 31,25 KHz hasta 8 MHz, es decir:
1.
2.
3.
4.
5.
6.
7.
8.
31,25 KHz
125 KHz
250 KHz
500 KHz
1MHz
2 MHz
4 MHz
8 MHz
RA2/AN2A/REF- 1 18
RA3/AN3A/REF+ C
2
o>
17
RA4/AN4/T0CKI 3 00 16
RA5/MCLRA/PP c
4 00
15
Vss n
5
5
14
RB0/INT 6
Li
to
13
RB1/SDI/SDA
7
12
RB2/SDO/CCP1
n 8 O
11
RB3/CCP1/PGM 9 Q.
10
>
>
>
u-
RA1/AN1
RAO/ANO
RA7/OSC1/CLKI
RA6/OSC2/CLKO
Vd d
RB7/T10SI/PGD
RB6/T1pSO/T1CKl/PGC
RB5/SS
RB4/SCK/SCL
DISTRIBUCIN DE PINES DEL PIC 16F819
14
S.C. ' PIC M i c r o c h i p
MI CROCONTROLADOR PIC 16F877A
El microcontrolador PIC 16F877A, posee una memoria de programa de 8192 Words,
Memoria de datos EEPROM de 256 bytes, memoria RAM de 368 bytes y 33 pines de
entrada y salida, los cuales se dividen en:
Puerto A trabaja a 6 bits
Puerto B trabaja a 8 bits
Puerto C trabaja a 8 bits
Puerto D trabaja a 8 bits
Puerto E trabaja a 3 bits
Adems de ello posee 8 Conversores Anlogo - Digital A/D, una de las principales
diferencias frente a los otros pie estudiados anteriormente es la capacidad que posee, y
por esta razn es el ms utilizado en proyectos avanzados que requieren mayor numero
de entradas y/o salidas, como automatizacin de procesos industriales, alarmas
residenciales, etc. Una desventaja es que debe ser conectado con un cristal externo, ya
que no tiene incorporado el mismo y necesita tambin en el Master Clear una resistencia
Pul - Up, ya que no hay forma de deshabilitar esta opcin.
MCLR/VPP
RAO/ANO
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3A/RSF+
RA4/TDCKL'C10UT
RA5/AN4/5S/C20UT
RE0/RD/AN5
RE1/WR/ANS
RE2/CS/AN7
VDD
VSS
OSCI.'CLKN
OSC2/CLKOUT
RCO/T1OSO/T1CK1
Rcimosi/ccP2
RC2/CCP1
RC3/SCK/SCL
RDQ/PSPO
RD1/PSP1
R67/PGD
RB6/PGC
RB5
RB4
RB3/PGM
RB2
R61
RBO/INT
VDD
VSS
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RC7/RX/DT
RC6/TX/CK
RCS/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
DISTRIBUCIN DE PINES DEL PIC 16F877A
S.C. ' PIC M i c r o c h i p
SINTESIS DEL MANEJO DEL SOFTWARE PIC BASIC PRO
Pie Basic Pro es un compilador el cual permite realizar la programacin de un
microcontrolador en un lenguaje de alto nivel, lenguaje Basic. A ms de este compilador
tenemos el Software MicroCode Studio, que es un editor de texto exclusivo para facilitar
la programacin de los microcontroladores PIC. Por lo tanto MicroCode Studio y Pie
Basic Pro van juntos.
H Micrttod*Studio- PICBAS.C
FeEdt Viev*ProlectHe
:LJ 30 *9 t* &\
>- v
q o o o
o Intudes
"i Defnes
,-**1Constan*
vanjtfcs
Ato and Modflrs
)$>Tcbo*
. Labds
1
3
3
4
- |

7
8
9
10
O: Re*ty
iiisL
&4LK8
Auzhor
N o t l e e
Dace
V e r s i n
Notes
i nrriTLZD.BAS
: Sa .iziapo C o r r a l e s
: Co p y r i g h t (o) 2006 S.C.
: A l l R i g k z s R e s e r v e
f I B / 03/2006
: 1.0
mi:Col 1
M,
Detalle de las partes ms importantes del MicroCode Studio y del PicBasic Pro.
---------------- Esta ventana permite al usuario seleccionar el microcontrolador que
va a utilizar para la programacin, en este caso se encuentra seleccionado el Pie 16F628A
CodeExplorer
Indudes
Defines
. 't Constara
Variables
3 Alas and Modfiers
: Symbob
3 Labels
.- Explorador de Cdigo. Permite visualizar las variables, subrutinas,
constantes, etc. Que durante la programacin se haya realizado, con la finalidad de
encontrar o seleccionar rpidamente algn cdigo que necesitemos cambiar o editar.
16
S.C. ' PIC
$
M i c r o c h i p
1
2
3
4
5

?
3
9
1 1 Numeracin de lnea de programa.- Esta herramienta es muy importante a la hora de
realizar un programa, ya que al compilarlo, si ocurre algn error indica cual es la lnea en
donde se produjo, y facilita el arreglo del mismo.
5uccess: 59wor<feused Permite visualizar que espacio ocup el programa en el PIC,
como se puede observar se ha ocupado 59 words de 2048 words disponibles en el PIC
16F628A, o si existe algn error en el programa, aparece:
RestJts
ERROR Une17: Syntax error.
() Comptetionerrors _ qUe se produjo un error en la compilacin, del tipo
sintaxis y en la lnea numero 17.
J unWed
2 ** h&zz* : Ctrri7LED.BXS
3 '* A uthor X S a n tiago Crralas

4 ** Notico : Copyright (o) 200 S.C. * PIC *


t ' s A J I R i g h t s Rasarvad
*
' + Daz* : 18/03/2006
*
f
1 *
Versin 2 1 .0
*
' Notms i

t * :
*
En esta ventana vamos a
realizar nuestros programas, a ms de ello se puede observar en la parte superior se
encuentra el encabezado para cada uno de los programas que se realice, donde se puede
incluir el nombre del proyecto, nombre del autor, notas, etc.
Estas herramientas son las ms importantes a la hora de montar un
proyecto, ya que nos permite realizar la compilacin del programa. Vamos a detallar cada
una de ellas:
.- Este botn sirve solamente para compilar el programa, se lo puede tambin
activar digitando F9, desde el teclado del computador. Una vez compilado el programa
17
$
S.C. ' PIC Mi cr o c h i p
genera 4 archivos que son: .ASM, .MAC, .PBP y .HEX, siendo este ltimo el ms
importante ya que ste sirve para grabar el microcontrolador PIC.
^ .- Este botn tiene dos funciones a la vez, la primera es de compilar el programa y
generar los 4 archivos estudiados anteriormente, y la segunda es de llamar al
programador IC - PROG, el cual nos permitir grabar el PIC. Tambin se lo puede
activar digitando FIO.
SINTESIS DEL MANEJO DEL SOFTWARE IC - PROG
El IC - PROG es una herramienta fundamental para el programador de
microcontroladores en general, ya que ste permite grabar el archivo .HEX en el micro.
Este programador permite seleccionar varios dispositivos electrnicos tanto de puerto
serial y puerto paralelo que permiten realizar la interfaz entre el computador y el
microcontrolador, mas adelante se detallar el funcionamiento del dispositivo serial de la
empresa S.C. ' PIC ELECTRONICA & COMPUTACION.
% IC-Prog 1.05D - Programador de prototipos
" Q L a
Archivo Ecftdon Bufier Ajustes Comando Herramientas Ver Ayuda
c# - H # a % % % % so a i 4
r-C 16F377A :] g
Oirecdn - Cdigo programa
0000 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy *
0008 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
ytfyyy? -
0010 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0018 3TFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0020 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0028 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyiw
0030 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0038 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0040 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0048 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0050 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0038 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy v
Direccin - Datos Eeprom
0000 FF FF FF FF FF FF FF FF
yyyyyyyy
0008 FF FF FF FF FF FF FF FF
yyyyyyyy
0010 FF FF FF FF FF FF FF FF
yyyyyyyy
0018 FF FF FF FF FF FF FF FF
yyyyyyyy
0020 FF FF FF FF FF FF FF FF
yyyyyyyy
0028 FF FF FF FF FF FF FF FF
yyyyyyyy
0030 FF FF FF FF FF FF FF FF
yyyyyyyy
0038 FF FF FF FF FF FF FF FF
yyyyyyyy
A
I 1
J J
Configuracin < >
Oscilador:
[r c 3
Wre Enabte;
WRTOFF
Bits configuracin:
l? WDT
r PWRT
17 BOOEN
W LVP
F CPD
r CP
r DEBUGGER
Checksum Valor D
jOFCF JlFFFF
Palabra config: 3FFFh
Buffer 1 Butfer 2 | Buffer 3 | Buffer 4 j Bufter S |
JDM Programmer en Com3 Dispostivo: PIC 15F877A (99)
18
S.C. ' PIC Mi cr o c h i p
En la figura se puede apreciar que al iniciar el programa IC - PROG el cdigo del
programa aparece 3FFF, en todas las direcciones.
Abrir
Buscaren: jProyectos_P8P
(ALARMA.HEX
J Alarma_2_2onas.hex
j Alarma_3_2onas_Configuradon.hex
\ Comunicadon_Sincrocnica. hex
j)Contador Descendente.hex
i CONTADOR.HEX
3 d* mu-
DISPLAY.HEX
Instruccin _pWM.hex
Interrupciones. hex
| Interruptor activado por sonido.hex
|lasos f.hex
llazo for.hex
| led
luz.
jMar
Mot
PAP
Spufc:
<!
mi
Nombre:
Tipo:
Abrir
IHX8files (*.hex.*.h8.*.sxh)
Cancelar
"A Por medio de
la ventana abrir, buscamos la carpeta donde se haya hecho el programa, y seleccionamos
el archivo .HEX que deseamos cargar en el PIC.
% fC-Prog 1.05D - Programador de prototipos - D:\Proyectos_PBP\PARPADEO.HEX B i P Q
Archivo Edicin Bufer Ajustes Comando Herramientas Ver Ayuda
RC16FS28A
Direccin- Codigo programa
OOOO: 2863 00B8 201C 300A 2022 0838 0480 1384
a,
. ."8
H
0008: 0680 01A0 01 Al 1784 0838 0680 0064 0680 e i 8d
CD
0010: 1384 0500 1903 281A 0824 07A0 1803 0FA1
* -I
0018: 280B 03A1 0821 285E 0480 281E 3AFF 1784 .*e.y
0020: 0580 285E 01A3 00A2 30FF 07A2 ICO 3 07A3 A .
0028: 1C03 285E 3003 00 A l 30DF 2030 2824 01 A l o$
0030: 3SE8 00A0 09 Al 30FC 1C03 2839 07A0 1803 j ti . 9 .
0038: 2836 07A0 0064 0FA1 2836 1820 283F 1CA0 6 d 6.?
0040: 2843 0000 2843 0008 01A1 01A3 00A2 3001 C. C .|f c.
0048: 284E 01 A l 01A3 00A2 3004 284E 00A8 0823 NC.N#
0050: 0221 1D03 2855 0822 0220 3004 1803 3001 ! . 0 ____
0038: 1903 3002 0528 1D03 30FF 285Z 1383 1303
(yA/
s
Direccin- Datos Eeprom
0000: FF FF FF FF FF FF FF FF
yyyyyyyy
A
0008: FF FF FF FF FF FF FF FF
yyyyyyyy
-
0010: FF FF FF r? FF FF FF FF
0018: FF FF FF FF FF FF FF FF
yyyyyyyy
0020: FF FF FF FF FF FF FF FF
a r o
0028: FF FF FF FF FF FF FF FF
M e
0030: FF FF FF FF FF FF FF FF
y
0038: FF FF FF R FF FF FF FF
yyyyyyyy
s
Configuracin <
Oscilador:
HS
Bits configuracin:
F WDT
W PWRT
f? MCLR
BODEN
LVP
CPO
CP
r
r
r
r
Checksum VBlor D
|af f b |FFFF
Palabra config: 3F26h
Buffer 1 |~Buffer2 ~Bu(fer 3 | Buffer 4 | Buffer sj
ProPtc 2 Programmer en LPT1 Dispositivo: PtC 16F628A (147)
19
$
Al cargar el programa .HEX, cambian los valores de direccin, por otros distintos a
3FFF, as podremos damos cuenta que el programa a sido cargado en el programador.
% Saa !
i v gsta e herramientas es la mas importante dentro del
manejo del IC - PROG, a continuacin detallaremos cada una de stas opciones,
*
S.C. ' PIC__________________________________________Mi cr o c h i p
.- Permite leer el contenido del microcontrolador PIC
%
.- Este botn realiza la programacin del microcontrolador, es decir carga el
archivo hexadecimal al PIC.
.- Permite borrar el contenido del microcontrolador y dejarlo en blanco para
poder ser grabado nuevamente.
I
PIC 1BFB20A ^ '
1 .- Como en el MicroCode Studio, en esta ventana, seleccionamos el
microcontrolador que deseamos utilizar.
Oscilador
HS
LP
XT
HS
ExtCik
IntRCK)
hlRC CLKOUT
RCVO
RC CLKOUT
- En la ventana del oscilador, seleccionamos la configuracin deseada, es
decir podemos cambiar al cristal interno de 4MHz que posee el PIC 16F628A o la que
necesite el usuario.
Bits configuracin:
(7 WDT
PWRTj
r MCLR
r BOOEN
r l v p
r c po
QP
.- Aqu se puede seleccionar los Bits de configuracin, es recomendable
desactivar la opcin del MCLR y dejarlo siempre como se muestra en la figura.
NOTA: Para la correcta utilizacin del IC - PROG, es recomendable realizar los
siguientes pasos para que no tenga ningn tipo de problema:
20
S.C. ' PIC
$
M i c r o c h i p
1. Seleccionar el microcontrolador PIC a utilizar.
2. Cargar el archivo hexadecimal al IC - PROG
3. Configurar el oscilador a los requerimientos del usuario
4. Seleccionar los bits de configuracin a los indicados anteriormente.
Siguiendo estos pasos no tendr ningn problema a la hora de realizar sus proyectos.
Si an as le aparece una ventana como la siguiente:
Puede ser por dos motivos. El primero es que no se encuentra bien habilitado el Hardware
a utilizar, o el segundo es que el microcontrolador que est utilizando est en mal estado,
por lo que siempre debemos tener mucho cuidado con los micros porque stos son de
tecnologa CMOS, y son muy vulnerables a la esttica, por lo que se aconseja manejarlos
con pinzas para evitar el contacto directo con las manos.
Error
Error programacin de cdigo en la direccin OOOOh!
OK
21
S.C. ' PIC
$
M i c r o c h i p
SINTESIS DEL MANEJO DEL SOFTWARE PROTEUS
Proteus es una herramienta fundamental para las personas que estn readicionadas con el
mundo de los microcontroladores, ya que sta permite realizar simulaciones de los
proyectos montados, es decir no hace falta: probar en protoboard el proyecto, comprar
materiales, quemar los microcontroladores, etc. Simplemente necesitamos seleccionar
cada uno de los elementos a utilizar, ya que esta poderosa herramienta contiene:
Microcontroladores PIC, LCDs, Rels, Leds, Displays, etc.
El UHTrOED - ISIS Professional
1=1
Re Vtev Edt Lbrary Tools Destgn Graph Source Driwg Template System Hefe
A continuacin detallaremos las partes ms importantes de este Software.
^ Componente.- Permite seleccionar el elemento que deseamos utilizar, de la
siguiente manera:
Seleccionamos el icono del componente dando un clic, seguido damos un clic en
PlL] DEVICES
\
la 0 , y nos aparece una ventana similar a la siguiente:
22
S.C. ' PIC M i c r o c h i p
rircc*...
Ketwadc
[PIC 1SFB28A.
M^WhoteWait>
KBBHHKiRSBGS
*v*>
ICs
Sifc-cateooiy.
Maniactuer________
RC1STC28A MICRO PIC16Miaoconmjle!|2kB coda. 2248dala. 1288EPROM. Pt (
RC16FB29^Preww
VSM D ll Modal [RC16]
PCSPiovww
DIL18
flK
------- 3
CancH |
En la parte de Keywords: escribimos el elemento a utilizar, en este caso se ha escrito el
PIC 16F628A, y en Results (1): damos doble clic para agregar el micro a la pantalla del
proteus.
RECOMENDACIN PARA SELECCIONAR RESISTENCIAS.
1. Escribir para el caso de una resistencia de 330 ohmios, escribir RES 330R y
seleccionar la MINIRES 330R.
2. Para el caso de una resistencia de 4,7K debe escribir RES 4K7, y seleccionar la
MINIRES 4K7.
1
.- Esta herramienta permite escoger Gnd y Vcc para realizar el proyecto.
P [ TERMINLS"
DEFAULT
INPUT
UTPUT
BIDIR
POWER
BUS
Power para Vcc y Ground para Gnd.
/ .- Permite realizar lneas entre los componentes seleccionados.
23
S.C. PIC
$
M i c r o c h i p
MANEJO DEL PROGRAMADOR PUERTO PARALELO DE S.C. ' PIC
La empresa S.C. ' PIC ELECTRONICA & COMPUTACION a diseado un programador
totalmente econmico para que los lectores puedan realizar cada uno de los proyectos que
se encuentran a lo largo del libro.
Se ha elaborado un programador universal de microcontroladores PIC del tipo paralelo
por presentar varias ventajas, como la rapidez que posee para grabar, borrar y leer los
microcontroladores PIC. El nivel de voltaje que necesitan los microcontroladores PIC de
la serie A es de 5 Vcc en la entrada de datos, y los que no poseen la A es de 13,8 Vcc, sin
embargo este programador est diseado para grabar cualquiera de los dos tipos. Siendo
sta la diferencia entre los microcontroladores PIC de serie A frente a los sin A.
Este programador corresponde a PROPIC2 en el IC - PROG que se lo conecta al puerto
paralelo del computador.
Este programador soporta microcontroladores PIC de 8, 14, 18, 28 y 40 pines, comunes
en las tiendas electrnicas.
Para realizar la programacin lo nico que se debe hacer es seleccionar el rea donde se
debe ubicar el microcontrolador y proceder a grabarlo mediante el software IC - PROG
que ya se ha detallado anteriormente.
24
S.C. ' PIC
$
M i c r o c h i p
9
PROGRAMANDO EL PIC
16F628A
En s la programacin de los microcontroladores PIC en lenguaje Basic, es la misma, lo
nico que los diferencia unos de otros es la definicin de los puertos, y ciertas ventajas
que poseen.
El PIC 16F628A consta de 2 puertos el A y el B, los cuales trabajan a 8 bits cada uno, es
decir se divide el puerto A y B en 8 bits de entrada o salida as:
PUERTO A
A.O - A. 1- A.2 - A.3 - A.4 - A.5 - A.6 - A.7
PUERTO B
B.O - B.l - B.2 - B.3 - B.4 - B.5 - B.6 - B.7
Iniciaremos las secuencias aprendiendo a utilizar las instrucciones: PORT, HIGH, LOW,
PORT.- Esta instruccin nos permite indicar que puerto se va a ocupar, y por lo general
va acompaado de otra instruccin. Su sintaxis es la siguiente:
PORTB.O ; indica que se ha seleccionado el puerto B.O
PORT A.O ; indica que se ha seleccionado el puerto A.O
HIGH.- Permite sacar 5 Vcc o 1Lgico por un puerto del microcontrolador, y a la vez lo
convierte en salida. Ejemplo:
HIGH PORTB.O ; convierte el puerto B.O en salida y lo coloca en 1L.
LOW.- Coloca el puerto en salida y lo hace OL, es decir lo apaga.
LOW PORTB.O ; convierte el puerto B.O en salida y lo coloca en OL.
PAUSE.- Detiene el programa por un perodo en milisegundos as: PAUSE 1000; realiza
una pausa en el programa de 1000 ms equivalente a 1segundo.
MANEJO DE SECUENCIAS
PAUSE.
25
S.C. ' PIC
$
M i c r o c h i p
Un perodo tiene 16 bits, por lo que se podr colocar una pausa hasta de 65535
milisegundos, es decir 1,09 minutos equivalentes a 65,5 segundos.
Ms adelante se indicar como realizar pausas de ms de 1 min, hasta varias horas de
acuerdo a las necesidades del programa.
Una vez estudiadas stas instrucciones podremos empezar con nuestro primer proyecto el
cual realizar la funcin de un 555 como un oscilador monoestable.
HIGH PortB.O / s a c a 1L p o r e l p u e r t o B. O d e l PIC
PAUSE 5000 / d e t i e n e e l p r o g r a n a d u r a n t e 5 s e g u n d o s
LOW PortB.O ; s a c a OL p o r e l p u e r t o B. O d e l PIC
END ; f i n a l i z a e l p r o g r a n a
Oscilador \onoestable.PBP
Si analizamos el programa la forma de onda quedara algo as:
1. Seleccionamos el icono de componente
2. Escribimos los elementos a utilizar, en este caso sera:
2.1. PIC 16F628A
2.2. RES 330R
2.3. LED rojo, amarillo, verde o azul
3. Procedemos a realizar el circuito como un esquemtico cualquiera quedando el
diagrama de la siguiente manera:
26
S.C. PIC
$
M i c r o c h i p
Como se puede observar, en el proteus cada microcontrolador tiene su distribucin de
pines, lo cual facilita realizar el diagrama.
Ahora lo nico que falta es cargar el archivo hexadecimal al microcontrolador, aqu
no vamos a ocupar el IC PROG, porque solo es una simulacin, pero s debemos
cargar el archivo al micro de la siguiente manera:
RA7/ OSC1/ CLK1N
1?
RAf i / OSCZf CLKOUT f t M/ ANI
RA2/ 4N2A/ R6F
PA5/ VCLR RA3MN&CMP1
RA* VT0CKVt MP2
e
9B1/ KXA>T 33QR
R8& TMCK.
Rf t VCCPl
R&4
R e a m o s e m c w
RBr / Tt Si

_1 L
-1 2 . .
<TE>VTv . . ^
f c D I .
W LEO-REO
. * TEXJ>,
Pl f l 6F028A
<TEAT-
Damos un clic derecho en cualquier parte del componente que se desee seleccionar y se
pintar de color rojo, eso quiere decir que se ha seleccionado correctamente, si se realiza
doble clic derecho, el componente se borrar.
Seguido damos un clic izquierdo y aparece una pantalla como la siguiente:
I Edft Component
! "
Component Reerence:
Component alue:
PCB Package:
Program File:
Processof Clock Frequency:
Program Configuration Word:
Advanced Properties:
Randomize Program Memory?
Other Properties:
U1
|PIC16F628A
[DL8
|i MHz
0x3F8B
Attach hierarcty module:
Edit all properties as text: f~
Hidden:
Hidden:
3 f ? ] |HdeAI
" 23 | Hide Al T
HideAl T
Hide Al 3
*ZI HrieAl T
r
OK
Help
Data
Hidden F*ins
Cancel
27
S.C. ' PIC
$
M i c r o c h i p
Primero cambiamos el Oscilador a 4MHz. en la ventana Processor Clock Frequency,
seleccionamos la carpeta de Program File, lo cual me permitir buscar el archivo
hexadecimal en este caso sera Oscilador Monoestable. HEX. Y damos un clic en OK.
Damos un clic derecho en cualquier parte de la pantalla para deshabilitar la seleccin del
componente y corremos el programa digitando F12 desde el teclado del computador.
U 1 ...................................................
iSZ.
RA7/OSC1/CLKIN RAO/ANO
l.
RAO/OSC2/CLKOUT RA1/AN1
. . .
RA2/AN2/VREF
RAS/MCLR RA3/AN3fl:MP1
. . .
RA4TT0CK1/CMR2
RB0/1NT
. . .
RB1/RX/DT
. . .
RB2/TX/CK
RB3/CCP1
RB4
. . .
RBC
RB0/T1O8O/T1CW
, . -
RB7/T108I
p.ciore28A
r TEXT >
u.
iU.
J
R1
i = 33GR
D1
LEO-RES
to.
Prendido el LED durante 5 segundos
. . .
fii

RA7/OSC1/CLK1N RAO/ANO
RAfi/OSC2/CLKOUT RA1/AN1
RA2/AN2A/REF
RA5/MCLR RA3/AK3/CMP1
RA-VT0CKI/CMP2
RBO/INT
RB1/RX/DT
RB2/TX/CK
RB3/CCP1
RB4
RB
RB0/T10S0/T1CW
RB7/T108I
JUL
JJ

PIC10FO28A
<TXT>
i
Si
i
D1
LED-REO
TSAj*.
Apagado el LED
- - I - i .- Otra manera de correr el programa es digitando el botn
RUN que es similar al PLAY de una grabadora. Se puede pausar el programa y detener el
mismo con la utilizacin de los botones de sta barra de herramientas.
Estos pasos se seguirn para realizar cada uno de los proyectos que se encuentran en el
libro, o si prefieren pueden utilizar el simulador de un entrenador el cual posee todos los
elementos que se necesitarn para cada uno de los proyectos. ste se encuentra en el CD
con el nombre de Entrenador PIC 16F628A.
A continuacin presentamos la figura del Entrenador diseado para realizar los
proyectos con el Microcontrolador PIC 16F628A. el cual posee 8 Leds, 1Display, 1
LCD, 3 pulsadores, 1teclado y 1rel.
28
S.C. ' PIC
$
M i c r o c h i p
ELECTRONICA & COMPUTACION
ENTRENADOR PIC
16F628A
0 0 0 0
0000
0 0 0 O
00EB
Entrenador PIC 16F628A. Shematic Pesien
ESTUDIO DE SUBRUTINAS
Las subrutinas permiten realizar una llamada a cierta parte del programa, para que realice
una funcin especfica. En el compilador PicBasic Pro existen dos tipos de subrutinas la
GOTO y la GOSUB, las que detallaremos a continuacin:
GOTO.- Permite apuntar a cierta parte del programa donde se le haya asignado una
etiqueta, y continuar con las lneas de programacin despus de la misma. Para entender
mejor la instruccin GOTO vamos a desarrollar nuestro siguiente proyecto, el cual
realizar la funcin de un 555 pero esta vez como un oscilador astable el cual estar en
nivel alto durante 1segundo y en nivel bajo durante Vi segundo.
Su forma de onda es:
29
S.C. PIC
$
M i c r o c h i p
La programacin para este proyecto es la siguiente:
inicio: / e t i q u e t a p a r a g e n e r a r una s u b r u t i n a GOTO
HIGH PORTB.O ; s a c a 1L p o r e l p u e r t o 3 . 0
PAUSE 1000 ; d e t i e n e e l p r o g r a ma p o r 1 s e g u n d o
LOW PORTB.O / s a c a OL p o r e l p u e r t o 3 . 0
PAUSE 500 / d e t i e n e e l p r o g r a ma p o r 1 / 2 s e g u n d o
GOTO inicio ; s a l t a a l a e t i q u e t a de nomi na da i n i c i o
END ; f i n a l i z a e l p r o g r a ma
Oscilador A stable. PBP
Para la simulacin simplemente cargamos el archivo Oscilador Astable.HEX en el
entrenador, activamos el interruptor correspondiente a los leds y presionamos F12.
GOSUB.- Es similar a la subrutina GOTO, apunta a cierta parte del programa donde est
asignada la etiqueta, guardando su direccin de retomo, es decir cumple con la subrutina
y regresa a la siguiente lnea donde se qued. Para entender esta instruccin realizaremos
un programa de un led intermitente.
inicio: ; e t i q u e t a p a r a l a s u b r u t i n a GOTO
HIGH PortB.O ; Sac a 1L p o r e l p u e r t o 3 . 0
GOSUB timer ; S a l t a a l a s u b r u t i n a e t i q u e t a d a t i m e r
LOW PortB.O / Sac a 0L p o r e l p u e r t o 3 . 0
GOSUB timer / S a l t a a l a s u b r u t i n a e t i q u e t a d a t i m e r
GOTO inicio / s a l t a a l a s u b r u t i n a e t i q u e t a d a i n i c i o
timer: ; e t i q u e t a p a r a l a s u b r u t i n a GOSU3
PAUSE 1000 ; r e a l i z a una pausa d e 1 s e g u n d o
RETURN ; r e g r e s a o r e t o r n a a l a s i g u i e n t e l i n e a d e s p u e s d e
; e l GOSUB t i m e r
Led Intermitente.PBP
Como se puede observar hemos sustituido la pausa con una subrutina denominada timer,
la que detiene el programa durante 1segundo. As ahorramos espacio en el Pie ya que la
instruccin PAUSE se la realiza una sola vez.
Cada vez nuestros programas se irn incrementando de tamao y complicndose poco a
poco, por lo que es muy importante repasar los que hemos realizados hasta el momento.
30
S.C. ' PIC
$
M i c r o c h i p
TRIS.- Realiza la funcin de coloca:- los pines seleccionados como entrada (1L) o salida
(OL) dependiendo de la aplicacin a utilizar.
TRISB=%00000000 con esta instruccin colocamos todos los pines del puerto B como
salida, o bien se puede utilizar TRISB=0 que realiza la misma funcin.
TRISB=%11111111 colocamos todos los pines del puerto B como entrada, o se puede
ocupar TRISB=1.
Cada bit puede ser manejado individualmente de la misma manera es decir pueden ser
entrada o salida.
TRISA=%11110000 con esta instruccin hacemos que los bits menos significativos del
puerto A sean salidas y los mas significativos sean entradas.
Una vez definido cuales son los puertos de entrada o salida, procedemos a encender o
apagar los puertos as:
TRISB=%0 ; hac e mos s a l i d a e l b i t B. O d e l p u e r t o B
INICIO: / ETIQUETA PARA UN LAZO REPETITIVO
PORTB=%() ; s a c a mo s OL p o r e l p u e r t o 3 . 0
PAUSE 1000 ; PAUSA DE 1 SEGUNDO
PORTB=%l ; s a c a mo s 1L p o r e l p u e r t o B. O
PAUSE 1000 ; PAUSA DE 1 SEGUNDO
GOTO INICIO ; SALTA A LA ETIQUETA INICIO
Instruccin TRIS. PBP
Conociendo estas herramientas en la programacin para los microcontroladores estamos
listos para realizar nuestro siguiente proyecto.
SEMAFORO DIGITAL
TRISB=%00011000 ; hac e mo s s a l i d a l o s p u e r t o s 3 . 7 , 3 . 6 , 3 . 5
; 3 . 2 , 3 . 1 , 3 . 0
; Ocupamos e l 3 . 7, 3 . 6 , 3 . 5 , 3 . 2 , 3 . 1 , 3 . 0 p o r q u e en si e n t r e n a d o r
; s e e n c u e n t r a n l e d s d e c o l o r e s r o j o l , a m a r i l l o l , v e r d e l y
; r o j o 2 , a m a r i l l o 2 , v e r d e 2
; r e s p e c t i v a m e n t e
31
S.C. ' PIC
$
M i c r o c h i p
INICIO: ; ETIQUETA PARA UN LAZO REPETITIVO
PCRTB=%IQ000100 ; p r e n d e mo s l o s LEDS r c j o l y v e r d e 2
PAUSE 3000 / PAUSA DE 3 SEGUNDOS
PCRTB=%10000010 ; p r e n d e mo s l o s LEDS r o j o l y a m a r i l l o 2
PAUSE 1000 ; PAUSA DE 1 SEGUIDO
PORTB=%00I0000I / prndanos l o s LEDS v e r d e l , y r o j o 2
PAUSE 3000 / PAUSA DE 3 SEGUNDOS
PCRTB=%01000001 ; p r e n d e mo s l o s LEDS a m a r i l l c l y r c j o 2
PAUSE 1000 / PAUSA DE 1 SEGUNDO
GOTO INICIO / SALTA A LA ETIQUETA INICIO
Semforo Digital. PBP
Si se desea utilizar focos de 110V se procede a realizar el siguiente diagrama de conexin
para cada uno de los leds a utilizar:
El triac para utilizar en este diagrama es el Q4015L, que maneja una corriente de hasta
15A y un voltaje de 400V, suficientes para conectar focos de 110V.
VARIABLES
Una variable es un nombre identificador en el cual guardamos datos de forma temporal.
El compilador PIC BASIC PRO posee tres tipos de variable que son:
VARIABLE TIPO FACTOR VALOR
BIT 21 0 - 1
BYTE 28 0- 255
WORD
216
0 - 65535
32
S.C. ' PIC M i c r o c h i p
La Sintaxis a utilizar es la siguiente:
X VAR BIT
Y VAR BYTE
2 VAR WORD
Donde X, Y, Z son nombres identificadores para la variable, los cuales pueden ser
distintos de acuerdo al usuario.
CAMBIO DE NOMBRE A LOS PUERTOS
Para realizar el cambio de nombre a los puertos del microcontrolador usamos la misma
instruccin estudiada anteriormente, nos referimos a la instruccin VAR. Su sintaxis es la
siguiente:
LED VAR PORTB.O
RELE VAR PORTA.0
Como se puede observar esta herramienta es muy fundamental a la hora de montar un
proyecto, ya que permite darnos cuenta que elemento est conectado en cada uno de los
puertos y evitamos errores en la programacin.
INSTRUCCIONES MULTIPLES
Otra de las herramientas fundamentales del PIC BASIC PRO son los comandos mltiples
que permite escribir varias instrucciones en la misma lnea simplemente separados por
( : )
LED VAR PORTB.O ; CAMBIO DE NOMBRE AL PUERTO 3 . 0 POR LEC
LED2 VAR PORTB.l / CAMBIO DE NOMBRE AL PUERTO B . l POR LED2
INICIO: ; ETIQUETA PARA UN LAZO REPETITIVO
HIGH LED : LOW LED2 ; 1L POR 3 . 0 Y OL POR 3 . 1
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
LOW LED : HIGH LED2 ; OL POR B. O I 1L POR B . l
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
GOTO INICIO ; SALTA A LA ETIQUETA INICIO
LUCES INTERMITENTES. PBP
33
S.C. ' PIC
$
M i c r o c h i p
INSTRUCCION FOR - NEXT
Permite ejecutar un programa n veces, y su sintaxis es la siguiente:
FOR R=1 TO 5
CUERPO DEL PROGRAMA
NEXT
Donde R es una variable asignada con el valor de 1hasta 5. Es decir realizar 5 veces Lo
que contenga el cuerpo del programa. Ejemplo:
LED VAR PORTB.O ; CAMBIO DE NOMBRE AL PUERTO 3 . 0 POR LED
R VAR BYTE ; ASIGNAMOS R DE UiJ TAMAO DE 256
FOR R=1 TO 10 ; LAZO REPETITIVOS DE 1 A 10
HIGH LED
PAUSE 1000
LOW LED
PAUSE 1000
SACAMOS 1L POR EL PUERTO 3 . 0
PAUSA DE 1 SEGUNDO
SACAMOS 0L POR EL PUERTO 3 . 0
PAUSA DE 1 SEGUNDO
NEXT ; SALTO AL LAZO REPETITIVO HASTA QUE R SEA IGUAL A 10
END ; FIN DEL PROGRAMA
lazo FOR. PBP
Como se haba estudiado anteriormente el PIC BASIC PRO no permite realizar una pausa
mayor a 65,5 segundos. Por esa razn si se desea incrementar la pausa se utilizar el lazo
FOR estudiado. As:
LED VAR PORTB.O ; CAMBIO DE NOM3RE AL PUERTO 3 . 0 POR LED
R VAR WORD ; VARIA3LE R DE TAMAO 65536
INICIO: ; ETIQUETA DE SALTO LLAMADA I NI CI O
HIGH LED ; 1L POR EL PUERTO 3 . 0
GOSUB TIMER ; SALTA A REALIZAR UNA PAUSA DE 5 MINUTOS
LOW LED ; OL POR EL PUERTO 3 . 0
GOSUB TIMER / SALTA A REALIZAR UNA PAUSA DE 5 MINUTOS
GOTO INICIO ; SALTA A LA ETIQUETA INICIO
34
S.C. PIC
$
M i c r o c h i p
TIMER: ; ETIQUETA DE SALTO LLAMADA TIMER
FOR R=1 TO 300 ; INICIO DEL LAZO REPETITIVO DE 1 A 300
PAUSE 1000 ; PAUSA DE 1 SEGUNDO
NEXT ; CONTINUA AL LAZO FOR HASTA QUE R- 3 0 0
RETURN ; REGRESA A LA SIGUIENTE LINEA DONDE SE QUEDO
PAUSA 5 MINUTOS. PBP
Mediante el lazo FOR se ha incrementado la pausa hasta 5 minutos, y as se puede seguir
aumentando de acuerdo a las necesidades del usuario.
PULSADORES Y SWITCH
Existen 2 tipos de conexin para el manejo de pulsadores o switch. La primera es la
conexin a 1L y la segunda la conexin a OL. A continuacin los diagramas de conexin
por cada uno de los casos.
U1____________ ______
RA7,'CSCi/CLKK RAO/ANO
RA8/CSC2/CU<OUT RA1/AN1
______ RA2/AN2/VREF
RA5/MCLR RA3/AN3/CMP1
RA4/T0CK1/CMP2
RBQ/INT
R81/RX/DT
RB2/TX/CK
RB3/CCP1
RB4
RB5
RBEvT10S O/T1CKi
RB7/T10SI
P:C16F623A
]_
8
C
21
n.
il
_J1
A
R1
4k7
U1
11.
15
RA7/OSC1/CLWN RAO/ANO
RA&'OSC 2/CLKOUT RA1/AN1
RA2/AN2A/REF
RA.5fl50H^ RA3/AN3/CMP1
RA4/TDCKJ /CMP2
R B mT
RB1/RX/OT
RB2/TX/CK
R03/CCP1
R84
R85
RBBTT tOSO/T l CKI
R Bm'IOS I
PIC16F628A
<TQCT>
-11
-O O-
R1
4k7
<7S)T>.
CONEXI N A OL.-
Contraria a la anterior, sta
permite ingresar OL a travs de
una resistencia al
microcontrolador, y en el
momento que el pulsador es
digitado generar 1L.
Igualmente la resistencia
permite bajar la corriente a la
requerida por el PIC para evitar
daos o errores al ingresar los
pulsos.
CONEXI N A 1 L -
Se la conoce como 1L porque
Vcc se encuentra conectado a
travs de una resistencia al
microcontrolador PIC, y el
pulsador generar OL cuando
este sea presionado.
La resistencia nos permite bajar
la corriente de entrada para que
el microcontrolador PIC
funcione correctamente.
35
S.C. ' PIC
M i c r o c h i p
Para e! control de los pulsadores o switch debemos utilizar una instruccin que nos
permita realizar preguntas.
INSTRUCCIN IF - ELSE - ENDIF
Esta instruccin es muy utilizada para realizar preguntas en cualquier lenguaje de
programacin. Sin embargo en ios microcontroladores es esencial para diversas
aplicaciones, y una de ellas es la utilizacin en los pulsadores o switch.
Su sintaxis de manejo es la siguiente:
IF pregunta es correcta THEN
Realice esta programacin
ELSE
Caso contrario si no es correcto realice esta otra programacin
ENDIF
Mediante ENDIF terminamos la instruccin IF.
Para aclarar esta instruccin realizaremos un programa el cual al ser presionado un
pulsador prender un led, para sacar un pulsador en el proteus digitamos BUTTON en la
parte de elementos.
CMCGN=7 ; CAMBIAMOS EL PUERTO A COMO DIGITAL
LED VAR PORTB.O ; CAMBIO DE NOMBRE AL PUERTO B.O POR LED
PULSADOR VAR PCRTA.0 ; CAMBIO DE NOMBRE AL PUERTO A. O POR PULSADOR
inicio: ; ETIQUETA PARA SALTO
IF PLSADOR=0 THEN ; PREGUNTA S I EL PULSADOR ES 0 ENTONCES
GOTO PRENDIDO ; SALTE A LA ETIQUETA PRENDIDO
ELSE ; CASO CONTRARIO SI EL PULSADOR SIGUE EN 1 ENTONCES
GOTO APAGADO ; SALTZ A LA ETIQUETA APAGADO
EKDIF ; TERMINTE LA INSTRUCCION IF
GOTO inicio ; SALTE A INICIO
36
S.C. ' PIC
$
M i c r o c h i p
PRENDIDO: ; ETIQUETA DE SALTO
HIGH LED ; SAQUE 1L POR EL PUERTO 3 . 0
GOTO inicio ; SALTE A LA ETIQUETA INICIO
APAGADO: ; ETIQUETA DE SALTO
LOW LED / SAQUE OL POR EL PUERTO 3 . 0
GOTO inicio ; SALTE A LA ETIQUETA INICIO
END ; FIN DEL PROGRAMA
Instruccin IF. PBP
.-acuerden que estos proyectos pueden probar en el simulador de un entrenador que viene
cunto en el CD. Como habrn notado al inicio del programa utilice una instruccin
mada CMCON=7, y si analizaron un poquito ms se habrn dado cuenta que utilice esa
r^truccin porque manej el puerto A. Lo que quiere decir que esta instruccin apaga los
amparadores de voltaje y digitaliza el puerto, en otras palabras me permite ocupar el
Tuerto A.
5 en la compilacin del programa se tiene el siguiente error:
< s
r y NSTRU~2.ASM 51 : [225] undefined symboi 'cmcon'
*sembler errors
" observacin ms. Como se puede observar en el programa se pregunt si el pulsador
=j esto quiere decir que en la parte hardware debe estar conectado a 1L, ingresando
: -r.namente a travs de una resistencia un voltaje alto al microcontrolador PIC, y cuando
; Tilsado cambiar de estado a OL.
I b:t A.4 del puerto A es de colector abierto, lo que quiere decir que para utilizarlo
irt'emos conectarlo por medio de una resistencia de 100 ohmios a Vcc.
Se refi ere a que no se ha
sel ecci onado el mi crocont rol ador
PIC 16F628A. Por esta razn
si empre antes de real i zar
cual qui er programa debemos
f i j arnos que PIC vamos a uti l i zar.
37
S.C. ' PIC
$
M i c r o c h i p
y i
331
RA7/OSC1/CLKIN RAO/ANO
RA6/OSC2/CLKOUT RAt/AN
RA2/AM2/VREF
RA5/N1CLR RA3/AN3/CMPJ
RA4/TQCW/CMP2
RBQ/NT
RB1/RX/DT
RB2/TX/CK
RB3/CCPt
R84
R35
RB6/T10SCVT1CKJ
R87/T10S
PIC16F628A
<7*SCr>
En la figura se puede observar que los puertos RA7, RA6 y RA5 son para conectar el
oscilador y el master clear respectivamente, lo que provoca que estos bits no se prendan
si programamos una secuencia en el puerto A. Para solucionar este problema debemos
indicar en la programacin que vamos a ocupar el oscilador y el master clear interno que
posee el microcontrolador PIC 16F628A, de la siguiente manera:
8 device INTRC_OSC_NOCLKOUT ; OCUPAMOS EL OSCILADOR INTERNO
8 DEVICE MCLR_OFF / OCUPAMOS EL MASTER CLEAR INTERNO
8 device BCD_OFF / APAGAMOS EL 3 0 DEN DE CONSUMO
cmcor.=7 / DIGITAL IZAMOS EL PUERTO A
TRISA=0 ; TODO EL PUERTO A ES SALIDA
INICIO: ; ETIQUETA PARA SALTO
PORTA=%10000001 ; SECUENCIA 1000 0 0 0 1
GOSUB TIMER / SALTO A LA ETIQUETA TIMER
PORTA=%01000010 ; SECUENCIA 0 1 0 0 0 0 1 0
GOSUB TIMER ; SALTO A LA ETIQUETA TIMER
PORTA=%00100100 ; SECUENCIA 0 0 1 0 0 1 0 0
GOSUB TIMER ; SALTO A LA ETIQUETA TIMER
PORTA=%00011000 ; SECUENCIA 0 0 0 1 1 0 0 0
GOSUB TIMER / SALTO A LA ETIQUETA TIMER
GOTO INICIO
TIMER: ; ETIQUETA PARA SALTO
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
RETURN ; REGRESA A LA SIGUIENTE LINEA DESPUES DEL G0SU3
Ocupando el puerto A. PBP
38
f
$
S.C. ' PIC Mi cr o c h i p
PERTOA. Schematic Pesien
CONEXIN PARA LA SECUENCIA UTILIZANDO EL PUERTO A
Como se puede observar en la figura solamente el bit A.4 del puerto A se encuentra
conectado a travs de una resistencia de 100 ohmios a Vcc.
39
S.C. ' PIC M i c r o c h i p
INSTRUCCION SELECT - CASE
La instruccin SELECT CASE, permite realizar preguntas, la compone una serie de
IF-THENs. los cuales se denominan casos (CASE). Esta instruccin es usada para
comparar una variable, con diferentes valores o rangos asignados por el usuario.
Su sintaxis es:
SELECT CASE var
CASE expr l {, expr . . . }
st at ement s
CASE expr 2 {, expr . . . }
st at ement s
{CASE ELSE st at ement s}
END SELECT
A continuacin realizaremos un ejemplo con esta instruccin, que consistir en prender y
apagar un led de acuerdo al valor que se le haya asignado en la variable.
LED V A R PORTB.O ; Cambi o de nombr e a l BI T b. O p o r LED
X V A R BYTE ; V a r i a b l e X de t amao de 256
R V A R BYTE ; V a r i a b l e R de t amao de 256
X=5 ; As i gnamos e l v a l o r de 5 a l a v a r i a b l e X
I ni ci o: f E t i q u e t a p a r a s a l t o
SELECT CASE x ; I n i c i o de l a i n s t r u c c i n SELECT CASE p a r a l a
; V a r i a b l e X
CASE I S < 5 ; Cas o s i X es < 5 e n t o n c e s
HIGH LED ; Pr e nda e l LED
CASE 5 ; Cas o si x 5
FOR R=1 TO X ; Laz o r e p e t i t i v o d e s d e R=1 h a s t a e l V a l o r de X
HIGH LED ; Pr enda e l LED
PAUSE 5QD ; Pausa de 1 / 2 s e gundo
LOW LED ; Apague el LED
PAUSE 500 ; Pausa de 1 / 2 s e gundo
HEXT ; Co n t i n u con e l l a z o r e p e t i t i v o
PAUSE 2000 ; Pausa ce 2 s e gundos
CASE I S > 5 : Cas o s i k > 5 e n t o n c e s
LOW LED ; Apague e l LED
CASE EXSE ; Cas o c o n t r a r i o s i no c o i n c i d e con n i n g n
; c a s o e n t o n c e s
GOTO I ni ci o ; S a l t e I n i c i o
NOTA: Para probar esta instruccin, variar el valor de la variable X y probar en el
software de simulacin PROTEUS, especficamente en el archivo Entrenador del PIC
16F628A. Schematic Design.
EHD SELECT ; F i n a l i c e e l END SELECT
Instruccin SELECT CASE. PBP
40
S.C. ' PIC
$
M i c r o c h i p
PROYECTOS CON PULSADORES Y LEDS
El primer proyecto que realizaremos es que se prenda un led con un pulsador y se apague
el led con el mismo pulsador.
CMCON=7 ; CAMBIAMOS EL PUERTO A COMO DIGITAL
LED VAR PORTB. O ; CAMBIO DE NOMBRE AL PUERTO 3.0 POR LED
PULSADOR VAR PORTA. 0 CAM3IO DE NOMBRE AL PUERTO A.O POR PULSADOR
i ni ci o: ; ETIQUETA PARA SALTO
I F PULSADOR30 THEN ;PREGUNTA SI EL PULSADOR ES 0 ENTONCES
GOSUB AR ; SALTE A LA ETIQUETA AR
GOTO PRENDI DO ; SALTE A LA ETIQUETA PRENDIDO
ENDI F ; TERMINTE LA INSTRUCCION IF
GOTO i ni ci o ; SALTE A INICIO
PRENDI DO: ; ETIQUETA DE SALTO
HI GH LED ; SAQUE 1L POR EL PUERTO 3.0
PREGUNTA: ; ETIQUETA DE SALTC
I F PULSADOR=0 THEN ;PREGUNTA SI EL PULSADOR ES 0 ENTONCES
GOSUB AR ; SALTE A LA ETIQUETA AR
GOTO APAGADO ; SALTE A LA ETIQUETA APAGADO
ENDI F ; TERMINTE LA INSTRUCCION IF
GOTO PREGUNTA ; SALTE A PREGUNTA HASTA QUE PRESIONE NUEVAMENTE EL
; PULSADOR
APAGADO: / ETIQUETA DE SALTO
LOWLED ; SAQUE OL POR EL PUERTO 3.0
GOTO i ni ci o ; SALTE A LA ETIQUETA INICIO
AR: ; ETIQUETA PARA SALTO LLAMADA AR
I F PULSADOR=0 THEN GOTO AR ; SI PULSADOR SIGUE PRESIONADO SALTE A AR
RETURN ; CASO CONTRARIO RETORNE A LA LINEA DONDE SE QUEDO
SND ; TIN DEL PROGRAMA
Provecto 1 Pulsadores. PBP
41
S.C. ' PIC M i c r o c h i p
En el primer proyecto de secuencias se gener una subrutina denominada AR, la cual
permite realizar un antirebote, la misma que indica si el pulsador sigue presionado,
evitando errores a la hora de ingresar un pulso.
A continuacin realizaremos un programa el que permitir incrementar o disminuir la
velocidad en un juego de luces de 2 leds.
CMCON=7 ; CAM3IAMOS EL PUERTO A COMO DIGITAL
LED1 VAR PORTB. O / CAM3IO DE NOMBRE AL PUERTO 3.0 POR LED1
LED2 VAR PORTB. l CAM3IO DE NOMBRE AL PUERTO S.l POR LED2
I NCREMENTAR VAR PORTA. 0 ; CAMBIO DE NOMBRE AL PUERTO A.O POR INCREMENTAR
DI SMI NUI R VAR PORTA. 1 ; CAM3IO DE NOMBRE AL PUERTO A.l POR DISMINUIR
X VAR BYTE ; VARIABLE X CON UN TAMAO DE 255
R VAR BYTE ; VARIABLE R CON UN TAMAO DE 255
X=20 ; INICIALIZAMOS X - 20
I NI CI O: / ETIQUETA PARA SALTO
HI GH LED1 : LOWLED2 ; SECUENCIA DE LUCES
GOSUB TI MER / SALTA A LA ETIQUETA TIMER
LOWLEDl : HI GH LED2 / SECUENCIA DE LUCES
GOSUB TI MER ; SALTA A LA ETIQUETA TIMER
GOTO I NI CI O ; SALTA A LA ETIQUETA INICIO
TI MER: ; ETIQUETA PARA SALTO
I F I NCREMENTAR- 0 THEN GOSUB MAS ; SI INCREMENTARLO SALTA A MAS
I F DI SMI NUI RLO THEN GOSUB MENOS / S I DISMINUIRLO SALTA A MENOS
GOSUB TI M ; SALTA A LA ETIQUETA TIM DONDE SE REALIZARA LA PAUSA
RETURN ; REGRESA A LA LINEA DESPUES DE GOSUB TIMER
TI M: ; ETIQUETA PARA SALTO
FOR R=1 TO X ; LAZO REPETITIVO DESDE R-l HASTA EL VALOR ASIGNADO X
PAUSE 10 f PAUSA DE 10 MILISEGUNDOS
NEXT ; CONTINUA EL LAZO REPETITIVO .HASTA QUE R=X
RETURN ; REGRESA A LA LINEA DESPUES DE GOSUB TIM
MAS: / ETIQUETA PARA SALTO
X=X+10 ; CARGAMOS LA VARIABLE CON X - X i- 10
I F X>150 THEN X=150 ; SI X EXCEDE LOS 150 ENTONCES QUEDESE AHI
RETURN ; REGRESA A LA LINEA DESPUES DE GOSUB MAS
42
S.C. ' PIC Mi cr o c h i p
MENOS: ; ETIQUETA PARA SALTO
X=X- 10 ; CARGAMOS LA VARIABLE CON X*X - 1 0
I F X<10 THEN X=10 ; S I X 3AJA MENOS A 10 ENTONCES QUEDESE AHI
RETURN / REGRESA A LA LINEA DESPUES DE GOSUB MENOS
END ; FIN DEL PROGRAMA
Provecto2 Luces Velocidad Variable. PBP
Como tercer proyecto realizaremos un contador en binario, el que se va a observar en el
puerto B con leds de visualizacin.
r r i s b=0 ; TODO EL PUERTO 3 SERA SALIDA
por t f c=%00000000 ; CARGAMOS AL PUERTO 3 CON 0 0 0 0 0 0 0 0
i ni ci o: ; ETIQUETA PARA SALTO
por t b=por t b+l ; INCREMENTAMOS EL PUERTOB EN 3INARIO Y
; SACAMOS POR EL PUERTO B
PAUSE 500 / PAUSA DE 500 MILISEGUNDOS
GOTO i ni ci o / SALTO A LA ETIQUETA INICIO
END ; FIN DEL PROGRAMA
Contador binario con leds. PBP
Y como ltimo proyecto realizaremos un desplazamiento de leds hacia la izquierda y
hacia la derecha.
- r i sb=0 ; HACEMOS SALIDA TODO EL PUERTO 3
per t . b=%00000001 ; INICIALIZAMOS EL PUERTO 5 CON 00000001
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
r VAR BYTE / VARIABLE r DE UN TAMAO DE 255
i ni ci o: ; ETIQUETA PARA SALTO
FOR r =l TO 7 / LAZO REPETITIVO DESDE r-1 HASTA 7
por r b=pcr - bl ; DESPLAZAR LOS BITS DEL PUERTO 2 1 A 1
; HACIA LA IZQUIERDA
PAUSE 500
NEZT ; CONTINUAR EL LAZO FOR HASTA QUE r - 7
FOR r =l TO 7 / LAZO REPETITIVO DESDE r-1 HASTA 7
por ~b=por t bl ; DESPLAZAR LOS BITS DEL PUERTO B 1 A 1
; HACIA LA DERECHA
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
NEZT ; CONTINUAR EL LAZO FOR HASTA QUE r - 7
SOTO i ni ci o / SALTE A LA ETIQUETA INICIO
END ; FIN DEL PROGRAMA
Desplazamientos. PBP
43
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
$
S.C. ' PIC Mi cr o c h i p
MANEJO DE TECLADOS HEXADECIMALES
Una de las ms grandes aplicaciones de pulsadores est en los teclados, los cuales
permiten al usuario ingresar datos, procesarlos y tener respuestas, por lo que estos
dispositivos electrnicos se encuentran en calculadoras, alarmas residenciales,
comerciales, en los equipos de sonido, en las computadoras, etc. Es decir se encuentran
en casi todo tipo de aparato electrnico.
B
S 0 0 D
S.C. ' PIC
aroooocros
TECLADO HEXADECIMAL COMUN EN LAS TIENDAS ELECTRONICAS
La estructura interna del teclado es la siguiente:
2 - O- A
Como se puede apreciar el teclado consta de 16 pulsadores dispuestos e interconectados
en filas y columnas, dispone de un conector SIL (Single In Line) macho de 8 pines que se
corresponden con las 4 filas y 4 columnas que dispone para realizar el control. Por esta
razn debemos introducirnos en el manejo de una matriz 4*4.
45
S.C. PIC M i c r o c h i p
Una matriz es una tabla rectangular de nmeros, ordenados por filas y columnas. Para
nuestro caso tenemos una matriz con lgica binaria, es decir los datos de la matriz pueden
variar entre OL y 1L.
M
4*4
o o o
0 0 0
o o
o o
o
o
o
o
o
A continuacin se presenta una tabla con el nombre de cada uno de los pulsadores del
teclado y sus coordenadas correspondientes a la matriz 4* 4.
Dgito del Teclado Coordenadas de la
Matriz
Dgito del Teclado Coordenadas de la
Matriz
1 Fila 1, columna 1 6 Fila 2, columna 3
2 Fila 1, columna 2 7 Fila 3, columna 1
3 Fila 1, columna 3 8 Fila 3, columna 2
4 Fila 2, columna 1 9 Fila 3, columna 3
5 Fila 2, columna 2 0 Fila 4, columna 2
A Fila 1, columna 4 C Fila 3, columna 4
B Fila 2, columna 4 D Fila 4, columna 4
Como podemos apreciar, para cada uno de los dgitos del teclado se tiene su respectiva
coordenada, la cual ocuparemos al momento de realizar la parte del control con los
microcontroladores PIC.
Como se ha dicho anteriormente el teclado es una serie de pulsadores conectados entre s.
Por lo que el teclado tambin se lo puede conectar a OL o 1L, adems necesita en su
programacin un antirebote para evitar que los datos sean errneos.
Una vez entendido el manejo interno de este dispositivo electrnico realizaremos la
conexin con el programa Proteus, y la programacin correspondiente para poder
controlarlo. Pasaremos a realizar un programa que permita ingresar datos, y visualizarlos
en un led, el cual se prender varias veces de acuerdo al dgito que se haya presionado en
el teclado.
46
S.C. ' PIC
M i c r o c h i p
- f c
U1
330 R
'T0P!,>*
.ib
01::
lED-YEUCW
TSfT>. . .
RA7/OSC1/CLWN RfiVXV
R/'0/OSC2/CULfT RAU/W
RA2/AN2Arf\SF
RA3/AN3X3WP1
R/WTDCKLOkF2
RBO/INT
R31/RXUT
R32/IX/CK
RB3/CCP1
R84
R85
RB8/T10S0/nCW
RB7/TlCSi
3IC1DFBA.
y.m>.
........................ B
'EDODDDB
3S a
o
i l
O Ds 0*; Ds
t
Manejo de Teclado Hexadecimal. Schematic Pesien
Para sacar un teclado en el proteus, digitamos en la parte de elementos KEYPAD y
seleccionamos SMALLCALC.
Si recordamos, en la parte de pulsadores la conexin a 1L se realizaba mediante una
resistencia de 4,7K conectada a Vcc, y otra parte conectada a tierra para que cuando
exista una pulsacin sta permita ingresar OL.
En el teclado se ha realizado el mismo procedimiento, con la nica diferencia que las
columnas van conectadas a la parte de Vcc por medio de una resistencia de 4,7K y las
filas van conectadas directamente al microcontrolador para por medio de stas poder
censarlas y proceder a preguntar por cada dgito del teclado.
CMCON=7 ; d i g i t a l i z a m o s e l p u e r t o A
X VAR BYTE ; X d e t a ma o d e 2 5 6
R VAR BYTE ; R d e t a ma o d e 2 5 6
LED VAR PORTA.0 ; c a m b i o d e n o mb r e a l p u e r t o A . 0 p o r LED
FI LA_A VAR PORTB.O / c a mb i o d e n o mb r e a l p u e r t o B. O p o r FI LA_A
FI L A B VAR PORTB.l ; c a mb i o d e n o mb r e a l p u e r t o B . l p o r FI LA_B
FI L A C VAR PORTB.2 ; c a mb i o d e n o mb r e a l p u e r t o B . 2 p o r FI LA_C
FI L A D VAR PORTB.3 ; c a mb i o d e n o mb r e a l p u e r t o B . 3 p o r FI LA_D
COL_UNO VAR PORTB.4 ; c a mb i o d e n o mb r e a l p u e r t o B. O p o r COL_UNO
COL DOS VAR PORTB.5 ; c a mb i o d e n o mb r e a l p u e r t o B. O p o r COL_DOS
COL TRE3 VAR PORTB.6 ; c a mb i o d e n o mb r e a l p u e r t o B. O p o r COL_TRES
COL CUATRO VAR PORTB.7 ; c a mb i o d e n o mb r e a l p u e r t o B. O p o r COL_CUATRO
47
S.C. ' PIC
$
M i c r o c h i p
I NI CI O: ; E t i q u e t a p a r a s a l t o
I.OW FILA_A ; c e ns amos l a FILA A
I F COL_UNO=0 THEN X=7 : GOSUB AR : GOSUB PRENDER ; S i l a
; c ol umna uno e s p r e s i o n a d a c e r q u e a x c on 7 s a l t e a l a n t i
; r e b o t e y s a l t e a p r e n d e r e l l e d 7 v e c e s .
I F COL_DOS=0 THEN X=8 : GOSUB AR : GOSUB PRENDER
I F COL_TRE3=0 THEN X=9 : GOSUB AR : GOSUB PRENDER
I F COL_CUATRO=0 THEN X=0 : GOSUB AR : GOSUB PRENDER
HIGH FILA_A f f i n d e l c e n s o de l e FI LA A
LOW FILA_B ; c e ns amos l a FILA B
I F COL_UNO=0 THEN GOSUB AR : X=4 : GOSUB PRENDER
I F COL_DOS=0 THEN GOSUB AR : X=5 : GOSUB PRENDER
I F COL_TRES=0 THEN GOSUB AR : 1=6 : GOSUB PRENDER
I F COL_CUATRO=0 THEN GOSUB AR : X=0 : GOSUB PRENDER
HIGH FIIiA_B ; f i n d e l c e n s o de l e FI LA B
LOW FILA_C ; c e ns amos l a FI LA C
I F COL_UNO=CI THEN GOSUB AR : X=1 : GOSUB PRENDER
I F C0L_D03= THEH GOSUB AR : X=2 : GOSUB PRENDER
I F COL_TRES=D THEN GOSUB AR : X=3 : GOSUB PRENDER
I F COL_CUATRO= THEN GOSUB AR : X=0 : GOSUB PRENDER
HIGH FILA_C ; f i n d e l c e n s o d e l e FI LA C
LOW FILA_D ; c e n s e mo s l e FI LA D
I F COL_UNO=D THEN GOSUB AR : X=0 : GOSUB PRENDER
I F COL_D03=0 THEH GOSUB AR : X=0 : GOSUB PRENDER
I F COL_TRES=0 THEN GOSUB AR : X=0 : GOSUB PRENDER
I F COL_CUATRO=C THEH GOSUB AR : X=0 : GOSUB PRENDER
HIGH FILA_D ; f i n d e l c e n s o de l e FI LA D
GOTO I NI CI O ; s e l t o e l a e t i q u e z a i n i c i o
PRENDER: ; e t i q u e t a p a r a s a l t o
FOR R=1 TO X ; l a z o FOR d e s d e r - 1 h a s t a e l v a l o r d e X
HIGH LED ; p r e n d e r e l LED
PAUSE 500 ; p a u s e de 1 / 2 s e g u n d o
LOW LED ; a p e g a r e l LED
PAUSE 500 ; p a u s a de 1 / 2 s e g u n d o
NEXT ; c o n t i n u a r e l l a z o FOR h a s t a que r sea i g u a l a X
RETURN ; r e t o r n e a l a l i n e a d o n d e s e que do
AR: ; e t i q u e t a p a r a s a l t o d o n d e s e g e n e r a r e l a n t i r e b o t e d e l t e c l a d o
I F COL_UNO=0 THEN GOTO AR ; s i l a c ol u mn a UNO s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_DO3=0 THEN GOTO AR ; s i l a c ol u mn a DOS s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_TRES=0 THEN GOTO AR ; s i l a c ol umna TRES s i g u e s i e n d o p r e s i o n a d a
; sai te a AR
I F COL_CUATRO=0 THEN GOTO AR ; s i l e c ol u mn a CUATRO s i g u e s i e n d o p r e s i o n e :
; s a l t e a AR
RETURN ; r e t o r n e a l a l i n e a don d e s e que do
Manejo de Teclado Hexadecimal. PBP
48
S.C. ' PIC
$
M i c r o c h i p
Como se puede apreciar en el programa, el barrido que se realiza en el teclado es
sumamente rpido, ya que no generamos ninguna pausa en el mismo. De esta manera
logramos que el microcontrolador genere un dato por cada una de las teclas presionadas,
en ste caso dar un valor a X de acuerdo al nmero de dgito pulsado, el cual se cargar
en el lazo FOR y generar X veces el parpadeo del led.
Tambin se puede notar que el antirebote para el teclado se forma con las 4 columnas del
mismo, obteniendo datos exactos.
DISPLAY s
Una de las aplicaciones de los leds se encuentra en los displays, que son dispositivos
electrnicos que permiten visualizar datos en forma de nmeros, letras o palabras si se los
coloca uno tras otro, permitiendo al usuario identificar lugares, contar equipos, etc.
Existen displays en el mercado de varios tipos: displays 7*5, displays de 7 segmentos tipo
nodo o ctodo comn, entre otros. En este caso empezaremos estudiando los displays de
7 segmentos.
Un display de 7 segmentos quiere decir que consta de 7 leds internos los cuales se
encuentran conectados de tal manera que permiten al usuario visualizar nmeros. Cada
uno de los segmentos tiene su respectivo nombre As:
b
E structura de ctodo
comn
Ctodo comn significa que el ctodo
de cada uno de los leds que
conforman el display se encuentra
conectado entre s, y cada uno de los
segmentos se prender con niveles de
voltaje altos es decir con 1L.
nodo comn significa que el nodo
de cada uno de los leds que
conforman el display se encuentra
conectado entre s, y cada uno de los
segmentos se prender con niveles de
voltaje bajos es decir con OL.
49
S.C. ' PIC
$
M i c r o c h i p
Para sacar un display en el Proteus, digitamos en la parte de elementos Display y
seleccionamos el que dice display active.
Realizaremos una prctica que permita visualizar los nmeros del 0 al 9 en un display de
7 segmentos tipo nodo comn. Lo primero que se debe hacer es generar una tabla para
identificar cual es la lgica binaria para encender cada uno de los segmentos que
identificar cada nmero.
Nmero Nmero g f e d c b a
Decimal Binario
Cero 0000 1 0 0 0 0 0 0
Uno 0001 1 1 1 1 0 0 1
Dos 0010 0 1 0 0 1 0 0
Tres 0011 0 1 1 0 0 0 0
Cuatro 0100 0 0 1 1 0 0 1
Cinco 0101 0 0 1 0 0 1 0
Seis 0110 0 0 0 0 0 1 1
Siete 0111 1 1 1 1 0 0 0
Ocho 1000 0 0 0 0 0 0 0
Nueve 1001 0 0 1 1 0 0 0
a
Como se puede apreciar en la tabla los segmentos se encendern con niveles de voltaje
bajos es decir con OL por que estamos usando un display tipo nodo comn.
Por lo tanto el diagrama en el proteus sera as:
U1
16
15*
RA7/OSC1/CLK1M RAO/ANO
R A6/0S C2/CLK0UT RA1/AN1
RA2/AN2/VREF
RA5/MCLR RA3/AN3/CMP1
RA4rrOCKl/CMP2
RB0/INT
RQ1/RXTOT
RB2/TWCK
RB3/CCP1
RB4
RB5
RBS/T10S O /T 1CKI
RB7/T10SI
17
* 13
1
2
3
3
no
11
112
H3
PI C16F628A
u
I I
Disnlav 7 segmentos. Schematic Pesien
50
S.C. ' PIC
M i c r o c h i p
Las resistencias que se ocupa son de 330 ohmios igual como se ocupaba en los leds, ya
que stas sirven para evitar que superen el voltaje permitido y sufran daos.
A continuacin presentamos la programacin correspondiente para esta prctica.
TRI SB=*0000000 ; Hace mos s a l i d a l o s b i t s
; b. 6 , b. 5 , b . 4 , b . 3 , b . 2 , b . l , b. O
I NI CI O: ; e t i q u e t a p a r a s a l t o
PORTB=%1000000 f
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 0
PAUSE 500
/
p a u s a de 1 / 2 s e g u n d o
PORTB=*1111001
r
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 1
PAUSE 500
r
p a u s a d e 1 / 2 s e g u n d o
PORTB=0100100
/
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 2
PAUSE 500
/
p a u s a d e 1 / 2 s e g u n d o
PORTB=%0110000
/
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 3
PAUSE 500
f
p a u s a d e 1 / 2 s e g u n d o
PORTB=10011001 /'
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 4
PAUSE 500 / p a u s a d e 1 / 2 s e g u n d o
PORTB=*0010010
/
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 5
PAUSE 500
/
p a u s a de 1 / 2 s e g u n d o
PORTB=S0000011
r
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 6
PAUSE 500
f
p a u s a d e 1 / 2 s e g u n d o
PORTB=*1111000
r
s a c a mo s e l c o d i g o d e l a t a b l a a n t e r i o r p a r a e l 7
PAUSE 500
r
p a u s a d e 1 / 2 s e g u n d o
PORTB=0000000
/
s a c a mo s e l c o d i g o de l a t a b l a a n t e r i o r p a r a e l 8
PAUSE 500
/
p a u s a d e 1 / 2 s e g u n d o
PORTB=*0011000
r
s a c a mo s e l c o d i g o d e l a t a b l a a n t e r i o r p a r a e l 9
PAUSE 500
/
p a u s a d e 1 / 2 s e g u n d o
GOTO I NI CI O ; s a l t a a l a e t i q u e t a i n i c i o
DISPLAY 7SEGMENTOS. PBP
Lo nico que se ha realizado en el programa es copiar el cdigo para cada uno de los
nmeros decimales que se realiz anteriormente.
Otra manera de visualizar nmeros en un display es mediante el circuito integrado 7447
si el display es nodo comn o el 7448 si el display es ctodo comn. Lo que realizan
estos integrados es convertir un cdigo binario de entrada en el cdigo de salida para cada
uno de los nmeros que se encuentran en la tabla para poder visualizarlos.
Para sacar el 7447 en el proteus digitamos en la parte de elementos 74LS47 y procedemos
a armar el siguiente circuito.
51
S.C. ' PIC
f f
M i c r o c h i p
U2
1SJL
15
RA7/DSC1OK1N RAO/ANO
RA6/OSC2CLKOUT RA1/AN1
RA2JANirv33:
Ras mc l r R Aawmo.w
RA4/TOOaCVF2
RBCjM
RBIjRXjOT
RS2/TXXT<
RS2JCCP1
R34
RB5
r bs / n oso/ncto
R97A10SI
FSC16f62eA
TXT>
J 1L
i
-12-
3
5
-
7*
7 1
5 J i
5
6*
2.

JLLL . .
5C
22. .
_3JC
211 . .
U1
A QA
s QB
c OC
a QO
BREO GE
RBI <SF
LT ao
<TEXT
Display 74LS47. Schematic Pesien
Como se puede apreciar lo nico que se ha incrementado es el integrado a la salida de'.
PIC, en la programacin se debe manejar solamente los 4 bits del puerto B, es decir del
B.O hasta el B.3.
Tr i sb=&0000 ; Hacemos salida a los bits
; B. 3, B.2, B.1, B.O
R VAR BYTE ; R de tamao de 256
I ni ci o: ; etiqueta de salto llamada inicio
FOR R=G TO 9 ; lazo FOR desde R=0 hasta 9
PORTB=R ; el puerto B se carga con la variable R
PAUSE 500 ; pausa de 1/2 segundo
HEXT ; continuar el lazo FOR hasta que R=9
GOTO I n i c i o ; salte a la etiqueta Inicio.
Disnlav 74LS47. PBP
Lo que se realiz en el programa es un contador binario desde 0 hasta 9, similar a!
realizado en los proyectos con pulsadores y leds.
52
S.C. ' PIC
$
M i c r o c h i p
PROYECTOS CON TECLADOS Y DISPLAYS
El primer proyecto consistir en manejar un teclado hexadecimal y visualizar los datos en
un display, es decir, de acuerdo al dgito presionado se visualizar el nmero en un
display de 7 segmentos.
H000'
H 0 0 0 '
B 0 0 0
O
[ W
i w : f VR3 T ]R 4::
4k7 <*7 4k7 <*7
y T.=A<iJ T4=xr
~^c
A QA
B B
C QC
D 00
Bt/RBO oe
RBI QF
LT Q0
74LS47
U1
17
1B
1
_?
10
RAO/ANO RA7/0SC1/CLKIN
RA1/AN1 RA2/0SC2/CLK0UT
RA2/AN2/VREF
RA3/AW3/CMP1 RAS/MCLR
RA4/T0CKI/CMP2
BO/INT
RB1/RX/DT
RB2/TX/CK
RB3fCCP1
RB4
RB5
R60/T10SCVT1CW
RB7/T10S1
JL15.
PIC1QF82SA.
- TjrXT>
Provecto1 Teclado Display. Schematic Desist
En el diagrama se puede apreciar que se est manejando todos los bits del puerto B para
el teclado y los 4 primeros bits del puerto A para el display, por lo que la programacin
sera la siguiente:
CMC0N=7
TrisA =S0000
X VAR BYTE
R VAR BYTE
Hace mos s a l i d a a l o s b i t s
A . 3 , A. 2 , A. t , . O
x de t a mao de 256
R de t a mao de 256
x=0 i n i c i a l i z a m o s l a v a r i a b l e k c on c e r o
SOSUB VISUALIZAR
FILA_A VAR PORTB.O
?ILA_B VAR PORTB.l
?ILA_C VAR PORTB.2
FILA D VAR PORTB.3
s a l t e a v i s u a l i z a r e l nmer o c e r o
; c a mbi o de nombr e a l p u e r t o B. O p o r FI LA A
; c a mbi o de nombr e a l p u e r t o B . l p o r FILA_B
; c a mbi o de nombr e a l p u e r t o B . 2 p o r FI LA C
; c a mb i o de nombr e a l p u e r t o B . 3 p o r FI LA D
COL_UNO VAR PORTB.4 ; c amb i o de nombr e a l p u e r t o B. O p o r COL UNO
COL_DOS VAR PORTB.5 ; c amb i o d e nombr e a l p u e r t o B. O p o r COL_DOS
COL_TRE3 VAR PORTB.6 f c amb i o de nombr e a l p u e r t o B. O p o r COL_TRES
COL_CUATRO VAR PORTB.7 ; c amb i o de nombr e a l p u e r t o B. O p o r COL CUATRO
----------------------------------------------------
53

$
S.C. ' PI C M i c r o c h i p
I NI CI O: ; E t i q u e t a p a r a s a l t o
LOW FILA_A ; c e n s a mo s l a FI LA A
I F COL_UNO=0 THEH x =l : GOSUB VISUALIZAR ; S i l a
; c o l u mn a uno e s p r e s i o n a d a c a r q u e a x c o n 7 s a l t e a v i s u a l i z a r
; e l d a t o
I F C0L_D030 THEH x=8 : GOSUB VISUALIZAR
I F COL_TRE3=0 THEH x=9 : GOSUB VISUALIZAR
I F COL_CUATRO=0 THEH jc=D : GOSUB VISUALIZAR
HIGH FILA_A ; f i n d e l c e n s o de l a FI LA A
LOW FILA_B c e n s a mo s l a FILA B
I F COL_UNO=Q THEH x=4 : GOSUB VISUALIZAR
I F COL_D03=0 THEH x=5 : GOSUB VISUALIZAR
I F COL_TRES=0 THEH x=6 : GOSUB VISUALIZAR
I F COL_CUATRO=0 THEH x=0 : GOSUB VISUALIZAR
HIGH FILA_B ; f i n d e l c e n s o de l a FI LA B
LOW FILA_C ; c e n s a mo s l a FI LA C
I F COL_UNO=0 THEH x=l : GOSUB VISUALIZAR
I F COL_DOS=0 THEH x=2 : GOSUB VISUALIZAR
I F COL_TRES=0 THEH x=3 : GOSUB VISUALIZAR
I F COL_CUATRO= THEH x=0 : GOSUB VISUALIZAR
HIGH FILA_C ; f i n d e l cens o de l a FI LA C
LOW FILA_D ; c e n s a mo s l e FI LA D
I F COL_UNO=D THEH X=0 : GOSUB VISUALIZAR
I F COL_DO3=0 THEH x=D : GOSUB VISUALIZAR
I F COL_TRE3=0 THEH x=0 : GOSUB VISUALIZAR
I F COL_CUATRO=G THEH x=C : GOSUB VISUALIZAR
HIGH FILA_D f f i n d e l c e n s o d e l e FI LA D
GOTO I N I C I O ; salto a la etiqueta inicio
VISUALIZAR: ; etiqueta de salto llamada visualizar
PORTA=x ; e l p u e r t o A s e c a r g a c o n l a v a r i a b l e x
I F COL_UNO=0 THEH GOTO VISUALIZAR
I F COL_D03=0 THEH GOTO VISUALIZAR
I F COL_TRES0 THEH GOTO VISUALIZAR
I F COL_CUATRO=0 THEN GOTO VI SUALI ZAR
RETURN / r e t o r n d e a d o n d e s e q u e d o
Provecto 1 teclados disp!av.PBP
54

$
S.C. ' PIC Mi c r o c h i p
El segundo proyecto consiste en realizar un dado digital, al presionar un pulsador el
display empezar a recorrer los nmeros del dado que varan de 1a 6 y cuando el usuario
suelte el pulsador aparecer el dgito en el display.
El diagrama en el proteus para este proyecto es:
R1
4k7
TEXTv
U2
j a
j ai .
RA7/OSC1/CL.KIN RAO/ANO
RAB/OSC2/CLKOUT RA1/AN1
_____ RA2/AN2A/REF
RA5/MCLR RA3/AN3/CMP1
RA4/T0CKI/CMP2
RBO/INT
RB1/RX/DT
RB2/TX/CK
RB3/CCP1
RB4
RB5
R98/T1OSO/T1CW
RB7/T10SI
17.
PIC10FS2BA
TfV .
U1
8 7"
*7 1
8 2-
*8 B
10 .
^
m . .
JU2. .
13

A QA
B OB
C QC
D QD
BI/RBO QE
RBI QF
LT QG
Dado Digital. Schematic Pesien
La programacin para el Dado es:
CMCON=7 ; digitalizamos el puerto A
PULSADOR VAR PORTA.0 ; cambio de nombre a l bit A. O por PULSADOR
TRI SB=0000 ; Hace salidas al p u e r t o B
R VAR BYTE ; R de tamao de 256
R=1 ; inicializamos a R con L
GOSUB VI SUALI ZAR ; Salta a la etiqueta a visualizar el contenido de R
I NI CI O: ; etiqueta para salto
I F PULSADOR=0 THEN GOTO ENCENDI DO ; si el pulsador es presionado salte
; a encendido
GOTO I NI CI O ; caso contrario salte a la etiqueta inicio
55
S.C. ' PIC M i c r o c h i p
ENCENDIDO: ; e t i q u e t a p a r a s a l t o
R=R+1 ; c a r g u e l a v a r i a b l e R c on R+l
I F R>6 THEN R=1 ; s i R p a s a de 6 e n t o n c e s c a r g u e a R c on 1 y c o n t i n u
GOSUB VISUALIZAR ; sal te a l a e t i q u e t a VISUALI ZAR
I F PULSADOR=0 THEH GOTO ENCENDIDO ; si el p u l s a d o r e s p r e s i o n a d o sal :*
; a e n c e n d i d o c a s o c o n t r a r i o
portb=R ; s a q u e p o r e l p u e r t o B en b i n a r i o l o que c o n t i e n e R
GOTO I NI CI O ; s a l t e a i n i c i o
VISUALIZAR: ; e t i q u e t a p a r a s a l t o
PORTB=R ; s a q u e p o r e l p u e r t o B en b i n a r i o l o q u e c o n t i e n e R
RETURN ; r e t o r n e a l a l n e a donde s e que do.
Dado disital. PBP
Y como tercer y ltimo proyecto se realizar un contador digital desde 00 hasta 9C
utilizando un solo decodificador a 7 segmentos.
El diagrama en el proteus es:
Como se puede apreciar en el diagrama, los pines comunes de los displays se encuentren
conectados a 2 bits del microcontrolador, el cual activar primeramente un display ,
luego activar el otro display.
Si la pausa entre la activacin del primer display con el segundo es muy pequea (d.r:
milisegundos), el ojo humano visualizar como si estuvieran prendidos los 2 displays ^
mismo tiempo.
56
S.C. ' PIC
$
M i c r o c h i p
La programacin para este proyecto es:
CMCON=7 ; Digitaliza el puerto -4
TRI SB^SOOOO ; Hace salida los 4 primeros bits del puerto B
TRI SA=$00 ; Hace salida los 2 primeros bits del puerto A
X VAR BYTE ; Variable X de tamao de 256
Y VAR BYTE ; Variable Y de tamao de 256
R VAR BYTE ; Variable P. de tamao de 256
I NI CI O: ; Etiqueta para salto
FOR x=0 TO 9 ; Lazo FOR para las decenas
FOR Y=0 TO 9 ; Lazo FOR para las unidades
FOR R=1 TO 50 ; Lazo FOR para generar pausas entre
; la visualizacin del primer nmero con el segundo
; nimero
PORTA=$01 ; Activa las decenas
PORTBX ; Envia por el puerto B lo que contiene X
PAUSE 10 ; Pausa entre el primer display y el
; segundo display
PORTA=S10 ; Activa las unidades
POP. TB=Y ; Envia por el puerto B lo que contiene Y
PAUSE 10 Pausa entre el pr i mer display y el
; segundo display
NEXT ; continu con el lazo for hasta que R=50
NEXT ; continu con el lazo for hasta que Y - 9
HEXT ; continu con el lazo for hasta que X=9
GOTO I NI CI O , Salte a la etiqueta INICIO
Con/ador 00 a 99. PBP
57
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
S.C. ' PIC M i c r o c h i p
RELES DE 12V
Los rels permiten al usuario conectar varios equipos de potencia, como son motores de
corriente alterna, bombas de agua, focos de 110V, etc. Es decir podemos controlar
circuitos de alta potencia, iniciando la automatizacin de diferentes procesos a nivel
Industrial.
El rel es un dispositivo electrnico que internamente posee una bobina la cual al
energizarla adecuadamente producir un campo magntico, haciendo que los contactos
internos cambien de estado.
Para cargar un rel a la hoja del proteus debemos introducir la palabra RELAY en la
parte de elementos, teniendo en cuenta que se debe seleccionar el rel que dice active
para poder realizar la simulacin. La manera de conectar un rel a un microcontrolador es
la siguiente:
Como se puede apreciar el rel que estamos ocupando es un rel de 12V, por lo que
necesariamente necesita una fuente de 12V para poder funcionar. A ms de ello se est
colocando un led, en el mismo puerto de salida para el rel, que permitir visualizar si el
Rel se encuentra activado o no, ya que en la realidad no vamos a visualizar como en la
simulacin que los contactos cambian de estado. Sino se escuchar un sonido alertando el
cambio de estado de los mismos.
S.C. ' PIC
$
M i c r o c h i p
Continuando con la conexin del rel, se puede apreciar que se est colocando un diodo
1N4007, el cual permite proteger al microcontrolador. Adems de ello se ocupa un
transistor 2N3904 el cual funciona en corte y saturacin, permitiendo energizar o no
energizar la bobina del rel de 12V.
Como se ocupar una fuente de 12V, es necesario tener en cuenta que el
microcontrolador PIC se polariza con niveles de voltaje que oscilan entre 3,5V hasta
5,5V, por esta razn realizaremos la conexin para oc-par una sola fuente de 12V, y con
una salida de 5V para colocarla en el microcontro que se est ocupando.
12V
U1
~5Cf
-T F
L_
5V
GND
Fuente de 121' y 5t. Scktmniic Desisn
En el circuito de la figura se est ocupando un reu!^J or de voltaje (7805), el cual
permite bajar el nivel de voltaje de entrada a 5V, : se necesitara bajar el nivel de voltaje
a 9V se debera ocupar un regulador de voltaje ~S j 9). y si en un caso se necesitara un
nivel de voltaje de -12V se debera ocupar un (7912). Es decir la serie 78XX permite
regular el voltaje de entrada a un voltaje positivo de acuerdo al nivel requerido por el
usuario, y la serie 79XX permite regular el voltaje de entrada a un nivel de voltaje
negativo de acuerdo a las necesidades del usuario.
A continuacin realizaremos un programa que permita accionar un rel por medio de un
pulsador y poder visualizar el cambio de contactos que ofrece este dispositivo
electrnico.
60
$
S.C. ' PIC Mi cr o ch i p
Conexin de un Rel con Pulsador. Schematic Pesien
En la figura podemos apreciar que hemos aadido un pulsador conectado a 1L en el BIT
A.O del puerto A.
CMCON=7 ; CAMBIAMOS EL PUERTO A COMO DI GI TAL
PULSADOR VAR. PORTA. 0 ; CAMBIO DE NOMBRE AL B I T A. O POR PULSADOR
RELE VAR PORTB. G ; CAMBIO DE NOMBRE AL B I T B. O POR RELE
I NI CI O: i ETI QUETA PARA SALTO
I F PULSADOR=0 THEH HI GH RELE : GOTO I NI CI O ; S I EL PULSADOR ES
; PRESI ONADO, PRENDA EL RELE, Y SALTE A I N I C I O
LOWRELE ; S I DEJA DE SER PULSADOR ENTONCES APAGUE EL RELE
GOTO I NI CI O ; SALTE A XJVXCIO
Manejo Rel. PBP
Como se puede notar en el programa lo nico que se ha realizado es encender o apagar un
BIT del puerto B, el que se lo ha definido con el nombre de rel. El pulsador de entrada,
se lo puede cambiar por finales de carrera, sensores magnticos, sensores de movimiento,
etc. Con la finalidad de obtener un proceso automtico.
61
S.C. ' PIC
$
M i c r o c h i p
DISEO Y CONSTRUCCION DE l ' \ PLC DE 8 ENTRADAS
Y 8 SALIDAS CONTROL ADO POR UN
MICROCONTROLADOR PIC
16F628A
Un PLC (Controlador Lgico Programable) es _n disr>:s:tivo electrnico que permite
realizar varias funciones a nivel industrial Actualmente t este una gran variedad de
empresas que se encuentran fabricando este t:~: ce instrumentos, que se basa
esencialmente en un microcontrolador y diferer.:e; re les tntem :s que permiten el cambio
de contactos de acuerdo a una o varias seales de er.trccu.
A nivel industrial es muy utilizado para a u t d i f e r e n t e s procesos, teniendo
ventajas como el suprimir espacio al no tener :_e trabajar con armarios llenos de
RELAYS de alta potencia que ocupaban cuartos enter: spara ese propsito.
Como se ha dicho anteriormente el PLC consta d:- un m:: controlador interno, el cual
debe ser necesariamente programado para su tu : : :-cruer.tt. por esta razn los PLC
poseen diferentes lenguajes de programacin. tc.-ltcnc: al -suario obtener el proceso
que l requiera. La nica desventaja que ste pose; es s_ a.:: : :stc en el mercado.
En nuestro caso realizaremos un PLC controlad: : :n un ere controlador PIC 16F628A,
el cual tendr internamente 8 rels para realizar las sil das; tendr 8 entradas conectadas
a 1L para realizar su programacin.
A continuacin presentamos la lista de materiales retesar. :s ri ra realizar un PLC de 8
entradas y 8 salidas.
LISTA DE MATERIALES
16 Resistencias de 4t7K A % W.
16 Resistencias de 330 ohmios
8 leds de alto brillo color rojo para las erraras
8 leds de alto brillo color azul para las sa das
8 horneras de 3 entradas para las salidas de
4 horneras de 3 entradas para las entradas ce D_C
- 8 diodos 1N4007
8 transistores 2N3904
- 1PI C 16F628A
Placa de circuito impreso de S.C. ' PI C PLC 23-02
62
S.C. ' PIC
$
M i c r o c h i p
DIAGRAMA DE CONEXIN
PLC 8 ENTRADAS Y 8 SALIDAS. Schematic Pesien
Como se puede apreciar en el diagrama, se ha utilizado leds de visualizacin tanto a la
entrada como a la salida, para indicar que la entrada est activa y que el rel se ha
accionado. A ms de ello se est ocupando pulsadores como referencia de entrada, los
cuales pueden cambiarse por sensores como ya se ha explicado anteriormente.
Noten tambin que se ha suprimido los diodos 1N4007 que se deben conectar en la
entrada de polarizacin de cada rel, esto se debe a que en simulacin no existe el
problema que se pueda quemar el microcontrolador, pero en la realidad es totalmente
necesario utilizar este diodo de proteccin.
Ahora realizaremos una aplicacin con este dispositivo, que consistir en lo siguiente:
Por medio de una entrada del PLC se accionen todas las salidas, pase un tiempo de 10
segundos y empiece a accionar los rels uno por uno hacia abajo.
63
S.C. ' PIC
$
Mic r o c hip
0 devi ce INTRC_OSC_NOCLKOUT ; OCUPAMOS EL OSCILADOR INTERNO
@DEVICE MCLR_OFF / OCUPAMOS EL MASTER CLEAR INTERNO
@devi ce BOD_OFF ; APAGAMOS EL BODEN DE CONSUMO
CMCON=7 ; DI CI TALI ZAMOS EL PUERTO A
I NI VAR PORTA.0; Cambi o de nombr e a l B I T A. O p e r I N I
TRISB=Q ; Hac e s a l i d a s a l p u e r t o B d o n d e s e e n c u e n t r a e l r e l
SALIDAS VAR PORTB ; c a mb i o d e nombr e a l p u e r t o B p o r s a l i d a s
SALIDAS=0 ; i n i c i a l i z a s a l i d a s c o n c e r o
R VAR BYTE ; R de t a ma o de 256
I NI CI O: ; e t i q u e t a p a r a s a l t o
I F I N1=1 THEH GOTO ENCENDIDO ; s i l a e n t r a d a e s p r e s i o n a d a e n t o n c e s
; s a l t e a l a e t i q u e t a ENCENDIDO
GOTO I NI CI O ; c a s o c o n t r a r i o s a l t e a l a e t i q u e t a I NI CI O
ENCENDIDO: ; e t i q u e t a p a r a s a l t o
SAL I DAS=511111111 } Todo e l p u e r t o B c a r g u e c o n 1L
PAUSE 10000 ; p a u s a de LO s e g u n d o s
SAL I DAS=S00000001 ; z n i c z . a l i . z o e l p u e r t o 3 c o n 00000001
PAUSE 500 ; p a u s a de 1 / 2 s s g u r . i o
LAZO: ; E t i q u e t a p a r a s a l t o
FOPv ?=1 TO 7 ; l a z o r s p e z z z i v o d e s d e R=l h a s t a 7
SA L I DAS=3AL irA SI ; DES PLAZAR LOS BI T S DEL PUERTO A 1 A 1
PAUSE 5Q0 ; p a u s a de 1 / 2 s e g u n d o
HEXT ; c o n t i n e c on s i l a z o r e p e t i t i v o h a s t a que R- 7
SALIDAS=QQ0CQCCl ; z n i c i a l i z o e l p u e r t o B c o n 00000001
PAUSE 500 ; p a u s a de 1 / 2 s e g u n d o
GOTO LAZO ; s a l t e a l a e t i q u e t a LAZO
Aplicacin PLC-0' PBP
Como se puede apreciar en la programacin se a ocupado lo aprendido anteriormente, se
ha realizando secuencias a las salidas, de acuerdo a lo que se pide en la aplicacin. Noten
que la programacin va directamente al microcontrolador, ya que ste es la cabeza del
PLC.
64
$
S.C. ' PIC Mi cr o c h i p
PROYECTOS CON TECLADOS Y RELES DE 12V
El primer proyecto consiste en realizar una cerradura electrnica con una clave que se
guardar en la memoria FLASH que posee el microcontrolador PIC 16F628A.
La Memoria flash es una forma evolucionada de la memoria EEPROM que permite que
mltiples posiciones de memoria sean escritas o borradas en una misma operacin de
programacin mediante impulsos elctricos, frente a las anteriores que slo permite
escribir o borrar una nica celda cada vez. Por ello, flash permite funcionar a velocidades
muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de
esta memoria al mismo tiempo.
Las memorias flash son de tipo no voltil, esto es, la informacin que almacena no se
pierde en cuanto se desconecta de la corriente, una caracterstica muy valorada para la
multitud de usos en los que se emplea este tipo de memoria.
A continuacin presentamos el diagrama esquemtico para este proyecto.
02
Cerradura Digital MEMORIA FLASH. Schematic Pesien
65
S.C. ' PIC
$
M i c r o c h i p
La programacin para este proyecto es:
CMCOrF=7
X VAR BYTE ; X de t amao de 256
R VAR BYTE ; R de t amao d e 256
FILA__A
VAR PORTB. 0 ; c amb i o de nombr e a l p u e r t o 3 . 0 p o r FI LA A
FILA__B VAR PORTB.1 ; c amb i o de nombr e a l p u e r t o 3 . 1 p o r FI LA B
FILA__c
VAR PORTB.2 ; c amb i o de nombr e a i p u e r t o B . 2 p o r FILA_ C
FILA__D
VAR PORTB.3 ; c amb i o de nombr e a i p u e r t o a . 3 p o r FILA D
COL_UNO VAR PORTB.4 ; c a mb i o de nombr e a i p u e r z o B. O p o r COL_UNO
COI DOS VAR PORTB.5 ; c a mb i o de nombr e a l p u e r t o B. O p o r COL_DOS
COL_TRE3 VAR PORTB.6 ; c amb i o de nombr e al p u e r t o B. O p o r COL_TRES
COL_CUATRO VAR PORTB.7 ; c a mb i o de nombr e a l p u e r t o B. O p o r COL_CUATRO
RELE VAR PORTA.0 ; CAMBIO DE NOMBRE AL B I T A. O POR RELE
LED VAR PORTA.1 CAMBIO DE NCMERE AL B I T . 1 POR LED
I NI CI O: ; E t i q u e t a p a r a s a l t o
GOSUB TECLADO ,* S a l t e a l a e t i q u e z * TECLADO y r e t o r n e
; c o n un v a l o r e n l a v a r i a b l e X
I F X<5 OR X>5 THEH GOTO PREG2 ; c a mp a r e s i e s a v a r i a b l e e s
; i g u a l a 5 e n t o n c e s c o n t i n u c a s c c o n t r a r i o s a l t e a PREG2
GOSUB TECLADO
I F X<2 OR X>2 THEH GOTO ??_SS3 ; z z mp a r e si. e s a v a r i a b l e e s
; i g u a l a 2 e n z z n c s s z z : t t i c u e c a s c c o n t r a r i o s a l t e a PREG3
GOSUB TECLADO
I F X<6 OR X>6 THEH GOTO PRES4 ; c o mp a r e si e s a v a r i a b l e e s
; i g u a l a 6 e n t o n c e s c z r . z i r . s , c a s c c o n t r a r i o s a l t e a PREG4
GOSUB TECLADO
I F X<9 OR X>9 THEH GOTO ALAPJ A ; c o mp a r e s i e s a v a r i a b l e e s
; i g u a l a 9 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a ALARMA
HIGH RELE ; S i d g i t o l a CLAVE 5 2 6 5 e n t o n c e s a b r a l a p u e r t a
; ( e n c i e n d a e l RELEJ
PAUSE 5000 ; p a u s a d e 5 s e g u n d o s
LOW RELE ; c i e r r e l a p u e r t a ( a p a g u e e l RELE)
SOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
P R E G2: ; e t i q u e t a p a r a s a l t o
GOSUB TECL ADO
PR E G3: ; e t i q u e t a pa r - a s a l t o
GOSUB TECL ADO
P R E G4: ; e t i q u e t a p a r a s a l t o
GOSUB TECL ADO
ALARMA: ; e t i q u e t a pa r - a s a l t o
66
S.C. ' PIC
$
M i c r o c h i p
ALARMA: / e t i q u e t a p a r a s a l t o
FOR R=1 XO 10 / l a z o FOR d e s d e R=l h a s t a 10
HIGH LED / e n c i e n d a e l LED
PAUSE 200 / p a u s a d e 200ms
LOW LED ; a p a g u e e l LED
PAUSE 120 / p a u s a d e 120ms
HEXT ; c o n t i n u e l l a z o FOR h a s t a q u e R s e a i g u a l a 10
GOTO I NI CI O / s a l t e a l a e t i q u e t a XNXCXO
TECLADO: ; E t i q u e t a p a r a s a l t o
IOW FI L A_A / c e n s a m o s l a FI LA A
I F COL_UNO=0 THEH X=7 : GOSUB AR : RETURH/ S i l a
/ c o l u m n a u n o e s p r e s i o n a d a c a r q u e a x c o n 7 s a l t e a l a n t i
/ r e b o t e y RETORNE
I F COL_DOS=0 THEH X=8 : GOSUB AR : RETURH
I F COL_TRE 3=0 THEH X=9 : GOSUB AR : RETURH
I F COL _CUA TRO=a THEH X=10 : GOSUB AR : RETURH
HIGH FI L A_A / f i n d e l c e n s o d e l a FI LA A
LOW FI L A_A / c e n s a mo s l a FI LA A
I F COL_UNO=0 THEH X=7 : GOSUB AR : RETURH/ S i l a
/ c o l u mn a u n o e s p r e s i o n a d a c a r q u e a x c o n 7 s a l t e a l a n t i
/ r e b o t e y RETORNE
I F COL_DGS0 THEH X=8 : GOSUB AR : RETURH
I F COL_TRE30 THEH X=9 : GOSUB AR : RETURH
I F COL_CUATRO=0 THEH X=10 : GOSUB AR : RETURH
HIGH FI L A_A / f i n d e l c e n s o d e l a FI LA A
LOW FI L A_B / c e n s a mo s l a FI LA B
I F COL_UNO=0 THEH GOSUB AR X=4 : RETURH
I F COL_DO3=0 THEH GOSUB AR : X=5 : RETURH
I F COL _TRE3=0 THEH GOSUB AR : X=6 : RETURH
I F COL_CUATRO=a THEH GOSUB AR : X =l l : RETURH
HIGH FI L A_B / f i n d e l c e n s o d e l a FI LA B
LOW FI L A _C f c e n s a mo s l a FI LA C
I F COL_UNCI=0 THEH GOSUB AR : X=1 : RETURH
I F C0L_D03=D THEH GOSUB AR : X=2 : RETURH
I F COL_TRE3=0 THEH GOSUB AR : X=3 : RETURH
I F COL_CUATRO=0 THEH GOSUB AR : X=12 : RETURH
HIGH FI L A_C / f i n d e l c e n s o d e l a FI LA C
LOW FI LA_D / c e n s a mo s l a FI LA D
I F COL_UNO=D THEH GOSUB AR : X=13 : RETURH
I F COL_DO3~0 THEH GOSUB AR : X=0 : RETURH
I F COL_TRE3=0 THEH GOSUB AR : X=14 : RETURH
I F COL_CUATRO=D THEH GOSUB AR : X=15 : RETURH
HIGH FI LA_D / f i n d e l c e n s o d e l a FI LA D
GOTO TECLADO / s a l t o a l a e t i q u e t a i n i c i o
67
S.C. ' PIC
$
M i c r o c h i p
AR: ; e t i q u e t a p a r a s a l t o donde s e g e n e r a r a eU i . tti r tsc c e d e l t e c l a d o
I F COl_UNO=0 THEH GOTO AR ; s i l a coi i H H 'S>C s i e n d o presi onada
; sai te a AR
I F COL_DOS=0 THEH GOTO AR ; s i l a c c i ux r . a ZC5 si f - e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_TRE30 THEH GOTO AR ; s i l a coi^=--= T. -S: 5-7-= s i e n d o presi onada
; s a l t e a AR
I F COL_CUATRC^0 THEH GOTO AR ; s i l a c c i ^ r . i CJ CPC s i g u e si endo p r e s i o n a d a
; s a l t e a AR
RETURH ; r e t o r n e a i a l i n e a donde s e quedo
Cerradura Digital Memory FL iSH PBP
DETALLE DEL FUNCIONAMIESTO
Este sistema tiene asignada la clave [5, 2. ?. ser digitada por el usuario,
accionar al rel de 12V, el que perrr. are cera aurante 5 segundos, si en caso
de que la clave ingresada sea incorrecta sistema, 'raizar un destello de un LED 10
veces alertando al usuario que la clave r.o es a ccmrcta.
68
S.C. ' PIC Mic r o c hip
El segundo proyecto consiste en realizar una cerradura electrnica con una clave que se
guardar en la memoria RAM que posee el microcontrolador PIC 16F628A y a su vez
esta clave la cambiar el usuario de acuerdo a sus necesidades.
Una memoria RAM (Random Access Memory), memoria de acceso aleatorio, es donde el
microcontrolador guarda los datos que est utilizando en el momento presente; la cual permite
grabarlos en variables definidas por el usuario, pero necesita que la energa suministrada
al dispositivo no se la retire, para evitar que stos se pierdan.
Para simular esta prctica se puede utilizar el mismo diagrama esquemtico (Cerradura
Digital MEMORIA FLASH. Sehematic Pesien) visto anteriormente.
La programacin para este proyecto es:
CMCON=7
X VAR BYTE
R VAR BYTE
X d e t a m a o d e 2 5 6
R d e t a m a o d e 2 5 6
FI LA_A VAR PORTB.O
FILA__B VAR PORTB.1
FI LA_C VAR PORTB.2
FI LA D VAR PORTB.3
c a m b i o d e n o m b r e a l p u e r t o B. O p o r FI L A_ A
c a m b i o d e n o m b r e a l p u e r t o B . l p o r FI LA_B
c a m b i o d e n o m b r e a l p u e r t o B . 2 p o r FI LA_ C
c a m b i o d e n o m b r e a l p u e r t o B . 3 p o r FI L A D
COL_UNO VAR PORTB.4 ; c a m b i o d e n o mb r e a l p u e r t o B. O p o r COL_UNO
COL_DOS VAR PORTB.5 ; c a m b i o d e n o mb r e a l p u e r t o B . O p o r COLADOS
COL_TRES VAR PORTB.6 ; c a m b i o d e n o m b r e a l p u e r t o B . O p o r COL_TRES
COL CUATRO VAR PORTB.7 ; c a m b i o d e n o m b r e a l p u e r t o B. O p o r COL CUATRO
RELE VAR PORTA.D
LED VAR PORTA.1
; CAMBIO DE NOMBRE AL B I T A . 0 POR RELE
CAMBIO DE NOMBRE AL B I T A . 1 POR LED
CLAVEl
VAR BYTE ; VARI ABLE DE TAMAO DE 2 5 6
CLAVEZ
VAR BYTE ; VARI ABLE DE TAMAO DE 2 5 6
CLAVE3 VAR BYTE ; VARI ABLE DE TAMAO DE 2 5 6
CLAVE4 VAR BYTE ; VARI ABLE DE TAMAO DE 2 5 6
CLAVEl=0
r
CARGUE CON CERO EN LA MEMORIA RAM DE TAMAO 2 5 6
CLAVE2:=0
f
CARGUE CON CERO EN LA MEMORIA RAM DE TAMAO 2 5 6
CLAVE3:=a
r
CARGUE CON CERO EN LA MEMORIA RAM DE TAMAO 2 5 6
CLAVE4:=0
/
CARGUE CON CERO EN LA MEMORIA RAM DE TAMAO 2 5 6
69
S.C. ' PIC
$
Mic r o c hip
I NI CI O: ; E t i q u e t a p a r a s a l t o
GOSUB TECLADO ; S a l t e a l a e t i q u e t a TECLADO y r e t o r n e
; con un v a l o r e n l a v a r i a b l e X
I F X<CLAVEl OR X>CLAVE1 THEH GOTO PREG2 ; c h u p a r e s i esa v a r i a b l e e s
; i g u a l a 5 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a PREC2
GOSUB TECLADO
I F X<CLAVE2 OR X>CLAVE2 THEH GOTO PR2G3 ; c ampar e s i e s a v a r i a b l e es
; i g u a l a 2 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e <s PREG3
GOSUB TECLADO
I F X<CLAVE3 OR X>CLAVE3 THEH GOTO PRZS4 ; c ompar e s i e s a v a r i a b l e e s
; i g u a l a 6 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a PREG4
GOSUB TECLADO
I F X=15 THEH GOTO C_CLAVE ; S i e l ul zuso c a r a c t e r i n g r e s a d o p o r t e c l a d c
; e s e l + e n t o n c e s v ay a a c a mb i a r l a c l a v e
I F X-CCLAVE4 OR X>CLAVE4 THEH GOTO ALARMA ; cz a p a r e s i e s a v a r i a b l e es
; i g u a l a 9 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a ALARMA
HIGH RELE ; S i d i g i t o l a CLAVE 52S5 er . z or . ces abr a l a p u e r t a
; (e n c i e n d a e l RELE)
PAUSE 5000 ; p a u s a de 5 s e g u n d o s
LOW RELE ; c i e r r e l a p u e r t a ( apague e l RELE)
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
PREG2: ; e t i q u e t a p a r a s a l t o
GOSUB TECLADO
PREG3: ; e t i q u e t a p a r a s a l t o
GOSUB TECLADO
PREG4: ; e t i q u e t a p a r a s a l t o
GOSUB TECLADO
ALARMA: ; e t i q u e t a p a r a s a l t o
FOR R=1 TO 10 ; l a z o FOR d e s d e R=1 h a s z a 10
HIGH LED ; e n c i e n d a e l LED
PAUSE 200 ; p a u s a d e 200ms
LOW LED ; a p a g u e e l LED
PAUSE 120 ; p a u s a d e L20ms
HEXT ; c o n t i n u e l l a z o FOR h a s t a q u e R s e a i g u a l a LO
GOTO I NI CI O / s a l t e a l a e t i q u e t a I NI CI O
70
S.C. ' PIC
*
M i c r o c h i p
TECLADO: ; E t i q u e t a p a r a sal to
LOW FILA_A ; c e n s a mo s l a FI LA A
I F COL_UNO=0 THEH X=7 : GOSUB AR : RETURH; S i l a
; c o l u mn a uno e s presi onada carque a x c o n 7 s a l te al a n t i
/ r e b o t e y RETORNE
I F COL_DOS0 THEH X=B : GOSUB AR : RJETURH
I F COL_TRES=0 THEH X=9 : GOSUB AR : RETURH
I F COL_CUATRO=0 THEH X=10 : GOSUB AR : RETURH
HIGH FI LA_A / f i n d e l c e n s o d e l a FI LA A
LOW FI 1A_B / c e n s a mo s l a FI LA B
I F COL_UNO=D THEH GOSUB AR : X=4 : RETURH
I F C0L_D03= THEH GOSUB AR : X=5 : RETURH
I F COL_TRE3=0 THEH GOSUB AR : X=6 : RETURH
I F COL_CUATRC=0 THEH GOSUB AR : X =l l : RETURH
HIGH FILA_B ; f i n d e l c e n s o d e l a FI LA B
LOW FI LA_C / c e n s a mo s l a FI LA C
I F COL_UNO=0 THEH GOSUB AR : X=1 : RETURH
I F COL_DOS0 THEH GOSUB AR : X=2 : RETURH
I F COL_TRE3=0 THEH GOSUB AR : X=3 : RETURH
I F COL_CUATRO=0 THEH GOSUB AR : X=12 : RETURH
HIGH FI LA_C / f i n d e l c e n s o de l a FI LA C
LOW FILA_D / censamos l a FI LA D
I F COL_UNCI=0 THEH GOSUB AR : X=13 : RETURH
I F C01_D03=0 THEH GOSUB AR : X=Q : RETURH
I F COL_TRE3=0 THEH GOSUB AR : X=14 : RETURH
I F COL_CUATRO=0 THEH GOSUB AR : X=15 : RETURH
HIGH FILA_D / f i n d e l c e n s o de l a FI LA D
GOTO TECLADO / s a l t o a l a e t i q u e t a i n i c i o
AR: ; e t i q u e t a p a r a s a l t o donde s e g e n e r a r e l a n t i r e b o t e d e l t e c l a d o
I F COL_UNO=G THEH GOTO AR ; s i l a col umna UNO si gue s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_DOS=0 THEH GOTO AR ; si l a col umna DOS s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_TRE3=0 THEH GOTO AR ; si l a col umna TRES s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_CUATRO=0 THEH GOTO AR ; s i l a col umna CUATRO s i g u e s i e n d o p r e s i o n a d i
; s a l t e a AR
RETURH ; r e t o r n e a l a l n e a donde s e quedo
71
S.C. ' PIC M i c r o c h i p
C_CLAVE: ; eti queta p a r a s a l t o y p a n ; t - - : : : . z e
HIGH LED } e n c i e n d a e l LED h s s z a ; ~ ; i z a 4 d g i t o s de l a c l a v t
GOSUB TECLADO ; s a l t e a TECLAZ-Z r v a l o r en l a v a r i a b l e
; x
CLAVE1=X ; cargue ese n u e v o v a l o r - z s . t o . e CLAVEL
GOSUB TECLADO
CLAVE2=X ; c a r g u e e s e n u e v o v a l o r e r CLAVE2
GOSUB TECLADO
CLAVE3=X f c a r g u e e s e n u e v o v a l e r s.r - i CLAVE3
GOSUB TECLADO
CLAVE4=X ; cargue ese n u e v o v a l e r t -
LOW LED ; apa g u e e l LED c o b o - e r_ - c o r r e c t a m e n t e s u
! c l a v e
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I t i l CI C
Cerradura Disital - - J ' ~'Z?
La clave de fbrica para este proyecto es
Como se puede apreciar en el programa ;r>r *a *ea. ri j o es definir variables
(CLAVE 1, CLAVE2, CLAVE3 y CLAVE- ai : . -arenaran datos en la memoria
RAM que posee cada una de ellas hasta un :a.~a.- : re 2: en el cambio de Clave los
valores de fbrica se cambiarn por los as :: - - ? -s_ar.e. y se mantendrn en el
sistema hasta que el usuario lo cambie o se d e s : \ e- ede entrada.
DETALLE DEL FUNCIONAMIENTO
Al ejecutar el programa, debemos asignar la Ca- - :ar-:a rara que la puerta (RELE)
se abra, el sistema accionar el rel y esper- : . r _ _ ; rara retomar a sus valores
iniciales, si el usuario desea cambiar la clave re ; r_e debe hacer es ejecutar los
3 primeros dgitos de la clave y digitar el s;r: - _r ; el que prender un LED y
se mantendr prendido hasta que se ejecute la n_e ara . . _e se asignar en la memoria
RAM del microcontrolador PIC, una vez d: :r. 5 f : _r.ro nuevos nmeros, observar
que el LED se apago, indicando que su cla\e se m e\ rsamente. Y para accionar
nuevamente el rel lo que deber realizar es d:r _r _-_e ar:a\e que guard.
En caso de que la clave ingresada sea errnea. : 5 a -erizar el destello de un LED
10 veces, el que indicar que la clave ingresara nr es a : .-recta. En caso de olvidarse el
nmero de la clave debe resetear el sistema (Desras: :ardo la energa y I habilitndola
nuevamente), as el sistema accionar la cla\e ce :ar~ a
72
S.C. ' PIC
$
M i c r o c h i p
El tercer proyecto consiste en realizar una cerradura electrnica con una clave que se
guardar en la memoria EEPROM que posee el microcontrolador PIC 16F628A y a su
vez esta clave la cambiar el usuario de acuerdo a sus necesidades, con la finalidad de
que si desconecta el suministro de energa al sistema esta permanezca con la misma clave
utilizada.
La memoria EEPROM (Electrical Erasable Programable Read Only Memory), memoria
de lectura de programacin y borrado elctrico, es del tipo no voltil, que quiere decir que
los datos que se guardarn en esta no se borrarn al momento de desconectar la energa
del circuito. Para los microcontroladores de la serie A, el tiempo que permanecer los
datos en este tipo de memoria es de 100 aos, en cambio en los microcontroladores que
no poseen la A, el tiempo es de 40 aos. (Datos obtenidos en la pgina Web de
Microchip)
INSTRUCCIN EEPROM - READ - WRITE
Antes de continuar desarrollando este proyecto es importante conocer cada una de las
instrucciones que permitirn manejar los datos de la memoria EEPROM que posee el
microcontrolador PIC 16F628A.
EEPROM.- Esta instruccin permite grabar datos en la memoria que lleva el mismo
nombre, los cuales se irn posicionando en cada una de las celdas del microcontrolador,
cabe destacar que el PIC 16F628A, posee 128 celdas para grabar datos, las cuales
manejan 1BYTE cada una, que significa que podremos guardar un nmero hasta de 255
La sintaxis de manejo es la siguiente:
EEPROM 0, [6,2,S , C,6,8]\ indica que los datos [6,2,S,C,6,8] se guardarn en
las celdas 0, 1,2, 3, 4, 5 de la memoria EEPROM, y en cuanto a las letras, se grabar el
carcter ASCII correspondiente a cada una de ellas.
READ.- Esta instruccin permite leer los datos que se encuentran en la memoria
EEPROM, y guardar el contenido de las celdas en una variable previamente definida por
el usuario, su sintaxis es:
READ 0, A; significa, lea lo que contiene la direccin cero de la memoria eeprom y
guarde en la variable A.
READ 1, B\ significa, lea lo que contiene la direccin uno de la memoria eeprom y
guarde en la variable B.
READ 2, C; significa, lea lo que contiene la direccin dos de la memoria eeprom y
guarde en la variable C.
READ 3, D; significa, lea lo que contiene la direccin tres de la memoria eeprom y
guarde en la variable D.
READ 4, E\ significa, lea lo que contiene la direccin cuatro de la memoria eeprom y
guarde en la variable E.
73
S.C. ' PIC
$
M i c r o c h i p
READ 5, F; significa, lea lo que contiene la - c;r.:c de la memoria eeprom y
guarde en la variable F.
WRITE.- Esta instruccin permite escribir ' s; rre-i-rr.r r _r.a direccin o celda de la
memoria eeprom, su sintaxis es:
WRITE 0, DATOS; significa, guarde en la i ::e r. : celda cero de la memoria
EEPROM lo que contenga la variable DATOS
Conocido el funcionamiento de estas instruccicr.e: :ei_.zirer".:s la programacin para la
cerradura electrnica con clave en la memoria EEPROM
CMCON=7
X VAR BYTE
R VAR BYTE
X d e t a ma o d e 2 56
R d e t a ma o d e 2 56
FILA_A VAR PORTB.O
FILA_B VAR PORTB.1
FILA_C VAR PORTB.2
FILA D VAR PORTB.3
cajnjbio de nombr e z .
c a mb i o de n o mbr e t - p
c a mb i o d e nombr e s i p -
c a mb i o d e n o mb r e s i pu&
r s p a r FTZA_A
Z o =L - s e r FI LA_B
5 = . 2 p o r FI LA_C
z o S . 5 co r FI LA D
COL_UNO VAR PORTB.4 ; c a mb i o d e n o mbr e s i z - ^ - r z z E. Z p e r COL_UNO
COL_DOS VAR PORTB.5 ; c a mb i o d e n o mbr e a i r - t : : ; I p o r COL_DOS
COL_TRES VAR PORTB. 6 ; c a mb i o d e nombr e s i = T p o r COL_TRES
COL CUATRO VAR PORTB.7 ; c a mb i o d e nombr e z . e r z z 3 . 0 p o r COL CUATRO
RELE VAR PORTA.0
LED VAR PORTA.1 .
; CA MBI O DE NOMBRE AL E I T . - FOR RELE
CA MB I O DE NOMBRE AL B I T 1 PC? ZEZ
CLAVEl VAR BYTE
C1AVEZ VAR BYTE
CLAVE3 VAR BYTE
CLAVE4 VAR BYTE
VARIABLE DE TAMAO LE 2 :
VARIABLE DE TAMAO DE 25?
VARIABLE DE TAMAO DE 25
VARIABLE DE TAMAO DE 2 : i
EEPROM 0, [ 0,0,0,0] ; Gu a r d e e n l a m e n c m E 2 f . - : x : =i z z i c r o c o n t r o l a d o r
; d e s d e l a d i r e c c i n z e z z : i i a d i r e c c i n t r e s -
; l o s datos [ 0 , 0 , 0 , 0 }
Seteo: ; E t i q u e t a p a r a s a l t o
READ 0 , CLAVEl ; l e a l a
READ 1 , CLAVE2 ; l e a l a
READ 2 , CLAVE3 ; l e a l a
READ 3 , CLAVE4 ; l e a l a
*
74
S.C. ' PIC M i c r o c h i p
I NI CI O: / E t i q u e t a p a r a s a l t o
GOSUB TECLADO / S a l t e a l a e t i q u e t a TECLADO y r e t o r n e
/ c on un v a l o r e n l a v a r i a b l e X
I F X<CLAVE1 OR X>CLAVE1 THEH GOTO PREG2 ; c ompar e s i e s a v a r i a b l e es
/ i g u a l a 5 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a PREG2
GOSUB TECLADO
I F X<CLAVEZ OR X>CLAVE2 THEH GOTO PREG3 / c ompar e s i e s a v a r i a b l e es
/ i g u a l a 2 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a PREC3
GOSUB TECLADO
I F X<CLAVE3 OR X>CLAVE3 THEH GOTO PREG4 / c ompar e s i e s a v a r i a b l e es
/ i g u a l a 6 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a PREG4
GOSUB TECLADO
I F X=15 THEH GOTO C_CLAVE / S i e l u l t i m o c a r a c t e r i n g r e s a d o p o r t e c l a d c
/ e s e l + entonces vay a a c a mb i a r l a c l a v e
I F XCCLAVE4 OR X>CLAVE4 THEH GOTO ALARMA / c ompar e s i e s a v a r i a b l e es
/ i g u a l a 9 e n t o n c e s c o n t i n u , c a s o c o n t r a r i o s a l t e a ALARMA
HIGH RELE / S i d i g i t o l a CLAVE 5269 e n t o n c e s ab r a l a p u e r t a
/ ( e n c i e n d a e l RELE)
PAUSE 5000 / p a u s a de 5 s e g u n d o s
LOW RELE / c i e r r e l a puerta ( apague e l RELE)
SOTO I NI CI O / s a l t e a l a e t i q u e t a IJVXCXO
PREG2: / e t i q u e t a p a r a s a l t o
GOSUB TECLADO
PREG3: / e t i q u e t a para s a l t o
GOSUB TECLADO
PREG4: / eti queta p a r a s a l t o
GOSUB TECLADO
ALARMA: / e t i q u e t a p a r a s a l t o
FOR R=1 TO 10 / l a z o FOR d e s d e R=1 h a s t a 10
HIGH LED / e n c i e n d a e l LED
PAUSE 200 / p a u s a de 200ms
LOW LED / a p a g u e e l LED
PAUSE 120 / p a u s a de 120ms
HEXT / c o n t i n u e l l a z o FOR h a s t a q u e R s e a i g u a l a 10
GOTO I NI CI O / s a l t e a l a e t i q u e t a I NI CI O
TECLADO: / E t i q u e t a p a r a s a l t o
LOW FI LA_A / c e n s a mo s l a FI LA A
I F COL_UNO=0 THEH X=7 : GOSUB AR : RETURH/ S i l a
/ c o l u mn a uno es p r e s i o n a d a c a r q u e a k c o n 7 s a l te a l a n t i
/ r e b o t e y RETORNE
I F C0L_D03= THEH X=8 : GOSUB AR : RETURH
I F COL_TRE3=0 THEH X=9 : GOSUB AR : RETURH
I F COL_CUATRO=0 THEH X=10 : GOSUB AR : RETURH
HIGH FILA_A / f i n d e l c e n s o d e l a FI LA A -------
75
M i c r o c h i p S.C. ' PIC
HIGH FILA_A ; f i n d e l c e n s o ce _a FILA
LOW FILA_B ; c e ns amos l a FI LA E
I F COL_UNO=CI THEH GOSUB AR : X=-. *rTV*_*
I F COL_DOS=a THEH GOSUB AR : X=5 I B B I
I F COL_TRE3= THEH GOSUB AR : X= B T O I
I F COL_CUATRO=0 THEH GOSUB A?. S=l_ U I T U
HIGH FILA_B ; f i n d e l c e n s o de l a FIZA z
LOW FILA_C , ce ns amos l a FI LA Z
I F COl_UNO=0 THEH GOSUB AR : 1=1 I X TT-J
I F COL_DO3=0 THEH GOSUB AR : *=2 H T T O
I F COL_TRE3=0 THEH GOSUB A? : X=Z T T S M M
I F COL_CUATRO=D THEH GOSUB AS Z=12 SJTXVM
HIGH FILA_C ; f i n d e l c e n s o de 1 *11A :
LOW FILA_D ; c e ns amos l a FIZA Z
I F COL_UNO= THEH GOSUB A? 1=13 M 1W 1
I F COl_DOS=0 THEH GOSUB AR : S=1
I F COL_TRE3=0 THEH GOSUB A= : T=.- 2ZTTR
I F COL_CUATRO=0 THEH GOSUE T=1: SFTVM
HIGH FILA_D ; f i n d e l ce r . s z - FZ . i Z
SOTO TECLADO ; s a l t o a l a
AR: ; e t i q u e t a p a r a s a l z o - : r. i 2 rs ; ; r t z z ^ s e z x s d e l t e c l a d o
I F COL_UNO=0 THEH GOT : -7 r r . _ _ : , ; _ = s i e n d o p r e s i o n a d a
; s a l t e a AR
I F C01_D03=0 THEH GOTO M i * col xmmm EPS s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_TRES=~ THEH 60 : - - 5: rl _=- = r :i : s i g u e s i e n d o p r e s i o n a d a
; s a l t e a AR
I F COL_CUATRO=C THEH GCO ^ Z . ' ATPJ si gue s i e n d o p r e s i o n a d i
; s a l t e a AR
RETURH ; r e t o r n e a l a l i n e a dcr. de s e 7_. zz
C_CLAVE: ; e t i q u e t a p a r a s a l t e 7 p a r a : j t _ z ;= z Lave
HIGH LED ; e n c i e n d a e l 12 - z z a s e l o s 4 d gi to s ce l a c l a v e
GOSUB TECLADO ; s a L z e a TECL AI>Z r zm e c on un v a l o r en l a v a r i a b l e
; x
WRITE 0, X ; b o r r e 5 .5 : i r * c : i o n c e r o y a s i g n e e l n u e v o
; v a l o r de l a v a r i a b l e X
GOSUB TECLADO ; S a l t e a t e c l a c c y r a z m e c on un v a l o r e n X
WRITE l , x ; b o r r e l o que c o n z i e r = Li z i z e c c i o n uno y a s i g n e e l n u e v o
; v a l o r d e l a v a r i a b l e X
GOSUB TECLADO ; S a l t e a t e c l a d o j r a z m e c on un v a l o r en X
WRITE 2,X ; b o r r e l o que c o n t i e n e l a z i r e c c i o n dos y a s i g n e e l n u e v o
; v a l o r de l a v a r i a b l e X
GOSUB TECLADO ; S a l t e a t e c l a d o r r e z m e con un v a l o r en X
WRITE 3,X ; b o r r e l o q u e c o n t i e n e l a d i r e c c i n t r e s y a s i g n e e l n u e v o
; v a l o r de l a v a r i a b l e X
LOW LED ; apa g u e e l LED como jsuesZra s e que cambi o c o r r e c t a m e n t e s u
; c l a v e
GOTO 3eteo ; s a l t e a l a e t i q u e z a S e t e o a c a r g a r l o s n u e v o s v a l o r e s en l a
; me mor i a EEPROM d e l m i c r o c o n t r o l a d o r
Cerradura Digital Memoria EEPROM. PBP
76
S.C. ' PIC
$
M i c r o c h i p
DETALLE DEL FUNCIONAMIENTO
El funcionamiento de este tipo de cerradura es muy similar a la anterior, la nica
diferencia es que la nueva clave asignada por el usuario no se va a borrar si existe un
corte de energa.
Para probar este circuito se lo puede cargar en el mismo diagrama esquemtico (Cerradura
Digital MEMORIA FLASH. Sehematic Pesien) visto anteriormente.
NOTA: En simulacin el circuito va a funcionar exactamente igual al anterior de la
memoria RAM, pero es muy importante que se tenga presente que al hacer la prctica
real si se le retira la energa al sistema, la nueva clave asignada por el usuario es la
que se mantendr.
En la parte de simulacin como abra notado no se puede desconectar la energa al
microcontrolador, porque este se encuentra internamente energizado, lo que nos
dificulta realizar la prueba de este circuito.
Y por ltimo, es aconsejable anotar la nueva clave que se le asigne al sistema, ya que si
nos la olvidamos no se va poder abrir la puerta (Energizar el rel), sino esta funcin la
tendremos que realizar leyendo el microcontrolador PIC con el IC-PROGy observando
los datos asignados en la Direccin de datos EEPROM.
Direccin - Datos Eeprom
0000 00 00 00 00 FF FF FF FF
-- yytfy
A
0008 FF FF FF FF FF FF FF FF
yyyyyyyy
0010 FF FF FF FF FF FF FF FF
ylmhriryy
m
0018 FF FF FF FF FF FF FF FF
yyyyyyyy
0020 FF FF FF FF FF FF FF FF
yyyyyyyy
0028 FF FF FF FF FF FF FF FF
yyyyyyyy
0030 FF FF FF FF FF FF FF FF
yyyyyyyy
0038 FF FF FF FF FF FF FF FF
yyyyyyyy
V
Como se puede observar en la figura los datos que se encuentran en la memoria
EEPROM es [0, 0, 0, 0].
77
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
S.C. ' PIC
$
M i c r o c h i p
MANEJO DE MODULOS LCD
Un LCD (Liquid Crystal Display), pantalla de cristal lquido, es una de las herramientas
mayormente utilizadas para desplegar algn tipo de informacin, as tenemos por
ejemplo, en las cabinas telefnicas, para visualizar el costo de la llamada que se est
realizando un display LCD.
En el mercado existe gran variedad de mdulos LCD, los que permiten realizar grficos,
los alfanumricos 16*2, 16*4, 8*2,, con backlight, sin backlight, etc.
En esta ocasin estudiaremos los mdulos LCD alfanumricos 16 * 2 y 8 * 2 con
backlight azul. Y a que este presenta la ventaja de darle la elegancia al proyecto que se
vaya a realizar, ya que la luz de fondo es azul y las letras son blancas.
LCD alfanumrico 16 * 2.- Este tipo de LCD, permite visualizar datos de hasta 16
caracteres por 2 lneas, cada carcter est compuesto por una matriz de leds 7*5,
permitiendo formar cualquier letra que se le asigne desde el microcontrolador.
El backlight es el color de fondo que va a tener el I.CD, entre ellos se encuentran los de
color azul, amarillo, blanco, naranja, rojo. Y de acuerdo a estos colores varan su precio
en el mercado. No es indispensable que un LCD tenga luz de fondo o backlight, ya que si
el usuario lo desea no lo conecta, ahorrando energa y consumo de corriente.
LCD alfanumrico 8 * 2.- Este tipo de LCD, permite visualizar datos de hasta 8
caracteres por 2 lneas, siendo esta la nica diferencia en comparacin con el LCD 16*2.
Y de acuerdo a la aplicacin que realice el usuario debe seleccionar el LCD a utilizar.
S.C. ' PIC
$
M i c r o c h i p
El LCD consta de 14 pines, para realizar el manejo o el control del mdulo y 2 pines
adicionales para controlar el backlight que posee, en LCDs que no poseen la funcin de
backlight o que no poseen luz de fondo, solamente poseen 14 pines para utilizarlos en -
parte de control.
A continuacin presentamos una tabla correspondiente a las funciones que realizan cac
uno de los pines del LCD.
tt PIN
Smbolo DESCRIPCION
1 Vss Pin donde se conecta al GND del sistema
2 Vdd Pin donde se conecta a Vdd o 5V del sistema
3 Vo Ajuste para el contraste del LCD vara de (0 - 5V)
4 RS Registro de control/datos (Al microcontrolador)
5 R/W Read / Write, lectura y escritura del LCD (A GND del sistema)
6 E Enable, habilita o deshabilita el mdulo LCD (Al microcontrolador)
7 DO Bit para datos menos significativo
8 DI
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7 Bit para datos mas significativo
15 A Anodo del Backlight, Vdd
16 K Ctodo del Backlight GNU
Como se puede apreciar en la tabla, Los bits que permiten controlar el LCD son 8, lo cual
representa una gran velocidad en visualizacin de datos. Pero una pequea desventaja es
que debemos conectar varios cables a nuestro sistema, y ocupar todo un puerto completo
para transmisin de los mismos. Por esta razn los fabricantes de LCDs, permiten a!
usuario trabajar solamente con 4 Bits para transmisin de datos, lo que significa que se
enviarn grupos de 4 bits, primero los ms altos y luego los ms bajos, la velocidad de
transmisin sera menor pero no representara problemas porque el LCD trabaja en el
orden de microsegundos.
Conocida la disposicin de pines del mdulo LCD, pasaremos a estudiar las instrucciones
que permiten al usuario controlarlos y manejarlos de acuerdo a sus necesidades.
80
S.C. ' PIC
$
M i c r o c h i p
INSTRUCCIN DEFINE - LCDOUT
Para continuar con el estudio de este dispositivo electrnico, debemos conocer las
instrucciones DEFINE y LCDOUT, las cuales me permitirn controlar y manejar estos
mdulos.
DEFINE.- Algunos elementos como el oscilador, master clear, etc. Se encuentran
predefinidos en el compilador Pie Basic Pro, sta instruccin permite definir ciertos
elementos o cambiarlos de definicin a los que necesite el usuario.
Para el caso de los mdulos de LCDs, es necesario definir lo siguiente:
DEFIHE LCD_DREG PORTB ; D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t o B p a r a
; t r a n s m i c i n de d a t o s
DEFINE LCD_DBIT 4 ; desde el BI7 B . 4 hasta e l B. 7
DEFIHE LCD_R3REG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r e g i s t r o de c o n t r o l / d a t o i
; en e l p u e r t o B
DEFIHE LCD_RSBIT 3 ; e n e l B I T B . 3
DEFIHE LCD_EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l e n a b l e en e l p u e r t o B
DEFIHE LCD_EBIT 2 ; e n e l B I T B . 2
SOTA: Se aconseja utilizar siempre todas las definiciones en un solo puerto, es decir
escoger el puerto B, o el puerto A en el caso del PIC I6F628A. Para evitar que los
datos sean incorrectos.
LCDOUT.- Esta instruccin es de escritura solamente, y su funcin es fijar al mdulo
LCD para empezar a escribir en cada uno de los caracteres que posee, y necesita de un
comando para su utilizacin. A continuacin se presenta una tabla con cada uno de los
comandos que posee el compilador.
COMANDO OPERACION
$FE, 1
Limpia el visor del LCD
$FE, 2
Vuelve al inicio del LCD
$FE, $0C
Apaga el cursor
$FE, $0E
Subrayado del cursor activo
$FE, $0F
Parpadeo del cursor activo
$FE, $10
Mover el cursor a una posicin a la izquierda
$FE, $14
Mover el cursor una posicin a la derecha
$FE, $80
Mueve el cursor al comienzo de la primera lnea
$FE, $C0
Mueve el cursor al comienzo de la segunda lnea
81
S.C. ' PIC
M i c r o c h i p
Conocida la teora realizaremos una prctica que consiste en visualizar en un LCD el
siguiente texto:
Practica con
Microcontrolador
Para sacar el LCD en el proteus, digitar en la parte de elementos la palabra LM016L.
El diagrama esquemtico de simulacin para esta prctica es:
U1
j
is
RA7/ 0SC1/ CLKIN RAO/ ANO
RA0/ OSC2/ CLKGUT RA1/ AN1
RA2/ AN2A/ REF
RA5/ MCLR RA3/ AN3/ CMP1
RA4/ TQCKI/ CMP2
RBO/ INT
R81/ RX/ DT
R92/ TX/ CK
R93/ CCP1
RB4
RB5
RBS/ T10S0/ T1CW
RB7/ T10SI
17
18
B
- 8 _
_30_
_ u _
_!2_
13
PIC10F828A.
<rexr>
LCD. Schematic Desisn
Y la programacin sera:
DEFIHE IiCD_DREG PORTB / D ef i ni ci n par a u t i l i z a r 4 b i t s d e l p u e r t o B par a
; t r a n s mi c i n de dat o s
DEFIHE 1CD_DBI T 4 ; de s de e l BI T B. 4 h a s t a e l B . 7
DEFINE LCD_R9REG PORTB ; D e f i n i c i n par a u t i l i z a r e l r e g i s t r o de c o n t r o l / d a t o s
; en e l p u e r t o B
DEFIHE LCD_RSBIT 3 / en e l BI T B. 3
DEFIHE LCD_EREG PORTB ; D ef i ni ci n fi ara u ti l i z ar e l e n a b l e en e l p u e r t o B
DEFIHE LCD_EBIT 2 en e l BI T B . 2
LCDOUT $ F E , 1 , " P r a c t i c a c o n " / Li mp i e e l v i s o r d e l LCD y mu e s t r e desde l a
; pr i me r a l i n e a l a p a l a b r a Pr a c t i c a n d o con
LCDOUT $F E ,S C O ,"MIC R O C O N T P .O L A DO R ; en l a s egunda l n e a mu e s t r e l a pal a b r a
; Mi c r o c o n t r o l a d o r
EHD f i n a l i c e e l progr ama
Mdulo LCD. PBP
82
S.C. PIC
$
Mi cnocHi P
Como se puede apreciar en el programa, lo nico que se ha realizado es definir los
puertos del LCD a trabajar, y manejar la instruccin LCDOUT para displayar el texto
pedido para la prctica.
Noten tambin que no se ha realizado ninguna pausa en la programacin sino que se
envi directamente a finalizar el programa. Esto lo realizamos para damos cuenta que el
LCD queda cargado con la frase que se le asigno, debido a que el mdulo posee una
memoria interna que hace que mantenga visualizando lo que envi el usuario.
Y al simular el proyecto aparecer:
NOTA: En el simulador Proeus no existe el LCD 8*2, pero las conexiones son las
mismas, la nica diferencia es que acepta hasta 8 caracteres, por lo que se debe
simular ocupando solo 8 caracteres.
Si se desea visualizar en un mdulo LCD algn nmero decimal de una variable lo que se
debe realizar es lo siguiente:
LCDOUT $FE,1,DEC DATOS
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea,
y visualice el decimal de lo que contenga la variable datos.
83
S.C. ' PIC
$
M i c r o c h i p
En caso de que sea necesario sacar 2 o ms decimales se procede:
1CDOUT $FE,1,DEC2 DATOS
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea,
y visualice con 2 decimales lo que contenga la variable datos.
Tambin se puede insertar texto y el decimal de algn nmero de la siguiente manera:
LCDOUT $FE,1,"X= ", DEC DATOS
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera lnea,
y visualice: X= y el decimal de lo que contenga la variable datos, es decir si datos tiene
un valor de 245 entonces el usuario observar:
LCD1
LM016L
K= 245
SSSS&Sg Q
84
S.C. r PI C M i c r o c h i p
PROYECTOS CON LCDs
El primer proyecto consiste en realizar un reloj digital utilizando un LCD.
El diagrama de conexin para simulacin sera:
La programacin para esta prctica sera:
DEFINE LCD_DREG PORTB ; D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t a B p a r a
; t r a n s m i c i n de d a t o s
DEFINE LCD_DBIT 4 ; d e s d e e l B I T B . 4 h a s t a e l B. 7
DEFINE LCD R9REG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r eg i str o de c o n t r o l / d a t o s
; en e l p u e r t o B
DEFINE LCD_R3BIT 3 ; en e l BI T B . 3
DEFINE LCD_EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l e n a b l e en e l p u e r t o B
DEFINE LCD_EBIT 2 ; e n e l B I T B . 2
H VAR BYTE ; Cambi o d e v a r i a b l e a H de t amao 256
; v a r i a b l e p a r a l a s HORAS
M VAR BYTE / Cambi o d e v a r i a b l e a M de t amao 256
; v a r i a b l e p a r a l a s MINUTOS
3 VAR BYTE ; Cambi o de v a r i a b l e a S d e t amao 256
; v a r i a b l e p a r a l a s SEGUNDOS
LCDOUT SFE,1 , "RELOJ DIGI TAL" ; L i mp i a e l v i s o r d e l LCD y s e
; p o s i c i o n a a l p r i n c i p i o de l a p r i m e r a f i l a , y e s c r i b e
RELOJ DIGITAL
85
S.C. ' PIC
Mic r o c hip
I NI CI O: ; e t i q u e t a para s a l t o
FOR H=0 TO 23 ; l a z o f o r p a r a l a s h o r a s
FOR M=0 TO 59 ; l a z o f o r p a r a l o s m i n u t o s
FOR 3=0 TO 5 9 ; l a z o f o r p a r a l o s s e g u n d o s
LCDOUT $FE,C4, DEC2 H,":",DEC2 M , " : , DEC2 3
; saca p o r l a s e g u n d a l n e a dos d e c i m a l e s de l a s h o r a s ,
; 2 p u n t o s , 2 d e c i m a l e s p a r a l o s m i n u t o s ,
; 2 p u n t o s y 2 d e c i m a l e s p a r a l o a s e g u n d o s
; c o r r e s p o n d i e n t e s a l a s v a r i a b l e s H, M, S r e s p e c t i v a m e n t e
PAUSE 395 ; Paus a de 395 m i l i s e g u n d o s
LCDOUT $FE,SC4, DEC2 H, , DEC2 M , ",DEC2 3
; s a c a p o r l a s e g u n d a l n e a dos d e c i m a l e s de l a s h o r a s ,
; e s p a c i o en b l a n c o , 2 d e c i m a l e s p a r a l o s m i n u t o s ,
; e s p a c i o en b l a n c o y 2 d e c i m a l e s p a r a l o s s e g u n d o s
; c o r r e s p o n d i e n t e s a l a s v a r i a b l e s H, M, S r e s p e c t i v a m e n t e
PAUSE 395 ; Paus a de 395 m i l i s e g u n d o s
HEXT ; c o n t i n e c on e l l a z j h a s t a q u e S=59
HEXT ; c o n t i n e c o n e l l a z o h a s t a que M=59
HEXT ; c o n t i n e c o n e l l a z o h a s t a que H=23
SOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
Reloj Digital. PBP
Como se puede apreciar lo que se ha realizado es un contador, mediante la instruccin
FOR - NEXT que ya se ha estudiado anteriormente. La pausa generada entre la lnea que
tiene los 2 puntos y la que no lo tiene permite visualizar un efecto de intermitencia. Se ha
colocado una pausa de 790 milisegundos para tener la hora real de un reloj normal.
86
S.C. ' PIC
$
M i c r o c h i p
La segunda prctica consiste en realizar un desplazamiento de un texto en el LCD. Para
este propsito es necesario tener en cuenta la Instruccin LOOKUP
INSTRUCCIN LOOKUP
Puede ser usado para obtener valores de una tabla de constantes de 8 bits, permite obtener
un carcter de letras o nmeros de una cadena y guardarlos en una variable asignada por
el usuario. Su sintaxis de manejo es:
LOOKUP 2, [ "h o l a "] , DAT o 3 Toma el segundo carcter de la cadena HOLA y
lo guarda en la variable DATOS
Si la manejamos con un lazo FOR, se podr obtener un efecto de desplazamiento de
texto.
El diagrama esquemtico para la simulacin en el proteus es:
..................................... L \

LCD1
RV1
H
10H
TEXJ
U1
I B
I S
RA70SC1/CLKN RAO/ANO
RA6J OSC2/CLKOUT RA1/AN1
RA2/AN2/VREF
RAS/MCLR RA3/AN3/CMP1
RA4TQCKIJ CMP2
RBtMNT
RB1/RXOT
R82TXCK
RB3/CCP1
RB4
RB5
R06/riOSO/T1CKI
R87/T10SI
_1L
_1S.
J J L
_LL
_U_
-12-
P1C16F6?8A
'TfXI*. . .
W.5 Dr-Oin^lfltDN
>>> OHEtl OOQQQOQO
Desplazamientos LCD. Schematic Pesien
87
r
$
S.C. ' PIC MicnocHiP
Y su programacin es:
DEFIHE LCD_DREG PORTB ; D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t o B pa r a
; t r a n s m i c i n de d a t o s
DEFINE LCD_DBIT 4 ; d e s d e e l B I T B . 4 h a s t a e l B . 7
DEFINE LCD_RSREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r e g i s t r o de c o n t r o l / d a t o s
; en e l p u e r t o B
DEFINE LCD_RSBIT 3 ; en e l B I T 3 . 3
DEFINE LCD_EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l e n a b l e en e l p u e r t o B
DEFINE LCD_EBIT 2 ; er: e l BI T B . 2
R VAR BYTE ; X de t amao de 256
DATOS VAR BYTE ; DATOS de t amao de 256
LCDOUT $F E ,$7 ; C o n f i g u r a a l LCD p a r a que r e a l i c e e l d e s p l a z a m i e n t o i z q u i e r d o
LCDOUT $FE,1 / L i mp i a e l v i s o r d e l LCD
I NI CI O: ; E t i q u e t a p a r a s a l t o
LCDOUT $FE,S90 ; Ubi ca e l c u r s o s en l a c e l d a 17
FOR R=0 TO 24 ; La z o FOR d e s d e R=0 h a s t a 23
LOOKUP R, [ "ELECTRONICA-PRACTICA""] , DATOS
; Toma c a r a c t e r p o r c a r a c t e r de l a cade na y l o guar da en l a v a r i a b l e DATOS
LCDOUT , DATOS ; Saque en e l LCD e l c o n t e n i d o de DATOS
PAUSE 200 ; Paus a de 200 m i l i s e g u n d o s
NEXT ; C o n t i n u c on e l Laz o FOR h a s t a que R s e a i g u a l a 24
GOTO I NI CI O ; S a l t e a l a e t i q u e t a I NI CI O
Desplazamientos de texto en LCD. PBP
08
S.C. ' PIC

M i c r o c h i p
INSTRUCCIN SOUND
Esta instruccin permite generar sonido, trabaja a 8 bits, y el ruido generado va en un
'ingo de 0 a 255.
Su sintaxis de manejo es:
SOUND PORTB. O, [ 110, 10, 100, 20]
>je quiere decir saque por el puerto B el tono 110, mantngalo durante 10 milisegundos,
saque el tono 100 durante 20 milisegundos.
\ continuacin se realizar esta prctica con simulacin en el software proteus.
-ara realizar esta prctica se debe seleccionar en el proteus el elemento SOUNDER el
que permitir simular un parlante de 8 ohmios, y para escuchar se debe tener los parlantes
el computador encendidos.
Ei diagrama de conexin sera:
U1
AA7rt>BC1LKII M-AUD
BA&OSC2('CLW3,j r RA1/AK1
RA2TA K3VRS
P.AST1J L1C fVO'AIQ'CMP 1
M .*nrK rcM P 2
R Btyirr
R8 li'RXiDT
RBarxiCK
RB3T5CF1
R0t
RBS
R B&T tosonncw
R.B7/T10SI
P C1SF 52*
LS1
y '
R1
l Ui l bEK 6o;u
Tiab*
Instruccin SOUND. Schematic Pesian
5u programacin ser:
I NI CI O: ; Subrutina para salto
SOUND PORTB. 0, [ 110, 10, 100, 20] ; saque por el puerto B
; el sonido 110 mantngalo durante 10 milisegundos, y
; saque el sonido 100 durante 20 milisegundos
>OTO I NI CI O ; Salte a la etiqueta INICIO
Instruccin SOUND. PBP
89
S.C. PIC
*
M i c r o c h i p
INSTRUCCIN FREQOUT
Permite al usuario sacar frecuencias por un PIN, las cuales pueden estar entre 0 a 32767
Hz, y su sintaxis de manejo es:
FREQOUT PORTB.0,200, 941, 133 6 ; s a q u e p o r e l BI T B. O
; l a f r e c u e n c i a d e 941 y 1336 Hz y mant e nga d u r a n t e 5 s e g u n d o s
A continuacin se realizar un circuito que permita generar tonos de telfono por un
puerto del microcontrolador PIC, el cual podr sor probado con el diagrama esquemtico
anterior. (I nstruccin SOLND. Schematic Pesien)
I NI CI O: ; S u b r u t l n a p a r a s a l t o
FREQOUT PORTB.0,200,941,1336 / saque p o r el B I T B. O
; l a f r e c u e n c i a d e 941 y 1 3 3 6 Hz y m a n t e n g a d u r e a n t e 5 s e g u n d o s
; e q u i v a l e n t e a p r e s i o n a r l a t e c l a 0 d e u n t e l e f o n o
PAUSE 50/ p a u s a d e 50 m l l i s e g u n d o s
FREQOUT PORTB.0,200,8 52,14 77
; e q u i v a l e n t e a p r e s i o n a r l a t e c l a 9 d e u n t e l e f o n o
PAUSE 50 / p a u s a d e 50 m l l i s e g u n d o s
FREQOUT PORTB.0, 200, 8 52, 120 9
/ e q u i v a l e n t e a p r e s i o n a r l a t e c l a 7 d e u n t e l e f o n o
PAUSE 50 f p a u s a d e 50 m l l i s e g u n d o s
FREQOUT PORTB.O,200,941,1336
; e q u i v a l e n t e a p r e s i o n a r l a t e c l a 0 d e u n t e l e f o n o
PAUSE 50 / pausa d e 50 m l l l s e g u n d o s
FREQOUT PORTB.0,200,852,1336
/ e q u i v a l e n t e a p r e s i o n a r l a t e c l a 8 d e un t e l e f o n o
PAUSE 50 / p a u s a d e 50 m l l l s e g u n d o s
FREQOUT PORTB.0,200,852,1209
/ eq u i v al en te a p r e s i o n a r l a t e c l a 7 d e u n t e l e f o n o
PAUSE 50 / p a u s a d e 50 m i l i s e g u n d o s
FREQOUT PORTB.0, 200,852, 1477
f e q u i v a l e n t e a p r e s i o n a r l a t e c l a 9 d e u n t e l e f o n o
PAUSE 50 ; p a u s a d e 50 m l l i s e g u n d o s
FREQOUT PORTB.0,200,8 52,1477
; e q u i v a l e n t e a p r e s i o n a r l a t e c l a 9 d e u n t e l e f o n o
PAUSE 50 / p a u s a d e 50 m l l l s e g u n d o s
FREQOUT PORTB.0,200,852,1477
; e q u i v a l e n t e a p r e s i o n a r l a t e c l a 9 d e u n t e l e f o n o
PAUSE 50 / p a u s a d e 50 m i l i s e g u n d o s
GOTO I N I C I O ; S a l t e a l a e t i q u e t a I N I C I O
Instruccin FREQOUT. PBP
90
S.C. ' PIC
M i c r o c h i p
INSTRUCCIN DTMFOUT
Lo que se realiz en el programa anterior es generar los tonos de telfono para un nmero
celular, obteniendo cambios de frecuencia cada 50 milisegundos. Ahora con el estudio de
la instruccin DTMFOUT podremos sacar los mismos tonos de celular de una manera
ms sencilla, es decir simplemente escribiendo el nmero de telfono a llamar.
La sintaxis de manejo para esta instruccin es:
DTMFOUT PORTB.0,[0,9,7,0,0,7,9,9,9]
Que significa saque por el BIT B.O las frecuencias correspondientes a digitar los nmeros
de telfono 0, 9, 7, 0, 8, 7, 9, 9, 9
As de esa manera podremos realizar un telfono con el microcontrolador PIC.
Para realizar la prueba de esta instruccin generaremos una llamada telefnica al nmero
2 506 145, la cual se escuchar en un parlante de 8 ohmios. La simulacin de esta
prctica se puede realizar en el mismo circuito anterior. (Instruccin SOUND. Schematic
Design
La programacin ser:
I N I C I O : ; e t i q u e t a p a r a s a l t o
DTMFOUT PORTB.0,[2,5,0,6,1,4,5]
,* sague p o r e l BI T B. O d e l p u e r t o B
; l a s f r e c u e n c i a s c o r r e s p o n d i e n t e s a l o s nme r os
; 2 506 145
PAUSE 500 ; PAUSA DE 500 MILISEGUNDOS
GOTO I N I C I O ; s a l t e a l a e t i q u e t a INI CI O
Instruccin DTMFOUT. PBP
Para realizar una llamada telefnica con el microcontrolador se debe accionar un rel para
indicarle a la entrada de la lnea telefnica que se descolg el auricular y proceder a
enviar los tonos correspondientes al nmero que se desee llamar. El siguiente diagrama
de conexin permite realizar esta funcin:
91
S.C. ' PIC
a
M i c r o c h i p
B1
Enf r i Oi -
l l r a r
b i i t sn i ci
RL1.
17K
. T BO .
U1
i t
J WT0D1 Cy<ll RAQ'ABQ
RAffOQC2fCUW)T RAtfAKI
. , PxarAmarvRSf
RASf lCLR M a 'A n a c u p i
RAi/ TCC KI CUP2
RSOflUT
M VAX/ D T
M a m - K
P.H3CCM
RB*
A8S
R B T O E O m CK I
M ? r r i o B i
_ -
_2_
R1
o :
2>aa<.
tboo.
C1
_
US
dk
J3
Kil ICBt
OD*4W
. eTDSr*. . .
R?
Llamada telefnica. Schematic Desisn
Las resistencias de 680 ohmios a 1watio, hacen relacin a la carga Z, de un telfono
comn.
La programacin para realizar la llamada telefnica ser:
RELE VAR PORTB.1 ; Cambi o d e nombr e a l B I T B . l p o r RELE
I NI CI O: ; e t i q u e t a p a r a s a l t o
HIGH RELE ; e n e r g i c e l a b o b i n a d e l r e l e
PAUSE 1000 ; e s p e r e 1 s e g u n d o h a s t a o b t e n e r t o n o p a r a
; r e a l i z a r l a l l a ma d a
DTMFOUT PORTB. 0 , [ 2 , 5 , 0 , 6 , 1 , 4 , 5 ]
; s a q u e p o r e l B I T B. O d e l p u e r t o B
; l a s f r e c u e n c i a s c o r r e s p o n d i e n t e s a l o s n me r o s
; 2 506 145
PAUSE 500 / PAUSA DE 500 MILISEGUNDOS
SOUHD PORTB.O,[110,2000]/ E n v i un s o n i d o 110 d u r a n t e 2 s e g u n d o s
; p a r a i n d i c a r a l u s u a r i o qu e l a l l a ma d a g e n e r o e l m i c r o c o n t r o l a d o r
LOW RELE ; Q u i t e l a e n e r g a a l RELE ( Cu e l g u e e l a u r i c u l a r )
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
Llamada telefnica. PBP
En el programa se energiza el rel de 12V, para simular la accin del levantamiento del
auricular en un telfono convencional.
92
S.C. ' PIC
$
M i c r o c h i p
O
COMUNICACIN SERIAL CON EL
MICROCONTROLADOR PIC
16F628A
Un cable de comunicacin serial permite que dos dispositivos se comuniquen uno con
otro enviando y recibiendo datos por una lnea de transmisin y otra lnea de recepcin.
Los datos enviados por esta lnea, se enviarn en grupos de 8 bits, utilizando un formato
de envo denominado cdigo ASCII.
Tabla Ejemplos ASCII
ASCII Hex Carcter
00 00 00 00 00 (nulo)
00 11 00 00 30 0
00 11 00 01 31 1
01 00 00 01 41 a
01 10 00 01 61 A
01 11 10 10 7B
{
ASCII son las siglas de American Standard Code for Information Interchange o Cdigo
Estndar Americano para el Intercambio de informacin.
El formato ASCII es reconocido por todas las computadoras y se puede utilizar para
comunicarse con el microcontrolador. Como se pudo ver de la tabla del ejemplo, un
conjunto de bits representa cada carcter. Una forma ms compacta de representar un
conjunto de bits, es mediante la representacin Hexadecimal. Esta representacin toma 4
bits y los representa por un nmero o una letra que va del 0 al F.
Se llama comunicacin serial, porque los cdigos se reciben uno detrs de otro o en
serie. Existen 2 tipos de comunicacin serial, la sincrnica y la asincrnica, la nica
diferencia entre los dos es: La comunicacin sincrnica necesita una seal de reloj para
compararlos con la lnea de envo de datos y garantizar que los datos enviados sean los
correctos.
93
S.C. PIC
$
Mic r o c hip
En cambio la comunicacin serial asincrnica enva datos sin necesidad de una seal de
reloj, en su reemplazo ocupa un mecanismo como referencia tierra (norma RS232), o
voltajes referenciales (norma RS422/485).
En este libro se va a estudiar la comunicacin serial asincrnica, por ser la ms utilizada a
nivel mundial por varias empresas de comunicacin y tambin porque nos permitir
comunicamos con el software LABVIEW y VISUAL BASIC 6.0.
La manera de transmisin de datos en comunicacin serial asincrnica se detalla en el
siguiente diagrama:
+5V
Nmero enviado
El grfico corresponde al nmero 01100001 correspondiente al ASCII de A como se
anot en la tabla de ejemplo.
Las computadoras poseen la norma RS232 para realizar comunicacin serial, la cual
utiliza lgica inversa para realizar la comunicacin serial, que significa que 5V =0L y 0V
= 1L, la manera de transmisin de datos para la letra A, en esta norma ser:
o
0
10 1 10 0 0 o
s
Nmero enviado
94
S.C. ' PIC
$
M i c r o c h i p
VELOCIDADES DE TRANSMISIN DE DATOS
Las velocidades para transmisin de datos van desde los 300 hasta los 9600 bits por
segundo en el modo de comunicacin serial, pero hay que tener presente si son
velocidades de datos verdaderos, o datos invertidos. A continuacin presentaremos una
tabla con las velocidades para cada uno de stos casos:
Dato Verdadero Dato Invertido
T300 N300
TI 200 NI 200
T2400 N2400
T9600 N9600
INSTRUCCIN SERIN - SEROUT
Las instrucciones que permite al microcontrolador manejar la comunicacin serial son
SERIN y SEROUT, las cuales recepta y transmite el dato serial respectivamente.
Para utilizar estas instrucciones es necesario incluir los modos de comunicacin mediante
la siguiente instruccin:
I NCXUDE " modedef s . baa"
SERIN.- Como se ha dicho anteriormente esta instruccin permite recibir un dato
enviado serialmente por otro dispositivo electrnico, y su sintaxis es:
SERI N PORTB.0,N2400,DATOS
Que significa: Recepte el dato serial por el BIT B.O del puerto B a una velocidad de 2400
bits por segundo y guarde en la variable DATOS.
SEROUT.- Mediante esta instruccin se enviarn datos seriales por un pin del
microcontrolador, su sintaxis es:
SEROUT PORTB.0,N2400,["A]
Que significa: Enve el dato A en cdigo ASCII a una velocidad de 2400 bits por
segundo por el BIT B.O del puerto B.
Conocida la teora de la comunicacin serial pasaremos a realizar una aplicacin.
95
S.C. ' PIC
$
M i c r o c h i p
COMUNICACION SERIAL PIC - PIC
Para realizar comunicacin serial es importante tener en cuenta que deben existir dos
dispositivos que se encuentren a la misma velocidad tanto para transmitir como para
recibir datos seriales, para esta aplicacin utilizaremos dos microcontroladores PIC
16F628A los cuales uno de ellos ser el transmisor y otro el receptor. De ah que el
diagrama esquemtico para realizar este tipo de simulacin ser:
. . R2 . .
SsF3-
<TEX7>.
l E
itj
UL
f i t f / OSCXU R
Re/ OSCICLKDJT f AUm
RA2/ AN2/ vSr
RA5W? RA3/ AN3/ 3WP1
RA</TDC>aa
RBO/KT
RBI/RXT
RB2/TT0CK
RB3/CCP1
RB4
RB3
R38/T103Q/T1CK
RB7/T109
s-

PIClfBW
TpfJ . . .
Pi
Sfi.
- t

ifc
R1
s
<TEXTv
Kt&MC RA7/OSCMXWN
R Al/* 1 R*fl/OSC2/Ct>OUT
MZJ EMQfJ&
RXUAKJXXW RAtH*
RMnrcKo
RSQ/ t 7
R85/RXH7T
RB2/ TX/ CK
R33/ CCP1
RM
RS5
RBC/T10S0mCW
RB7/ TJOS
PIC1#F6A.
i 01: :
1 LED-ya i o w
T9fr>.
Comunicacin serial PIC - PIC. Schematic Pesien
Como se puede observar en la figura, se ha conectado para el PIC transmisor un pulsador,
el cual al ser presionado enviar un dato serial al otro microcontrolador, el cual receptar
ese dato y encender el LED del PIC receptor.
La programacin para el microcontrolador PIC que ser el transmisor es:
IHCLUDE " modedef s. bo a" ; i n c l u y e mo d o s d e c o m u n i c a c i n
CMCOF=7 ; d i g i t a l i z a e l p u e r t o A
PULSADOR VAR PORTA.0 ; c a m b i o d e n o m b r e a l B I T A . 0 p o r p u l s a d o r
I N I C I O: ; e t i q u e t a p a r a s a l t o
I F PULSADOR=0 THEH / s i el p u l s a d o r es d i g i t a d o e n t o n c e s
SEROUT PORTB.0 , N 2400,[ "E "] ; e n v e s e r i a l m e n t e e l d a t o E "
GOTO I N I C I O ; y s a l t e a i n i c i o
EHDI F ; caso c o n tr ar i o
SEROUT PORTB.0 , N 2400,[ "A "] ; env i e s e r i a l m e n t e e l d a t o "A"
GOTO I N I C I O ; S a l t e a l a e t i q u e t a I N I C I O
Transmisor. PBP
96
S.C. ' PIC
$
M i c r o c h i p
La programacin para el microcontrolador PIC que ser el receptor es:
INCLUDE " modedef s. b as" ; I n c l u y e l o s mo d o s d e c o m u n i c a c i n
CMCON=7 ; d i g i t a l i c e e l p u e r t o A
LED VAR PORTA.0 ; C a mb i o d e n mo mb r e a l B I T . Q p o r LED
DATOS VAR BYTE ; v a r i a b l e DATOS d e t a m a o d e 2 5 5
I NI CI O: ; e t i q u e t a p a r a s a l t o
SERI N PORTB. D, N240G, DATOS ; R e c e p t e e l d a t o s e r i a l d e l B I T B. O
; a una v e l o c i d a d d e 2 4 0 0 b i t s p o r s e g u n d o y g u a r d e e n l a v a r i a -
; b l e DATOS
I F DATOS="E" THEN HIGH LED ; S i DATOS = " E e n t o n c e s p r e n d a e l LED
I F DATOS=A" THEN LOW LED ; S i DATOS = " A" e n t o n c e s a p a g u e e l LED
GOTO I NI CI O ; S a l t e a l a e t i q u e t a I N I C I O
Receptor. PBP
COMUNICACIN SERIAL INFRARROJA
Actualmente la electrnica se encuentra desarrollando equipos con tecnologa
inalmbrica (sin cables), que le permite al usuario tener mas espacio y mayor esttica en
sus oficinas, hogares, etc. Lo que hace indispensable comenzar a desarrollar programas
que utilicen este tipo de tecnologa. La comunicacin serial infrarroja permite al usuario
comunicarse entre 2 dispositivos electrnicos que se encuentren separados hasta una
distancia de lOmts, pero con la desventaja que los LEDs infrarrojos de estos dispositivos
que actan como transmisor y receptor deben estar alineados.
El transmisor no es ms que un LED infrarrojo, el que enviar los datos seriales.
Y el receptor es un LED infrarrojo en forma de un transistor que receptar los datos,
posee un encapsulado oscuro para evitar que la luz solar o luz artificial distorsionen la
informacin recibida.
En cuanto al tratamiento de los datos, que se le debe dar a este tipo de comunicacin
serial, es igual al estudiado anteriormente, lo que quiere decir que en lugar del cable que
se ocup para comunicar el primer dispositivo con el otro, se utilizar un diodo LED
infrarrojo transmisor y un diodo LED infrarrojo receptor los que enviarn y recibirn
datos respectivamente. Y la programacin ser la misma.
Por lo tanto la conexin para el mdulo de transmisin de datos infrarrojos es:
97
S.C. ' PIC
$
M i c r o c h i p
ZXJ R
: J
U1
'1S
RA70QC1/CLKH RAQA.HD
FU\&O0C3'CLKDirr RAI/AN1
RA^AKSTURB
M s- ur nr RAaAI O'CUPI
R.a* mxK rcuP2
RBOfiirr
RB1 I W0T
RBanrxiCK
RB31DCP1
RB*
RBS
R Ben-i oT Omcw
R87H-10W
i_m-ysm*v
<T D (l
i
Q1. .
ZH3C1* .
. -.TEK B.
-Tur
jw
12
Transmisor Infrarrojo. Schematic Pesien
Noten que se ha adicionado un pulsador, y que el LED infrarrojo se encuentra accionado
a travs de un transistor 2N3904.
El diagrama para el receptor es:
U1
fcA?ADOC1/-CLK RWVWC
RA&*O0C2fCL>C!iT M I .'Wl
KK3KKW3
p-ASWTCR RJ CVAHa'CLTI
RAmiC KIOJ F2
RBcyirr
R8 i/Rxirr
R82TOCK
R83TCCP1
Rfl*
r es
r b%t i o b o /t >:ki
M T mOH
s
R2
tdi .
I3L
3
1D
sn: : : : : : : : : : :
ES.....................
13
S) LEI-YUDUU *l L*
i i ::
. lOQjf. .
. <.T&n>.
Receptor Infrarrojo. Schematic Pesien
En el receptor se ha adicionado un LED que se prender cuando el pulsador del circuito
transmisor sea digitado.
98
S.C. ' PIC

M i c r o c h i p
COMUNICACIN SERIAL PC - PIC
La comunicacin serial que ocupa el computador es del tipo RS232, utilizando lgica
inversa para transmisin y recepcin de datos. Se la puede hallar en el conector DB9
MACHO que posee cada CPU (Unidad central de proceso).
Ciertas computadoras utilizan este conector para colocar perifricos de entrada como el
mouse, PLCs, entre otros. Cada uno de los pines del puerto serial est dedicado a un
propsito especfico, que fue determinado cuando se elabor el estndar RS232. A
continuacin se presenta una tabla con cada una de las funciones que realiza este puerto.
Propsito de cada uno de los pines del
Conector DB9
# Propsito
i
Tierra de chasis
2
Recibe los datos (RD)
3
Transmite los datos (TD)
4
Terminal de Datos esta Listo (DTR)
5
Tierra de seal
6
Conjunto de Datos esta Listo (DSR)
7
Solicita Permiso para Enviar Datos (RTS)
8
Pista Libre para Enviar Datos (CTS)
9
Timbre Telefnico (RI)
Como se puede apreciar en la tabla, los pines 2 y 3 son los ms importantes para nosotros
ya que permiten recibir y transmitir datos respectivamente.
S.C. ' PIC

M i c r o c h i p
Para introducimos en el manejo de la comunicacin serial con el computador
utilizaremos el software VISUAL BASIC 6.0.
COMUNICACIN SERIAL CON VISUAL BASIC 6.0
Visual Basic es una herramienta que permite realizar una programacin orientada a
objetos, que significa que cada uno de los elementos que se escoja en la pantalla podr ser
programado.
Nuevo proyecto ? X
Nuevo Existente | Recientes |
[EXE estndar 1 EXE ActiveX DLL ActiveX Control Administrador
ActiveX de asistent...
<j-
$1
3*
Asistente para
aplicaciones...
Addin Aplicacin
DHTML
Ap&cadon US Controles de
V8 Edicin...
P=a Cs
Abril
Cancelai
Ayuda
r* No mostrar este cuadro de dilogo en el futuro
Al iniciar Visual Basic aparece la pantalla Nuevo proyecto, en donde se seleccionar el
tipo de proyecto que se va a realizar.
Por defecto aparece la aplicacin EXE estndar que es la que necesitamos para realizar el
control computarizado de proyectos electrnicos con microcontroladores mediante
comunicacin serial.
100
S.C. ' PIC M i c r o c h i p
Aparecer una pantalla similar a la siguiente:
s P rcyortol M e no ? ! ? k u lB *lc \ bo/Is}
*rhv-
Esta pantalla contiene una seccin que se llama Forml, la cual permite al usuario generar
el Formulario, es decir permite visualizar como va a quedar nuestro proyecto con los
elementos que necesite para su proyecto.
En la izquierda de la pantalla se encuentra la barra de elementos, los cuales se les ir
agregando de acuerdo a las necesidades del proyecto.
En la derecha superior de la pantalla se encuentra el explorador de proyectos el que
permitir observar el nombre del proyecto, y el nombre del o los formularios que el
usuario agregue al mismo de acuerdo a sus necesidades.
En la derecha inferior de la pantalla se encuentra la ventana de propiedades, donde el
usuario cambiar el nombre, el tamao, los colores, entre otros, a cada uno de los objetos
a programar.
101
S.C. ' PIC
$
M i c r o c h i p
Para realizar comunicacin serial con este software es necesario agregar a la ventana de
herramientas el modo de comunicaciones realizando un clic derecho en la parte inferior
de la ventana de herramientas, seleccionamos componentes.
General j
* m
A f5T
-I
(7 (f
na *
$ a
L )
m
C ompetentes...
Agregar ficha...
y ftcoplabte
2<dtar
Aparecer la siguiente ventana:
Componentes
Contiotes I Disefia dotes Objetos insertabas
. Active Setup Control Ubrary
1Adobe Acrobat 7.0 Browser Control Type Librar
| D AppfcattonControCfapatch 1.0 Type l i xary
] AxBrowse
J HkMap 1.0 Type library
] C: \ARCHIV~l\Nero\NER07~l\NEROCO~t\CO
C:\VWNDOWS\system32\msconi.!*
C:\WlNDOWS\system32\tdc ocx
CDDeControl 1.0 Type Lfcrary
Cd g
de 1.0 Type Lflwary
CompatUl 1.0 Type Ubrary
< l >
_ 1
_ , 982
r- ? 25
a h.
S
Examinar..,
r Slo seleccionados
:-) VideoSoft vsflexS Controls--------------------------------
Ubicacin: C: \WINtX5WS\system32\VSaEX3.0a
Aceptar Cancela) ApEcs |
102
S.C. ' PIC
$
M i c r o c h i p
En la que se busca el componente Microsoft Comm control 6.0, y se lo seleccionar de la
siguiente manera:
Controles j Diseadores ] Objetos insertables |
G Ivaxplugin 1.0 Type Lbrary a
C Microsoft ActiveX Plugin
Microsoft ADO Data Control 6,0 (OLED8)
Microsoft Agent Control 2.0
L. Microsoft CE 3.0 Intrtnsic Design-Time Control L
Microsoft Chart Control 6.0 (OLEDB)
L Microsoft Common Dtalog Control 6,0
C Microsoft Data Bound Grid Control 5.0 (5P3)
Microsoft Data Bound List Controls 6.0
Microsoft DataGrid Control 6.0 (OLEDB)
Microsoft DataList Controls 6.0 (OLEDB)
Microsoft DataRepeater Control 6.0 (OLEDB) v
MU. . ._..... ! >
_ J A
te.
992
29
Examinar.
Slo seleccionados
Microsoft CommControl 6.0
Ubicacin: C:\WIfO0WS\system32\MSC0W32.0CX
Al realizar este procedimiento se cargar en la ventana de herramientas un nuevo
elemento parecido a un telfono analgico.
L*
General
A [ib
11-J
17 ?
d
zl
&
O
_ l U
<5>
Q
Bgj
EQ
Este elemento es el que permite al
usuario comunicarse con el puerto serial
que posee el computador.
103
S.C. ' PIC
$
M i c r o c h i p
Conocidos los elementos ms importantes para el manejo de este software, realizaremos
una prctica que consistir en prender un LED desde el computador durante 5 segundos ,
apagar el LED y a la vez monitorearlo, utilizando Visual Basic 6.0
Para realizar esta prctica debemos adicionar al formulario los siguientes componentes:
- Un botn (CommandButton)
- Un reloj (Timer), que permitir monitorear el LED si se encuentra
encendido o apagado.
- Modo de comunicaciones
- Un crculo, simulando un LED
Y el formulario queda de la siguiente manera:
' IM V -
* Forml - j i X
Comnwidl
Para sacar el crculo se debe escoger la herramienta shape que permite dibujar
rectngulos, cuadrados, valos, crculos, etc. Para nuestro caso ocuparemos un crculo,
pero hay que tener en cuenta que por defecto visual Basic carga al shape con un
rectngulo, lo que significa que en las propiedades del objeto shape se debe cambiar a
crculo as:
104
S.C. ' PIC M i c r o c h i p
General
*
A 1551
- I
w <*
-UJ
d
&
O
\
m
n
i &
3
Seleccionar la herramienta shape y arrastrar como se muestra en el grfico de la parte
superior, seleccionar el objeto y en la parte de propiedades proceder a cambiar a crculo.
O Propiedades - Shape1
i Shape 1Shape
3 ]
| Alfabtica j por categoras
BackStyte

O
/\
BorderColor &H8COO
BorderStyie 1Sot
jBofderWidth 1
DrawMode 13-CopyPa
FillColor &HOOOOOC
FillStyle 1- Transpare
1095
!lndex
Left 1320
::,e ectangle
S
0 - Rectangle
Top
V ef cte
1Square
2- Oval
3 * Circte
Width
|4 - Rocnded 1
V
r
[shape
1Devuelveo establece un valo
1queindicalaaparienciadeun
Para seleccionar un color plomo al crculo hay que seleccionar en propiedades del
elemento, FillColor y escoger el color a usar, y en FillStyle seleccionar SOLLD, para que
el color se fije en todo el crculo.
105
S.C. ' PIC
$
M i c r o c h i p
Quedando el crculo completamente editado que simular un LED para el monitoreo.
Propiedades - Sluipel X
Shapel Shape
3
| Ai abtica | por categoras |
J
BackStyto 0- Transpare** 11
BorderTotor &H80000C
BorderStyte
BorderWidth
1-SoM
1
DrawMode 13-CopyPei
m , l&HOOrjJ
(FiStrle 0-Sod
1095
hndex
I M 4440
fehape 3-arde
T*
Pop 1560
Mvsble True
I fwkth 1455
V
RlIColor
Devuelveo establece el color
usado para relenar formas,
Para visualizar cual es la velocidad de envo y recepcin de datos para la comunicacin
serial hay que ingresar a las propiedades del componente para las comunicaciones.
Para esto dar clic derecho con el mouse en el componente similar a un telfono y
seleccionar propiedades, donde aparecer una pantalla como la siguiente:
Commandl
m.
Pginas de propiedades
General | gfei j Hardware|
CommPorf. [9
Setbngr j 9600/1.8.1
Handjhakng- |o.ccnflerw~
Acepta | Cancelar Apear Ayuda
|M5Comml MSComm
Alfabtica j por categoras |
3
[(Acerc de)
A
KNombre)
1/D*. er*\
MSCcmml
t
IDTR&wWe Tai#
EOFEnable False
| i
IHandstiaHng 0 comNone
flnBufferSce 1024
Index
IrputLen 0
npcjtMode 0 - comlrputf
Left 3840
NuS>5<ard Pake
lOutEufferSt S12
[ParityReriace ? V
CommPort
Devuelveo establees el nmero
del puerto decomplicaciones.
106
S.C. PIC
M i c r o c h i p
Donde indica los valores para la comunicacin serial. Que se encuentran establecidos en:
9600,n,8,1 que significa: Envo de 8 bits de datos seriales, sin paridad y con un bit de
parada a una velocidad de 9600 bits por segundo.
Esta ventana tambin permite seleccionar el puerto de comunicaciones que se va a utilizar
para realizar la prctica.
Ahora lo nico que falta es realizar la programacin para este proyecto que ser la
siguiente: Como se ha dicho anteriormente que visual Basic es una herramienta orientada
a objetos, empezaremos a programar el objeto formulario. Dando doble clic en cualquier
parte del formulario que no contenga ningn elemento. Aparecer una ventana similar a:
jForm j [ ] L oad - 1
P r v a t e Sub F orm L oad( )
I
End Sub
En donde programaremos lo siguiente: Cuando se ejecute el programa, habilite el puerto
de comunicaciones y a la vez permita correr el timer a intervalos de 1milisegundo:
Pr vat e Suh For m_Load( )
MSCor aml . Por t Open = Tr ue
Ti mer 1. I nt er val = 1
End Sub
Luego se procederemos a programar el objeto CommandButton, el que permitir
encender el LED desde el computador, actuando como un pulsador. Para esto dar doble
clic en el objeto Commandl.
Commandl
programacin y donde se escribir:
Doble clic para que aparezca la pantalla para la
Prvate Sub Coramandl_Click()
MSCoraml.Output = "P" 1 enve aerialmente la P para encender el LED
End Sub
Esta parte del programa lo nico que realiza es enviar el dato serial de P para que el
microcontrolador recepte este dato y encienda el LED.
107
S.C. ' PIC M i c r o c h i p
Ahora lo nico que hace falta es programar el timer, para que realice el moni torco del
LED.
Si se encuentra encendido, cambiar el color del crculo a rojo; caso contrario cambiar el
color del crculo a plomo, monitoreando de esta manera el encendido y apagado de un
LED.
Para cumplir con este objetivo hay que dar doble clic en el componente timer que es
similar a un reloj, en donde aparecer la siguiente ventana:
Pr vat e Sub Ti mer l _Ti rner ()
End Sub
Procederemos a ingresar el cdigo necesario para el monitoreo:
Pr vat e Sub Ti mer l _Ti mer ()
DATO = MSCor aml . I nput 1 Recept e el ci ato ser i al y guar de I d en l a
1 Var i abl e DATO
I f Len( DATO) > 0 Then 1 Si el car ct er de DATO e3 mayor a cer o ent onces
End I f
I f DATO = "E" Then 1 Si l a var i abl e DATO es i gual a E
Shapel . Fi l l Col or = QBCol or ( 12) 1 Cambi e de col or al c r cul o por r oj o
I ndi cando que se ha encendi do el LED
End I f
I f DATO = " A Then 1 Si l a var i abl e DATO es i gual a A
Shapel . Fi l l Col or = QBCol or ( 8) 1 Cambi e de col or al ci r cul o por pl omo
1 I ndi cando que se a apagado el LED
End I f
End Sub
Como se puede notar, en esta parte de la programacin lo que se ha realizado es receptar
un dato serial, y preguntar por ese dato si es E o A, y si es E pintar el color del crculo por
rojo y si es A pintar el color del crculo de plomo.
El programa completo quedara as:
108
S.C. ' PIC

M i c r o c h i p
Pr i vat e Sub Cor nmandl _Cl i ck( )
MSComml . Out put = "P" 1 env e ser i al ment e el dat o P
End Sub
Pr i vat e Sub Fori ti _Load ()
MSComml . Por t Open = Tr ue 1 Habi l i t e el puer t o de comuni caci ones
Ti mer l . I nt er val = 1 1 Ej ecut e el t i mer a i nt er val os de 1 mi l i segundo
End Sub
Pr i vat e Sub Ti mer l _Ti mer ()
DATO = MSComml . I nput 1 Recept e el dat o ser i al y gur del o en l a
1 Var i abl e DATO
I f Len( DATO) > 0 Then 1 S el car act er de DATO es mayor a cer o ent onces
End I f
I f DATO = "E" Then ' Si l a var i abl e DATO es i gual a E
Shapel . Fi l l Col or = QBCol or ( 12) 1 Cambi e de col or al c r cul o por r oj o
1 I ndi cando que se ha encendi do el LED
End I f
I f DATO = "A" Then 1 Si l a var i abl e DATO es i gual a A
Shapel . Fi l l Col or = QBCol or ( 8) * Cambi e de col or al c r cul o por pl omo
1 I ndi cando que se a apagado el LED
End I f
End Sub
Ahora continuaremos con el microcontrolador. El diagrama esquemtico para este
proyecto ser:
Como se puede apreciar el Pin transmisor del conector DB9 est conectado con el Pin que
actuar como receptor en el microcontrolador, y viceversa.
Comunicacin serial con Visual Basic. Schematic Desist
109
S.C. ' PIC Mi cr o c h i p
La programacin para el microcontrolador es:
I NCLUDE " modedef a. bas
CMCON=7 ; D i g i t a l i z a e l p u e r t o A
LED VAR P octA .O ; c a m b i o d e n o m b r e ai b i t A. O p o r LED
DATOS VAR BYTE ; D a t o s d e t a m a o d e 2 5 6
I N I C I O: ; e t i q u e t a d e s a l t o
SERI N P o r tB . 0, N9600,DA TOS ; R e c e p t e l o s d a t o s s e r i a l e s q u e
; I n g r e s a n a l B i t B . O y g u r d e l o s e n l a v a r i a b l e DATOS
I F DA TOS="P" THEH GOTO P rendi do ; S i dato s es i g u a l a P
; s a l t e a l a e t i q u e t a p e n d i d o
GOTO I N I C I O ; c a s o c o n t r a r i o s a l t e a l a e t i q u e t a I N I C I O
P rendi do: ; e t i q u e t a p a r a s a l t o
HIGH LED ; e n c i e n d a el LED
SEROUT P o r tB . 1 , N960D, [ "E ] ; e n v e s e r i a l m e n t e p o r e l e l B I T
; B . l , a u n a v e l o c i d a d d e 9 6 0 0 b i t s p o r s e g u n d o l a l e t r a E
PAUSE 5000 ; p a u s a d e 5 s e g u n d o s
SEROUT P o r t B . 1 , N9600, [ " A ] ; e n v e s e r i a l m e n t e p o r e l e l B I T
; B . L , a u n a v e l o c i d a d d e 9 6 0 0 b i t s p o r s e g u n d o l a l e t r a A
LOW LED ; a p a g u e e l LED
GOTO I N I C I O ; s a l t e a l a e t i q u e t a i n i c i o
Comunicacin serial con Usual Basic. PBP
110
$
S.C. ' PIC Mic r o c hip
MANEJO DEL SOFTWARE LABVIEW 7.0
El LabView es un lenguaje de programacin de alto nivel, de tipo grfico, y enfocado al
uso en instrumentacin. Pero como lenguaje de programacin, debido a que cuenta con
todas las estructuras, puede ser usado para elaborar cualquier algoritmo que se desee, en
cualquier aplicacin, como en anlisis, telemtica, juegos, manejo de textos, etc. Cada
programa realizado en LabView ser llamado Instrumento Virtual (VI). El lenguaje mas
apto para realizar proyectos computarizados se lo ha considerado al software LABVIEW
por varias razones como:
Es muy simple de manejar, debido a que est basado en un nuevo sistema de
programacin grfica, llamada lenguaje G.
Es un programa enfocado hacia la instrumentacin virtual, por lo que cuenta con
numerosas herramientas de presentacin, en grficas, botones, indicadores y controles,
los cuales son muy esquemticos y de gran elegancia. Estos seran complicados de
realizar en bases como c++ o visual Basic donde el tiempo para lograr el mismo efecto
sera muchas veces mayor.
Es un programa de mucho poder donde se cuentan con libreras especializadas
para manejos de DAQ (Sistemas de adquisicin de datos), Redes, Comunicaciones,
Anlisis Estadstico, Comunicacin con Bases de Datos (til para una automatizacin
de una empresa a nivel total).
Con este las horas de desarrollo de una aplicacin por ingeniero, se reducen a un
nivel mnimo.
Como se programa creando subrutinas en mdulos de bloques, se pueden usar
otros bloques creados anteriormente como aplicaciones por otras personas.
Es un programa que permite pasar las aplicaciones entre diferentes plataformas
como Macintosh y seguir funcionando.
I
111
S.C. PIC
$
M i c r o c h i p
Sus partes ms importantes son:
EL PANEL FRONTAL: Donde se ven los datos, se manipulan y controlan.
S Unttled 1 Front Panel f ni B i
Fe Ecft Qperate Toote growse Window Help
Es en esta pantalla es donde se encontrarn los elementos que el usuario vaya a utilizar.
Para visualizar la tabla de controles dar clic derecho en cualquier parte de la pantalla y
aparecer una ventana similar a:
NumCtrls
% ^
NumInds
a
Buttons
I
9
LEDS
Search
f M
Text Ctrls

User Ctrls
R!
Text Inds Graph Inds ABControls
112
S.C. ' PIC Mic r o c hip
Donde se encuentran botones, switch, leds controles numricos, indicadores grficos, etc.
EL DIAGRAMA DE BLOQUES: En este se aprecia la estructura del programa, su
funcin y algoritmo, de una forma grfica en lenguaje G, donde los datos fluyen a travs
de lneas.
Untitled 1 BlockDiagram
Rte EA Qperate lods growse Window Help
." ilffx
<T [#| [T | [ty] [qjf~ ' [~13pt Application Font ~7|[ |[ j | j_______p f
iooleanl
wm
foolean 2
m J
V
Cada elemento que se seleccione en el panel frontal aparecer encerrado en un cuadro
dentro de la pantalla, en el diagrama de bloques, en donde se llevar a cabo la
programacin que el usuario la vaya a desarrollar mediante conexiones o uniones del
mouse. As:
iooleanl
3oolean 2|

\km
L i d
113
S.C. ' PIC
$
M i c r o c h i p
EL PROGRAMA COMPILADO: Cuando se escribe en LabView, el algoritmo escrito
de forma grfica no es ejecutable por el computador, por tanto, LabView lo analiza, y
elabora un cdigo assembler, con base en el cdigo fuente de tipo grfico. Esta es una
operacin automtica que ocurre al ejecutar el algoritmo, por tanto no es importante
entender como sucede esto. Lo que si es algo para apreciar, es que en este proceso, se
encuentran los errores de confeccin que son mostrados en una lista de errores, donde con
solo darle doble clic al error, se aprecia en el diagrama de bloques, donde ocurre ste,
para su correccin.
LOS DATOS: Como el algoritmo maneja datos, requiere de un espacio en memoria para
estos, lo que hace tomar en cuenta que el computador usado debe tener la memoria
suficiente para manejarlos. Por ejemplo, cuando se usan grandes matrices en clculos se
puede requerir de mucho espacio.
Tanto en el panel frontal como en el diagrama de bloques, existe una paleta de
herramientas, que sirve tanto para editar el VI, o ejecutarlo segn el modo de trabajo que
se tenga.
PALETA DEL PANEL FRONTAL
Ejecuta el programa repetitivamente.
Permite detener el programa
| Pausa el programa
li | | : 13pt Application Font
Ejecuta el programa una sola vez, por esta razn se debe tomar en cuenta
que si no se realiza un lazo repetitivo, el usuario no podr observar el
funcionamiento del programa, debido a que el programa se ejecutar muy
rpido.
Entendido el funcionamiento de las partes ms importantes del LABVIEW pasaremos a
realizar una prctica sencilla, que permita prender y apagar un led mediante un
interruptor.
114
S.C. ' PIC
Mic r o c hip
Para la realizacin de esta prctica en la ventana de LabView seleccionar una hoja virtual
en blanco, as:
En el panel frontal seleccionar un interruptor y un led
115
S.C. ' PIC
$
M i c r o c h i p
Digitar CRTL +E para pasar al diagrama de bloques donde se realizar la programacin
grfica para este proyecto, que consistir en unir mediante el mouse los dos objetos para
prender y apagar el led mediante el interruptor.
''t>_ Untitied 7 Block Diaf ram *
*
Pri II
3
Fe fccft Qperate loob rowse tfndow tMP
0 | ^ t I I $
|l*aj*Ef M 13ptAppfcatonFont i '' j "a'J -fa j J
m
ean 3oolean2l
.
>
Noten que al presionar CTRL +E aparece la pantalla del diagrama de bloques con los dos
objetos seleccionados en el panel frontal. Ahora simplemente hay que ejecutar el
programa para visualizar el proyecto.
-
Boolesn
fj>
Bo otean 2
&
NOTA: Tener en cuenta que si se desea observar el funcionamiento hay que correr el
programa con el icono que ejecuta el programa repetitivamente, ya que no se le ha
asignado ningn lazo repetitivo al proyecto.
116
S.C. ' PIC
$
M i c r o c h i p
Si se desea que este proyecto se mantenga mediante un lazo repetitivo, se procede de la
siguiente manera:
En el diagrama de bloques dar clic derecho en cualquier parte de la pantalla y se tiene una
nueva ventana con diferentes herramientas:
-fcl Fincttons _________________________ Search |
1
ML
Input f-Analysis Output User Libraries
P
&>2!>
; d>

I fffl
i r
ExecCtr Arith/Compare Sig Manip AHFunctions
En esta ventana se tiene varios elementos, los cuales permiten realizar funciones de
comparacin, suma, resta, entrada de datos, salida de datos, etc. Para nuestro caso se
seleccionar en Exec Ctrl para seleccionar un lazo While Loop que permite realizar
repeticiones en el sistema.
Input
Exec Ctrl
Output Analysis
aa^
-] Execution Control
User Libraries
While Loop Fiat Sequence Case Structure
L
Time Delay Elapsed Time
Para que este lazo funcione en la prctica que estamos realizando se lo debe adicionar
dentro de los elementos que se est utilizando de la siguiente manera:
117
S.C. ' PIC
$
M i c r o c h i p
Y como se puede apreciar al colocar este lazo se gener un nuevo elemento denominado
STOP, el que permitir parar el sistema en cualquier momento durante su ejecucin.
Para ejecutar el programa basta con dar un clic en el icono " , el que ejecutar el
programa repetidamente gracias al lazo While Loop que se ha adicionado al sistema.
118
S.C. ' PIC
$
M i c r o c h i p
COMUNICACIN SERIAL CON LABVIEW 7.0
LABVIEW permite utilizar taijetas de adquisicin de datos para comunicamos con
perifricos externos al computador, lo cual tiene grandiosas ventajas, pero los costos de
estas taijetas son muy elevados.
LABVIEW permite comunicarse con los puertos de comunicacin que posee el
computador, tanto con el puerto paralelo, como con el puerto serial, siendo esta una de las
grandes ventajas ya que el microcontrolador PIC puede aceptar un dato serial enviado
desde el computador.
A continuacin realizaremos un ejemplo que permita recibir un dato serial y visualizarlo
en un LED. Para este propsito se necesita un LED como indicador y un botn para
iniciar la comunicacin serial, adicionando un indicador tipo texto para visualizar lo que
contiene la buffer al ingreso de los datos seriales.
La pantalla en el panel frontal queda as:
Para comparar si el estado del pulsador es alto o bajo es necesario ingresar en el diagrama
de bloques la funcin Case Structure, la cual permitir obtener un dato verdadero si se
digit el pulsador y un dato falso si no se lo presion.
- ] Functfons

.I
Input
ExecOri
I ki,
Anatysis Output
-Cs Execution Control
J HWjj
While Loop

MIL
User Libraries
f l at Sequence Case Structure
a
JE
Time Delay Elapsed Time
119
S.C. ' PIC
$
M i c r o c h i p
Seguidamente se colocar esta opcin en el diagrama de bloques.
.eer laBuffer|
loK
5 el dato serial es igual a A* ene tanda el LED]
trido de adquisicin de datos seriales 1
Cuando el dato sea verdadero, el sistema permitir el ingreso de datos seriales, caso
contrario el sistema no aceptar el ingreso de los mismos.
de edquBidcn de datos serialesl
120
S.C. ' PIC M i c r o c h i p
Es necesario incluir el modo de comunicacin serial que se encuentra en Instrumentos
I/O.
- D a Functions
Input
0
Exec Ctrl
i a s
f e t
Analysis
! o
Arith/Compare
t ;
Output
l
StgMaip
Q^ Search i
<<!
User Libarles
All Functions
-] Al Functions
y
W
E>
fobcl *
su S
m '
B
m '
>s'
JVh
sA^r
UuluJ
Mi
tu
rvisAiM
iT
Is H h v i M
*{] Serial
VISA Configure Serial Poit.vi
VISA
1CRIAI
mm
msr
ibC'
Noten que en esta tabla, se encuentra la configuracin del puerto serial, el que contiene:
Modo para lectura, modo para escritura, modo para cerrar el puerto de comunicacin
serial, entre otros.
Los controles ms utilizados para proyectos en comunicacin serial con LabView son:
Los modos de configuracin, modos de lectura, modos de escritura y modos de cerrar la
comunicacin, que posee el puerto serial.
1/ISA VISA (T
abc-*^
VtSAf? l/ISA
icKim
&
Ibbbbb!
R ISUl w ia i
121

El detalle de los pines que posee cada uno de estos controles se presenta a continuacin:
Para el modo configuracin del puerto de comunicacin serial es:
VISA resource ame --------- v i s a ------- - duplcate VISA resource ame
baud rate (9600) -*1
I
flovv control (0: norte}
S.C. ' PIC______________________________________ Mic r o c hip
data bits (8) 11 error out
parity (0:none)
error in (no error)
VISA Configure Serial Portvl
[VISA Configure Serial Port]
Initialzes the serial port specified by VISA resource ame to the specified
settings.
Para el modo de lectura en comunicacin serial es:
VISA resource ame
byte count -
error in (no error)
r
-T
JT
R oniL--------
dup VISA resource ame
read buffer
error out
VISA Read
Reads the specified number of bytes from the device or interface specified by
VISA resource ame and retums the data in read buffer.
Para el modo de escritura en comunicacin serial es:
VISA resource ame---------- Mf o ) ----------dup VISA resource ame
write buffer u return count
error in (no error) B*error 0ut
VISA Write
Writes the data firomwrite buffer to the device or interface specified by
VISA resource ame.
Para el modo de cerrar la comunicacin serial es:
VISA resource ame-------- -p>sA
error in (no error) error out
VISA Cise
Closes a device sesslon or event object specified by VISA
resource ame.
Como se puede apreciar en cada control se encuentra el pin Visa resource ame, el cual
es de vital importancia, ya que este permite adicionar el puerto de comunicacin serial
que en casi todos los computadores es el COMI.
122
S.C. ' PIC
$
M i c r o c h i p
Para asignarle el puerto de comunicaciones serial COMI, hay que dar un clic derecho en
el pin VISA resource ame y seleccionar crear constante as:
Visible Items
Help
Descriptor* andTlp...
Set Breakpoint
Serial Palette
VISA Palette
| Create Constant
Replace Control
Indicator
Property
Method
Quedando la pantalla as:
E B
ytSA
En el control I/O que se asigna hay que escribir el puerto COMI , y eso es todo.
Continuando con nuestro proyecto, la pantalla cuando el pulsador no es digitado queda
as:
tmoo de laAdqugioo de Datos serialtsl
*BEZB"
EcornB-
___
Noten que se ha seleccionado el control que cierra la comunicacin serial. Asignando el
puerto COMI como se ha detallado anteriormente.
123
S.C. PIC
$
M i c r o c h i p
Si el pulsador es digitado, hay que leer el dato serial, lo cual requiere la siguiente
programacin:
\o:en que en cada control VISA el pin VISA resource ame, se lo conecta al mismo
control I/O - COMI, lo que permite leer el dato serial y comparar con la variable A, y si
es correcto encender el LED.
La programacin para que el microcontrolador PIC, enve serialmente el dato A es:
INC LUDE "modedefs .bas ; I n c l u y e l o s modos d e c o mu ni c a c i n s e r i a l
TrttC: ; E t i q u e t a da s a l t o
SEROUT PortB.1,N9600,["A"] ; En v e s e r i a l m e n t e p o r e l BIT
5 . 1 , a una v e l o c i d a d de 9600 b i t s p o r s e gund o l a l e t r a A
GOTO Inicio ; Salte a la etiqueta ITJICIG
Comunicacin serial con LABVIEW 7.0. PBP
124
S.C. ' PIC
$
M i c r o c h i p
Una vez conocida la recepcin de datos seriales, realizaremos un ejemplo que permita
enviar un dato serial desde LABView al microcontrolador, el cual lo aceptar y si al
compararlo con otro dato que se encuentre dentro del PIC es el mismo encender un LED
externo.
Para esto en el panel frontal es necesario incluir un Led para indicar que ha iniciado el
envo de datos a travs del computador, un control de texto para escribir el dato que se
desee enviar y un pulsador para iniciar la comunicacin. Quedando el panel completo as:
De la misma manera que el ejemplo anterior hay que incluir en la programacin un
control de caso, para preguntar si el pulsador es digitado o no lo es. En el caso de que el
pulsador no es digitado la programacin es:
Como se puede apreciar el LED se le ha conectado directamente al pulsador para indicar
que inici o no la comunicacin serial.
125
S.C. ' PIC
$
M i c r o c h i p
Y en el caso de que el pulsador sea digitado la programacin queda:
Enviando Datos I
r- r-:
[
fenvio de Datos 1
)ato a Enviarl
tobe {
1100001---
feCOMI VISA
ICftt.L
aelaal
' i b c
as
El dato a enviar se lo coloca en el pin de escritura de la buffer, de esta manera
conseguimos enviar cualquier letra o nmero a travs del puerto serial del computador.
El diagrama para el equipo externo que receptar los datos seriales enviados desde el
computador es:
126
S.C. ' PIC
M i c r o c h i p
Y la programacin para el microcontrolador es:
I NCLUDE " modedef a . bas ; Incluye los modos de comunicacin
DATOS VAR BYTE ; Datos de tamao de 256
LED VAR PORTB. 1 ; Cambio de nombre al Bit B . l por LSD
I NI CI O: ; Etiqueta para salto
SERI N PortB. 0, *79600, DATOS ; Recepte el dato serial enviado
; a ana velocidad de 9600 bits por segundo y guarde en la-
; variable DATOS
I F DATOS=" A" THEN HI GH LED ; Pregunte si la variable DATOS
es igual a "A, entonces enci enda el LED
LOW LED ; Caso contrario Apague el LED
GOTO INICIO / Salte a la eziqueta INICIO
Comunicacin serial con LABVIEW modo escritura. PBP
O
127
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
S.C. ' PIC
$
M i c r o c h i p
4
La RADIO - FRECUENCIA, permite al usuario comunicarse entre dos equipos, a travs
de dispositivos de transmisin y recepcin de datos, sin necesidad que los equipos se
encuentren alineados, y en algunos casos, no necesitan que se encuentren en lnea de
vista, es decir puede estar un equipo en una habitacin y otro en otra habitacin.
Actualmente existen en el mercado una gran variedad de mdulos de radio - frecuencia,
los cuales permiten al usuario operar con dispositivos electrnicos sin necesidad de
cables.
En algunos casos estos mdulos no son muy costosos, como los mdulos de transmisin
y recepcin de datos de FUTURLEC.
Estos mdulos son sencillos de utilizar, extremadamente pequeos y permiten realizar
controles remotos de radio - frecuencia a 433.92 MHz. Utilizan modulacin del tipo
ASK, y se usa para manejar alarmas de vehculos, sistemas de seguridad, telfonos
inalmbricos, proyectos con robots y otros sistemas de control remoto por medio de RF.
Cada uno de estos mdulos puede trabajar sin necesidad de un microcontrolador, con los
circuitos integrados que permiten codificar la seal que estn enviando y recibiendo, en el
caso del transmisor de radio - frecuencia necesita el circuito integrado HT12D, y el
receptor utiliza el HT12E. El manejo de estos mdulos de RF, es muy sencillo, ya que
estos circuitos integrados tienen la ventaja de asignar un cdigo para transmisin de
datos, el cual debe ser el mismo en el receptor para que el sistema pueda funcionar. Los
circuitos integrados HT12D y HT12E, operan hasta 4 bits, si se desea mayor capacidad
para el trabajo se debe utilizar los circuitos HT648L en el caso del receptor y HT640 para
el transmisor, los cuales trabajan a 8 bits cada uno.
MANEJO DE MODULOS DE
RADIO - FRECUENCIA
129
$
S.C. ' PIC Mi cr o c h i p
MODULO TRANSMISOR.
El mdulo transmisor tiene una potencia de salida de hasta 8mW a 433.92 MHz,
alcanzando distancias de aproximadamente 140 metros en espacios abiertos (lnea de
vista) y de 60 metros en espacios internos donde se encuentren obstculos como paredes,
separadores en oficinas, etc. Este tipo de transmisor acepta seales lineales y digitales de
entrada y opera con un voltaje de 1.5V a 12V de corriente continua.
Para manejar estos dispositivos se puede utilizar un microcontrolador o un codificador
HT12E, el que opera en controles remotos de RF de 4 bits y posee 8 bits de direcciones.
En la figura se muestra una unidad transmisora usando el codificador HT-12E.
HT-12E ENCODERIC
4-BIT ENCODER i----- <^7-
CIRCUIT -------CD AO VCC
--------[T j a i do ut
----- [Tj A2 0SC2
-------[ 4 | A3 0SC1
-------[T ] Ai /TE
----- [T] A5 D3
I 7 I A6 D2
------- [T|A7 D1
--------[TI GND DO
+5V
15]-T
m >n_ nn
I I WW-]
7n----- 1
750K
ANTENNA
j i n n .
GND
Si se desea ocupar un microcontrolador, el pin 2 del mdulo transmisor tiene que ingresar
a cualquier bit del microcontrolador que se est ocupando. Para que por medio de ese bit
se generen los datos que deben salir a travs de la antena a la unidad receptora.
El diagrama para utilizar un microcontrolador en lugar del encoder HT-12E es:
irtwu
/
X
j i
m t
va tnccczn <
__
RA2 RAI
__

RA2 RAO
----
1

Vss
RAC-
Vdd
1
=
R3
R32
R K
RS5
----
--- P52 R54
----
PIC 16F626A
NOTA: El bit que se est ocupando para realizar el envo de datos de radio - frecuencia es el B.O
del puerto B que posee el microcontrolador PI C 16F628A.
130
$
S.C. ' PIC Mi cr o c h i p
MODULO RECEPTOR.
I
El mdulo receptor opera a 433.92 MHz, y tiene una sensibilidad de 3uV, opera con un
voltaje de alimentacin entre 4.5V y 5.5V de corriente continua, posee una salida lineal y
una digital, adems contiene un capacitor variable para el ajuste de la frecuencia de
recepcin utilizando un destornillador plstico.
En este tipo de mdulo receptor se puede utilizar un microcontrolador PIC para el
tratamiento de los datos o un decodifcador HT-12D, que se utiliza en controles remotos
de RF de 4 bits y posee 8 bits de direcciones.
En la figura se muestra una unidad receptora usando el decodifcador HT-12D.
HT-12D DECODER IC +5V
CE
AO vcc
W
A1
VT
CT
A2 OSC2
A3 OSC1
d ]
A4 DIN
d j
A5 D3
m
A6 D2
3
A7 D1
{H
GND DO
33-
1P W V ]
151--------- 1
33K
33-
32>-----TLUI
t h----->
~TT| >
TT} >
Toj >
ANTENNA
/
v
RWS-434
1 2 3 4 5 6 7 8
O
GND
4-BI T DECOOER
CI RCUI T
+5V
i
GND
r u x n .
Si se desea ocupar un microcontrolador, el pin 2 del mdulo receptor tiene que ingresar a
cualquier bit del microcontrolador que se est ocupando. Para que por medio de ese bit
ingrese la informacin emitida por el mdulo transmisor. El diagrama para utilizar un
microcontrolador en lugar del decoder HT-12D es:
NOTA: El bit que se est ocupando
para el ingreso de los datos que se
han enviado por la unidad transmisora
es el B.O del PI C 16F628A.
131
S.C. ' PIC
$
M i c r o c h i p
PROYECTOS CON MDULOS DE RADIO - FRECUENCIA
El primer proyecto es utilizar los mdulos de radiofrecuencia para observar por medio de
LEDs el envi de dalos utilizando los circuitos codificadores y dccodificadorcs para el
transmisor y receptor respectivamente.
El diagrama para el transmisor es:
Noten que en c cncodcr HT-12E todos los pines c' 'l A.O - A.7 se encuentran conectados
a tierra, esto se debe a que estos pines generan la direccin del transmisor, es decir es el
cdigo de este dispositivo transmisor, y los pines ADS - AD11son los pines que permiten
realizar la transmisin de datos a 4 bits.
Para el caso del dispositivo receptor se tiene que asignar el mismo cdigo, es decir,
colocar los pines A.O - A.7 a tierra en el decoder HT-12D.
El diagrama para el receptor es:
132
S.C. PIC
M i c r o c h i p
En este caso los pines D8 - DI 1corresponden a las salidas. Para visualizar el efecto de
radio - frecuencia, se tiene que colocar los bits de salida (D0-D3) a travs de resistencias
de 330 ohmios a leds.
Por lo tanto el funcionamiento consiste en: Por cada uno de los switchs que se habiliten
en la unidad transmisora, se prendern los leds correspondientes a las salidas de la unidad
receptora.
MDULOS DE RADIO - FRECUENCIA UTILIZANDO
MICROCONTROLADORES PIC.
El segundo proyecto consiste en realizar un parpadeo de led utilizando una unidad
transmisora con microcontroladores PIC para enviar datos y utilizando una unidad
receptora junto con un led para visualizar los mismos.
Los diagramas de conexin son:
UNIDAD TRANSMISORA UNIDAD RECEPTORA
ANTENNA
Como se puede apreciar la unidad receptora posee un led en la salida de los datos, lo cual
indicar el parpadeo del led que se programar en el microcontrolador PIC 16F628A, en
la unidad transmisora. Se ha utilizado el Bit B.O del puerto B para enviar datos a travs
del microcontrolador.
133
S.C. PIC
$
M i c r o c h i p
La programacin para el microcontrolador 16F628A que se encuentra en la unidad
transmisora es:
HIOH PortB.0 ; Sa c a 1L p o r e l puerto B. O
GOSUB timer / S a l t a a l a s u b r u t i n a e t i q u e t a d a t i m e r
LOW PortB.0 / Sa c a OL p o r e l p u e r t o 3 . 0
GOSUB timer ; S a l e a a l a s u b r u t i n a e t i q u e t a d a t i m e r
GOTO inicio ; s a l t a a l a s u b r u t i n a e t i q u e t a d a I n i c i o
timer: ; e t i q u e t a p a r a l a s u b r u t i n a GOSUB
RETURH ; r e g r e s a o r e t o r n a a l a s i g u i e n t e l i n e a d e s p u e s de
; e l GOSUB t i m e r
Provecto2 RF Transmisor. PBP
m i c r o : / e t i q u e t a p a r a l a s u b r u t i n a GOTO
PAUSE 1000 ; r e a l i z a una p a us a d e 1 s e g u n d o
Para mxima eficiencia se recomienda utilizar Antenas del tipo
ltigo de 'A de onda. La mostrada en la figura, est diseada para
433Mhz tiene 6.5 pulgadas de longitud y usa un cable coaxial de
50 Ohmios. Es a prueba de intemperie.
134
S.C. ' PIC
$
M i c r o c h i p
Y como ltimo proyecto utilizaremos 2 microcontroladores PIC para colocarlos uno a la
entrada, y otro a la salida de las unidades transmisoras y receptoras respectivamente.
Este proyecto permitir contar los pulsos que se enven por la unidad transmisora y
visualizarlos en un LCD. Para contar los pulsos por un bit del microcontrolador es
necesario conocer la instruccin COUNT.
I NST RU CCI N COU NT
La instruccin COUNT permite contar el nmero de pulsos que ingresan a travs de un
bit del microcontrolador durante un perodo de tiempo. Su sintaxis de manejo es:
COUNT PORTB.0 r1000,DATOS
Para probar el manejo de esta instruccin se realizar un programa que permita obtener
los pulsos enviados a travs de un generador de seal de reloj durante 5 segundos y
mostrar estos datos en un LCD.
El diagrama de conexin es:
:UT W , \ 2 L .
ut
jfii.
JSi.
RATASCl i Cl MN HAftNO
RASOSC2C LK3UT KA1/ AN1
RA2WN2A/REF
RASUCU? 8* 3* M3(CUIM
RA/nEWCUK
RKWNT
fffti/tcffrr
R12/ TXCK
asaccpi
RB*
Msrnoso/rtcw
Rumos

JL
ilfL
SI
m
Leen
OR PULSOS
DfiTO= 3000
----------- --------

.................
................................................................
Instruccin COUNT. Schematic Pesien
Como se aprecia se ha adicionado un control, el cual permite enviar seal de reloj. El
icono en el cual se localiza este control es:
, en el cual se tiene que seleccionar DCLOCK.
135
S.C. PIC
$
M i c r o c h i p
El programa para este proyecto es:
DEFINE LCD_REG PORTB ; D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t o 3 pa r a
; t r a n s m c i n d e d a z c s
DEFINE LCD_DBIT 4 ; d e s d e e l BI T 3 . 4 h a s t a e l 3 . 7
DEFINE LCD_RSREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r e g i s t r o d e c o n t r o l / d a t o s
; en e l p u e r c o 3
DEFINE LCD_RSBIT 2 en e l BI T 3 . 2
DEPINE LCD_EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l s n a b l s en e l p u e r t o 3
DEFINE LCD_ZBIT 3 / en e l BI T 3 . 3
DA20 VAR WORD / Da t e de t a c a o de 65536
LCDOUT $T S,1," :::TACOR ?1~SC5" ; e n v e a l a p r i s e r a l i n e a d e l LCD
; e l t e x t o "CONTADOR PULSOS"
: : : i CI C: ; p a n s a l t o
COUNT PORTB. 0, 1000, DATO : c u e n t e l o s p u l s o s e n v i a d o s a t r a v s d e l
; b i t 3 . 0 d u r a n t e 1 s e g u n d o y g u a r d e e l
: r e s u l z a d o en l a v a r i a b l e DATO
I.CDOUT $FE, SCO, "CATC= ", DEC DATO ; e r . v i s a l a s e g u n d a l i n e a d e l LCD
; l e p a l a b r a DATO" y s a q u e s i d e c i ma l d e l o
; que c o n t i e n e l a v a r i a b l e DATO
GOTO i n i c i o ; S a l t e a l a e t i q u e t a I NI CI O
Instruccin COLWT. PBP
Conocido el manejo de la instruccin COUNT procederemos a realizar los circuitos para
manejar mdulos de radio - frecuencia sin necesidad de los encoder y decoder.
El diagrama para la unidad transmisora es:
ANTENNA
Como se aprecia en la figura se ha incorporado un microcontrolador PIC 16F628A para
enviar una serie de pulsos por el bit B.O del puerto B, los cuales sern: El primer rango de
pulsos para el cdigo de la unidad y el segundo rango el dato que se enviar.
136
S.C. ' PIC
$
M i c r o c h i p
La programacin para esta unidad es:
R VAR BYTE / V a r i a b l e R d e t ar. ao d e 256
Y VAR BYTE / V a r i a b l e Y d e t amao d e 256
TRISB=%0 ; Hace s a l i d a e l B i t 3 . 0 d e l p u e r t o 3
INICIO: ; E t i q u e t a p a r a s a l t o
. *****+****+gn v 0 d e c d i g o p a r a l a Ra d i o - F r e c u e n c i a
POR R=1 TO 10 / Laz o d e c o n t e c d e s d e R- 1 h a s t a 10
PORTB=l / Env i a 1L p o r e l 3 i t B. O
GOSUB TIMER ; S a l t e a l a e t i q u e t a TIMER
?ORTB=0 ; Env i a OL p o r e l B i t 3 . 0
GOSUB TIMER ; Salte a l a e t i q u e t a TIMER
NEXT ; S i g a e l La z o h a s t a R - 10
; Pausa d e s e p a r a c i n e n t r e e l c d i g o e n v i a d o y e l d a t o a e n v i a r
PAUSE 5000
. ***+*****++n v i 0 el d a t o p o r Ra d i o - F r e c u e n c i a
FOR Y=1 TO 10 ; La z o d e e n v o d e d a t o s d e s d e Y - l h a s t a 10
FOR R=1 TO 100 ; Laz o d e c o n t e o d e s d e R- 1 h a s t a 100
PORTB=l ; Env i a 1L p o r e l B i t 3 . 0
GOSUB TIMER ; S a l t e a l a e t i q u e t a TIMER
PORTB=0 / Env i a 1L p o r e l B i t B. O
GOSUB TIMER ; S a l t e a l a e t i q u e t a TIMER
NEXT ; S i g a e l La z o h a s t a R - 100
PAUSE 2000 ; p a u s a p a r a e v i t a r d a t o s i n c o r r e c t o s
NEXT ; c o n t i n u con e l l a z o For h a s t a que Y**10
GOTO INICIO / S a l t e a l a e t i q u e t a INICIC
TIMER: ; E t i q u e t a d e s a l t o
PAUSE 10 ; Pausa d e 10 m i l i s e g u n d o s
RETURN ; r e t o r n e a l a l i n e a d o nd e s e que d
RF Transmisor. PBP
Como se aprecia en la programacin se ha incorporado un lazo For para el cdigo (10
pulsos enviados en 200 milisegundos), para la unidad transmisora de Radio - Frecuencia,
y otro lazo For para el envo de datos, que en este caso se enviar 100 pulsos por el bit
B.O durante 2 segundos.
137
S.C. PIC
$
M i c r o c h i p
El diagrama para la unidad receptora es:
ANTENNA Mdulo LCD 16*2
La programacin para esta unidad es:
DEFINE 1CD_DREG PORTB ; D e f i n i c i n p a r a u t i l i z a r b i t s d e l p u e r t o 3 p a r a
; t r a r . s mi c i r . d e d a t o s
DEFINE IiCD_DBIT 4 / d e s d e el BI T 3.4 h a s t a e l B . l
DEFINE LCE_RSREG PORTB f D e f i n i o i r . p a r a u t i l i z a r e l r e g i s t r o d e c o n t r o l / d a t o s
; e n e l p u e r t o 3
DEFINE LCD_RSBIT 2 ; e n e l 3 1 7 3 . 3
DEFINE LCD_EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l er . abl e en e l p u e r t o 3
DEFINE LCD_EBIT 3 ; en e l BI T 3 . 2
DATOS VAR BYTE ; V a r i a b l e DATOS d e t amao d e 256
. * * **compar ando e l c d i g o c on e l d e l t r a n s m i s o r d e r ^ *** * * * * * * * * *
I NI CI O: ; e t i q u e t a de s a l t o
LCDOUT $F E,1, "ESPERA:"
LCDOUT $FE,$C0,"TOMA DE DATOS"
COUNT P ortB .O ,200,DATOS ; Espera onceo d e d a t o s d u r a n t e 200 iss
I F DATOS=10 THEN PAUSE 5000 : GOTO INGRESO ; s i e s c o r r e c t o
; r eal i c e una pausa de 5 segundos y s a l t e a l a e t i q u e t a i n g r e s o
GOTO I NI CI O ; s a l t e a l a e t i q u e t a INICIO
; * * * * I n g r e s o d e D a t o s ************
INGRESO: / e t i q u e t a d e s a l t o
COUNT P ortB .O ,2000,DATOS ; c u e n t e l o s d a t o s d u r a n t e 2 segundos
I F DATOS=100 THEN GOTO VISUALIZAR ; compar e s i e s i g u a l a 100
; e n t o n c e s e n v e a v i s u a l i z a r en un LCD e l c o n t e o da 100 p u l s o s
GOTO INGRESO } s a l t e a l a e t i q u e t a INGRESO
138
S.C. ' PIC
M i c r o c h i p
VXS'J AI.1ZAR: / e t i q u e t a d e s a l t e VI SUALIZAR
LCDOUT $FE, I , "EATC3 IR3?.SAE CS "
LCDOUT S"E, SCO, DEC TATOS ; Saq-ue si LCD el d e c i m a l d e l a
; v a r i a b l e DATOS
PAUSE 5000 ; Paus a d e 5 seg-ur. dcs
GOTO I NI CI O ; s a l z e a l a e t i q u e t a I NI CI O
Kl Receptor. PBP
Con esle tipo de ejercicios la empresa S.C. ' PIC ha realizado, varios tipos de alarmas
para vehculos, envo de datos para alineacin de vehculos, desarrollo de tele - lectura
para medidores de agua potable, entre otros.
139
S.C. ' PIC
$
M i c r o c h i p
MDULOS DE RADIO - FRECUENCIA CON RFPIC
Actualmente existen microcontroladores que tienen la ventaja de convertirse en mdulos
de transmisin y recepcin de radio - frecuencia como son: Los RFPICs. Para transmitir
datos se tiene al rfPIC 12F675 y para recibir datos al rfRXD0420, pero el circuito que se
debe montar es muy complicado, ya que las bobinas que necesita no se encuentran en el
mercado. Por esta razn MICROCHIP ha desarrollado mdulos de transmisin y
recepcin de radiofrecuencia para evitamos la complejidad de armar estos circuitos.
El manejo de estos mdulos de radio frecuencia no es muy complejo, ya que lo nico que
se debe realizar es medir la variacin del potencimetro que posee el transmisor y de
acuerdo a ese dato proceder a realizar una funcin especifica. A ms de estos mdulos es
necesario tener un microcontrolador, el cual medir la variacin del potencimetro. Por
esta razn es necesario estudiar la instruccin POT, la cual permite medir la variacin de
un potencimetro de 5K hasta 50K de acuerdo a la carga y descarga de un capacitor
conectado en serie. El diagrama esquemtico para esta funcin es:
LCD1-
lACS.'
140
S.C. ' PIC M i c r o c h i p
INSTRUCCIN POT
La sintaxis de esta instruccin es:
POT PortB.0,255,DATO
Que significa: Tome el dato del potencimetro a 8bits y gurdelo en la variable DATO.
La programacin para esta prctica es:
DEFIHE LCD_DREG PORTB ; D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t o B p a r a
; t r a n s m i c i n de d a t o s
DEFIHE LCD_DBIT 4 / d e s d e e l B I T B . 4 h a s t a e l 3.7
DEFIHE LCD_R3REG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r e g i s t r o de c o n t r o l / d a t o i
; en e l p u e r t o B
DEFIHE LCD_RSBIT 3 ; en e l B I T B . 3
DEFIHE 1CD EREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l e n a b l e en e l p u e r t o B
DEFIHE LCD_EBIT 2 ; en e l B I T B . 2
DATO VAR BYTE ; Da t o de t a mao de 256
I NI CI O: ; e t i q u e t a p a r a s a l t o
POT P ortB .0,255,DATO ; Tome e l d a t o d e l p o t e n c i m e t r o a d b i t s
; y g u r d e l o en l a v a r i a b l e DATO
LCDOUT $FE,1,"DATO E3: ",DEC DATO ; D i s p l a y e l a i n f o r m a c i n en
; un LCD
PAUSE 100 ! p a u s a d e 100 m i l i s e g u n d o s
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
Medida de un Potencimetro. PBP
De esta manera se podr leer el mdulo de radio frecuencia conectando el PIN RA3 del
receptor en la entrada del PIN RBO del microcontrolador PIC y de acuerdo a ese dato de
8bits, realizar cualquier tipo de aplicacin, como el monitoreo de una plataforma para la
alineacin de vehculos, entre otros.
141
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
$
S.C. ' PIC Mi cr o c h i p
4T PROGRAMANDO EL PIC
* 16F819 Y EL 16F877A
MICROCONTROLADOR PIC 16F819
La programacin para los microcontroladores en general es la misma, lo que difiere unos
de otros es la capacidad que poseen, y ciertas ventajas ms como la de tener conversores
anlogo - digital.
El microcontrolador PIC 16F819 posee 5 conversores anlogo - digital, permitiendo al
usuario ocupar esta ventaja para realizar sistemas de medida de temperatura, sistemas
automotrices como el balanceo de llantas, entre otros. Tambin tiene la ventaja de utilizar
oscilador interno, que puede variar desde 31.25 KHz hasta 8MHz.
CONVERSOR ANLOGO DIGITAL
Para utilizar la conversin anloga - digital que posee ste microcontrolador es necesario
estudiar la instruccin ADCIN.
INSTRUCCIN ADCIN
Los bits del puerto A, que permiten realizar la funcin de conversores anlogo - digital
son el A.O, A .l, A.2, A.3 y A.4, los que detectan el nivel de voltaje que ingresa por el
PIN, y si trabajamos a 8 bits, el nivel de voltaje los dividir en 256 segmentos que irn
desde 0 a 255.
Por lo tanto la instruccin ADCIN, permite entregar niveles de voltaje y guardarlos en
una variable definida por el usuario.
Su sintaxis de manejo es:
ADCIN 0,DATOS
Que significa lea el canal cero, y guarde el resultado obtenido en la variable DATOS.
Si recordamos. Para apagar los comparadores de voltaje del puerto A que posee el
microcontrolador PIC 16F628A y convertirlos a digitales, se realizaba mediante la
instruccin CMCON=7. Para este tipo de microcontrolador la instruccin que permite
realizar esta funcin es: ADCONl=7.
143
S.C. ' PIC
$
M i c r o c h i p
A continuacin se presenta un programa el cual permite leer los niveles de voltaje que
ingresan por el pin que acta como conversor anlogo digital que posee el
microcontrolador PIC 16F819. El potencimetro debe ser de 5K hasta 50K.
El diagrama de conexin es:
LGD1-
LMC1SL
RV1
:i>
U1
1_|
15
RA70SC1 /OJWI RAO/ANO
RA6/OSC2AXKOUT RA1/AN1
RA2/AN2JVREF
RA5/MCLR R3/AN3/CMP1
RA4/TDCKUCMP2
Conversor Anlogo - Digital. Schematic Desisn
Y la programacin para esta prctica es:
O3CCON=%1100100 ; C a l i b r a e l o s c i l a d o r i n t e r n o a 4 MHz
DEFIHE LCD_DREG PORTB , D e f i n i c i n p a r a u t i l i z a r 4 b i t s d e l p u e r t o B p a r a
; t r a n s m i c i n de d a t o s
DEFIHE LCD_DBIT 4 ; d e s d e e l B I T B . 4 h a s t a e l B . 7
DEFIHE LCD_RSREG PORTB ; D e f i n i c i n p a r a u t i l i z a r e l r e g i s t r o d e c o n t r o l / d a t o s
; e n e l p u e r t o B
DEFIHE LCD_RSBIT 3 ; e n e l B I T B . 3
DEFIHE LCD_EREG PORTB , D e f i n i c i n p a r a u t i l i z a r e l e n a b l e e n e l p u e r t o B
DEFIHE LCD EBIT 2 / e n e l B I T B . 2
144
S.C. PIC
$
M i c r o c h i p
DEFIHE ADC_BITS 0 ; F i j a e l n me r o d e b i t s c o n l o s q u e s e va a t r a b a j a r
DEFIHE ADC_CLOCK 3 ; F i j a e l r e l o j r e - 3
DEFIHE ADC_SAMPLEU8 50 ; F i j a e l t i e m p o de m u e s t r e o
; e n t r e f i j a r e l c a n a l y c o me n z a r l a c o n v e r s i n a / d e n un t i e m p o de 50 uS
T ri aA =Sl ; E l B I T A . 0 e s e n t r a d a
ADCON1=%00001110 ; e l B I T A. 0 e s c o n v e r a o r l o s dems s o n d i g i t a l e s
DATOS VAR BYTE ; DATOS d e t a ma o d e 2 5 6
I NI CI O: ; E t i q u e t a p a r a s a l t o
ADCIN 0 , DATOS ; L e e r e l c a n a l 0 y g u a r d a r l o s d a t o s o b t e n i d o s
; e n l a v a r i a b l e DATOS
LCDOUT "EL DATO E S:" ; L i m p i e e l v i s o r d e l LCD
; y s a q u e l a f r a s e "EL DATO ES " en l a p r i m e r a l i n e a d e l LCD
LCDOUT Sfe,$cO,DEC DATOS ; S a q u e e l d e c i m a l d e l a v a r i a b l e DATOS
PAUSE 100 ; p a u s a d e 100 m i l i s e g u n d o s
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
Conversor Anloso Digital PIC 16F819. PBP
En el software proteus no se encuentra este microcontrolador, por lo que el circuito se lo
puede probar en el PIC 16F877A, que es similar, pero con la diferencia que tiene 40 pines
para trabajar. Ms adelante se indicar las ventajas de utilizar este microcontrolador.
Uno de los proyectos ms utilizados con este tipo de microcontrolador PIC es un
termmetro digital utilizando el sensor de temperatura LM 35, el cual presenta en su pin
de salida una variacin de 10 mV por cada grado centgrado que haya censado. La
alimentacin para este sensor vara entre 4 a 30 voltios, para nuestro caso lo
alimentaremos con 5 Vcc.
El diagrama para utilizar este sensor es:
145
S.C . PIC
$
M i c r o c h i p
DIFERENCIAS ENTRE EL PIC 16F628A Y EL PIC 16F819
En la siguiente tabla se presenta las principales diferencias entre los microcontroladores
PIC 16F628A y el PIC 16F819
PIC Memoria de
Programa
Memoria de datos
EEPROM
Memoria
RAM
Comparadores Conversores
A/D
Puertos
16F628A I 2048 128 224 2 N/D 2
16K819 2048 256 256 N/D 5 2
146
S.C. ' PIC
*
M i c r o c h i p
M I CR OCON T R OL A DOR PI C 16F877A
Este tipo de microcontroladores es uno de los ms utilizados para realizar proyectos que
requieren mayor capacidad para guardar datos, mayor nmero de puertos para trabajar
como entrada o salida, etc.
Este microcontrolador, necesita un oscilador externo, y una resistencia pul - up para
conectarlo en el master clear, ya que no hay forma de deshabilitarlo. Una manera sencilla
de darse cuenta que el microcontrolador posee las ventajas de tener oscilador interno y
master clear programable es directamente en el IC- PROG.
ICProg 1.051) Programador rio prototipos
J
Archivo Edton Bufer Ajustes Comando Herramientas Ver Ayuda
& - h i # m i % * % ** sp
s i m
(PIC16F628A
3 ! [
Direccin- Ccfigoprograma
0000 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyl ryyyy
0008 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0010 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
rfflyirW
0018 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
.....*m .
yyyyyyyy
0020 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
T->-Al. <1Mti Mtt
yyyyyyyy
0028 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
**v.<t?**
yyyyyyyy
0030 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0038 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0040 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0048 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0050 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0058 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yimfryyy
Direccin- Datos Eeprom
0000: FF FF FF FF FF FF FF FF
0008: FF FF FF FF FF FF FF FF
0010: FF FF FF FF FF FF FF FF
0018: FF FF FF FF FF FF FF FF
0020: FF FF FF FF FF FF FF FF
0028: FF FF FF FF FF FF FF FF
0030: FF FF FF FF FF FF FF FF
0038: FF FF FF FF FF FF FF FF
yyyyyyyy
yyyyyyyy
yyyyyyyy
yyrrfyyy
WMmht
yyyyyyyy
>.i*>..<-*..*i
YYYYYYYY
ythhnhnr
A
1
Configuracin
Osdador
RCCLKOUT
LP
XT
HS
ExtCU
HRCUO
IntRC CLKOUT
RCUO
[f?CCLKOUT
F VVDT
r pvvrt
R?MCLR
W BOOEN
W LVP
r cpd
r cp
Checksum Valor D
jl9FF jFFFF
Palabraconfig: 3FFFh
Butfer 1
Buffer 2 Buffer 3 Buffer 4 Butfer 5
JOMProgrammer enCom Dispositivo: PtC16F628A(147)
En el grfico se puede observar que en las opciones de configuracin para el PIC
16F628A existe una que dice I ntRC CLKOUT, que significa que posee oscilador
interno.
Y en los bits de configuracin se puede deshabilitar la opcin del MCRL, para no ocupar
el Master clear. Ahora si seleccionamos en el IC-PROG el PIC 16F877A, nos daremos
cuenta que estas opciones no se las encuentra, indicando al usuario que no posee master
clear programable ni oscilador interno.
147
S.C. ' PIC
$
Mic r o c hip
ic: Prop, I.Otl) Programador de prototipos - X
Archivo Edicin Bufer Ajustes Comando Herramientas Ver Ayuda
v
PIC 16F877A
~5
Direccin - Cdgo programa
0000 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
J f f l r #
0008 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
yyyyyyyy
0010 3FFF 3f f f 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF y f f f f f f f
0018 3FFF 3FFF 3FFF 3FFF 3TFF 3FFF 3FFF 3FFF
yyyyyyyy
0020 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
l( l H**II M
yyyyyyyy
0028 3FFF 3FFF 3rFF 3FFF 3FFF 3FFF 3FFF 3FFF
1.MII ItH HII
yyyyyyyy
0030 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0038 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
f >11i i ' 11*nit
yyyyyyyy
0040 3FFF 3FFF 3FFF 3FFF 3TFF 3FFF 3FFF 3FFF yyyyyyyy
0048 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
y
0050 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
0058 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF yyyyyyyy
Direccin - Datos Eeprom
0000: FF FF FF FF FF FF FF FF
myyyyy *
0008: FF FF FF FF FF FF FF FF
yyyyyyyy
1
0010: FF FF FF FF FF FF FF FF
yyyyyyyy
0018: FF FF FF FF FF FF FF FF
yyyyyyyy
0020: FF FF FF FF FF FF FF FF
yyyyyyyy
0028: FF FF FF FF FF FF FF FF
yyyyyyyy
0030: FF FF FF FF FF FF FF FF
yyyyyyyy
0038: FF FF FF FF FF FF FF FF
yyyyyyyy
V
Configuracin
Oscilador:
RC
r
LP
XT
HS
........ ......... ...
Bis configuracin:
Iv VJDT
r FWRT
|yBOOEN
V LVP
r cpd
r cp
r DEBUOGER
Checksum Valor D
jofCf Jffff
Paabra config: 3FFFh
Buffer 1 Buffer 2 Buffer 3 Buffer 4 Buffer 5
JDMProgrammer en Com Dispositivo: PtC16FB77A(99)
Por esta razn para que el PIC 16F877A funcione es necesaria la siguiente conexin:
U1
s_
.
2=_
25
22-
22-
22-
i=
S:
22_
2_
3_
i
22__I
U-
12-
ZZ_
_
30_
RBO/INT 0BC1CUCN
RB1 0SC2.'CLKDUT
RB2 MC UW*p/THV
RB3/P 0M
RB4 RA0/AC
RBff RA1/AX1
RBO/PGC RA2/AN2/VR F
RB7/POD RAJ MJ WRE f*
RAVTOCW
RCOniOBCVT1CW RA5MK4/SS
RC1/T103I/CCP 2
RC2/CCP1 R0/AW5/R
RC3/SCK*CL RE1/AN0/WR
RC4/S0VSDA RE2/AN7/CS
RC3/SD0
aca/T X ttK
RC7/RX/DT
RDO/PSPO
R01/PSP1
RD2/PSP2
RD3/PSP3
RCWPSP4
R05/PSPS
RDO/PSPO
RD7/P8P7
piqipren,
<TSXT>
Conexin para el PIC 16F877A. Schematic Pesien
148
S.C. PIC
$
M i c r o c h i p
En cuanto a la programacin la nica diferencia es que hay que seleccionar en el
compilador PIC BASIC PRO el PIC 16F877A, y para digitalizar el puerto A, se tiene que
incluir la instruccin ADCONl=7.
DIFERENCIAS ENTRE EL PIC 16F628A, 16F819 Y 16F877A
En la siguiente tabla se presenta las principales diferencias entre los microcontroladores
PIC 16F628A y el PIC 16F819
PIC Memoria de
Programa
Memoria de datos
EEPROM
Memoria
RAM
Comparadores Conversores
A/D
Puertos
16F628A 2048 128 224 2 N/D 2
16F819 2048 256 256 N/D 5 2
16F877A 8192 256 368 N/D 8 5
CENTRAL DE ALARMAS UTILIZANDO UN
MICROCONTROLADOR PIC 16F877A
Una central de alarmas es un dispositivo electrnico el cual permite controlar una o varias
zonas de proteccin contra robos en el hogar, la oficina, en centros comerciales, entre
otros.
En el mercado existe una gran variedad de centrales de alarmas, las que varan de acuerdo
a sus perifricos de control y al nmero de zonas que poseen. En este caso realizaremos
una central para controlar 3 zonas con opcin de monitoreo propio. El monitoreo permite
al usuario asignar 2 nmeros telefnicos a los cuales va a llamar, siendo uno de ellos un
telefono convencional y el otro un nmero celular, a los cuales asignaremos un sonido
similar a una sirena, lo que permitir saber si existe o no violacin de cada una de las
zonas. A mas de ello esta central posee un TIMER de entrada o salida, el cual se asignar
mediante el teclado desde 10, 20, 30, 40, 50 segundos y 1, 2, 3,4, 5, 6,.........etc. minutos.
LISTA DE MATERIALES
11 Resistencias de 4,7K a V* W.
8 Resistencias de 330 ohmios a V* W.
2 Resistencias de 600 ohmios a 1W.
1Resistencia de 2.2K a % W.
1Resistencia de 120 ohmios a % W.
1Resistencia de 1,5 K a % W.
12 Diodos 1N4007
8 leds de alto brillo color rojo para POWER.
2 Capacitores cermicos de 22 pF
1Capacitor electroltico de 1uF a 100V
1Cristal de 4 MHz
1Buzzer de 12V para placa
1Tira de espadines rectos
Placa de circuito impreso S.C. ' PI C-CA-23-02
-1 Capacitor electroltico de 1000uF 25V
- 6 Borneras de 2 tornillos.
- 2 Transistores 2N3904.
-1 Rel de 120Va 12V
-1 TIP 110
-1 LM317
-1 7805
-1 Porta-fusible para placa
-1 Fusible de 2.5A
-1 Batera recargable de 12V a 4A
-1 zcalo de 40 pines
-1 Pie 16F877A
-1 Teclado Hexadecimal S.C. ' PIC
-1 Transformador de 120V a 12V
149
S.C. ' PIC
$
M i c r o c h i p
En este circuito se ocupar todo lo aprendido anteriormente, como es el diagrama para
realizar una llamada telefnica, Manejo de teclado hexadecimal, etc. Lo nico nuevo en
este proyecto es la utilizacin de una fuente de 12V con recargador de bateras.
Fuente de 12V con recarsador de batera. Schematic Pesien
El diagrama para la simulacin de este proyecto en el Proteus es:
L
Alarma 3 Zonas. Schematic Desisn
En el diagrama se puede apreciar que para simular la sirena se ha puesto un Led, para
simular la llamada telefnica un SOUNDER el cual emitir los tonos de los nmeros
telefnicos a llamar.
150
S.C. ' PIC
$
M i c r o c h i p
La programacin para este proyecto es:
ADCONl=7 ; Apaga l o s c o mp a r a d o r e s d e v o l t a j e y
; d i g i t a l i z a l o s p u e r t o s
8 device XT_osc ; U t i l i z a un c r i s t a l e x t e r n e d e 4 MHz
8 device BOD_OFF ; Apaga e l b o d e n d e cons umo
A VAR PORTB. 7 / Cambi o d e nombr e a l b i t 3 . 7 p o r A
B VAR PORTB. 6 ; Cambi o d e nombr e a l b i t B . 6 p o r 3
C VAR PORTB. 5 ; Cambi o d e nombr e a l b i t 3 . 5 p o r C
D VAR PORTB.4 ; Cambi o d e nombr e a l b i t 3 . 4 p o r D
UNO VAR PORTB.3 / Cambi o d e nombr e a l b i t 3 . 3 p o r UNO
DOS VAR PORTB.2 ; Cambi o d e nombr e a l b i t 3 . 2 p o r DOS
TRES VAR PORTB.1 ; Cambi o d e nombr e a l b i t 3 . 1 p o r TRES
CUATRO VAR PORTB.O ; Cambi o d e nombr e a l b i t 3 . 0 p o r CUATRO
POWER VAR PORTC.7 ; Cambi o d e nombr e a l b i t C. 7 p o r POWER
LEDZl VAR PORTC.O / Cambi o d e nombr e a l b i t C. O p o r LEDZl
LEDZ2 VAR PORTC.1 / Cambi o d e nombr e a l b i t C . l p o r LEDZ2
LEDZ3 VAR PORTC.2 ; Cambi o d e nombr e a l b i t C . 2 p o r LEDZ3
Z1 VAR PORTD.O / Cambi o d e nombr e a l b i t D. O p o r Zl
Z2 VAR P0RTD.1 ; Cambi o d e nombr e a l b i t D . l p o r Z2
Z3 VAR PORTD.2 ; Cambi o d e nombr e a l b i t D. 2 p o r Z3
BIP VAR PORTD.7 ; Cambi o d e nombr e a l b i t D . l p o r BIF
VAR WORD
VAR BYTE
VAR BYTE
VAR BYTE
VAR BYTE
VAR BYTE
V a r i a b l e
V a r i a b l e
V a r i a b l e
V a r i a b l e
V a r i a b l e
R d e t amao d e 65536
y d e t amao d e 2 5 6
z de tamao de 2 5 6
x de tamao de 2 5 6
i de tamao de 2 5 6
Variable T de tamao de 25 6
Variable DE de tamao de 256
numero VAR BYTE ; Variable numero de tamao de 25 6
Sirena VAR PORTA.0 ; Cambio de nombre al Bit A. O p o r S i r e n a
Rele VAR PORTD.5 ; Cambio de nombre al Bit D. 5 p o r R e l e
TONOS VAR PORTD.4 ; Cambio de nombre al bit D. 4 p o r Tonos
DE VAR BYTE
Clavel VAR BYTE
Clave2 VAR BYTE
Clave3 VAR BYTE
Clave4 VAR BYTE
V a r i a b l e C l a v e l d e t amao d e 2 5 6
V a r i a b l e C l a v e 2 d e t amao d e 2 5 6
V a r i a b l e C l a v e 3 d e t amao d e 2 5 6
V a r i a b l e Cl a v e 4 d e t amao d e 2 5 6
151
S.C. ' PIC
$
M i c r o c h i p
/ C l a v e de f b r i c a de 4 numeres
C l av el =1 ; Cl a v e l as i gnada con 1
Cl ave2 =2 ; Cl av e 2 as i gnada con 2
Cl ave3 =3 ; Cl av e 3 as i gnada con 3
Cl ave4 =4 ; Cl ave4 as i gnada con 4
r
; Se c ue nc i a de n i c i a l i z a c i n de l a c e n t r a l
TRI SC=0
FOR R=1 TO 5
?CRTC=%10000001
PAUSE 200
PCRTC=%01000010
PAUSE 200
?CRTC=*00100100
PAUSE 200
?ORTC=%00011000
PAUSE 200
?ORTC=%00100100
PAUSE 200
PCRTC=i r 01000010
PAUSE 2 00
HEZT
V V V V H- V vvvv>r vi r vv? - I 5r v r v v v ' i r >r v v v r v v v r v f f v v <
r
?CRTC=Q ; Ap a g u e t o d o s i p u e r t o C
; L a z o d e p r e g u n t a s p a r a :
; S i s e d g i t a l a t e o l a D . . . A c t i v a l a c e r . z r a l d e a l a r m a s
; S i s e d g i t a l a t e o l a C . . . Par a c a mb i a r l a c l a v e d e f b r i c a
I NI CI O:
?CRTC=0
HIGH A : HIGH B : HIGH C : LOW D
I F CUATRO=0 THEN GOSUB AR : GOTO PRENDIDO
HIGH A : HIGH B : LOW C : HIGH D
I F CrJ ATRO=0 THEN GOSUB AR : GOTO CCLAVE
GOTO I N I C I O
--------
152
S.C. PIC M i c r o c h i p
; I n i c i a l i z a o i n d e l TIMER d e l a c e n t r a l
PRENDIDO:
GOSUB b ar r i d o : GOSUB AJR
x=numero
I F x=13 THEN
GOSUB b ar r i d o : GOSUB AR
y=numero
z=0
DE=y*10
GOTO oonteo
ENDI F
GOSUB b ar r i d o : GOSUB AJR
y=mimero
DE=0
z=(x* 10)+y
conteo:
FOR R=1 TO z
FOR i =l TO 25
P O R T C =% l l l l l l l l : HIGH BI P
PAUSE 1000
PORTC=0 : LOW BI P
PAUSE 1000
NEXT
NEXT
FOR R=1 TO DE
P O R T C =% l l l l l l l l : HIGH BI P
PAUSE 400
PORTC=0 : LOW BI P
PAUSE 4 00
NEXT
; Alarma a c t i v a d a , p r e g unt ando s e x i s t e v i o l a c i n de zonas
ACTIVA:
HIGH POWER
FOR R=1 TO 100
I F 21=1 THEN GOTO FALARMA
I F 22=1 THEN GOTO FALARMA
I F 23=1 THEN GOTO FALARMA
PAUSE 10
NEXT ----------
LOW POWER
$
M i c r o c h i p
POR R=1 TO 100
I F 21=1 THEN GOTO FAXARMA
I F Z21 THEN GOTO F ALARMA
I F Z3=l THEN GOTO FALARMA
PAUSE 10
NEXT
GOTO ACTIVA
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; S e n s i b i l i d a d d e l a s z o n a s
FALARMA:
PAUSE 100
I F Z l =l THEN HIGH LEDZ1 : GOTO ENTRADA
I F Z2=l THEN HIGH LEDZ2 : GOTO ENTRADA
I F Z3=l THEN HIGH LEDZ3 : GOTO ENTRADA
GOTO ACTIVA
. * * * * * * * * * * * * * * * * * * * * * * * * * *
; TIMER p a r a e n t r a d a
; No s e a c t i v a l a c e n t r a l h a s t a q u e e l u s u a r i o
; d i g r i t e l a t e c l a 7 y l a c l a v e a s i g n a d a
ENTRADA:
FOR R=1 TO z
FOR i =l TO 25
HIGH POWER
FOR T=1 TO 100
HIGH A : HIGH B : LOW C
I F UNC=0 THEN GOSUB AR :
PAUSE 10
NEXT
LOW POWER
FOR T=1 TO 100
HIGH A : HIGH B : LOW C
I F NO=0 THEN GOSUB AR :
PAUSE 10
NEXT
NEXT
NEXT
154
HIGH D:
GOTO tecl auno
: HIGH D:
GOTO tecl auno
S.C. ' PIC
$
M i c r o c h i p
FOR R=1 TO DE
HIGH POWER
FOR T=i TO 40
HIGH A : HIGH B : LOW C
I F UN0=0 THEN GOSUB AR
PAUSE 10
NEXT
LOW POWER
FOR T=1 TO 40
HIGH A : HIGH B : LOW C
I F UNC=0 THEN GOSUB AR
PAUSE 10
NEXT
NEXT
; S no d g i t o l a c l a v e d u r a n t e e l t i e mp o d e l TIMER
; S a l t a r a p r e n d e r l a s i r e n a e i n me d i a t a me n t e
r e a l i z a r l a s l l a ma d a s t e l e f n i c a s
GOTO ALARMA
/ B a r r i d o d e l T e c l a d o
BARRIDO:
FOR R=1 TO 2000
LOW A
I F UNO = 0 THEN numero =1 : RETURN
I F DOS = 0 THEN numero =2 : RETURN
I F TRES = 0
THEN numero =3 : RETURN
I F CUATRO = 0
THEN numero =10 : RETURN
HIGH A
LOW B
I F UNO
=
0 THEN numero =4 RETURN
I F DOS
=
0 THEN numero =5 : RETURN
I F TRES
=
0
THEN numero =6
: RETURN
I F CUATRO = 0 THEN numero =11 : RETURN
HIGH B
LOW C
I F UNO
=
0 THEN numero =7 : RETURN
I F DOS
=
0
THEN numero =8 : RETURN
I F TRES
=
0
THEN numero =9 : RETURN
I F CUATRO
HIGH C
LOW D
0 THEN numero =12 .RETURN
I F UNO
=
0 THEN numero =14 .RETURN
I F DOS
=
0 THEN numero =0 : RETURN
I F TRES
= 0 THEN numero =15 .RETURN
I F CUATRO
HIGH E>
0 THEN numero =13 : RETURN
: HIGH D:
GOTO tecl auno
; HIGH D:
GOTO tecl auno
155
S.C. PIC
a
M i c r o c h i p
PAUSE 10
NEXT
RETURN
; A n t i r e b c t e d e T e c l a s d e l t e c l a d o
AR:
HIGH POWER : HIGH BIP
PAUSE 100
LOW POWER : LOW BIP
ESPACIO:
IF UNO = 0 THEN ESPACIO
IF COS = 0 THEN ESPACIO
IF TRES = 0 THEN ESPACIO
IF CUATRO = 0 THEN ESPACIO
PAUSE 25
RETURN
ALARMA:
HIGH Sirena
GOSUB desconectar
GOTO ALARMA
; P r e g u n t a s i d g i t a e l 7 a p a g a i ms e d i a t a r r . e r . z e 2a S i r e n a
; y p r e g u n t a l a c l a v e s i n o e s c o r r e c t a s e v u e l v e a a c t i v a r l a al arma
desconectar:
HIGH A : HIGH B : LOW C : HIGH D
IF UNO=0 THEN GOSUB AR : GOTO teclauno
GOSUB LLAMADAS
RETURN
; P r e g u n t a s p a r a l a C l a v e
; S l a c l a v e e s c o r r e c t a d e s a c t i v a l a c e n t r a l d e a l a r ma s
TECLAUNO:
LOW Sirena
GOSUB BARRIDO
GOSUB AR
IF numero = Clavel THEN TECLADOS
GOTO ClaveFalsa
--------
156
S.C. PIC M i c r o c h i p
TECLADOS:
GOSUB BARRI DO : GOSUB AR
I F numer o = Cl ave2 THEN TECLATRES
GOTO Cl aveFal sal
TECLATRES:
GOSUB BARRIDO GOSUB AR
I F numer o = Cl ave3 THEN TECLACUATRO
OOTO Cl aveFal sa2
TECLATRES:
GOSUB BARRI DO : QOSUB AR
I F numer o = Cl ave3 THEN TECLACUATRO
GOTO Cl aveFal aa2
TECLACUATRO:
GOSUB BARRI DO :GOSUB AR
I F numer o = Cl ave4 THEN OPENGE
GOTO Cl aveFal sa3
OPENGE:
FOR i =l TO 5
P0RTC=%11111111 : HIGH BI P
PAUSE 300
PORTC=0 : LOWBI P
PAUSE 300
NEXT
LOW si r ena
GOTO i ni ci o
/
; Pregunt as de Cl av e s i n o o r r e c t a s
C l aveF al sa:
GOSUB BARRI DO : GOSUB AR
C l av eF al sal :
GOSUB BARRIDO : GOSUB AR
Cl aveFal sa2:
GOSUB BARRI DO : GOSUB AR
Cl aveFal sa3:
GOTO al ar ma
/
>
157
S.C. ' PIC
$
M i c r o c h i p
; Inicio las lisiadas telefnicas
LLAMADAS:
GOSUB i r . i c i ar
x=50 : GOSUB Desc_Cenr r al
GOSUB i ni ci ar 1
x-SO : GOSUB Ee3c_Cer. ~r a 1
RETURN
i r. i ci ar:
x=300 : GOSUB Cesc_Cer . r r al
HI GH r el e
x=300 : GOSUB Eesc_Cer . t r al
DTMFOUT TONOS, [0/ 9 , 7 ,0 / B,*!,S, 3,5] . - Col oca r e l N x e r o c e l u l a r a l l a m a r
x=700 : GOSUB E e;c_ C er.;ral
GOSUB TCNC
LOW r el e
RETURN
x=100 : GOSUB Cesc_Cer . : r al
i ni ci ar l :
x=300 : GOSUB Ee =c_Cer. t. ra 1
HI GH r el e
x=30O : GOSUB Cej e Cent r al
DTMFOUT TONOS, [ 2, 5, 0, 6, 1, 4, 51 /Cclocar - I . Vasrc convencional a llagar
x=700 : GOSUB Eesc_Cent r al
GOSUB TONO
LOWr el e
x=10 : GOSUB Eesc_Cent r al
RETURN
TCNO:
FOR R1 TO 50
SOUND TCNCS, [ 110, 10, 100, 10]
NEXT
RETURN
158
S.C. ' PIC

M i c r o c h i p
; Secuencias para cambio efe cl ave
/ Digitar la clava anterior
CCLAVE:
LOWSi r ena
GOSUB BARRI DO
GOSUB AR
I F numer o = Cl avel THEN CTECLADOS
GOTO Cl aveFal sa
CTECLADOS:
GOSUB BARRI DO :GOSUB AR
I F numer o = Cl ave2 THEN CTECLATRES
GOTO Cl aveFal sal
CTECLATRES:
GOSUB BARRI DO :GOSUB AR
I F numer o = Cl ave3 THEN CTECLAC0ATRO
GOTO Cl aveFal aa2
CTECLACOATRO:
GOSUB BARRI DO GOSUB AR
I F numer o = Cl ave4 THEN GRABAUNO
GOTO Cl aveFal sa3
r
; D i g z a r l a n u e v a c l a v e
GRABAUNO:
GOSUB AR : HI GH POWER
GOSUB BARRIDO : GOSUB AR
HI GH POWER
C l av el = numer o
GRABADOS:
GOSUB BARRI DO : GOSUB AR
HI GH PCWER
Cl ave2 = numer o
GRABATRES:
GOSUB BARRI DO : GOSUB AR
HIGH POWER
Cl ave3 = numer o
GRABACUATRO:
GOSUB BARRI DO : GOSUB AR
HI GH PCWER
Cl ave4 = numer o
>
159
S.C. ' PIC
M i c r o c h i p
FOR R=1 TO x
HIGH A : HIGH 3 : LOW C : HIGH E
I F -J HC=0 THEH GOSUB AR : GOTO zecl aur.o
PAUSE 10
NEXT
RETURN
END
Alar ni a 3 zonas. PBP
160
S.C. PIC
$
M i c r o c h i p
DETALLE DEL FUNCIONAMIENTO DE LA CENTRAL DE ALARMAS
La clave de fbrica es *******1234*******
Para ingresar a la activacin de la central, digitar en el teclado la tecfa D. en la cual
se ingresa el TIMER requerido por el usuario
EJ EMPLO:
Si se desea activar 2 minutos para activar la central se digita:
D + 02
Si se desea activar menos de un minuto, ejemplo 10 segundos se digita:
D + DI
Siendo ste el tiempo del TIMER.
Para desactivar la alarma, se procede a:
Digitar la tecla 7 del teclado
Digitar la clave, si es la primera vez que ocupa la alarma
digitar la clave de fbrica: 1234
Caso contrario digitar la clave de 4 dgitos asignada por el usuario.
Para cambiar la clave
Digitar en el teclado la tecla C
Ingresar la clave de fbrica o la clave anterior.
Digitar la nueva clave y est lista.
RECOMENDACION: Al iniciar la alarma cambiar primeramente la clave de fbrica
1234 por cualquier clave que el usuario la asigne. Colocar la batera recargable para
los casos en que se vaya la luz.
NOTA: En la simulacin que se encuentra en el CD, se puede apreciar que la
disposicin de los dgitos es distinta comparados con el teclado de la empresa S.C.
PIC, por lo que hay que tomar en cuenta estos detalles a la hora de simular este
proyecto.
161
S.C. ' PIC M i c r o c h i p
Diagrama de la placa de circuito impreso S.C. ' PIC-CA-23-02
r Central de Alarmas n
Tetf
O
03750
0B7W0
0K7g0
2 N3 9 0 4
oSSo
CZD
0000
0000
OsO1
. Oo
I OOOu F
2 5 V
L_
0000
r 1
. Lm317 0| Bn
O
oLuaJo
oES lo
(Si
Si
OOOO R600 1W
Ba
00
LP
POWER
FUSE2,5/1
O S O
+BAT- Ol MO j
S.C. ' PIC
$
M i c r o c h i p
Los motores son una herramienta fundamental para realizar procesos industriales, como
el transportar un producto de una estacin a otra, se utiliza tambin en proyectos de
robtica, mecatrnica, entre otros.
En el presente libro detallaremos el funcionamiento de motores paso - paso y de
servomotores. Los cuales ayudarn al lector a realizar proyectos como: posicionadores,
robots, etc.
MOTORES PASO - PASO
Los motores paso - paso son muy utilizados en mecanismos donde es muy importante la
precisin del movimiento, como en robtica, en proyectos aeroespaciales, en maquinarias
industriales como fresadoras, tomos, inclusive los encontramos en las computadoras en
perifricos como las impresoras, CD-ROM, floppy disk, etc.
La diferencia con los motores de corriente continua y corriente alterna se encuentra en
que los motores paso - paso son ms precisos, en su velocidad, movimiento y giros, ya
que trabajan con seales digitales, es decir con OL y 1L.
Existen 2 tipos de motores paso - paso, los bipolares y los unipolares, la diferencia entre
ellos es que los motores bipolares poseen 2 bobinas y son de 4 hilos, en cambio los
motores unipolares poseen mayor nmero de bobinas facilitando el manejo al usuario, y
poseen desde 5 hasta 8 hilos para su manejo.
En el proteus podemos encontrar los 2 tipos de motores paso - paso, digitando en la parte
de elementos la palabra motor.
Motor paso - paso UNIPOLAR
MANEJO DE MOTORES
Motor paso - paso BIPOLAR
163
S.C. PIC

M i c r g c h i p
Para manejar el motor paso - paso bipolar se requiere de un circuito integrado L298 que
dispone de 2 puentes H (H - Bridge) o por lo menos debemos hacer un arreglo de 8
transistores, (4 NPN y 4 PNP). Tambin se necesita el circuito integrado L297
En cuanto al voltaje de alimentacin que se requiere para los 2 tipos de motores, varan
entre 1.3V, 1,9V, 4,5V, 5V, 12V y 24V, y la corriente que consume un motor puede estar
desde 300mA hasta 3a, dependiendo del torque que ste se encuentre manejando.
MOTORES PASO - PASO UNIPOLARES
El motor paso - paso UNIPOLAR, posee de 5 a 8 hilos como ya se ha dicho
anteriormente, siendo sta una de las grandes ventajas para trabajar con este tipo de
motor, ya que el circuito de control es muy sencillo.
El nico inconveniente que se tiene es poder identificar las 4 bobinas principales (A, B,
C, D). A continuacin se presenta una gama de colores con la que se las puede
identificar:
BOBINA COLOR
A Amarillo
B Naranja
C Negro
D Caf
Y los dems hilos sern los comunes, los cuales se los conecta a la entrada del voltaje de
operacin.
En las especificaciones del motor viene dado el grado de precisin, entre algunos de ellos
tenemos de 0.72, 1.8, 3.75, 7.5, 15, 90 etc. Y de acuerdo al grado que gire el motor
por impulso, se debe dar un nmero de pasos para que este gire una vuelta completa, por
ejemplo:
Para un motor que el grado de giro sea 90, el nmero de pasos que debe dar para dar una
vuelta completa ser de 4, para un motor de 1,8oel nmero de pasos ser 200.
Para manejar este tipo de motor es necesario un circuito integrado buffer ULN2003, el
cual es de muy bajo costo y posee toda la circuitera interna para manejar este tipo de
motores. Este dispositivo electrnico permite manejar un servomotor de hasta 500
miliamperios, y 50VDC. Si se desea manejar un motor con mayor corriente se procede a
utilizar TIP 110, el cual puede manejar un motor de hasta 100VDC a 8 Amperios. El
diagrama de conexin utilizando el circuito integrado ULN2003A es:
164
S.C. ' PIC
$
M i c r o c h i p
U2
l i
l i -
RAT/OEOt/CLKlN RABANO
RAWOSC2/CLKOUT RA1/AN1
RA2/ AN2/ VREF
RAS/ Cl R RA3N3CMP1
RyW/TOCKKCMP?
R80/WT
R81/RXIDT
R82/TXCK
S83/CCP1
R84
RB5
R B6/nosomcw
RBOTIOSI
. P1C16FBMA . . .
. . w ..............
, .
_ i a
_ L
- L
5
'
'
7 ;
a 3
9 4
- 5_
_ u
_ L i . J _
_ U
U1
-TfKr
Motf paso - pal o UNIPOLAR
a
Ifi
Ifl
H
{ . V . 1
3 C
59 SC
s b ac
1 i / 1
-.12
m i
- 11
_ l fl
7B 7C
7 81
, 2V
i
Motor Unipolar. Schematic Pesien
En cuanto a la programacin de este tipo de motores, se lo realiza mediante secuencias, es
decir para que el motor gire un paso, se tiene que energizar las bobinas A, C, B y D.
En el motor de paso que posee el proteus la disposicin de pines es:
comn
B
comn
Donde A, B, C y D son las bobinas que posee el motor.
Las secuencias mas utilizadas para la energizacin de las bobinas son:
WAVE DRIVE
FULL STEP
165
S.C. ' PIC
$
M i c r o c h i p
SECUENCIA WAVE PRIVE
El programa para utilizar esta secuencia es:
Trisb=S0000 / Hace s a l i d a s l o s b i t s B.3, B.2, B.L, B.O
R VAR BYTE / R de t amao de 256
INICIO: ; E t i q u e t a p a r a s a l t o
FOR R=1 TO 4 ; La z o r e p e t i t i v o d e s d e R=1 h a s t a 4
Portb=80001 /S e c u e n c i a t i p o VIAVE DRIVE
GOSUB timer
Portb=80010
GOSUB timer
Portb=%0100
GOSUB timer
Portb=1000
GOSUB timer
HEXT ; R e p i t a e l l a z o h a s t a que R = 4
GOTO INICIO ; S a l t e a l a e t i q u e t a INICIO
timer: ; E t i q u e t a p a r a s a l t o
PAUSE 200 ; E n e r g i c e l a s b o b i n a s cada 200 m i l i s e g u n d o s
RETURH ; R e t o r n e a l a l n e a donde s e que d.
Secuencia WAVE PRIVE. PBP
Como se puede observar en el programa lo nico que se ha utilizado es la funcin trisb
para generar secuencias.
Por cada una de las secuencias generadas el motor PAP generar un paso. En el
programa de la parte superior, se ha realizado 16 pasos en total, por lo tanto esa
programacin generar una vuelta completa para un motor de 22.5 por paso.
166
S.C. ' PIC
$
M i c r o c h i p
SECUENCIA FULLSTEP
Tambin se la conoce con el nombre de secuencia por paso completo. Es la ms utilizada
a nivel de la robtica, ya que permite mantener energizadas 2 bobinas y obtener un alto
torque de paso y retencin.
El programa que permite realizar esta secuencia es:
Trisb=S0000 ; Hace s a l i d a s l o s b i t s B . 3 , B . 2 , B . l , B. O
R VAR BYTE ; R de t amao de 256
INICIO: ; E t i q u e t a p a r a s a l t o
FOR R=1 TO 4 ; Laz o r e p e t i t i v o d e s d e R=1 h a s t a 4
Portb=%1001 ; S e c u e n c i a tipo FULL STEP
GOSUB timer
Portb=S0011
GOSUB timer
Partb=S0110
GOSUB timer
Portb=%1100
GOSUB timer
HEXT ; R e p i t a e l l a z o h a s t a que R = 4
GOTO INICIO S a l t e a l a e t i q u e t a INICIO
timer: ; E t i q u e t a p a r a s a l t o
PAUSE 100 / E n e r g i c e l a s b o b i n a s cada 100 m i l i s e g u n d o s
RETURW ; R e t o r n e a l a l i n e a donde s e que d.
Secuencia FULL STEP. PBP
167
, *T
S.C. ' PIC
f
M i c r o c h i p
MOTORES PASO - PASO BIPOLARES
El diagrama de conexin para utilizar estos motores es:
'.i ;
Los circuitos integrados L297, y L298 permiten generar las secuencias necesarias para
energizar las bobinas del motor bipolar. Por lo tanto la programacin para este tipo de
motor es:
Trisb=4000 ,* H a c e s a l i d a s l o s b i t s B . 2 , B . 1 , B . O
R VAR BYTE ; R d e t a m a o d e 2 5 6 ,
I N I C I O : ; E t i q u e t a p a r a s a l t o
PORTB=SOD1 ; S a q u e e l n m e r o b i n a r i o 0 0 1 , p e r m i t i e n d o
; g e n e r a r s e c u e n c i a s p o r m e d i o d e l o s c i r c u i t o s i n t e g r a d o s
; L298 y L297
GOSUB timer ; S a l t e a l a e t i q u e t a d e s a l t o t i m e r
GOTO I N I C I O ; S a l t e a l a e t i q u e t a I N I C I O
timer: ; E t i q u e t a p a r a s a l t o
PAUSE 100 / P a u s a d e 1 0 0 m i l i s e g u n d o s
RETURH ; R e t o r n e a l a l i n e a d o n d e s e q u e d .
MOTOR bipolar. PBP
168
S.C. ' PIC M i c r o c h i p
MANEJO DE SERVOMOTORES
Los servos son un tipo especial de motor que se caracterizan por su capacidad para
posicionarse de forma inmediata en cualquier posicin dentro de su rango de operacin.
Para ello, el servo espera un tren de pulsos que se corresponden con el movimiento a
realizar.
Estn generalmente formados por un amplificador, un motor, la reduccin de engranaje y
la realimentacin, todo en una misma caja de pequeas dimensiones. El resultado es un
servo de posicin con un margen de operacin de 180 aproximadamente.
Como se puede apreciar en la figura, posee tres cables. El rojo es alimentacin (+5V), el
negro es tierra (GND) y el cable amarillo es el que permite realizar el control. El motor
interno es de corriente directa, el cual posee una taijeta controladora la que indica cuantas
vueltas debe girar para acomodar el engranaje.
La posicin deseada se determina por medio de pulsos, siendo la duracin del pulso la
que indica el ngulo de giro por esta razn cada servomotor tiene sus mrgenes de
operacin que corresponden al ancho de pulso ya sea mximo, central o mnimo.
El intervalo de tiempo con los que opera el servomotor est dado entre 10 y 30
milisegundos, para que un servomotor se mantenga en la misma posicin durante un
cierto tiempo es necesario enviarle continuamente el pulso correspondiente al ngulo en
el que se desea mantenerlo.
169
S.C. ' PIC
$
M i c r o c h i p
En este libro se estudiar el servomotor HITEC HS - 311, por ser ms econmico y tener
un torque de salida de 3.0Kg.cm, suficiente para proyectos de robtica.
A continuacin se presenta la generacin de pulsos que necesita un servomotor HITEC
HS - 311, para sus tres posiciones:
Como se aprecia en la figura, de acuerdo al ancho de pulso, girar el servo a 0o, 90 o
180.
0o 90 180
- W*
Existe 2 maneras de manejar a un servomotor con el Pie Basic Pro, la primera es
utilizando la instruccin PWM, la cual permite enviar pulsos por un puerto del
microcontrolador y la segunda es utilizando las instrucciones HIGH, LOW, lazos FOR,
estudiados anteriormente.
170
S.C. PIC
$
M i c r o c h i p
INSTRUCCIN PWM
PULSE WDDTH MODULATION, modulacin por ancho de pulso, esta instruccin
permite enviar un tren de pulsos modulado por ancho a un PEN. Cada ciclo de PWM est
compuesto de 256 pasos. Su sintaxis es:
PWM PORT B. 0 , 1 2 7 , 3
Que quiere decir, saque 3 pulsos al 50% en alto por el BIT B.O del puerto B.
Cada ciclo depende de la frecuencia del oscilador, para un cristal de 4 MHZ cada ciclo
ser de 5 milisegundos de largo, para un cristal de 20 MHz cada ciclo ser
aproximadamente de 1milisegundo.
A continuacin se realizar una prctica que permita girar el motor a la izquierda y a la
derecha, mediante dos pulsadores. El diagrama de conexin es:
Servomotor. Schematic Pesien
Para sacar un servomotor en el proteus digitar en la parte de elementos MOTOR, y
seleccionar MOTOR-PWMSERVO
171
S.C. ' PIC M i c r o c h i p
Y la programacin para este proyecto es:
(3 DEVICE INTRC_OSC_CLKOUT
@DEVICE MCLR_OFF
CMCON=7 ; d i g i t a l i c e e l p u e r t o A
R VAR BYTE f v a r i a b l e R d s t a ma o d e 2 5 6
PULSADOR VAR PORTA.0 ; Ca mb i o d e n o mb r e a l b i t A. O p o r p u l s a d o r
PUL3ADOR1 VAR PORTA.1 ; Ca mb i o d s n o mb r e a l b i t A. 1 p o r p u l s a d o r l
I NI CI O: ; E t i q u e t a p a r a s a l t o
I F PUL3ADOR=0 THEH GOSUB ADELANTE ; S i e l p u l s a d o r e s d i g i t a d o
; s a l t e a l a e t i q u e t a ADELANTE
I F PULSADOR1=0 THEH GOSUB ATRAS ; S i e l p u l s a d o r l e s d i g i t a d o
; s a l t e a l a e t i q u e t a A t r s
GOTO I NI CI O ; s a l t e a l a e t i q u e t a I NI CI O
ADELANTE: ; e t i q u e t a p a r a s a l t o
PWI PORTB.0, 1, 50 ; Sague c i n c u e n t a p u l s o s a l i e n a l t o p o r
; e l b i t B. O d e l p u e r t o B
RETURH ; r e t o r n e a l a l i n e a d o n d e s e q u e d o
ATRAS: ; e t i q u e t a p a r a s a l t o
PWM PORTB. 0, 255, 80 ; S a q u e o c h e n t a p u l s o s a l O O i e n a l t o p o r
; e l b i t B . O d e l p u e r t o B
RETURH ; r e t o r n e a l a l i n e a d o n d e s e q u e d o
SERVOMOTOR. PBP
172

S.C. ' PIC Mi cr o c h i p


Y la segunda manera de controlar servomotores es:
R VAR BYTE ; V a r i a b l e R d e t amao d e 255
SERVO VAR PORTB.O ; Cambi o d e nombr e a l b i z 3 . 0 p o r SERVO
LED VAR PORTB.1 / Cambi o d e nombr e a l b i z 3 . 1 p o r LED
I NI CI O: ; E t i q u e t a p a r a s a l z o
** * *r* * * r s e r v o m o t o r 2 0
HI GH LED ; En v i a 1L p o r e l b i t 3 . 1 d e l m i c r o c o n t r o l a d o r
FOR R=1 TO 100 ; L a z o FOR d e s d e R=1 h a s t a 100
HI GH SERVO ; Sac a 1L p o r e l b i z 3 . 0
PAUSEUS 500 ; Paus a d e 500 m i c r o - s e g u n d o s
LOW SERVO ; Sac a OL p o r e l b i z 3 . 0
PAUSEUS 20000 / Paus a d e 20 m i l i s e g u n d o s
NEXT ; Co n z i n u e e l l a z o FOR h a s t a q u e R- l OO
LOW LED ; En v i a OOL p o r e l b i t B . l
PAUSE 3000 ; Pausa d e 3 s e g u n d o s
. ** *****j q0 jfgi- =_7 s e r v o m o t o r a 90 ** **** * * ' * * * * * * * * * * * * * * * * * * *
HI GH LED / En v i a 1L p o r e l b i z 3 . 1 d e l m i c r o c o n t r o l a d o r
FOR R=1 TO 100 ; La z o FOR d e s d e R 1 h a s t a 100
HI GH SERVO ; Sa c a 1L p o r e l b i t 3 . 0
PAUSEUS 1500 ; Paus a d e 1500 m i c r o - s e g u n d o s
LOW SERVO / Sac a 0L p o r e l b i t 3 . 0
PAUSEUS 20000 ; Paus a d e 20 m i l i s e g u n d o s
NEXT ; C o n t i n u e l l a z o FOR h a s t a q ue R- 1 0 0
LOW LED ; En v i a OOL p o r e l b i t 3 . 1
PAUSE 3000 ; Paus a d e 3 s e g u n d o s
. ****><r**pcver e l s e r v o m o t o r a 180 * * * * * * * * * * * * * * * * * a-***** ****
HI GH LED ; En v i a 1L p o r e l b i t 3 . 1 d e l m i c r o c o n t r o l a d o r
FOR R=1 TO 100 ; L a z o FOR d e s d e R 1 h a s t a 10 0
HI GH SERVO / Sac a l L p o r e l b i t 3 . 0
PAUSEUS 2500 ; Paus a d e 2 5 0 0 m i c r o - s e g u n d o s
LOW SERVO / Sac a 0L p o r e l b i t 3 . 0
PAUSEUS 20000 ; Paus a d e 20 m i l i s e g u n d o s
NEXT ; Co n z i n u e e l l a z o FOR h a s t a que R**100
LOW LED ; En v i a OOL p o r e l b i t 3 . 1
PAUSE 3000 ; Pausa d e 3 s e g u n d o s
GOTO I NI CI O ; S a l t e a l a e t i q u e t a INICIO
Servomotores. PBP
173
S.C. ' PIC M i c r o c h i p
Noten que en la programacin, para que cambie el ngulo de giro a 0o, 90 y 180, hay
que modificar la pausa en microsegundos a 500, 1500 y 2500 respectivamente.
El diagrama en el proteus es:
16
15
RAO/ANO
RA6/0SC2/CLK0UT RA1/AN1
RA2/AN2A/REF
RA3/AN3/CMP1
RM/T0CK1/CMP2
RB0ANT
RB1/RX/DT
RB2/TX/CK
RB3/CCP1
RB4i
RB5
RB6/T10S0/T1CK1

. . . i
PIC16F628A
.............
Manejo de servomotores2. Schematic Desist
Con estos conocimientos podr realizar un robot como el que se muestra a continuacin.
En el CD que viene adjunto al LIBRO encontrar la simulacin del robot, para que las
patas se muevan libremente y sin atascos.
174
S.C. ' PIC M i c r o c h i p
7 .
INTERRUPCIONES
Manejar interrupciones a la hora de montar un proyecto es muy importante, ya que estas
permiten generar paros en cualquier instante del programa, permitiendo al usuario por
ejemplo realizar paradas de emergencia en un sistema automtico.
Para aprender a manejar las interrupciones en el compilador PBP, realizaremos un
programa que realice el parpadeo de un LED, y cuando exista una interrupcin prenda un
segundo LED realice una pausa de 5 segundos, apguelo y retorne a la lnea donde se
produjo la interrupcin.
El programa en Pie Basic Pro es:
CMCON=7 ; D i g i t a l i z a e l p u e r t o A
LED VAR PORTA.0 / Cambi o de nombre a l b i t A.O p o r LED
LEDl VAR PORTA. 1 ; Cambi o de nombre a l b i t A . l p o r LEDl
ON INTERRUPT GOTO interrupcin ; En c a s o de e x i s t i r una i n t e r r u p c i n
; s a l t e a l a e t i q u e t a i n t e r r u p c i n .
INTCON = %10010000 ; H a b i l i t a l a i n t e r r u p c i n d e l b i t B. O
INICIO: ; iTtigueca p a r a s a l t o
HIGH LED ; Enci enda e l LED
PAUSE 500 ; Pausa de 500 mi l i s e g u n d o s
LOW LED ; Apague e l LED
PAUSE 500 / Pausa de 500 mi l i s e g u n d o s
GOTO INICIO / S a l t e a l a e t i q u e t a INICIC
DISABLE ; D e s h a b i l i t a l a s i n t e r r u p c i o n e s en e l RANDLER
interrupcin: ; E t i q u e t a de s a l t o l l amada i n t e r r u p c i n
HIGH LEDl ; Saque 1L p o r e l b i t A . l
PAUSE 5000 ; Pausa de 5 s egundos
LOW LEDl ; Saque 0L p o r e l b i t A. O
INTCON = %10010000 ; H a b i l i t a l a i n t e r r u p o i n d e l b i t B. O
RESUME ; r e t o r n a a l a l n e a donde s e qued
ENABLE / H a b i l i t a l a s i n t e r r u p c i o n e s d e s p u s d e l HANDLER
Manejo de Interrupciones. PBP
175
S.C. ' PIC
$
M i c r o c h i p
El diseo para probar este circuito en proteus es:
Interrupciones. Schematic Pesien
Noten que para producir la interrupcin se ha incorporado un pulsador en el bit B.O.
176
o
o
ANEXOS
Hoja intencionalmente puesto en blanco
Tal y como esta en el libro
S.C. ' PIC

M i c r o c h i p
ANEXO A
I NFORMACI ON EMPRESA S.C. ' PIC ELECTRONI CA & COMPUTACION
La empresa S.C. ' PIC ELECTRONICA & COMPUTACION actualmente se encuentra
realizando investigacin y capacitacin a nivel de ingeniera electrnica, fomentando el
desarrollo en universidades, estudiantes, profesionales afnes a esta rama.
Por esa razn se informa a los lectores, que prximamente saldr a la venta un libro de
ROBOTICA, con el cual el estudiante aprender a disear y desarrollar piezas mecnicas
mediante el software SolidWorks, manejo de servomotores y motores paso a paso,
Cinemtica directa e Inversa, grados de libertad del Robot, manejo de sensores, etc.
ANEXOB
Para realizar cada uno de los proyectos que se encuentran a lo largo del libro la empresa
ha diseado un entrenador para el PIC 16F628A, totalmente econmico que consta de:
PIC 16F628A
Mdulo para manejo de LCD
Mdulo de 8 leds para manejar secuencias
Mdulo de 3 pulsadores conectados a 1L
Mdulo de 1Teclado Hexadecimal
Mdulo de 1RELAY
Entradas para utilizar cualquier tipo de programador serie, paralelo o USB.
179
S . C . ' P I C
ELECTRONICA & COMP UTACION
Mi c r o c h i p
PI C 16F628A
12456P9
Hoy en da los n
herrami ent a fund
se encuentran aut
empresas a desari
Se encuentran tan
a nivel mundial coi
desarrol los de invi
convi r t i endo sn una
nt i fi co y tecnol ogi co,
industriales, ayudando a grandes
mayor eficiencia y mayor calidad.
cont rol adores se e
I para el desarrol
:ando procesos
su producto con
ayudando a di ferentes empresas de gran prestigio
NASA, la cual ocupa estas mini computadoras para
igaci n ci entfi ca.
Por esta razn el autor pone a disposicin del pblico una gran herramienta
de desarrollo, con la que podr real izar proyectos para su empresa, oficina,
o su hogar., sin ningn contratiempo ni problema, ya que el lector aprender
a manejar un software de simulacin el que le permitir probar, cada uno de
los proyectos que realizar a lo largo de su vida.
Los temas que ab arca en el presente libro,
estudiantes, aficionados o profesionales
Muchos de los proyectos que s e en
di ferentes empresas a ni vel naciona
ISBN 9 9 7 8 - 4 5 - 2 9 5 - 8

Potrebbero piacerti anche