ELECTRÓNICA PRÁCTICA CON MICROCONTROLADORES PIC
S a n tia g o C o rra le s V. D ire c to r d e In v es tig a c ió n de la E m presa BC T e c h n o lo g y A p licatio n S.A. G eren te d e la E m p re s a S .C .' PIC E L E C T R Ó N IC A & C O M P U T A C IÓ N P ro fe s o r de M icro co n tro lad o res PIC
Título Original: ELEC TR Ó N IC A PR Á C T IC A C O N M IC R O C O N T R O L A D O R E S PIC D ER EC H O S RESERVA D O S D iseño de Portada: Santiago Corrales V. Programación: Santiago Corrales V. Fotografía: Santiago C orrales V. Prohibida la reproducción total o parcial de este libro © 2006: Santiago Corrales V. Pedidos de ejemplares, Entrenadores de PIC. Serv omotores. Placas, etc. A los Telfs.:02 - 2506145 / 2553526 03-2729075 CEL: 096340838 / 097087999 Email: S_C_PlC@ Hotmail.com Impreso en: Im prenta Gráfica Derechos del autor N° 024624 1SBN-10: ISBN-9978-45-295-8 ISBN-13: ISBN-978-9978-45-295-0
IM PRESO EN EC U A D O R Agosto 2006
CONTENIDO PR O LO G O ..........................................................................................................................................
7
1. M ICROCON TROLAD O RES PIC CONOCIM IENTOS BASICOS Introducción a los m icrocontroladores........................................................................................ 9 M icrocontroladores P IC ................................................................................................................... 9 M icrocontroladores PIC 16F628A .................................................................................................. 13 M icrocontroladores PIC 16F819................................................................................................... 14 M icrocontroladores PIC 16F877A .................................................................................................. 15 Síntesis del m anejo del softw are PIC BASIC P R O .................................................................. 16 Síntesis del m anejo del softw are IC - P R O G ............................................................................ 18 Síntesis del m anejo del softw are PR O T E U S ................................................................................22 M anejo del program ador puerto paralelo de S.C. ' P IC ............................................................ 24
2. PROGRAM ANDO E L PIC “ 16F628A” M anejo de secuencias ................................................................................................................. 25 Estudio de su brutinas......................................................................................................................... 29 V ariables............................................................................................................................................... 32 Cam bio de nom bre a los p u e rto s.....................................................................................................33 Instrucciones m ú ltip les......................................................................................................................33 Instrucción FO R - N E X T ................................................................................................................. 34 Pulsadores y sw itch ........................................................................ Instrucción IF - E L S E - E N D IF .....................................................................................................36 Instrucción SE L E C T - C A S E ......................................................................................................... 40 Proyectos con Pulsadores y L E D s..................................................................................................41 M anejo de teclados hexadecim ales................................................................................................ 45 D isplays................................................................................................................................................. 49 Proyectos con teclados y d isp lay s.................................................................................................. 53 Relés de 12V ....................................................................................................................................... 59 Diseño y construcción de 1 PLC de 8 entradas y 8 salidas controlado por un PIC 16F628A ................................................................................... 62 Proyectos con teclados y relés de 12V ..........................................................................................65 Instruccióin E E P R O M - R EA D - W R ITE................................................................................ 73 M anejo de m ódulos L C D ................................................................................................................ 79 Instrucción D E FIN E - L C D O U T .................................................................................................. 81 Proyectos con L C D s ............................................................................................................. 85
3
$
S.C. ' PIC
M ic ro c h ip
Instrucción S O U N D .................... 89 Instrucción F R E Q O U T ................................................................................................................... 90 Instrucción D T M F O U T .................................................................................................................. 91 3. C O M U N IC A C IÓ N P IC “ 1 6 F 6 2 8 A ”
S E R IA L
CON
EL
M IC R O C O N T R O L A D O R
Instrucción SE R IN - S E R O U T ..................................................................................................... 95 C om unicación serial PIC - P IC .................................................................................................... 96 C om unicación serial Infrarroja..................................................................................................... 97 C om unicación serial P C - P IC ..................................................................................................... 99 C om unicación serial con V isual Basic 6 .0 ..................................................................................100 M anejo del Softw are L A B V IE W 7 .0 ........................................................................................... 111 C om unicación serial con LA B V IEW 7 .0....................................................................................119 4. M A N E JO D E M O D U L O S D E R A D IO F R E C U E N C IA M ódulo T ransm isor........................................................................................................................... 130 M ódulo R eceptor................................................................................................................................131 Proyectos con M ódulos de radio - frecuencia............................................................................132 M ódulos de radio - frecuencia utilizando m icrocontroladores p ie ....................................... 133 Instrucción C O U N T .......................................................................................................................... 135 M ódulos de radio-frecuencia con R F -P IC ....................................................................... 140 Instrucción P O T ................................................................................................................................. 141 5. P R O G R A M A N D O E L P I C “ 1 6 F 8 1 9 ” Y E L “ 1 6 F 8 7 7 A ” M icrocontrolador PIC 16F819....................................................................................................... 143 C onversor .ANALOGO - D IG IT A L ............................................................................................. 143 Instrucción A D C IN ........................................................................................................................... 143 D iferencias entre el PIC 16F628A y el PIC 16 F 8 19.................................................................146 M icrocontrolador PIC 16F 877A ....................................................................................................147 D iferencias entre el PIC 16F628A, 16F819 y 16F877A ..........................................................149 Central de A larm as utilizando un m icrocontrolador PIC 16F877A ..................................... 149 6. M A N E JO D E M O T O R E S M otores P A S O - P A S O ...................................................................................................................163 M otores PA SO - P A S O U N IP O L A R E S .................................................................................... 164 Secuencia W A V E D R IV E .............................................................................................................. 166 Secuencia FU L L S T E P .................................................................................................................... 167 M otores PA SO - P A S O B IP O L A R E S ........................................................................................ 168
4
S.C. ' PIC
M ic r o c h ip
M anejo de S ervom otores................................................................................................................ 169 Instrucción P W M .............................................................................................................................. 171 7. IN T E R R U PC IO N E S Interrupciones.....................................................................................................................................175 8. A N EX O S Anexo Anexo
A ........................................................................................................................................... 179 B ....................................... 179
5
$
S.C. ' PIC
M ic r o c h ip
PROLOGO En la actualidad los m icrocontroladores son la herram ienta fundam ental p ara el desarrollo científico y tecnológico, saber sobre estas m ini com putadoras es m uy im portante ya que se encuentran en nuestro trabajo, nuestro hogar, en los com putadores, en proyectos aeroespaciales, etc. Todas estas áreas de aplicación, jun to con mi labor de profesor de m icrocontroladores PIC, m e han m otivado a realizar este libro en el cual he puesto todos m is conocim ientos adquiridos p o r estudio y p o r experiencia, en el cual m is estudiantes tendrán un refuerzo a cada uno de los tem as tratados en clase. Tam bién servirá de gran ayuda a las personas que se encuentren desarrollando proyectos a nivel em presarial, a estudiantes en sus tesis de grado, entre otros. Lo he realizado de una m anera clara para que el lector no tenga dificultad en el aprendizaje y pueda encontrar soluciones a diversos problem as que podrá hallar en su vida cotidiana.
Los diferentes tem as que se encontrará en el libro son exclusivam ente trabajados con m icrocontroladores PIC por ser m ás económ icos y m uy fáciles de encontrarlos en las tiendas electrónicas. E n el capitulo 1 se encuentran conocim ientos básicos que el lector debe conocer para introducirse en el m anejo de estos dispositivos electrónicos, el capitulo 2 trata sobre la program ación para el m icrocontrolador, para explicar las instrucciones del lenguaje BA SIC para PIC se h a elegido el 16F628A p or varias ventajas que las irá conociendo en el transcurso del libro. El capitulo 3 aprenderá a m anejar com unicación serial con el com putador, entre m icrocontroladores, y m onitoreo con LA B V IEW y Visual Basic 6.0. E n el capitulo 4 se encuentra el m anejo de dos dispositivos de radio frecuencia, con los cuales podrá introducirse en la era inalám brica que está gobernando el mundo entero. En el capitulo 5 se detalla el funcionam iento de dos m icrocontroladores más por ser de gran ayuda a la hora de realizar un proyecto, y en el que podrá construir su propia central de protección para su hogar, oficina, etc. E n el capítulo 6 el lector aprenderá a m anejar diversos m otores para realizar proyectos de robótica, en el capítulo 7 se indica el m anejo de interrupciones que son de gran im portancia en cualquier proyecto que se realice. Y en el capítulo 8 podrá inform arse sobre la em presa S.C. ' PIC ELEC TR Ó N IC A & C O M PU TA CIO N y en la que observará un entrenador D igital m uy económ ico que le ayudará a aprender de m ejor m anera cada uno de los proyectos que se encuentran en el libro. Se utiliza un softw are de sim ulación p o r ser de gran ayuda, ya que perm ite probar cada proyecto sin necesidad de com prar los elem entos que en m uchas ocasiones son susceptibles a daños. C ada proyecto que se encuentra en el libro ha sido 100% probado
7
$
S.C. ' PIC
M ic r o c h ip
En el CD encontrará los ejercicios realizados en el libro ju n to a fotografías, simuladores, datashetts y un archivo que le guiará en el proceso de descarga de softw are (PIC BASIC PR O Y PR O TEU S) que son necesarios para realizar tanto la program ación com o la sim ulación de proyectos. Mi agradecim iento es prim eram ente a DIOS por haber perm itido culm inar con un objetivo más de los que m e he planteado en mi vida, 2 m is padres por su incondicional apoyo en el transcurso de mi carrera. A mis m aestros, quienes en su noble labor me han transm itido sus valiosos conocim ientos, en especial a los Ingenieros del área de electrónica del colegio técnico particular “ H erm ano M iguel" de la ciudad de Latacunga. A mi esposa y mi hija por su apoyo moral y su ayuda en la realización del libro. Agradezco tam bién a m is am igos quienes han aportado con sus conocim ientos despejando ciertas dudas y finalm ente a la em presa C O R PO IM PEX representantes de M icrochip para el Ecuador.
8
$
S.C. ' PIC
M ic r o c h ip
MICROCONTROLADORES PIC CONOCIMIENTOS BASICOS IN T R O D U C C IO N A LO S M IC R O C O N T R O L A D O R E S Existen varias em presas que actualm ente se encuentran fabricando estas m icrocom putadoras, las cuales poseen variedad de m odelos q ue nos facilitan la im plem entación de proyectos que se pueden realizar. En este libro se detallará el estudio de los M icrocontroladores PIC de M IC RO C H IP TE C H N O L O G Y Inc. M icrochip es una em presa que está liderando las ventas de este dispositivo, por su bajo costo, por tener una gran variedad de m odelos, y p o r su program ación m uy sencilla, la que hace que el m icrocontrolador PIC se esté estudiando en diversas universidades de gran prestigio a nivel m undial. M IC R O C O N T R O L A D O R PIC En sí un m icrocontrolador es un circuito integrado program able, capaz de ejecutar las órdenes grabadas en su m em oria. Está com puesto de varios bloques funcionales, los cuales cum plen una tarea específica, sus partes o com ponentes principales son: •
M e m o ria R O M (M e m o ria de sólo le ctu ra )
•
M e m o ria RAM (M e m o ria de acceso a le a to rio )
•
L ín e a s d e e n t r a d a /s a lid a ( I / O ) T am bién lla m a d o s p u e rto s
•
Lógica d e c o n tro l C oordina la in te ra cció n e n tre los dem ás
D ispositivos d e entrada
bloques
D ispositivos d e salida
Salidas
Entradas
C ircuito Externo d e Reloj (C ris ta l u oscilador)
GND
9
>SV
$
S.C. ' PIC
M icn o cH iP
En la figura se puede observar la estructura interna de un m icrocontrolador, y com o se puede apreciar posee un circuito extem o de reloj, el cual indica al m icro la velocidad a la que debe trabajar. E ste circuito, que se conoce com o oscilador o reloj, es m uy sim ple pero de vital im portancia para el buen funcionam iento del sistem a, ya que sin él 1 1 0 podríam os ejecutar las órdenes o las líneas de instrucción que se encuentran program adas en el mismo. Los diferentes tipos de cristal m ás com unes para un m icrocontrolador PIC son: •
RC. O scilad or con resiste ncia y condensador. •Ve c
K ^
lR
osci
= C
Según las recom endaciones de M icrochip R puede tom ar valores entre 5k y 1OOk, y C superior a 20pF.
•
X T . C ristal.
•
HS. C ristal d e a lta velocidad .
•
LP. C ristal para b aja fre cu e n cia y bajo consum o de potencia.
El m icrocontrolador com o se ha visto anteriorm ente es un m icrocom putador, el cual necesita de periféricos de entrada y salida p ara su correcta utilización. Las entradas dependiendo de la aplicación pueden ser: sensores, teclados, pulsadores, sw itch, etc. Las salidas igualm ente dependiendo de la aplicación pueden ser: leds, display, LCD , relés, com putadoras, etc. A rq u itectu ra in tern a del PIC. H ay dos arquitecturas conocidas: la clásica de Y on N eum ann, y la arquitectura H arvard,
10
$
S.C. ' PIC
M ic r o c h ip
A rquitectura Von N eum ann D ispone de una sola m em oria principal donde se alm acenan datos e instrucciones de form a indistinta. A dicha m em oria se accede a través de un sistem a de buses único (direcciones, datos y control).
UCP
Bus de direcciones
Bus d e datos e instrucciones
MfcMORJA
Instrucciones + Datos
A rquitectura H arvard D ispone de dos m em orias independientes, una que contiene sólo instrucciones, y otra que contiene sólo datos. A m bas disponen de sus respectivos sistem as de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) sim ultáneam ente en am bas m em orias, ésta es la estructura para los PIC's.
M e m o ria de In struccio nes
In strucciones
M e m o ria de Datos
UCP C ontrol D irecciones de In strucciones
In strucciones
C ontrol Unidad d e Control Unidad Operativa
D irecciones d e Datos
nkfAc UOl ÜD
Datos
M em oria de prog ra m a Esta vendría a ser la m em oria de instrucciones, aquí es donde alm acenarem os nuestro program a o código que el m icro debe ejecutar. N o hay posibilidad de u tilizar m em orias extem as de am pliación. M em orias E E PR O M . (Electrical Erasable Program m able Read O nly M em ory M em oria de sólo lectura Program able y borrable eléctricam ente).- Ésta tarea se hace a través de un circuito grabador y bajo el control de un PC (IC-PR O G ). El núm ero de veces que puede grabarse y borrarse una m em oria EEPR O M es finito aproxim adam ente 1000 veces. •
M em orias FL A SH . Posee las m ism as características que la EEPR O M , pero ésta tiene m enor consum o de energía y m ayor capacidad de alm acenam iento, p or ello está sustituyendo a la m em oria EEPROM .
11
$
S.C. ' PIC
M ic r o c h ip
La m em oria de program a se divide en páginas de 2048 posiciones.
Cuando ocurre un R eset, el contador de program a (PC) apunta a la dirección OOOOh, y el m icro se inicia nuevam ente. Por esta razón, en la prim era dirección del program a se debe escribir todo lo relacionado con la iniciación del m ism o. A hora, si ocurre una interrupción el contador de program a (PC ) apunta a la dirección 0004h, entonces ahí escribirem os la program ación necesaria para atender dicha interrupción.
M em oria de datos
Posee dos zonas distintas:
1. R A M estática ó S R A M : donde residen los R egistros E specíficos (SFR ) con 24 posiciones de tam año byte, aunque dos de ellas no son operativas y los Registros de Propósito G eneral (G PR ) con 68 posiciones.
12
$
S.C. ' PIC
M ic r g c h ip
i
Fito Addres»__________________________ Me Address 00*
In d if^ct addr.W
Indiract a d d r/1*
8 Oh
01h
TMRO
OPTION
81h
02h
PCL
PCL
82h
03h
STATUS
STATUS
83h
04h
FSR
FSR
84 h
05h
PORTA
TRISA
85*
06*
PORTB
TRIS8
86h 87h
07h 08h
EEQATA
EECON1
09h
EEADR
EECO N2*1’
88n 89*
GAh
PCLATH
PCLATH
8A*
CBh
INTCON
INTCON
8Bh 8Ch
OCh 68 General Purpose -eg sters (SR AV )
M apped ■accesses) In B ank 0
CFh Duh
4Fh 50 *
7Fh
FFh B ank 0
B ank 1
2. E E P R O M : de 64 bytes donde, opcionalm ente, se pueden alm acenar datos que no se pierden al desconectar la alim entación. M IC R O C O N T R O L A D O R P IC 16F628A
El m icrocontrolador PIC 16F628A , FLA SH y 1.000.000 de ciclos en su posee es de 2048 W ords, m em oria de es de 224 bytes, 16 pines de entrada y
soporta 1000 ciclos de escritura en su m em oria m em oria EEPR O M , la m em oria de program a que datos EEPR O M es de 128 bytes, la m em oria RAM salida, y posee 2 com paradores.
A más de esto posee grandes ventajas com o son: C om unicación A U SA R T, O scilador interno de 4 M H z, M aster C lear (M C LR ) program able, etc. La alim entación del m icrocontrolador PIC en general es de V ss = G N D = 0V y de Vdd = Vcc = 5V, este valor de V dd puede variar desde 3V hasta 5.5V. Posee a m ás de ello 2 puertos de I/O el Puerto A y el Puerto B, los cuales trabajan a 8 bits cada uno y entregan 25m A por cada PIN , y en m odo sum idero pueden soportar hasta 25m A p o r cada PIN. 13
$
S .C . ' P IC
M ic r o c h ip } o
RA2/AN2/VRÉF RA3/AN3/CMP1 RA4/TOCKI/CMP2
1 2 3
18 17 3 5 16
4 5 6 7 8 9
í í
I -r 15 14
5! 13 ¡ ; 12
11 10
RA1/AN1 RAO’ANO RA7/OSC1/CLKIN RA6/OSC2/CLKOUT VOO
RB7/T10SI'PGD RB6TT1OSO/T1CKl/PGC RB5 RB4»PGM
D IST R IB U C IÓ N DE PIN ES D EL PIC 16F628A M IC R O C O N T R O L A D O R PIC 16F819 El m icrocontrolador PIC 16F819, posee una m em oria de program a de 2048 Words, M em oria de datos EEPR O M de 256 bytes, m em oria R A M de 256 bytes y 16 pines de entrada y salida, no posee com paradores pero tiene una gran ventaja de poseer 5 conversores análogo - digital A /D , siendo ésta la diferencia principal con el m icrocontrolador PIC 16F628A . Cada uno de estos conversores trabaja a lObits. Tam bién posee M C L R program able, com unicación A U SA R T y oscilador interno, el cual se puede calibrar hasta 8 posiciones, desde 31,25 K H z hasta 8 M H z, es decir: 1. 2. 3. 4. 5. 6. 7. 8.
31,25 KHz 125 KHz 250 KHz 500 KHz 1 M Hz 2 M Hz 4 M Hz 8 M Hz
RA1/AN1 RAO/ANO RA7/OSC1/CLKI RA6/OSC2/CLKO
RA2/AN2A/REFRA3/AN3/VREF+
RA4/AN4/T0CK1 RA5/MCLRA/PP Vss RBO/INT RB1/SDI/SDA RB2/SDO/CCP1 RB3/CCP1/PGM
VDD
RB7/T10SI/PGD RB6/T10S0/T1CKI/PGC RB5/SS RB4/SCK/SCL
D IST R IB U C IÓ N DE PINES D EL PIC 16F819
14
S .C . ' P IC
M ic r o c h ip M IC R O C O N T R O L A D O R PIC 16F877A
El m icrocontrolador PIC 16F877A, posee una m em oria de program a de 8192 W ords, M em oria de datos E E PR O M de 256 bytes, m em oria R A M de 368 bytes y 33 pines de entrada y salida, los cuales se dividen en: Puerto Puerto Puerto Puerto Puerto
A trabaja a 6 bits B trabaja a 8 bits C trabaja a 8 bits D trabaja a 8 bits E trabaja a 3 bits
Además de ello posee 8 C onversores A nálogo - D igital A /D , una de las principales diferencias frente a los otros pie estudiados anteriorm ente es la capacidad que posee, y por esta razón es el m ás utilizado en proyectos avanzados que requieren m ayor num ero de entradas y/o salidas, com o autom atización de procesos industriales, alarmas residenciales, etc. U na desventaja es que debe ser conectado con un cristal externo, ya que no tiene incorporado el m ism o y necesita tam bién en el M aster C lear una resistencia Pulí - U p, ya que no hay form a de deshabilitar esta opción.
MCLRA'= p
1
40
RAO/ANO RA1/AN1
2
35
3
38D 37 36 35 34 £) 33 32 p 31 : 30 3 29 3 28 D 27 ] 26 3 25 3 24 3 23 3 22 3
RA2/AN2/VPEF-/CVREF
RA3/ANVVRSF+ RA4/TQCKyC10UT RA5/AN4/SS/C20UT R50/RD/AN5 RE1/VYR/AN6 RE2/CS/AN7
4
5 €
7
<
3
h-
9 10
VDD
11
VSS 0SC1.*CLK1N
12
OSC2/CLKOUT
14
13
R C O / T IO S O / T IC K l
15
R C 1/T10S I/C C P 2
16 17 E)13 19
RC2'CCP1 RC3/SCK/SCL
RDÜ/PSPO RD1/PSP1
2
CO
U< £ > O CL
20
21
1
R67/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RBO/INT VDD
VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4
RC7/RX/DT RC6.TX^K RC5/SOO RC4/SDI/SDA RD3/PSP3 RD2/PSP2
D IST R IB U C IÓ N D E PIN ES D EL PIC 16F877A
15
©
S.C. ' PIC
M ic r o c h ip
SIN T E SIS D E L M A N E JO DEL SO FT W A R E PIC B A SIC PRO Pie Basic Pro es un com pilador el cual perm ite realizar la program ación de un m icrocontrolador en un lenguaje de alto nivel, lenguaje Basic. A m ás de este com pilador tenem os el Softw are M icroC ode Studio, que es un editor de texto exclusivo para facilitar la program ación de los m icrocontroladores PIC. Por lo tanto M icroC ode Studio y Pie Basic Pro van juntos. *
í
M c ¿ C M . S tu d ío ^ lC B A S K Ffe
Edt
;
*
%
•
Wev* P roject Heio
;V f ^ * 9
V
*
16F628A
Code Explorer
0 * {
Ü
fe )
O •
£3
•
Ü
O
O
O
l ^
a
i É
l
’f* j.
i
lu r t f fc d
L J acudes Ó ó
2
' *
S eise
í
Constante
3
*•
:
U
v arables
i
'•
A uzhor S o tlo e
P } A la * and Modtóerj
6
X 'i Syrrbob
C
•*
Daca
‘Ó
7
,,r
9
'
V e rsió n N o te s
•
C N T I7L E D .B A S S a r.zia g c C o r r a le s
: C o p y r ig h t (c) 2 0 0 6 S .C . : A l l P ig k e s Resezrveá i :
'
f>X C
1 8 /0 3 /2 0 0 6 1 .0
9 '*
istaL ......... -
ig .R e a d y
É Ln U ¡C ol 1
D etalle de las partes m ás im portantes del M icroC ode Studio y del PicB asic Pro. 16F628A ----------------.- Esta ventana perm ite al usuario seleccionar el m icrocontrolador que va a utilizar para la program ación, en este caso se encuentra seleccionado el Pie 16F628A Code Explorer Indudes
¿2) Defines Constants
£3 Variables £ 3 Alas and Modfiers
eSSymbols ¡Qt Lebels
.- E xplorador de Código. Perm ite visualizar las variables, subrutinas, constantes, etc. Q ue durante la program ación se haya realizado, con la finalidad de encontrar o seleccionar rápidam ente algún código que necesitem os cam biar o editar.
16
$
S.C. ' PIC
M ic r o c h ip
1 1 N um eración de línea de program a.- E sta herram ienta es m uy im portante a la hora de realizar un program a, ya que al com pilarlo, si ocurre algún error indica cual es la línea en donde se produjo, y facilita el arreglo del mismo. ,'j) Success ¡ 59 wordsused.
p erm ¡te visualizar que espacio ocupó el program a en el PIC,
com o se puede observar se ha ocupado 59 w ords de 2048 w ords disponibles en el PIC 16F628A, o si existe algún error en el program a, aparece: Resulto ERROR Une 17: Syntax error.
@ Compilaron errors _
_ ¡ ^ i c a qUe se produjo un error en la com pilación, del tipo
sintaxis y en la línea num ero 17. Huntfed
; • A u c h o r *• * * * * • » • '* •*
'
ÍUn*
X H o tlc e s t s ÜBZB V ara io n X Hoco» i *
UffTITLED. BXS S a r .t ía g c Corvmlma C o p y r ig h t (o ) 2 0 0 € S .C . A l l R ig h tM 1 8 / 0 3 /2 0 0 6 1 .0
í«**rvtj
’ P2C
En esta ventana vam os a realizar nuestros program as, a m ás de ello se puede observar en la parte superior se encuentra el encabezado para cada uno de los program as q ue se realice, donde se puede incluir el nom bre del proyecto, nom bre del autor, notas, etc. •
* -A * ....... - Estas herram ientas son las m ás im portantes a la hora de m ontar un proyecto, ya que nos perm ite realizar la com pilación del program a. V am os a detallar cada una de ellas:
.- Este botón sirve solam ente p ara com pilar el program a, se lo puede tam bién activar digitando F9, desde el teclado del com putador. U na vez com pilado el program a
17
$
S.C. ' PIC
M ic r o c h ip
genera 4 archivos que son: .A SM , .M AC, .PBP y .HEX, siendo este últim o el más im portante ya que éste sirve para grabar el m icrocontrolador PIC. ó ’ " Este botón tiene dos funciones a la vez, la prim era es de com pilar el program a y generar los 4 archivos estudiados anteriorm ente, y la segunda es de llam ar al program ador IC - PR O G , el cual nos perm itirá grabar el PIC. T am bién se lo puede activar digitando FIO. SIN T ESIS DEL M A N EJO DEL SO FTW AR E IC - PROG El IC - PR O G es una herram ienta fundam ental para el program ador de m icrocontroladores en general, ya que éste perm ite grabar el archivo .H EX en el micro. Este program ador perm ite seleccionar varios dispositivos electrónicos tanto de puerto serial y puerto paralelo que perm iten realizar la interfaz entre el com putador y el m icrocontrolador, m as adelante se detallará el funcionam iento del dispositivo serial de la em presa S.C. ' PIC E L E C T R O N IC A & C O M PU TA CIO N .
~ aya
IC -P ro g 1 .0 5 D - P r o g r a m a d o r d e p r o to tip o s
%
Archivo c
Edfcion
í ’
Bufer
H
A justes í
*
:
Comando
*
Herramientas
*
«v
Ver
Ayuda AC1SF877A
^
Dirección - Código programa
0000: 0008: 0010: 0018: 0020: 0028: 0030: 0038: 0040: 0048: 0050: 0038:
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3F F F 3FFF 3F F F 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3F F F 3F F F 3FFF 3FFF 3FFF 3F F F 3F F F 3F F F 3F F F 3F F F 3FFF 3F F F
W YW W X WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW WWWW
*
1
W W W YV WWWW FFFF FF FF FF FF FF FF W W W W FF F F FF FF FF FF FF FF W W W W F F FF F F F F F F FF FF F F W W W W F F F F F F F F F F FF F F F F WWWW F F F F F F F F F F F F FF F F W W W W F F F F F F FF F F FF FF F F F F F F F F FF FF F F FF F F
| B u ffe r
2 | B u ffe r 3 | B u ffe r
4 | B u ffe r
< »
O sdtador:
W rte EnaWe: WRT OFF
Bits configuración:
v
------------------------- TT
B u tfe r
$
Configuración
3FFF 3FFF 3FFF 3 F rF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
Dirección - Datos Eeprom
0008: 0010: 0018: 0020: 0028: 0030: 0038:
- 1 3
17 WDT PWRT 17 BODEN 17 LVP
r T
CPD
r
cp
r
DEBUGGER
Checfcsum OFCF
V a lo r D
Wf
Palabra config: 3FFFh
5J JOM Programmer
18
en Com3
D o p o s irv o : PIC 16F877A (99)
S.C.
©
' P IC
M ic r o c h ip
En la figura se puede apreciar que al iniciar el program a IC - PR O G el código del program a aparece 3FFF, en todas las direcciones. A b r ir Buscaren:
T3
| | £ ) Proyectos_PBP
ALARMA.HEX
DISPLAY.HEX
led
A!arma_2_zonas.hex Alarma_3_Zonas_Con figuración .hex ¡Comunicaáon_Sincrocnice. hex
IInstrucdon_PWM.hex |Interrupciones, hex
luz. Mar Mot
Contador Descendente.hex
Interruptor activado por sonido.hex lasos if.hex
CONTADOR.HEX
lazo for.hex
PAP pul<
Abrir
Nombre: Tipo:
Cancelar
Ies r hex/hS.Tsxh)
P o r m edio de la ventana abrir, buscam os la carpeta donde se haya hecho el program a, y seleccionam os el archivo .H EX que deseam os cargar en el PIC. - Program ador de prototipos - D :\ProyectosJ Archivo
Edición
& ' H
Bufer
Ajustes
Clfc jf*
Comando
%
Herramientas
%
Ver
m
s*
Ayuda
RC18F628A
sí
Dirección - Código programa
0000: 0008: 0010: 0018: 0020: 0028: 0030: 0038: 0040: 0048: 0050: 0058:
2863 0680 1384 280B 0580 1C 03 3E E 8 2836 2843 284E 0221 1903
00B 8 01A 0 0500 03Al 285E 285E 00Á 0 07A 0 0000 01A l 1D 03 3002
Configuración
201C 01 A l 1903 0821 01A 3 3003 09A l 0064 2843 01A 3 2855 0528
300A 1784 281A 285E 0QA2 00A l 30F C 0FA1 0008 00A 2 C 822 1D 03
2022 0838 0824 0480 30FF 30D F 1 C 03 2836 01A 1 3004 0220 30FF
0838 0680 07A 0 281E 07A 2 2030 2839 1820 01A 3 284E 3004 285E
0480 0064 1803 3A FF IC O 3 2824
1384 0680 0FA1 1784 07A 3 01 A l
07 A 0
1803 1CAO
283F 00A 2 00A 8 1803 1383
3001 0823 3001 1303
F F FF FF FF FF FF FF FF FF FF F F FF FF FF FF FF
FF FF FF FF FF FF FF FF
¡ „8€d€
HS
« . . . 5 -i . i ! A€ . y „ € A£ d y c . £
. A . i .80$ i é
iü.9
.
6 d i 6 .? C.C.¡£$. N¡£d.N# ! . ü " ___ . . ( . y A/ .
Bits configuración:
p WDT P PWRT
P FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
*
Oscilador:
t
Oirección - Datos Eeprom
0000: 0008: 0010: 0018: 0020: 0028: 0030: 0038:
i
1/W W W y W W W Íft YWylWYX WWWW W W W fW
MCLR
F
BODEN
r r r
lvp cpo
cp
Checksum
Valor D
(a f f b
[FFff
Palabra config: 3F26h
Bufter 1 | Bufler 2 | Buffer3| Buffer 4 | Buffer s ] ProPic 2 Programmer en LPT1
19
Dispositivo: PIC 16F628A (147)
S .C .
$
P IC
M ic r o c h ip
Al cargar el programa .HEX, cambian los valores de dirección, por otros distintos a 3FFF, así podremos damos cuenta que el programa a sido cargado en el programador.
% % V V» ¡ _ g sta ¿g herramientas es la mas importante dentro del manejo del IC - PROG, a continuación detallaremos cada una de éstas opciones,
Permite leer el contenido del microcontrolador PIC
%
.- Este botón realiza la programación 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 16F628A
▼I
* — ' .- Com o en el MicroCode Studio, en esta ventana, seleccionam os el microcontrolador que deseam os utilizar. Oscilador: HS LP XT HS ExtClk IntRC ¥0 IRC KO |RC CLKOUT
.- En la ventana del oscilador, seleccionam os la configuración deseada, es decir podemos cambiar al cristal interno de 4M Hz que posee el PIC 16F628A o la que necesite el usuario. Bits con figuración: W WDT Iwvrtí MCLR F BOOEN
r r r lvp r ero r
cp
.- Aquí se puede seleccionar los Bits de configuración, es recomendable desactivar la opción del MCLR y dejarlo siempre com o se muestra en la figura. NOTA: Para la correcta utilización del IC - PROG, es recomendable realizar los siguientes pasos para que no tenga ningún tipo de problema:
20
$
S.C. ' PIC 1. 2. 3. 4.
M ic r o c h ip
Seleccionar el m icrocontrolador PIC a utilizar. C argar el archivo hexadecim al al IC - PRO G C onfigurar el oscilador a los requerim ientos del usuario Seleccionar los bits de configuración a los indicados anteriorm ente.
Siguiendo estos pasos no tendrá ningún problem a a la hora de realizar sus proyectos. Si aún así le aparece una ventana com o la siguiente:
©
Error programación de código en la dirección OOOOh !
L... o*
Puede ser por dos m otivos. El prim ero es que no se encuentra bien habilitado el H ardw are a utilizar, o el segundo es que el m icrocontrolador que está utilizando está en m al estado, por lo que siem pre debem os tener m ucho cuidado con los m icros porque éstos son de tecnología C M O S, y son m uy vulnerables a la estática, por lo que se aconseja m anejarlos con pinzas para evitar el contacto directo con las manos.
21
*
S.C. ' PIC
M ic r o c h ip
SIN T E SIS DEL M A N E JO DEL SO F T W A R E PR O TEU S Proteus es una herramienta fundamental para las personas que están readicionadas con el mundo de los microcontroladores, ya que ésta permite realizar sim ulaciones de los proyectos montados, es decir no hace falta: probar en protoboard el proyecto, comprar materiales, quemar los microcontroladores, etc. Simplemente necesitam os seleccionar cada uno de los elem entos a utilizar, ya que esta poderosa herramienta contiene: Microcontroladores PIC, L C D ’s, Relés, Leds, Displays, etc. ■ T O m É ü W frS iS a Ffe
Vlew E dt
Ubrary Toote
j D £ B 3 e
Detígn j E l f í
ñz
e b k b - A ' *
Graph
>ource DebuQ T e n ía te
+ ! +
G t € t « t O
System *
Hek> S
£
■
■
«t
ss
* +
¥r C * D3 C ÜQL
pTlT
;c£S
ES
© V» 5* ■ /
cor
t i ►11» i ii.ru
A continuación detallaremos las partes más importantes de este Software.
^ .- Componente.- Permite seleccionar el elemento que deseam os utilizar, de la siguiente manera: Seleccionam os el icono del componente dando un clic, seguido damos un clic en PlU DEVICES
\
la 0 , y nos aparece una ventana similar a la siguiente:
22
$
S.C. ' PIC
M ic r o c h ip
_____ |RC 16F628A
VSM DLL M odd [P1C16J
Mtó^hotoWoid*?
PC8 Piavíew
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.
R E C O M E N D A C IÓ N P A R A S E L E C C IO N A R R E S IS T E N C IA S . 1. Escribir para el caso de una resistencia de 330 ohm ios, escribir R E S 330R y seleccionar la MINIRES 330R. 2. Para el caso de una resistencia de 4,7K debe escribir RES 4K 7, y seleccionar la MINIRES 4K7. ' **
Esta herramienta permite escoger Gnd y Vcc para realizar el proyecto. pj
v-1~
DEFAULT INPUT OUTPUT BIDIR POWER
Power para Vcc y Ground para Gnd. '
.- Permite realizar líneas entre los componentes seleccionados.
23
S .C .
$
P IC
M ic r o c h ip
M A N E JO DEL P R O G R A M A D O R PUERTO PA R A L EL O DE S.C. ' PIC La em presa S.C. PIC ELECTRONICA & COMPUTACION a diseñado un program ador totalm ente económ ico 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 m icrocontroladores PIC del tipo paralelo por presentar varias ventajas, com o la rapidez que posee para grabar, borrar y leer los m icrocontroladores PIC. El nivel de voltaje que necesitan los m icrocontroladores PIC de la serie A es de 5 V cc en la entrada de datos, y los que no poseen la A es de 13,8 Vcc, sin em bargo este programador está diseñado para grabar cualquiera de los dos tipos. Siendo ésta la diferencia entre los microcontroladores PIC de serie A frente a los sin A.
Este program ador corresponde a PR O PIC 2 en el IC - PR O G que se lo conecta al puerto paralelo del com putador. Este program ador soporta microcontroladores PIC de 8, 14, 18, 28 y 40 pines, com unes en las tiendas electrónicas. Para realizar la programación 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 ic r o c h ip
PROGRAMANDO EL PIC “16F628A” En sí la programación de los microcontroladores PIC en lenguaje Basic, es la misma, lo único que los diferencia unos de otros es la definición 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
M A NEJO DE SECUENCIAS Iniciaremos las secuencias aprendiendo a utilizar las instrucciones: PO R T, H IG H , LOW , PAUSE. PO RT.- Esta instrucción nos permite indicar que puerto se va a ocupar, y por lo general va acompañado de otra instrucción. Su sintaxis es la siguiente: PORTB.O ; indica que se ha seleccionado el puerto B.O PORTA.O ; indica que se ha seleccionado el puerto A.O HIGH.- Permite sacar 5 V cc o 1 Lógico por un puerto del microcontrolador, y a la vez lo convierte en salida. Ejemplo: H IG H 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”. L O W PORTB.O ; convierte el puerto B.O en salida y lo coloca en OL. PAUSE.- Detiene el programa por un período en m ilisegundos así: PA U SE 1000; realiza una pausa en el programa de 1000 ms equivalente a 1 segundo.
25
$
S.C. ' PIC
M ic r o c h ip
Un período tiene 16 bits, p o r lo que se podrá colocar u na p au sa hasta de 65535 m ilisegundos, es decir 1,09 m inutos equivalentes a 65,5 segundos. M ás adelante se indicará com o realizar pausas de m ás de 1 m in, hasta varias horas de acuerdo a las necesidades del program a. U na vez estudiadas éstas instrucciones podrem os em pezar con nuestro prim er proyecto el cual realizará la función de un 555 com o un oscilador m onoestable. HIGH PortB.O / s a c a 1L p o r s i puerto B . O d e l P I C PAUSE 5000 / d e tie n e e l p ro g ra n a d u ra n te 5 LOW PortB.O / s a o a OL p e r e l p u e r t o B .O d e l P IC EMD
;
fin a liz a
segundos
e l prograna
Oscilador \lonoestable.PBP
Si analizam os el program a la form a de onda quedaría algo así:
1. Seleccionam os el icono de com ponente 2. Escribim os los elem entos a utilizar, en este caso sería: 2.1. PIC 16F628A 2.2. R ES 330R 2.3. LED rojo, am arillo, verde o azul 3. Procedem os a realizar el circuito com o un esquem ático cualquiera quedando el diagram a de la siguiente manera: . . u i......■ .■ ■ ■ ----
!S_ n_
íW /O S C l/C tW N
««VANO S « A 1 /A N 1
R A 2 M N 2 /V R E F R A 2 /M C L R
R A 3 /A R 3 /C M P 1 R A 4 /T C C W /C M P 2
R1 • R 3 1 /R X S J 1
R B2/TX/CK arrMcr.Pi —
P IC 1 8 P 8 2 8 A • tsxtV
26
338R-
¿ T c t íJ *
“
i
05: : L E O -R E O
«TE’ XV
$
S.C. ' PIC
M ic r o c h ip
C o m o se p u e d e o b serv ar, e n el p ro te u s c a d a m ic ro c o n tro la d o r tie n e s u d is trib u c ió n de p in e s, lo c u a l fa c ilita re a liz a r e l d ia g ra m a. A h o ra lo ú n ic o q u e falta e s c a rg a r e l a rc h iv o h e x a d e c im a l al m ic ro c o n tro la d o r, a q u í n o v a m o s a o c u p a r e l IC P R O G , p o rq u e s o lo es u n a sim u la c ió n , p e ro sí d e b e m o s c a rg a r e l a rc h iv o al m ic ro d e la s ig u ie n te m a n era:
D am os un clic derecho en cualquier parte del com ponente q u e se desee seleccionar y se pintará de co lo r rojo, eso quiere d ecir que se ha seleccionado correctam ente, si se realiza doble clic derecho, el com ponente se borrará. Seguido dam os un clic izquierdo y aparece u n a pantalla com o la siguiente:
Edtt Component Com ponent fie fe re n c e :
U1
Hidden:
Com ponent y a lu e :
PIC16FG28A
Hidden:
QK Help
PCB Package:
jD IL I 8
U F 1 3
Program File:
ÍH icteAl
D a ta
|H rie A I
3 ~~]
Processor C lo ck Frequency:
|lMH;
[HkJe All
Program C o n fig u a tio n W o r d
¡0x3F6B
■ H rfe A l
C ancel
A d v a n c e d Properties: i R andom ize Program Memory?
jH id e A l
_-J¡No
Other £roperties:
A tta c h hierarchy njodule:
H idegom r ttorj pins:
H id d e n Pins
r
E dit ¿II properties as text:
27
■
3
S.C. ' PIC
M ic r o c h ip
Prim ero cam biam os el O scilador a 4M H z. en la ventana Processor C lock Frequency, seleccionam os la carpeta de Program File, lo cual me perm itirá buscar el archivo hexadecim al en este caso sería Oscilador Monoestable. HEX. Y dam os un clic en OK. Dam os un clic derecho en cualquier parte de la pantalla para deshabilitar la selección del com ponente y correm os el program a digitando F12 desde el teclado del com putador.
ÍSJL.
R A 7 /O S C 1 /C L K IN
R A O /A N O
R A O /O S C 2 /C L K O U T •
•
-Ü_
R A 1 /A N 1 R A 2 /A M 2 Z V R E F
R A S /M C L R
n
R A 3 /A M 3 / C M P 1 R A 4 /T O C K I/ C M P 2
ír ± PS* RB7/T108I 2111
R B 1 /R X /D T
R B 2 /T X /C K R B3TC C P1 RB4
RBO
R B B 7 T 1 0 8 0 /T 1 C W
“
Ú * W LED-REO .
P IC 1 0 F 0 2 8 A
~r
tT £ X T >
............. Prendido el LED durante 5 segundos
: . yi 1Ü- R A 7 / O S C 1 / C L K 1 N
R AO /AN O
RA0/O6C2/CLKOUT
-Ü
R A1/AN 1 R A 2 /A N 2A TR EF
RA5/M CLR
R A 3/AN 3/CM P 1 R A 4 7 T O C K I/ C M P 2 R B O / IN T R B 1/R X /D T R 92/TX/CK
RB3/CCP1 RB4 R B fl R B O /T1 0 S O /T1 C W RB 7/T108I
~IC I0FO20A
A pagado el LED
1---------1---------1— ^ —1— ——* - O tra m anera de c o rre r el p ro g ram a es d ig itan d o el botón R U N que es sim ila r al PL AY de u na grab ad o ra. Se puede p au sar el p ro g ram a y d e ten e r el m ism o con la utilizació n de los b o to n es de ésta barra de herram ientas. E stos pasos se seg u irán para realizar cad a uno de los p ro y ecto s q ue se en cu en tran en el libro, o si prefieren p u ed en u tiliz a r el sim u lad o r de un e n tre n ad o r el cual p o see to d o s los e lem en to s que se necesitarán para cad a uno de los p ro y ecto s. É ste se en cu en tra en el C D con el n o m b re de E n tren ador P IC 16F 628A . A co n tin u ació n p resen tam o s la figura del E n tren ad o r d iseñ ad o p a ra realizar los p ro y ecto s con el M icro co n tro lad o r PIC 1 6 F 6 2 8 A . el cual p o see 8 L eds, 1 D isplay, 1 L C D , 3 pulsadores, 1 teclad o y 1 relé.
28
$
S.C. ' PIC
M ic r o c h ip
Entrenador PIC I6F628A. Shematic Desistí
ESTUDIO DE SUBRUTINAS Las subrutinas perm iten realizar una llam ada a cierta parte del program a, para que realice una función específica. En el com pilador PicB asic Pro existen dos tipos de subrutinas la G O TO y la G O SU B , las que detallarem os a continuación: G O T O .- Perm ite apuntar a cierta parte del program a donde se le haya asignado una etiqueta, y continuar con las líneas de program ación después de la m ism a. Para entender m ejor la instrucción G O TO vam os a desarrollar nuestro siguiente proyecto, el cual realizará la función de un 555 pero esta vez com o un oscilador astable el cual estará en nivel alto durante 1 segundo y en nivel bajo durante Vi segundo. Su form a de onda es:
t [seg]
29
$
S.C. ' PIC
M ic r o c h ip
La program ación para este proyecto es la siguiente: inicios
/ e tiq u e ta
p a r a g e n e r a r una /saca
HIGH PORTB.0 PAUSE 1000 LOW PORTB.0 PAUSE 500
s u b ru tin a
1L p o r e l p u e r t o
GOTC 3 .0
/ detiene e l p r o g r a m a p o r 1 s e g u n d o / saca
Oh p o r
e l p u e rto
3 .0
; detiene e l p r o g r a m a p o r 1 / 2
GOTO inicio / s a l t a a l a e t i q u e t a END / f i n a l i z a e l p r o g r a m a
d e n o m in a d a
segundo
in ic io
Oscilador Astable. PBP
Para la sim ulación sim plem ente cargam os el archivo O scilador A stable.H E X en el entrenador, activam os el interruptor correspondiente a los leds y presionam os F12. G O SUB.- Es sim ilar a la subrutina G O TO , apunta a cierta parte del program a donde esté asignada la etiqueta, guardando su dirección de retom o, es d ecir cum ple con la subrutina y regresa a la siguiente línea donde se quedó. Para entender esta instrucción realizarem os un program a de un led interm itente. inicios
/ e tiq u e ta para
la
s u b ru tin a
GOTC
HIGH PortB.O / S a c a 1 L p o r e l p u e r t o 3 . 0 GOSUB timer /S a lta a la su b ru tin a e tiq u e ta d a LOW PortB.O / S a c a 0L p o r e l p u e r t o 3 . 0 GOSUB timer /S a l t a a la s u b r u tin a e t i q u e t a d a GOTO inicio / s a l t a timers
/ e tiq u e ta
a la para
subrutina e t i q u e t a d a la
su b ru tin a
PAUSE 1000 / r e a l i z a RETURN
• re g re sa o re to rn a / e l G0SU3 t i m e r
tim e r
in ic io
GOSU3
una p a u s a a la
tim e r
de
sig u ie n te
1 segundo lin e a
después de
Led Intermitente.PBP
C om o se puede observar hem os sustituido la pausa con u n a subrutina denom inada timer, la que detiene el program a durante 1 segundo. Así ahorram os espacio en el Pie ya que la instrucción P A U SE se la realiza una sola vez. C ada vez nuestros program as se irán increm entando de tam año y com plicándose poco a poco, por lo que es m uy im portante repasar los que hem os realizados hasta el momento.
30
$
S .C . ' P IC
M ic r o c h ip
T R IS.- R ealiza la función de colocar los pines seleccionados com o entrada (1L) o salida (OL) dependiendo de la aplicación a utilizar. TR ISB=% 00000000 con esta instrucción colocam os todos los pines del puerto B como salida, o bien se puede utilizar TR ISB =0 que realiza la m ism a función. T R IS B = % 11111111 colocam os todos los pines del puerto B com o entrada, o se puede ocupar TRISB=1. Cada bit puede ser m anejado individualm ente de la m ism a m anera es decir pueden ser entrada o salida. T R IS A = % 11110000 con esta instrucción hacem os que los bits m enos significativos del puerto A sean salidas y los m as significativos sean entradas. U na vez definido cuales son los puertos de entrada o salida, procedem os a encender o apagar los puertos así: TRISB=%0 ; h a c e m o s s a l i d a INICIO:
el b it
B .O d e l p u e r t o
B
/ E T I Q U E T A PARA UN LA Z O R E P E T I T I V O PORTB=%0 ; PAUSE 1000 PORTB=%l ; PAUSE 1000
GOTO INICIO
sacam os ; PAUSA sacam os ; PAUSA
OL DE 1L DE
p 1 p 1
o r e l p u e rto SEGUNDO o r e l p u e rto SEGUNDO
B .O B .O
; S A L T A A L A ETIQ U E TA I N I C I O Instrucción TRIS. PBP
Conociendo estas herram ientas en la program ación para los m icrocontroladores estam os listos para realizar nuestro siguiente proyecto. SEM AFO R O D IG IT A L TRISB=%00011000 / h a c e m o s s a l i d a
lo s p u e rto s
B .1 ,3 .6 ,3 .5 3 .2 ,3 .1 ,3 .0
; O c u p a m o s e l 3 .7 , 3 . 6 , 3 . 5 , 3 . 2 , 3 . 1 , 3 . 0 p o r q u e e n el e n t r e n a d o r ; se e n c u e n tra n le d s d e c o lo r e s r o j o l , a m a r illo l, v e r d e l y ; r o jo 2 ,a m a r illo 2 ,v e r d e 2 ; r e sp e c tiv a m e n te
31
$
S .C . ' P IC INICIO:
M ic r o c h ip
/ E T I Q U E T A PARA UN LA Z O R E P E T I T I V O PCRTB=%1D000100 ; p r é n d e n o s l o s L E D S r c j o l y v s r d s 2 PAUSE 3000 / PAU SA DE 3 SEGUNDOS PCRTB=%10000010 ; p r e n d e m o s l o s L E D S r o j o l y a r a r i l l o 2 PAUSE 1000 ; PAUSA DE 1 SEGUNDO ?ORTB=%00100001 ; p r e n d e m o s l o s L E D S v e r d e l , y r o j o 2 PAUSE 3000 / PAU SA DE 3 SEGUNDOS PCRTB=%01000001 ; p r e n d e r o s l o s L E D S a r a r i 1 1 o 1 y r o j o 2 PAUSE 1000 ; PAU SA DE 1 SEGUNDO
GOTO INICIO
;
S A L T A A L A E T IQ U E T A I N I C I O Semáforo Digital- PBP
Si se desea utilizar focos de 1 10V se procede a realizar el siguiente diagram a de conexión para cada uno de los leds a utilizar:
El triac para utilizar en este diagram a es el Q 4015L, que m aneja una co m en te de hasta 15A y un voltaje de 400V , suficientes p ara conectar focos de 110V.
VARIABLES U na variable es un nom bre identificador en el cual guardam os datos de form a temporal. El com pilador PIC B A SIC PR O posee tres tipos de variable que son:
V A R IA B L E TIPO
FACTOR
BIT
VALOR
21
0 -1 ...
BYTE
28
0-255
W ORD
2 16
0 - 65535
32
S .C . ' P IC
M ic r o c h ip
La Sintaxis a utilizar es la siguiente: X VAR BIT Y VAR BYTE 2 VAR WORD D onde X, Y, Z son nom bres identificadores para la variable, los cuales pueden ser distintos de acuerdo al usuario.
CAMBIO DE NOMBRE A LOS PUERTOS Para realizar el cam bio de nom bre a los puertos del m icrocontrolador usam os la m ism a instrucción estudiada anteriorm ente, nos referim os a la instrucción V A R. Su sintaxis es la siguiente: LED VAR PORTB.0 RELE VAR PORTA.0 Como se puede observar esta herram ienta es m uy fundam ental a la hora de m ontar un proyecto, ya que perm ite dam os cuenta que elem ento está conectado en cada uno de los puertos y evitam os errores en la program ación.
INSTRUCCIONES MULTIPLES Otra de las herram ientas fundam entales del PIC BA SIC PR O son los com andos m últiples que perm ite escribir varias instrucciones en la m ism a línea sim plem ente separados por (O LED VAR PORTB.O ; CA M BIO D E NOMBRE A L PUERTO B . O POR LED LED2 VAR PORTB.1 ; CAM BIO DE NOMBRE A L PUERTO B . l POR L E D 2 INICIO:
; E T I Q U E T A PARA UN L A Z O R E P E T I T I V O
HIGH LED : LOW LED2 ; 1 L PAUSE 500 ; PAU SA DE 5 0 0 LOW LED : HIGH LED2 ; OL PAUSE 500 / PAU SA DE 5 0 0
POR 3 . 0 Y OL POR 3 . 1 M IL IS E G U N D O S POR 3 . 0 Y 1 L POR 3 . 1 M IL IS E G U N D O S
GOTO INICIO ; S A L T A A L A E T IQ U E T A I N I C I O LUCES INTERMITENTES. PBP
33
$
M ic r o c h ip
S.C. ' PIC INSTRUCCION FQR - NEXT Perm ite ejecutar un program a n veces, y su sintaxis es la siguiente: FOR R=1 TO 5 CUERPO DEL PROGRAMA NEXT
D onde R es una variable asignada con el valor de 1 hasta 5. Es decir realizará 5 veces Lo que contenga el cuerpo del program a. Ejemplo: LED V AR PCRTB.O ; CAM BIO DE NOMBRE A L PUERTO 5 . G R VAR BYTE ; A S IG N A M O S R DE UN TAMAÑO DE 2 5 6 FOR R=1 TO 10 ; L A Z O HIGH LED PAUSE 1000 LOW LED PAUSE 1000
POR LED
R E P E T I T I V O S DE 1 A 1 0 ; SACAMOS 1 L ; PAU SA DE 1 ; SACAMOS 0 L ; PAUSA DE 1
POR E L PUERTO 3 . 0 SEGUíJDO POR E L PUERTO 3 . 0 SEGUNDO
NEXT ; S A L T O A L L A Z O R E P E T I T I V O H A ST A QUE R S E A IG U A L A 1 0 END ; F I N DEL PROGRAMA lazo FOR. PBP
Como se había estudiado anteriorm ente el PIC BA SIC PR O no perm ite realizar una pausa m ayor a 65,5 segundos. Por esa razón si se desea increm entar la pausa se utilizará el lazo FOR estudiado. Así: LED VAR PORTB.0 / CA M BIO DE NOM3RE A L PUERTO 3 . 0 R VAR WORD ; V A R I A B L E R DE TAMAÑO 6 5 5 3 6 INICIO:
POR LED
; E T I Q U E T A DE S A L T O LLAMADA I N I C I O HIGH LED / 1 L POR E L PUERTO 3 . 0 GOSUB TIMER ,* S A L T A A R E A L I Z A R UNA PAU SA DE 5 M IN U TO S LOW LED ; OL POR E L PUERTO 3 . 0 GOSUB TIMER ; S A L T A A R E A L I Z A R UNA PAU SA DE 5 M IN U TO S
GOTO INICIO / SALTA A LA E T I Q U E T A I N I C I O
34
$
S .C .
P IC
TIMER:
; E T IQ U E T A DE S A L T O LLAMADA TIMER
M ic f io c h ip
FOR R=1 TO 300 PAUSE 1000 NEXT RETURN
;
/ I N I C I O DEL LA Z O R E P E T I T I V O DE 1 A 3 0 0 ; PAUSA DE 1 SEGUNDO
CO NTINU A A L LA Z O FOR H A ST A QUE R - 3 0 0
; R EG RESA A L A S I G U I E N T E L I N E A DONDE S E QUEDO PAUSA 5 MINUTOS. PBP
M ediante el lazo FO R se ha increm entado la pausa hasta 5 m inutos, y así se puede seguir aum entando de acuerdo a las necesidades del usuario.
PULSADORES Y SW ITCH Existen 2 tipos de conexión para el m anejo de pulsadores o sw itch. La prim era es la conexión a 1L y la segunda la conexión a OL. A continuación los diagram as de conexión por cada uno de los casos. U1 RA7/OSC1/CtKÍN RA8/CSC2/CLKOUT RA5/MCLR
RAQ/AND RA1/A.N1 RA2/AN2/VREF RA3/AN3/CMP1 RA4/TQCK1/CMP2
C O N E X IÓ N A 1L .-
17
_J£ -2-
Se la conoce como 1L porque Vcc se encuentra conectado a través de una resistencia al microcontrolador PIC, y el pulsador generará OL cuando este sea presionado.
R1 RBQ/NT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSOTT1CKJ RB7/T10SI
4k7
La resistencia nos permite bajar la corriente de entrada para que el microcontrolador PIC funcione correctamente.
P1C1BFB28A
C O N E X IÓ N A OL.-
U1
1Lií
RA7/OSC1/CLK1N RAB/OSC 2/CIKOUT
RAO/ANQ RA1/AN1 RA2/AN2A'REF RA3/AN3/CMPJ RA4/TDCKJ/CMP2
17
_JÍ -L.
■O O-
R ecm r RB1/RX/DT
Contraria a la anterior, ésta permite ingresar OL a través de una resistencia al microcontrolador, y en el momento que el pulsador es digitado generará 1L.
9 10 11
RBBFT1OSO/TICKI RB7m OSI
12
_11
R1 4k7
PIC1BF628A
35
.
Igualmente la resistencia permite bajar la corriente a la requerida por el PIC para evitar daños o errores al ingresar los pulsos.
$
S.C. ' PIC
M ic r o c h ip
Para el control de los pulsadores o sw itch debem os utilizar una instrucción que nos perm ita realizar preguntas.
INSTRUCCIÓN IF - ELSE - ENDIF Esta instrucción es m uy utilizada para realizar preguntas en cualquier lenguaje de program ación. Sin em bargo en los m icrocontroladores es esencial para diversas aplicaciones, y una de ellas es la utilización en los pulsadores o switch. Su sintaxis de m anejo es la siguiente: IF pregunta es correcta T HE N
Realice esta programación ELSE
Caso contrario si no es correcto realice esta otra programación ENDIF M ediante EN D IF term inam os la instrucción IF. Para aclarar esta instrucción realizarem os un program a el cual al ser presionado un pulsador prenderá un led, para sacar un pulsador en el proteus digitam os B U TTO N en la parte de elem entos. CMCGN=7 ; CAMSIAMOS E L PUERTO A COMO D I G I T A L LED VAR PCRTB.O ; CAMBIO DE NOMBRE AL PUERTO B . O POR LED PULSADOR VAR PORTA.0 / CAMBIO DE NOMBRE A L PUERTO A . O POR PULSADOR inicio:
; ETIQU ETA PARA SALTO
IF PÜLSACCR=0 THEN ;PREGUSTA S I EL PULSADOR E S 0 ENTONCES GOTO PRENDIDO / S A L T E A L A ETIQ U ETA PRENDIDO ELSE
;
CASO CONTRARIO S I EL PULSADOR S IG U E E N 1 ENTONCES
GOTO APAGADO / SAL TE A LA ETIQ U ETA APAGADO ENDIF ; TERM INTE LA IN STR U C C IO N IF GOTO inicio ; S A L T E A I N I C I O
36
$
S.C. ' PIC
M ic r o c h ip
PRENDIDO:
; E T I Q U E T A DE SA L T O
HIOH LED ; SAQUE 1 L POR E L PUERTO B . O GOTO inicio ; S A L T E A L A E T I Q U E T A I N I C I O APAGADO:
; E T I Q U E T A DE SA L T O
DOW LED ; SAQ U E OL POR E L PUERTO B . O GOTO inicio ; S A L T E A L A E T I Q U E T A I N I C I O END ; F I N DEL PROGRAMA Instrucción IF. PBP
Recuerden que estos proyectos pueden probar en el sim ulador de un entrenador que viene ¿djunto en el CD . C om o habrán notado al inicio del program a utilice u n a instrucción _¿mada C M C O N =7, y si analizaron un poquito m ás se habrán dado cuenta que utilice esa Jütrucción porque m anejé el puerto A. Lo que quiere decir que esta instrucción apaga los am p arad o res de voltaje y digitaliza el puerto, en otras palabras m e perm ite ocupar el puerto A. 5. en la com pilación del program a se tiene el siguiente error: «e&j?s
Se refiere a que no se ha seleccio nad o el m icro co n tro lad o r PIC 16F628A . P or esta razón siem p re antes de realizar cu alq u ier p ro g ram a d ebem os fija rn o s que PIC v a m o s a utilizar.
= n r :NSTRU~2.ASM 51 : [225] undefined symbol ’cmcon'
^
A * e fn W e r e rro rs
O tz observación más. C om o se puede observar en el program a se preguntó si el pulsador = 0 esto quiere decir que en la parte hardw are debe estar conectado a 1L, ingresando E rectam ente a través de una resistencia un voltaje alto al m icrocontrolador PIC, y cuando ss pulsado cam biará de estado a OL. El bit A .4 del puerto A es de colector abierto, lo que quiere decir que para utilizarlo « e m o s conectarlo por m edio de una resistencia de 100 ohm ios a Vcc.
37
$
S.C. ' PIC
M ic r o c h ip
R2 330RR 1 t ,-
U1
I5_
RA 7/O S C 1/C LK IN RA S /O S C 2/C LK O U T RA 5/M C LR
R A O W iO R A 1/A N 1 RA2/AM 2A'REF RA3¿AN3/CMP 1 RA4/TQCKL'CMP2 RBQ/1NT R B 1/W VD T R B 2/TX /C K RB3/C CP1 RBó
R55 R B 6 /T 10 S O / T 1CHJ R B 7 /T 1 0 S
_ IZ
_lfl
330R
'* E X 7 :
D1 -J L
-2 -
LEO-RED
vE*r>.
_ 2_
10 m 13
P IC 16FB 20A
En la figura se puede observar que los puertos RA7, RA6 y RA5 son para conectar el oscilador y el m aster clear respectivam ente, lo que provoca que estos bits no se prendan si program am os una secuencia en el puerto A. Para solucionar este problema debemos indicar en la program ación que vam os a ocupar el oscilador y el m aster clear interno que posee el m icrocontrolador PIC 16F628A, de la siguiente manera: 3 device INTRC_CSC_NOCLKOUT ; OCUPAMOS E L O S C IL A D O R IN TE R N O 8 DEVICE MCLR_OFF ; OCUPAMOS E L M A ST E R CLEAR IN TE R N O 3 device SGD_CFF ; APAGAMOS E L 3 0 D E N DE CONSUMO cmcor.=7 ; D I G I T A L IZ A M O S E L PUERTO A TRISA=0 ; TODO E L PUERTO A E S S A L I D A INICIO:
; E T I Q U E T A PARA S A L T O PORTA==%10000001 GOSUB TIMER PORTA==%01000010 GOSUB TIMER PORTA==%00100100 GOSUB TIMER PORTA==%00011000 GOSUB TIMER
SE C U E N C IA 1 0 0 0 0 0 0 1 S A L T O A LA E T IQ U E T A S E C U E N C IA 0 1 0 0 0 0 1 0 S A L T O A LA E T I Q U E T A S E C U E N C IA 0 0 1 0 0 1 0 0 S A L T O A LA E T I Q U E T A S E C U E N C IA 0 0 0 1 1 0 0 0 S A L T O A L A E T IQ U E T A
T IM E R T IM E R T IM E R T IM E R
GOTO INICIO TIMER: / E T I Q U E T A PARA S A L T O PAUSE 500 ; PAUSA DE 5 0 G M IL IS E G U N D O S RETURN
;
R E G R E S A A L A S I G U I E N T E L I N E A D E SP U E S DEL GOSUS Ocupando el puerto A. PBP
38
S.C. ' PIC
M ic r o c h ip
TXT R A 7 /O S C 1 /C L W H
RAO/ANO
R A 0 /O S C 2 /C L K O U T R A 5 /M C L R
R A 1 /A N 1 R A 2 /A N 2 A /R E F
R A 3 /A N 3 /C M P 1 R A 4 /T 0 C K I/C M P 2 RBO/INT R B 1 /R X /D T r b 2 /t x / c k
R B 3 /C C P 1
R94
R B fl R B 0 /T 1 O S O /T 1 C W R B 7 /T 1 0 S I P IC 1B F 0 2B A
PUERTOA. Schematic Pesien
CONEXIÓN PARA LA SECUENCIA UTILIZANDO EL PUERTO A Como se puede observar en la figura solam ente el bit A .4 del puerto A se encuentra conectado a través de una resistencia de 100 ohm ios a Vcc.
39
a
S.C. ' PIC
M ic r o c h ip
INSTRUCCIÓN SELECT - CASE La instrucción SELE C T C A SE, perm ite realizar preguntas, la com pone una serie de IF..TH EN s. los cuales se denom inan casos (CA SE). E sta instrucción es usada para com parar una variable, con diferentes valores o rangos asignados p o r el usuario. Su sintaxis es: S E L E C T C A SE v a r C A SE e x p r l { , e x p r . . . } s ta te m e n ts CA SE e x p r 2 { , e x p r . . . } s ta te m e n ts {C A SE E L S E s t a t e m e n t s } END S E L E C T
A continuación realizarem os un ejem plo con esta instrucción, que consistirá en prender y apagar un led de acuerdo al valor que se le haya asignado en la variable. LED VAR PORTB.O X VAR BYTE ; R VAR BYTE ;
/ C a m b i o d e n o m b r e a l B I T b . O p o r LED V a r i a b l e X detamaño de 256 V a r i a b l e R detamaño de 256
X=5 ; A s i g n a m o s
el
In ic io :
valor de 5 a la
; E tiq u e ta para
variable X
salto
SELECT CASE X ; I n i c i o d e l a ; V ariable X
instrucción
S E LE C T CASE p a r a l a
< 5 / Caso s i X es < 5 entonces / P r e n d a e l LED Caso si x m 5 R =1 TO X ; L a z 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 HIGH LED / P r e n d a e l LED PAUSE 5 0 0 ; P a u s a d e 1 / 2 s e g u n d o LOW LED / A p a g u e e l LED PAUSE 5 0 0 ; P a u s a d e 1 / 2 s e g u n d o HEXT ; C o n t i n u é c o n e l l a z o r e p e t i t i v o PAUSE 2 0 0 0 ; P a u s a d e 2 s e g u n d o s CASE I S > 5 / C a s o s i x > 5 e n t o n c e s LOW LED / A p a g u e e l LED CASE ELSE ; C a s o c o n t r a r i o s i n o c o i n c i d e c o n n i n g ú n ; caso entonces GOTO I n i c i o ; S a l t e I n i c i o CASE I S HIGH LED CASE 5 ; FOR
END SELECT / F i n a l i c e
V a lo r de X
e l END SELECT
Instrucción SE L E C T CASE. PBP
NOTA: Para probar esta instrucción, variar el valor de la variable X y probar en el software de simulación PROTEUS, específicamente en el archivo Entrenador del PIC 16F628A. Schem atic Design.
40
$
S.C. ' PIC
M ic r o c h ip
PROYECTOS CON PULSADORES Y LEDS El prim er proyecto que realizarem os es que se prenda un led con un pu lsad o r y se apague el led con el m ism o pulsador. CMCON=7
C A MB IA MO S E L
;
PUERTO A COMO D I G I T A L
LED VAR P O R T B .O / C A M B I O DE NOMBRE A L PUER T O 3 . 0 POR L E D PULSADOR VAR P O R T A - 0 / C A M 3 I O DE NOMBRE A L PUER T O A . O POR PULSADOR in ic io :
ETIQUETA
;
PARA SALTO
PU LSA D O R=0 THEN ; PREGUNT A S I
IF
GOSUB AR ;
S A L T E A L A E T I Q U E T A P R EN D ID O
TERMINTE LA INSTRUCCION IF
;
SALTE A INICIO
GOTO i n i c i o
;
PR E N D ID O :
E T I Q U E T A DE S A L T O
;
0 E NT O N C E S
S A L T E A L A E T I Q U E T A AR
GOTO P R E N D ID O / E N D IF
E L P U L S AD O R E S
H IG H LED
SAQUE 1 L
/
PREGUNTA: IF
/
POR E L PUERTO 3 . 0
E T I Q U E T A DE S A LT C PU LSA D O R =0 THEN ; PREGUNTA S I E L
P U L S A D O R E S 0 E NT O NCE S
GOSUB A R / S A L T E A L A E T I Q U E T A A R GOTO APAGADO ; S A L T E A L A E T I Q U E T A APAGADO E N D IF
• TERMINTE LA IN ST R U C C IO N I F
GOTO PREGUNTA / S A L T E A PREGUNTA H A S T A QUE P R E S I O N E NUEVAMENTE EL ; P ULS ADOR
APAGADO:
/
E T IQ U E T A DE SALTO
LOW LED ; S A Q U E 0 L POR E L P UERT O 3 . 0 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 AR:
; IF
ETIQUETA
PU L SA D O R =0 THEN GOTO AR /
RETURN / ZND /
PA R A S A L T O L LA MAD A A R SI
P ULSADOR S I G U E P R E S I O N A D O S A L T E A AR
C A S O C O N T R A R I O R E T O R N E A L A L I N E A DONDE S E QUEDO
F I N D E L PROGRAMA
Proyecto 1 Pulsadores. PBP
41
M ic r o c h ip
S.C. ' PIC
En el prim er proyecto de secuencias se generó una subrutina denom inada A R, la cual perm ite realizar un antirebote, la m ism a que indica si el pulsador sigue presionado, evitando errores a la hora de ingresar un pulso. A continuación realizarem os un program a el que perm itirá increm entar o dism inuir la velocidad en un ju eg o de luces de 2 leds. CMCON=7 ; CA MB IA MO S E L P U E R TO A COMO D I G I T A L L E D l VAR P O R T B .O / C A M 3 I O D E NOMBRE A L PUER T O 3 . 0
POR L E D l
L E D 2 VAR P O R T B . 1 / C A M 3 I O D E NOM3RE A L PUER T O 3 . 1 POR L E D 2 INCREMENTAR VAR P O R T A . 0 / C A MB IO DE NOMBRE A L PUER T O A . O POR I NC R E M E N T A R D IS M IN U IR VAR P O R T A . 1
/
C A M B I O DE NOMBRE A L P UERT O A . l
X VAR B Y TE
/
V A R I A B L E X C O N UN TAMAÑO DE 2 5 5
R VAR BY TE
;
V A R I A B L E R C O N UN TAMAÑO DE 2 5 5
X=2 0
/
I N I CIALIZAMOS X -
IN IC IO :
POR D I S M I N U I R
20
E T IQ U E T A PARA SALTO
;
H IG H L E D l
:
LOW L E D 2
GOSUB T IM E R
/
/
S E C U E N C I A DE L U C E S
SALTA A L A E T I Q U E T A TIMER
LOW L E D l : H IG H L E D 2 / S E C U E N C I A DE L U C E S GOSUB T IM E R ; S A L T A A L A E T I Q U E T A TIMER GOTO I N I C I O T IM E R :
;
/
SALTA A LA ETIQUETA
ETIQUETA IF IF
PARA SALTO
IN C R E M E N T A R Á THEN GOSUB MAS / D I S M I N U I R Á TH EN GOSUB MENOS ;
GOSUB T IM
/
ETIQUETA
I N C R E M E N T A R —0 S A L T A A MAS D I S M I N U I R - 0 S A L T A A MENOS
S A L T A A L A E T I Q U E T A T I M DONDE S E R E A L I Z A R A L A PAUSA
PARA SALTO
F O R R = 1 TO X
/
L A Z O R E P E T I T I V O DESDE R - l
PAUSE 1 0
;
P A U S A DE 1 0 M I L I S E G U N D O S
N EXT RETURN / M A S:
;
SI SI
; R E G R E S A A L A L I N E A D E S P U E S DE GOSUB T I M E R
RETURN T IM :
INICIO
;
;
C O N T I N U A E L L A Z O R E P E T I T I V O H A S T A QUE R - X
R E G R E S A A L A L I N E A D E S P U E S DE G OS UB T I M
ETIQUETA
X =X +10 / IF X >150 RETURN ;
H A S T A E L VALORA S I G N A D O X
PARA SALTO
CA R GA MOS L A V A R I A B L E CON X - X + 1 0 TH EN X = 1 5 0 / S I X E X C E D E L O S 1 5 0 E N T O N C E S Q U E D E S E
REGRESA A LA L IN E A
D E S P U E S DE GOSUB M A S
42
AHI
$
S.C. ' PIC M E N O S:
M ic r o c h ip
ETIQUETA
/
PARA SALTC
X=X-10 ; C A R G A M O S L A IF X<10 THEN X=10 / S RETURN END
REGRESA A
/
F IN DEL
/
LA
VARIABLE I
X
LIN EA
CON X - X
-
3 A J A MENOS A
10
10 ENTONCES
QUEDESE A H I
D E S P U E S D E GOSUB MENOS
P R OG R A M A P r o v e c t o 2 L u c e s V e l o c i d a d Variable. P B P
Como tercer proyecto realizarem os un contador en binario, el q u e se va a observar en el puerto B con leds de visualización. rrisb=0 ; T O D O E L portb=%00000000 ; inicio:
/
PUERTO
ETIQ U ETA
PARA
portb=portb+l PAUSE 500 GOTO inicio / END / F I N D E L
3
CARGAMOS
SALTO
A
SALID A
PUERTO B
CON 0 0 0 0 0 0 0 0
SALTO
/
INCREM ENTAM OS
;
SACAMOS
PAUSA
/
SERA AL
LA
DE
POR
500
ETIQ U ETA
EL
EL
PUERTOS
PUERTO
EN B IN A R IO
Y
B
M I L I SEGUNDOS IN IC IO
PROGRAMA C o n t a d o r b i n a r i o c o n leds. P B P
Y com o últim o proyecto realizarem os un desplazam iento de leds hacia la izquierda y hacia la derecha. zrisc= 0
;
H A CE M O S S A L I D A
p crc b = % 0 0 0 0 0 0 0 1 PA U SE r
500
;
VAR B Y TE
ir .ic io :
/
;
TODO E L
VARIABLE r
ETIQUETA FOR r = l
CON 0 0 0 0 0 0 0 1
DE U N TAMAÑO DE 2 5 5
PARA SALTO TO 7
LAZO R E P E T IT IV O
/
p o rrb = p o rc b « l
/ /
PAU SE NEXT
/
FOR r = l
;
/
HACIA LA
HASTA
7
DEL PUERTO 3
1 A
I
IZQUIERDA
CO N TINU AR E L L A Z O FOR H A S T A TO 7
PAU SE NEXT
DESDE r - 1
DESPLAZAR LOS B I T S
500 LAZO R E P E T IT IV O
;
p o rrb = p o re b » l
END /
PUERTO 3
PAUSA DE 5 0 0 M ILISEGUNDOS /
3C T O i r . i c i o
PUERTO 5
IN IC IA L IZ A M O S EL
500
/
QUE r - 7
DESDE r - 1
/
DESPLAZAR LOS 3 I T S
;
H A C I A L A D ER E C H A
HASTA
P A U S A DE 5 0 0 M I L I S E G U N D O S
CONTINUAR EL LAZO
SA L T E A LA ETIQUETA
F OR H A S T A
INICIO
F I N D E L PROGRAMA D e s p l a z a m ie n t o s . P B P
43
7
DEL PUERTO 3
QUE r - 7
1 A 1
$
S.C. ' PIC
M ic r o c h ip
M ANEJO DE TECLADOS HEXADECIMALES Una de las más grandes aplicaciones de pulsadores está en los teclados, los cuales permiten al usuario ingresar datos, procesarlos y tener respuestas, por lo que estos dispositivos electrónicos 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 electrónico.
TECLADO HEXADEC1M AL C O M U N EN LAS TIENDAS ELECTRONICAS La estructura interna del teclado es la siguiente: A
1
J = L -0
2
-n n _ #
3
-J = 1 _ #
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 razón debemos introducimos en el manejo de una matriz 4 * 4 .
45
$
S.C. ' PIC
M ic r g c h ip
U na m atriz es una tabla rectangular de núm eros, ordenados p or filas y colum nas. Para nuestro caso tenem os una m atriz con lógica binaria, es decir los datos de la m atriz pueden variar entre OL y 1L.
m
4.4
0
0
0"
0
0
0
0
0
0
0
0
0
0
0
0
A continuación se presenta una tabla con el nom bre de cada uno de los pulsadores del teclado y sus coordenadas correspondientes a la m atriz 4 * 4 . D igito del Teclado 1 2 3 4 5 A B
C oordenadas de la M atriz Fila 1, colum na 1 Fila 1, colum na 2 Fila 1, colum na 3 Fila 2, colum na 1 Fila 2, colum na 2 Fila 1, colum na 4 Fila 2, colum na 4
D igito del Teclado 6 7 8 9 0 C D
C oordenadas de M atriz Fila 2, colum na 3 Fila 3, colum na 1 Fila 3, colum na 2 F ila 3, colum na 3 Fila 4, colum na 2 Fila 3, colum na 4 Fila 4, colum na 4
la
C om o podem os apreciar, para cada uno de los dígitos del teclado se tiene su respectiva coordenada, la cual ocuparem os al m om ento de realizar la parte del control con los m icrocontroladores PIC. Como se ha dicho anteriorm ente el teclado es una serie de pulsadores conectados entre sí. Por lo que el teclado tam bién se lo puede conectar a 0L o 1L, adem ás necesita en su program ación un antirebote para evitar que los datos sean erróneos. U na vez entendido el m anejo interno de este dispositivo electrónico realizarem os la conexión con el program a Proteus, y la program ación correspondiente para poder controlarlo. Pasarem os a realizar un program a que perm ita ingresar datos, y visualizarlos en un led, el cual se prenderá varias veces de acuerdo al dígito que se haya presionado en el teclado.
46
S.C. ' PIC
M ic r o c h ip
Para sacar un teclado en el proteus, digitam os en la parte de elem entos K EY PA D y seleccionam os SM A LLC A LC . Si recordam os, en la parte de pulsadores la conexión a 1L se realizaba m ediante una resistencia de 4,7K conectada a Vcc, y otra parte conectada a tierra para que cuando exista una pulsación ésta perm ita ingresar OL. En el teclado se ha realizado el m ism o procedim iento, con la única diferencia que las colum nas van conectadas a la parte de Vcc p or m edio de una resistencia de 4,7K y las filas van conectadas directam ente al m icrocontrolador para p o r m edio de éstas poder censarlas y proceder a preguntar por cada dígito del teclado. CMCON=7 ; d i g i t a 1 1 z a m o s e l p u e r t o A X VAR BYTE ; X d e t a m a ñ o de 256 R VAR BYTE
;
R de
LED VAR P O R T A .0
;
tam año cam bio
de de
256
nombre
al
p u erto
A.O p o r
L ED
F IL A _ A
VAR P O R T B .O
/ cam bio de nom bre a l
p u erto
B .O p o r FILA_A
F IL A _ B F IL A _ C
VAR P O R T B .l VAR P O R T B .2
/ cam bio de nom bre a l ; cam bio de nombre a l
p uerto p uerto
B . l p o r FILA_B B . 2 p o r FILA_C
F IL A _ D
VAR P O R T B .3
/
cam bio de nom bre a l
p u erto
B . 3 p o r FILA_D
COL_UNO VAR P O R T B .4
/
cam bio
de nombre
al
p u erto
B.O
por
COL_UNO
COL DOS VAR P O R T B .5 / 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 COLADOS COL T R E S VAR P O R T B .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 C O L ^ T R E S COL CUATRO VAR P O R T B .7
/
cam bio
de
nombre
47
al
p u erto
B .O
por
COL_CUATRO
$
M ic r o c h ip
S .C . ' P IC IN IC IO :
; E tiq u eta
para
salto
LOW FILA__A ; c e n s a m o s l a F I L A A I F COL_UNO=0 THEN X=7 : GOSUB AR : GOSUB PRENDER ; S i l a ; columna unoe s p r e s io n a d a ca rq u e a x con 7 s a l t e a l a n ti ;re b o te y s a lte a prender el le d 7 veces. I F COL_DOS=0 THEN X=8 : GOSUB AR : GOSUB PRENDER I F CO L_T R E 3=0 THEN X=9 : GOSUB AR : GOSUB PRENDER I F COL_CUATRO=0 THEN X=0 : GOSUB AR : GOSUB PRENDER HIGH FILA__A / f i n d e l c e n s o d e l a F I L A A LOW FILA__B / c e n s a m o s l a F I L A 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 C O L _T R E 3=0 THEN GOSUB AR : X =é : GOSUB PRENDER I F COL__CUATRO=0 THEN GOSUB AR : X=0 : GOSUB PRENDER HIGH FILA__B ,* f i n d e l c e n s o d e l a F I L A B LOW F IL A _ C / c e n s a m o s l a F I L A C I F COL_UNO=0 THEN GOSUB AR : X=1 : GOSUB PRENDER I F COL_DO3=0 THEN GOSUB AR : X=2 : GOSUB PRENDER I F C O L _TR E3=0 THEN GOSUB AR : X=3 : GOSUB PRENDER I F COL_CUATRO=Q THEN GOSUB AR : X=C : GOSUB PRENDER HIGH F IL A _ C / f i n d e l c e n s o d e l a F I L A C LOW F IL A _D ; c e n s a m o s l a F I L A D I F COL_UN(*=0 THEN GOSUB AR : X=Q : GOSUB PRENDER I F COL_DO3=0 THEN GOSUB AR : X=0 : GOSUB PRENDER I F COL__TR£3=Q THEN GOSUB AR : X=0 : GOSUB PRENDER I F COL_CUATRO=C THEN GOSUB AR : X=Q : GOSUB PRENDER HIGH F IL A _ D / f i n d e l c e n s o d e l a F I L A D GOTO I N I C I O PRENDER:
;
;
sa lto
etiqueta
FOR R = 1 TO
NEXT ; RETURN AR:
/
X / la zo HIGH LED PAUSE 5 0 0 LOW LED PAUSE 5 0 0
a la
para
etiqueta
in icio
salto
continuar
; reto rn e etiqueta
a la
para
el
lin ea
sa lto
FOR d e s d e r = l h a s t a e l v a l o r ; prender el LED ; pausa de 1 /2 segundo ; a p a g a r e l LED ; pausa de 1 /2 segundo
la zo
FOR h a s t a
donde s e
donde se
de
X
a
X
que r seaig u a l
quedo
generará
el
a n tirebote
del
teclado
I F COL_UNO=0 THEN GOTO AR ; s i l a c o l u m n 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 o l u m n 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 CO L_T R E S=0 THEN GOTO AR / s i l a c o l u m n a T R E S 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 THEN GOTO AR ; s i ; s a l t e a AR RETURN ;
reto rn e
a la
linea
donde s e
la
c o l u m n a CUATRO s i g u e
quedo
M a n e j o d e Teclado Hex adecim al. P R P
48
siendo p resionas
$
S.C. ' PIC
M ic r o c h ip
Como se puede apreciar en el program a, el barrido que se realiza en el teclado es sum am ente rápido, ya que no generam os ninguna pausa en el m ism o. D e esta m anera logramos que el m icrocontrolador genere un dato por cada una de las teclas presionadas, en éste caso dará un valor a X de acuerdo al núm ero de dígito pulsado, el cual se cargará en el lazo FO R y generará X veces el parpadeo del led. Tam bién se puede notar que el antirebote para el teclado se form a co n las 4 colum nas del m ism o, obteniendo datos exactos.
DISPLAY s U na de las aplicaciones de los leds se encuentra en los displays, que son dispositivos electrónicos que perm iten visualizar datos en form a de núm eros, letras o palabras si se los coloca uno tras otro, perm itiendo al usuario identificar lugares, contar equipos, etc. Existen displays en el m ercado de varios tipos: displays 7*5, displays de 7 segm entos tipo ánodo o cátodo com ún, entre otros. En este caso em pezarem os estudiando los displays de 7 segmentos. Un display de 7 segm entos quiere decir que consta de 7 leds internos los cuales se encuentran conectados de tal m anera que perm iten al usuario visualizar núm eros. Cada uno de los segm entos tiene su respectivo nom bre Así:
f
e
C átodo com ún significa que el cátodo de cada uno de los leds que con fo rm a n el display se encuentra co n e cta d o entre sí, y cada uno de los se g m e n to s se prenderá con niveles de vo lta je a lto s e s d e c ir con 1L.
Estructura de cátodo común
Estructura de ánodo 4 ^ com ún
4 ^
Á n o d o com ún significa que el ánodo de cada uno de los leds que con fo rm a n el display se encuentra co n e cta d o entre sí, y cada uno de los se g m e n to s se prenderá con niveles de vo lta je bajos es d e cir con OL.
4 ^
49
$
S.C. ' PIC
M ic r o c h ip
Para sacar un display en el Proteus, digitam os en la parte de elem entos D isplay y seleccionam os el que dice display active. Realizarem os una práctica que perm ita visualizar los núm eros del 0 al 9 en un display de 7 segm entos tipo ánodo com ún. Lo prim ero que se debe hacer es generar una tabla para identificar cual es la lógica binaria para encender cada uno de los segm entos que identificará cada núm ero.
N úm ero Número 8 Decimal Binario Cero 0000 1 Uno 0001 1 Dos 0010 0 Tres 0011 -------------1 0 Cuatro 0100 0 Cinco 0101 0 Seis 0110 0 Siete 0111 1 0 Ocho 1000 Nueve 1001 0
f
e
d
c
b
a a
0 1 1 1 0 0 0 1 0 0
0 1 0 1 1 1 0 1 0 1
0 1 0
0 0 1 0 0 1 ;0 0 0 0 0 1 0 0 0 1 0
0 0 | 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 “o í 0 J ]
f
b
e
r __
d
?
C om o se puede apreciar en la tabla los segm entos se encenderán con niveles de voltaje bajos es decir con OL por que estam os usando un display tipo ánodo com ún. Por lo tanto el diagram a en el proteus sería así:
U1 16» 15» 4■
RA7/OSC1/CLWN RA6/OSC2/CLKOUT RA5/MCLR
RAO/ANO RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 RA4/T0CK1/CMP2
RB0/1NT R01/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 R 0 6 /T 10 S Q /T 1CK) RB7/T10SI
■ 17 ■ 19
■1 ■2
■3
s 10 11
12
13
TEX:
PIC16F628A
D i s pl ay 7 s e g m e n t o s . S c h e m a t i c P e s i e n
50
8
$
M ic r o c h ip
S.C. ' PIC
Las resistencias que se ocupa son de 330 ohm ios igual com o se ocupaba en los leds, ya que éstas sirven para evitar que superen el voltaje perm itido y sufran daños. A continuación presentam os la program ación correspondiente para esta práctica. TRX SB= 40000Q Q Q
IN IC IO :
;
Hacemos s a l i d a b . 6 , b. 5 , b. 4 ,
e tiq u e te
para
lo s b its b. 3, b . 2 f b . l ,
b. 0
sa lto ta b la
a n terio r
para
el
0
ta b la
a n terio r
para
el
1
ta b la
a n terio r
para
el
2
la
ta b la
a n terio r
para
el
3
la
ta-bla
a n terio r
para
el
4
la
ta b la
a n terio r
para
el
5
la
ta b la
a n terio r
para
el
6
la
ta b la
a n terio r
para
el
7
la
ta b la
a n terio r
para
el
8
la
tabla
a n terio r
para
el
9
PO R TB =$1000000 PAUSE 5 0 0 PO R TB=$ 1 1 1 1 0 0 1 PAUSE 5 0 0 PORTB=%0 1 0 0 1 0 0 PAUSE 5 0 0
sacam os e l c o d i g o d e l a pausa de 1 /2 segundo sacamos e l co d ig o de la pausa de 1 /2 segundo sacamos e l co d ig o de la
PO R T B =$0 1 1 0 0 0 0 PAUSE 5 0 0 PORTB= $ 0 0 1 1 0 0 1 PAUSE 5 0 0 PO R TB =$Q 010010 PAUSE 5 0 0 PO R TB =$0000011 PAUSE 5 0 0 P O R T B = $1 1 1 1 0 0 0 PAUSE 5 0 0 P O R T B = $0 0 0 0 0 0 0 PAUSE 5 0 0 PO R T B =$0 0 1 1 0 0 0 PAUSE 5 0 0 GOTO I N I C I O
,* s a l t a
a la
pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l co d ig o de pausa de 1 /2 segundo sacamos e l c o d ig o de pausa de 1 /2 segundo etiqueta
in icio
D ISPLA Y 7 SEGMENTOS. PBP
Lo único que se ha realizado en el program a es copiar el código para cada uno de los núm eros decim ales que se realizó anteriorm ente. Otra m anera de visualizar núm eros en un display es m ediante el circuito integrado 7447 si el display es ánodo com ún o el 7448 si el display es cátodo com ún. Lo que realizan estos integrados es convertir un código binario de entrada en el código de salida para cada uno de los núm eros que se encuentran en la tabla para poder visualizarlos. Para sacar el 7447 en el proteus digitam os en la parte de elem entos 74LS47 y procedem os a arm ar el siguiente circuito.
51
$
S.C. ' PIC
M ic r o c h ip
’ • U2 IBjLI RA7/OSC1 ^CLKiN
RAO/AMO RA1/AN1
15JL RA&OSC2*3_KOUT 4■
RA2/AN2/V?® RA3AN30P1 i•2 L RA4 /TOCK1CMP2
RA5.WCLR
RBC-1N7
• U1
1■ 2" 5» ii _sí Hv
■7 ■S ■S ■10 ÜL .
R B I jRX jOT
R92JTXATK R32/CCP1 R54 RS5
SIL
R 9 5/T1C 5 0 /T 1CKI
•13
RB7/T10S1
A 5
QA QB
D
QC QD
BJRBO
Gf
R9
QF 00
c LT
74LS47 «t é x í -<
PC 16FS 23-
Display 74LS47. Schem atic Design
C om o se puede apreciar lo único que se ha increm entado es el integrado a la salida del PIC, en la program ación se debe m anejar solam ente los 4 b its del puerto B, es decir del B.O hasta el B.3. Trisb=% 0000
H acemos
;
; B.3, R
VARBYTE
In ic io :
/
R
;
R=0
B.2,
de
TO 9
PORTB=R ;
G OTO
In ic io
/
;
50G
a
la
a
lo s
b its
B.O 256 l l a m a d a In i c i o
la zo
co n tin u a r s a lte
de
s a lto /
PAU SE HEXT
B . 1,
d e ta m a ñ o
e tiq u e ta FO R
sa lid a
FOR
e l ;
desde
p u erto pausa
e l
la zo
etiq u e ta
B
de FOR
R=0 se
1 /2
h a sta
carga
9
con
la
va ria b le
R
segundo
h a sta
que
R=9
In ic io .
D i s p l a y 7 4 L S4 7. P B P
Lo que se realizó en el program a es un contador binario desde 0 hasta 9, sim ilar al realizado en los proyectos con pulsadores y leds.
52
$
S.C. ' PIC
M ic r o c h ip
PROYECTOS CON TECLADOS Y DISPLAYS El prim er proyecto consistirá en m anejar un teclado hexadecim al y visualizar los datos en un display, es decir, de acuerdo al dígito presionado se visualizará el núm ero en un display de 7 segm entos.
P ro y e c t o 1 T ecl ad o Display. S c h e m a t i c De s i st í
En el diagram a se puede apreciar que se está m anejando todos los bits del puerto B para el teclado y los 4 prim eros bits del puerto A para el display, p o r lo que la program ación sería la siguiente: CMCON=7 T ris A = 4 0 0 0 0 x VAR BYTE R VAR BYTE
/ Hacemos s a l i d a a l o s ; A . 3 , A . 2 , A. L , A.O / k de tamaño de256 / R de tam año de256
x= 0 ; i n i c i a l i z a m o s 50SUB V ISU A L IZ A R ; ?IL A _ A VAR PORTB.Ü ?IL A _ B VAR P O R T B .l ?IL A _ C VAR P O R T B .2 ?IL A _ D VAR P O R T B .3
b its
l a v a r i a b l e k con ce ro s a l t e a v i s u a l i z a r e l número c e ro ; ca m b io de nom bre a l p u e r t o B.O p o r / cam bio de nombre a l p u e r t o B .l por ; cam bio de nombre a l p u e r t o B .2 por / cam bio de nombre a l p u e r t o B .3 por
COL_UNO VAR P O R T B .4 ; COL_DOS VAR P O R T B . 5 / COL__TRE3 VAR PO RTB. 6 ; COL CUATRO VAR P O R T B .7
FILA_A FILA_B FILA_C FILA^D
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_UNO 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 COLADOS 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 C O L_ T R ES / 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
53
S.C. ' PIC IN IC IO :
M ic r o c h ip
; E tiq u eta
para
salto
LOW F IL A _ A / c e n s a m o s l a F I L A A I F COL_UNO=0 THEN x = 7 : GOSUB V IS U A L IZ A R ; S i l a ; colum na uno e s p r e s io n a d a ca rq u e a x con 7 s a l t e ; e l dato I F CO L_D O 3=0 THEN x=0 : GOSUB V ISU A L IZ A R I F C O L _T R E S=0 THEN x = 9 : GOSUB V ISU A L IZ A R I F COL_CUATRO=0 THEN x=D : GOSUB V IS U A L IZ A R
a visu a liza r
H IG H F IL A _ A / f i n d e l c e n s o d e l a F I L A A LOW F IL A _ B ; c e n s a m o s l a F I L A B I F COL_UNO=0 THEN x = 4 : GOSUB V ISU A L IZ A R I F CO L_D O 9=0 THEN x = 5 : GOSUB V ISU A L IZ A R I F C O L_TR E3 = 0 THEN x = 6 : GOSUB V ISU A L IZ A R I F COL_CUATRO=0 THEN x = 0 : GOSUB V ISU A L IZ A R H IG H F IL A _ B ; f i n d e l c e n s o d e l a F I L A B LOW F IL A _ C ; c e n s a m o s l a F I L A C I F COL_UNO=0 THEN x = l : GOSUB V ISU A L IZ A R I F CO L_D O 3=0 THEN x = 2 : GOSUB V ISU A L IZ A R I F CO L_TRE3=G THEN x = 3 : GOSUB V I 3 UALIZAR I F COL_CUATRO=0 THEN x=G : GOSUB V ISU A L IZ A R H IG H F IL A _ C / f i n d e l c e n s o d e l a F I L A C LOW F IL A _ D / c e n s a m o s l a F I L A D I F COL_UNO=0 THEN x = 0 : GOSUB V ISU A L IZ A R I F CO L_D O 3=0 THEN x=G : GOSUB V ISU A L IZ A R I F C O L _T R E 3= a THEN x=G : GOSUB V IS U A L IZ A R I F COL_CUATRO=D THEN x=C : GOSUB V ISU A L IZ A R HIGH F IL A _ D / f i n d e l c e n s o d e l a F I L A D GOTO I N I C I O
;
sa lto
a
V IS U A L IZ A R :
/
etiq u eta PORTA=x
R ETU RN
;
la
etiq u eta
de /
sa lto el
in ic io
lla n a d a
p u erto
A
v isu a liza r
se
carga
con
IF
C O L_U N O =0
TH EN G OTO
V IS U A L I Z A R
IF
C O L_D O 3=0
TH EN G OTO
V IS U A L I Z A R
IF
C O L_TR E3= 0
IF
C O L_CU A TRO =0
reto rn d e
a
donde
se
T H EN G OTO
V IS U A L I Z A R
TH EN G OTO
V IS U A L I Z A R
quedo
P r o v e c t o 1 t e c l ad o s d i s p f a y . P B P
54
la
va ria b le
x
$
S.C. ' PIC
M ic r o c h ip
El segundo proyecto consiste en realizar un dado digital, al presionar un pulsador el display em pezará a recorrer los núm eros del dado que varían de 1 a 6 y cuando el usuario suelte el pulsador aparecerá el dígito en el display. El diagram a en el proteus para este proyecto es R1 4k7
J2 ■ JBí L 15L
R A 7 /O S C 1 /C L K IN
■17
R A O /AN O
R A f l/ O S C 2 /C L K O UT
R A 1/ A N 1 R A 2 /A N 2 A /R E F
R A 5 /M C L R
R A 3 /A N 3 /C M P 1
l l i ± !_ ±L. ■3
R A 4 /T 0 C K I/C M P 2
J1 y■
RBQ/INT ■0 ■7 R B 1 /R X /D T ■8 R B 2 /T X /C K ■o R B 3 /C C P 1 RB4
i« 2a eB
■LIO
±11 RB0/T1OSO/T1CW ± 1 2 ■13 R B 7 /T 1 0 S I RB5
- 1
A p
QD
QA
C
QC
D
GD
B I/R B G
GE
RBI LT
QF GG
74LS47
P IC 1 O F 0 2 B A
; TEXT> ;
D ado D igital. S c h e m a tic D esign
La program ación para el D ado es: CMCON=7
;
d ig ita liza m o s
PULSADOR VAR P O R T A .0 T R IS B = $D 0Q 0 R
GOSUB V IS U A L IZ A R ; ;
etiqueta
b it
A . O p o r PULSADOR
al pu erto B
a R con 1 S a lta para
a la
etiqueta
a visu a liza r
el
contenido
el pulsador
a encendido
GOTO I N I C I O
;
caso
de R
salto
PULSADOR=0 THEH GOTO ENCENDIDO ; s i
IF ;
A
de nombre a l
tamaño de 256
; in icia liza m o s
IN IC IO :
el puerto cam bio
; Hace s a l i d a s ; R de
VAR BYTE
R=1
;
con tra rio
sa lte
a la
55
etiqueta
in icio
es p re sio n a d o
salte
$
S.C. ' PIC ENCENDIDO:
M ic r o c h ip
etiqueta
/
R=R+1 /
para
cargue la
I F R >6 THEN R =1
;
sa lto v a r i a b l e R c o n R+l si
GOSUB V ISU A L IZ A R /
R pasa
sa lte
de 6 entonces
a la
etiqueta
I F PUL3ADOR=0 THEN GOTO ENCENDIDO ; s i p o rtb = R
;
a encendido
;
saque p o r
GOTO I N I C I O
/ sa lte
V ISU A LIZA R :
/
RETURN ; r e t o r n e
1 y continué
e l p u lsa d o r espresionado
salze
contrario
e l p u e r to B en b in a r io
lo
que c o n tie n e R
a in icio
e tiq u e ta
PORTB=R ;
caso
cargue a R con
VISUALIZAR
para
saque por a la
lín ea
sa lto el puerto donde se
B
en b in a r io
lo
que c o n tie n e R
quedo.
D ado digital. PBP
Y com o tercer y últim o proyecto se realizará un contador digital desde 00 hasta utilizando un solo decodificador a 7 segmentos. El diagram a en el proteus es:
R A 7 /0 S C 1 /C L M N R /0 /Q 5 C 2 /C L X 0 J T
RfióXHñ
IC I8 F 0 2 8 A
Contador 00 a 99 con PIC. Schem atic Desistí
Como se puede apreciar en el diagram a, los pines com unes de los displays se encuentran conectados a 2 bits del m icrocontrolador, el cual activará prim eram ente un display > luego activará el otro display. Si la pausa entre la activación del prim er display con el segundo es m uy pequeña (diez m ilisegundos), el ojo hum ano visualizará com o si estuvieran prendidos los 2 displays i. m ism o tiempo.
56
$
S.C. ' P IC
M ic r o c h ip
La program ación para este proyecto es: ;
CM CO N =7
D I gj.tdJ.sLzd
TRISB=$0000 T R I3 A = $ 0 0
Hace
/
Hace
;
el
p u e rto
sa lid a
sa lid a
BYTE
/
V a ria b le
X
Y VAR
BYTE
;
V a ria b le
R VAR
BYTE
;
V a ria b le
X VAR
IN IC IO : FOR
X=0
TO
9
Lazo
/
FO R Y =0
TO
FOR
9
R=1
la
;
núm ero
de 256
Y
de
ta m a ñ o
de 256
R
de
ta m a ñ o
de 256
PAUSE
la s
50
Lazo
para
HEXT GOTO
;
INICIO
;
10
;
10
S a lte
con a
la
u n id a d es
p rim er la s
por
el
en tre
A ctiva
la s
por
Pausa
;
generar núm ero
pausas con
el
en tre segundo
decenas p u erto e l
B
lo
p rim er
que
co n tien e
d lsp la y
y
el
X
el
en tre
u n id a d es p u erto el
B
lo
p rim er
que
co n tien e
d lsp la y
y
d isp la y
co n tin u é
co n tin u é
del
P d í.is -3 /
;
B
A
d isp la y
/
seg u n do
FOR
A ctiva
;
E n vía
/
E nvía
co n tin u é ;
;
PO PxTA =$10
NEXT NEXT
p u erto
p u e rto
dec ena s
FOR p a r a
PORTB=Y ;
la s
Lazo
segundo
PAUSE
del
del
sa lto
v is u a liz a d o n
PORTB=X
b its
b its
ta m añ o
PO R TA =S01
;
4 p rim ero s p rim ero s
FOR p a r a
; TO
;
2
de
E tíq u e t a para
/
lo s
lo s
A
con e l
con el la zo
el
la zo
la zo fo r
etiq u e ta
fo r
fo r
h a sta
IN IC IO
Contador 00 a 99. PER
57
h a sta
h a sta que
que X=9
que Y=2
R = 50
el
Y
$
S.C. ' PIC
M ic r o c h ip
RELES DE 12V Los relés perm iten al usuario conectar varios equipos de potencia, com o son m otores de corriente alterna, bom bas de agua, focos de 110V, etc. Es d ecir podem os controlar circuitos de alta potencia, iniciando la autom atización de diferentes procesos a nivel Industrial. El relé es un dispositivo electrónico que internam ente posee una bobina la cual al energizarla adecuadam ente producirá un cam po m agnético, haciendo que los contactos internos cam bien de estado. Para cargar un relé a la hoja del proteus debem os introducir la palabra R ELA Y en la parte de elem entos, teniendo en cuenta que se debe seleccionar el relé que dice active para poder realizar la sim ulación. La m anera de conectar un relé a un m icrocontrolador es la siguiente:
R A 7 /O S C 1 /C L M M
R A 0 /A M 3
R A f i/ O S C 2 /C LMDLTT
R A 1 /A N *. R A 2 /A N 2 A /R E F
R A 5 /M C L R
R A 3 /A N 3 /C M P 1 R A *V T 0 C K 1 /C M P 2 R 9 0 /1 N T R B I / R X 'D T R 3 2 /T ;« X K
S
R B 3 /C C P 1
il*
RB4 • *
.5 * * ' '
.
RB5 R B 6 /T 1 0 S Q /T IC M R B 7 /T 1 C 3 I
PICHOSA
C onexión de un Relé. Schem atic Pesian
Com o se puede apreciar el relé que estam os ocupando es un relé de 12V, por lo que necesariam ente necesita una fuente de 12V para poder funcionar. A m ás de ello se está colocando un led, en el m ism o puerto de salida para el relé, que perm itirá visualizar si el Relé se encuentra activado o no, ya que en la realidad no vam os a visualizar com o en la sim ulación que los contactos cam bian de estado. Sino se escuchará un sonido alertando el cam bio de estado de los mismos.
59
$
S.C. ' PIC
M ic r o c h ip
C ontinuando con la conexión del relé, se puede apreciar que se está colocando un diodo 1N4007, el cual perm ite proteger al m icrocontrolador. A dem ás de ello se ocupa un transistor 2N 3904 el cual funciona en corte y saturación, perm itiendo energizar o no energizar la bobina del relé de 12V. Como se ocupará una fuente de 12V, es necesario ten er en cuenta que el m icrocontrolador PIC se polariza con niveles de voltaje que oscilan entre 3,5V hasta 5,5V, por esta razón realizarem os la conexión para ocupar una sola fuente de 12V, y con una salida de 5V para colocarla en el m icrocontrolador que se esté ocupando. 12V
F uente de 121' v 51'. S . k e m a tú D esisn
En el circuito de la figura se está ocupando un regulador de voltaje (7805), el cual perm ite bajar el nivel de voltaje de entrada a 5Y. si se necesitara bajar el nivel de voltaje a 9V se debería ocupar un regulador de voltaje (7809). y si en un caso se necesitara un nivel de voltaje de -12V se debería ocupar un (7912). Es decir la serie 78X X perm ite regular el voltaje de entrada a un voltaje positivo de acuerdo al nivel requerido por el usuario, y la serie 79X X perm ite regular el voltaje de entrada a un nivel de voltaje negativo de acuerdo a las necesidades del usuario. A continuación realizarem os un program a que perm ita accionar un relé p or m edio de un pulsador y poder visualizar el cam bio de contactos que ofrece este dispositivo electrónico.
60
$
S.C. ' PIC
M ic r o c h ip
En la figura podem os apreciar que hem os añadido un pulsador conectado a 1L en el BIT A.O del puerto A. CMCON=7
;
C A M B IA M O S
EL
PUERTO
/
C A M B IO
PULSADOR VAR P O R T A . 0 R E L E VAR P O R T B .O IN IC IO :
/
E T IQ U E T A
IF ;
;
C A M B IO
PARA
PULSADOR=0 P R E S IO N A D O ,
LOW R E L E GOTO I N I C I O
/
/
SALTE
S I
A
DE
A
DE
COMO
D IG IT A L
NOMBRE
NOMBRE
AL
AL
B IT
A .O
POR
B IT
B .O
POR
RELE
PULSADOR
SALTO
THEN H IG H PRENDA DEJA
DE
EL SER
RELE RELE,
GOTO I N I C I O
: Y
PULSADOR
SALTE
A
ENTONCES
/
S IEL
PULSADOR
IN IC IO APAGUE E L
RELE
IN IC IO
Manejo Relé. PBP
Como se puede notar en el program a lo único que se ha realizado es encender o apagar un BIT del puerto B, el que se lo ha definido con el nom bre de relé. El pulsador de entrada, se lo puede cam biar por finales de carrera, sensores m agnéticos, sensores de m ovim iento, etc. C on la finalidad de obtener un proceso automático.
61
ES
S.C.
$
PIC
M ic r o c h ip
DISEÑO Y CONSTRUCCION DE UN PLC DE 8 ENTRADAS Y 8 SALIDAS CONTROLADO POR UN M ICROCONTROLADOR PIC 16F628A U n PLC (C ontrolador Lógico Program adle) es un dispositivo electrónico que perm ite realizar varias funciones a nivel industrial. A ctúa ¡m arte existe una gran variedad de em presas que se encuentran fabricando este tipo de instrum entos, que se basa esencialm ente en un m icrocontrolador y diferentes relés internos que perm iten el cambio de contactos de acuerdo a una o varias señales de entrada A nivel industrial es m uy utilizado para autom atizar diferentes procesos, teniendo ventajas com o el suprim ir espacio al no tener que trabajar con arm arios llenos de RELAYS de alta potencia que ocupaban cuartos enteros p a ra ese propósito. Como se ha dicho anteriorm ente el PLC consta de un m icrocontrolador interno, el cual debe ser necesariam ente program ado para su funcionam iento, p or esta razón los PLC poseen diferentes lenguajes de program ación, facilitando ai usuario obtener el proceso que él requiera. La única desventaja que éste posee es su alio costo en el m ercado. En nuestro caso realizarem os un PLC controlado con un m icrocontrolador PIC 16F628A, el cual tendrá internam ente 8 relés para realizar las salidas y ten d rá 8 entradas conectadas a 1L para realizar su program ación. A continuación presentam os la lista de m ateriales necesarios p ara realizar un PLC de 8 entradas y 8 salidas.
LIS TA DE MATERIALES
-
-
16 Resistencias de 4 ,7K A % W. 16 Resistencias de 330 ohmios 8 leds de alto brillo color rojo para las entracas 8 leds de alto brillo color azul para las saSC3s 8 horneras de 3 entradas para las salidas dei = LC 4 horneras de 3 entradas para las entradas ce C_C 8 diodos 1N4007 8 transistores 2N3904 1 PIC 16F628A Placa de circuito im preso de S.C. ' PIC PLC 23-€2
62
$
S.C. ' PIC
M ic r o c h ip D IA G R A M A DE C O N E X IÓ N
Como se puede apreciar en el diagram a, se ha utilizado leds de visualización tanto a la entrada com o a la salida, para indicar que la entrada está activa y que el relé se ha accionado. A m ás de ello se está ocupando pulsadores com o referencia de entrada, los cuales pueden cam biarse por sensores com o ya se ha explicado anteriorm ente. N oten tam bién que se ha suprim ido los diodos 1N4007 que se deben conectar en la entrada de polarización de cada relé, esto se debe a que en sim ulación no existe el problem a que se pueda quem ar el m icrocontrolador, pero en la realidad es totalm ente necesario utilizar este diodo de protección. A hora realizarem os una aplicación con este dispositivo, que consistirá en lo siguiente: Por m edio de una entrada del PLC se accionen todas las salidas, pase un tiem po de 10 segundos y em piece a accionar los relés uno p or uno hacia abajo.
63
$
S.C. ' PIC
M ic r o c h ip
INTRC_OSC_NOCLKOUT / OCUPAMOS E L O S C I L A D O R I N T E R N O / OCUPAMOS E L MAST ER C L E A R I N V E R N O BOD__OFF ; APAGAMOS E L BODEN DE CO N SU M O
(3 d e v i c e
@ DEVICE MCLR_OFF @ d ev ice
; D I G I T A L I Z A M O S E L PUERTO A PORTA. 0 ; Ca2v.blo d e n o m b r e a l B I T A . O p e r I N I TR ISB =0 ; H a c 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 V A R PORTB / c a m b i o d e n o m b r e a l p u e r t o B p o r s a l i d a s SALID AS=0 / I n l c l a l l z a s a l i d a s c o n c e r o R V A R BYTE / R d e t a m a ñ o d e 2 5 6
CMCON=7 IN I
VAR
IN IC IO :
/
etiqueta
IF
I N 1 = 1 THEN GOTO ENCENDIDO ; s i s a l t e a l a e t i q u e t a E N C E N D ID O
;
GOTO I N I C I O ENCENDIDO:
;
;
caso
para
salto
centrarlo
etiqueta
para
s a lte
a
la
la
e n tra d a
e trq u e ta
es presionada
entonces
IN IC IO
salto
SA L ID A S=311111111 ; T o d o e l p u e r t o B c a r g u e c o n 1L PAUSE 1 G 0 0 0 ; p a u s a d e 1 0 s e g u n d o s SA LID A S=S0000G 001 ; I n l c l a l l z o e l p u e r t o B c o n C 0 0 0 0 0 0 1 PAUSE 5 0 0 ; p a u s a d e 1 / 2 s e g u n d o LAZO: ; E t i q u e t a p a r a s a l t o FOPw ? = 1 TO 7 ; l a z o r e p e t i t i v o d e s d e R=1 h a s t a 7 SA L ID A S = 3A L ID A S «1 / D E S P LA Z A R L O S B I T S PAUSE 5 0 0 ; p a u s a d e 1 / 2 s e g u n d o
DEL PUERTO A 1 A 1
NEXT ; c o n t i n ú e c o n e l l a z o r e p e t i t i v o h a s t a q u e R=7 SALIDAS=%C0G0C0C1 / u n i e r a i s , z o e l p u e r t o B c o n 0 0 0 0 0 0 0 1 PAUSE 5 0 0 ; p a u s a d e 1 / 2 s e g u n d o GOTO LAZO ;
s a lte
a
la
e tiq u e z a
LAZO
Aplicación PLC-O.'.PBP
C om o se puede apreciar en la program ación se a ocupado lo aprendido anteriorm ente, se ha realizando secuencias a las salidas, de acuerdo a lo que se pide en la aplicación. Noten que la program ación va directam ente al m icrocontrolador, ya que éste es la cabeza del PLC.
64
a
S .C . " P IC
M ic r o c h ip
PROYECTOS CON TECLADOS Y RELES DE 12V El prim er proyecto consiste en realizar una cerradura electrónica con una clave que se guardará en la m em oria FLA SH que posee el m icrocontrolador PIC 16F628A. La M em oria flash es una form a evolucionada de la m em oria EE PR O M que perm ite que m últiples posiciones de m em oria sean escritas o borradas en una m ism a operación de program ación m ediante im pulsos eléctricos, frente a las anteriores que sólo perm ite escribir o borrar una única celda cada vez. Por ello, flash perm ite funcionar a velocidades m uy superiores cuando los sistem as em plean lectura y escritura en diferentes puntos de esta m em oria al m ism o tiem po. Las m em orias flash son de tipo 1 1 0 volátil, esto es, la inform ación que alm acena no se pierde en cuanto se desconecta de la corriente, una característica m uy valorada para la m ultitud de usos en los que se em plea este tipo de m emoria. A continuación presentam os el diagram a esquem ático para este proyecto.
U1
jfc
RA7/CSCI/CU0N R»0/0SC2/CU
fióJB E R
RfiUfiK)
RA1/AN1 R A 2 /A S 2A *B R /O W G /C M «1 R M /TÜ C K l/C M 3: RBO/IMT R BU R JW JT
R B 2 /W C K RB3/CCP1 RB4 R05 ?88/T10S Q /riC *3 R87/T10SI
.‘TF'lL
Cerradura Digital M E M O R IA F L A SH . Scheniatic Pesian
65
S.C. ' PIC
M ic r o c h ip
La program ación para este proyecto es: CMCON=7 / X de / R de
X VAR BYTE R VAR BYTE FILA__A FILA__B FILA__C FILA__D
VAR VAR VAR VAR
tam año d e 256 tam año d e 256 ; cam bio ; cam bio ; cam bio ; cambio
PORTB.O P O R T B .1 P O R T B .2 P O R T B .3
de de de de
3. 0 p e r F I L A A 3 . 1 p o r F IL A_ B 3 . 2 p o r FILA_ c
nombre al t u e r t e nombre al p u e r t o nombre a i p u e r t o nombre a i p u e r t o
FILA_ D
3. 3 por
COL_UNO VAR P O R T B .4 / c a m b i o d e n o m b r e a l p u e r t o 3 . 0 p o r COL_UNO COL_D03 VAR PORTB. 5 ; c a m b i o d e n o m b r e a l p u e r t o 3 . 0 p o r COL _ DOS COL_TRE3 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 3 . 0 p o r C O L _ TR E S COL__C UAT RO 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. 0 ; C A X E I O DE NOMBRE AL E X T A . O POR RELE LED VAR PORTA. 1 / CAMBIO DE NOMBRE AL B I T A . 1 POR LED IN IC IO :
/ E tiq u eta
para
sa lto
GOSUB TECLADO ;
S a lte
a la
etiq u eta
TECLADO y
; con un v a lo r en l a v a r ia b le X I F X<5 OR X>5 THEN GOTO PASG2 / c o m p a r e ;
Igual
a
5 entonces
co ntinu é,
caso
esa
con tra rio
va ria b le sa lte
es
a P R EG2
GOSUB TECLADO I F X<2 OR X>2 THEH GOTO P R 2G 3 ; c o m p a r e s i e s a ; Ig u a l a 2 entonces co n tin u é, caso co n tra rio
v a r ia b le es s a l t e a P R EG3
GOSUB TECLADO I F X < 6 OR X > 6 THEH GOTO PREG4 / ; ig u a l a 6 entonces c o n tin u a ,
v a r i a b l e es s a l t e a P R EG4
compare s i esa caso co n tra rio
GOSUB TECLADO I F X < 9 OR X > 9 THEH GOTO ALARMA ; ;
ig u a l
a
H IG H RELE
9 entonces
PAUSE 5 0 0 0 LOW RELE ; SOTO I N I C I O
;
; e ti GOSUB PREG3: ; e t i GOSUB PREG4: / e t i GOSUB PREG2:
;
Si
/ ;
ALARMA:
s í
reto rn e
d íg ito
co n tin u é, la
C L AV E
compare caso
a la
etiqueta
q u e ta para TECLADO q u e ta para TECLADO q u e ta para TECLADO
e tiq u e ta
para
IM ICIO
s a lto s a lto s a lto
s a lto
66
esa
con tra rio
5269 e n to n c e s
(e n c i e n d a e l RELE) ; pausa de 5 segundos c i e r r e l a p u e r ta (apague
sa lte
si
el
RELE)
va ria b le sa lte
abra
la
es
a ALARMA p u erta
S.C. " PIC ALARMA:
M ic r o c h ip
e tlq u e t a para
;
F O R R = 1 TO
;
lü
sa lto
la zo
FOR d e s d e
R=1 h a s t a
10
H IG H LED / e n c i e n d a e l L ED PA U S E 2 0 0 ; p a u s a d e 2 0 0 m s LOW LED ; a p a g u e e l L ED PA U S E 1 2 0 ; p a u s a d e 1 2 0 m s NEXT GOTO I N I C I O
TECLA DO :
co n tin u é
;
/sa lte
; E tiq u eta
el
a la
para
la zo
F OR h a s t a
etiq u eta
que
R sea
Igual
a
10
INICIO
sa lto
LOW F I L A _ A ; c e n s a m o s l a F I L A A I F COL__UNO=D THEH X=7 : GOSUB AR : R E T U R N / S i l a ; colum na uno es p r e s io n a d a c a rq u e a x con 7 sa lte ; r e b o t e y R E TO RN E I F C O L _ D O 9 = 0 THEN X=8 : GOSUB AR : RETURN I F COL T RE 3 = 0 THEN X = 9 : GOSUB AR : RETURN I F COL_CUATRO=Q THEN X=1D : GOSUB AR : RETURN H IG H F I L A _ A ; f i n d e l c e n s o d e l a F I L A A LOW F I L A _ A ; c e n s a m o s IF COL_UNO=0 THEN
l a FILA A X=7 : GOSUB
AR : R E T U R N ; S i
COL_TRE3=0 THEN X = 9 CO L_CUATRO=0 THEN X = 10
H IG H F I L A _ A
;
fin
del
censo
IF IF IF
de la
FILA A : RETURN
COL_DO3=0 THEN GOSUB AR : X=5 : RETURN COL__TRE3 = 0 THEN GOSUB AR : X = 6 : RETURN COL__CUATRO= G THEN GOSUB AR : X = l l : RETURN
H IG H F I L A _ B ; f i n d e l c e n s o d e l a F I L A B LOW F I L A _ C ; c e n s a m o s l a F I L A C IF COL_UNO=0 THEN GOSUB AR : X=1:
H IG H
IF IF
COL_DO3=0 THEN GOSUBAR : C O L _ T R E 3 = 0 THEN GOSUB AR : X=3
IF
COL__CUATRO= G THEN GOSUB AR : X = 1 2
FILA__C
; fin
del
censo
de la
LOW F I L A _ D ; c e n s á m o s l a F I L A D I F COL_UNO=Ü THEN GOSUB AR : IF IF IF HIGH
GOTO TECLADO /
FILA X=13
RETURN
X=2 : RETURN : RETURN : RETURN
C : RETURN
C O L _ D O 3 ~ 0 THEH GOSUB AR : X - 0 : RETURN COL__TRE3—0 THEN GOSUB AR : X = 1 4 : RETURN COL__CUATRCf= 0 THEN GOSUB AR : X = 1 5 : RETURN
F IL A _D sa lto
;
fin a la
del
censo
etiqueta
de la In icio
67
al
: GOSUBAR : RETURN : GOSUB AR : RETURN
LOW F I L A _ B ; c e n s a m o s l a F I L A B IF COL__UNO=0 THEN GOSUB AR X=4
FILA D
a n tl
la
;colum na uno es p r e s io n a d a c a r q u e a x con 7 s a l t e ; r e b o t e y RETORNE IF C O L _D O S = 0 THEN X=8 : GOSUB AR : RETURN IF IF
al
a n tl
$
S.C. ' P IC AR:
/
etiqueta
M ic r o c h ip
para
salto
donde se
generaré
el
anzirercze
del
teclado
I F COL_UNO= 0 THEN GOTO AR / s i l a c c l u n n a jTy c 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_DOS= Q THEN GOTO AR / s i l a c o l 5 sig u e siendo presionada ; s a l t e a AR I F COL_TRES=0 THEN GOTO AR ; s i l a c o í u h k T ? S 5 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 THEN GOTO AR ; s l ; s a l t e a AR RETURN ; r e t o r n e
a la
linea
la
c o l i m n * CVZTPC s i g u e
sien d o presionada
donde s e quedo
Cerradura Digital M e m o m F L i S H PBP
DETALLE DEL FUNCIONAMIENTO Este sistem a tiene asignada la clave [5. 2. 6 ? 9}. .a cuai ai ser digitada por el usuario, accionará al relé de 12V , el que perm anecerá ertergrzado durante 5 segundos, si en caso de que la clave ingresada sea incorrecta el sistem a realizará un destello de un LED 10 veces alertando al usuario que la clave no es ía correcta.
68
$
S.C. r PIC
M icn o cH iP
El segundo proyecto consiste en realizar una cerradura electrónica con una clave que se guardará en la m em oria R A M que posee el m icrocontrolador PIC 16F628A y a su vez esta clave la cam biará el usuario de acuerdo a sus necesidades. U na m em oria R A M (R andom A ccess M em ory), m em oria de acceso aleatorio, es donde el microcontrolador guarda los datos que está utilizando en el m om ento presente; la cual perm ite grabarlos en variables definidas por el usuario, pero necesita que la energía sum inistrada al dispositivo no se la retire, para evitar que éstos se pierdan. Para sim ular esta p ráctica se puede utilizar el m ism o diagram a esquem ático ( C e rr a d u ra Digital M E M O R IA FLA SH . Schematic Design) visto anteriorm ente. La program ación para este proyecto es: CMCON=7 X VAR BYTE
; X
de
tam año
de
256
R VAR BYTE
;
R
de
ta m a ñ o
de
256
F I L A _ A VAR P O R T B . ü
/
c am blo
de
nom bre
al
p u erto
B. 0 p o r
FILA
F I L A .._B VAR P O R T B . 1 F I L A _ _C VAR P O R T B . 2 F I L A D VAR P O R T B . 3
;
cam blo
de
nom bre
al
p u erto
B. 1 p o r
FILA_ B
A
;
cam blo
de
nom bre
al
p u erto
B .2
por
FILA
C
;
c am blo
de
nom bre
al
puerto
B. 3 p o r
FILA
D
COL_UNO VAR P O R T B . 4
;
cam bio
de
nom bre
al
p u erto
B .O
por
CO L _ UN O
CO L _D O S VAR P O R T B . 5
,* c a m b i o
de
nom bre
al
p u erto
B .O
por
C OL A DO S
C O L _ T R E S VAR P O R T B . 6
;
COL CUATRO VAR P O R T B . 7 R E L E VAR P O R T A . 0
/
cam bio ;
de
cam bio
nom bre
al
de nom bre
p u erto al
C A M B I O DE NOMBRE A L B I T
;
C A M B I O DE NOMBRE A L B I T
C L A V E l VAR BYTE
;
VARIABLE
DE TAMAÑO DE 2 5 6
CLAVE2 VAR BYTE
;
VARIABLE
DE TAMAÑO DE 2 5 6
CLAVE3 VAR BYTE
; VARIABLE
DE TAMAÑO DE 2 5 6
CLAVE4 VAR BYTE
;
DE TAMAÑO DE 2 5 6
CLA V E1=G
; CARGUE
CLAVE2=0
; CARGUE
CLAVE3=0
;
CLAVE4=0
; CARGUE
CARGUE
p u erto
por
B .O
A . 1 POR LED
C O N CERO E N L A M EM O R I A R AM DE T AMA ÑO 2 5 6 C O N CE RO E N L A M EM O R I A R AM DE T AMA ÑO 2 5 6 C O N CERO E N L A M EM O R I A R AM DE T AMA ÑO 2 5 6 C O N CERO E N L A M E M O R I A R AM DE TAMAÑO 2 5 6
69
COLETEES
por
A . 0 POR R E L E
LED VAR P O R T A . 1
VARIABLE
B .O
COL CUA T RO
$
S.C. ' PIC
M ic r o c h ip
; E tiqueta
IN IC IO :
para
salto
GOSUB TECLADO ; ;
con un v a l o r
IF
Sa lte
a la
en la
etiqueta
TECLADO y
XCLAVE1 THEN GOTO PREG2
; ig u a l
retorne
va riab le X
a 5 entonces
con tin ué,
;
compare s i
caso c o n tr a r io
sa lte
esa
v a r ia b le es
a PREG2
GOSUB TECLADO IF
; campare s i
XCLAVE2 THEN GOTO PRSG3
; ig u a l
a 2
entonces
con tin u é,
caso
contrario
sa lte
esa
variab le
es
a PREG3
GOSUB TECLADO IF
XCCLAVE3 OR X>CLAVE3 THEN GOTO PRSG4
; ig u a l
a 6 entonces
con tin u é,
caso
/
contare
contrario
si
sa lte
esa
v a r ia b le es
a PREG4
GOSUB TECLADO IF ; IF
el
+ entonces
a 9 entonces
HIGH RELE /
el
ultim o
a cam biar la
carácter
CLAVE 5 2 5 9 e n t o n c e s
el
RELE)
LOW RELE ;
cierre
etiq u eta
compare s i
contrario
la
; pausa
; sa lte
caso
dig ito
PAUSE 5 0 0 0
GOTO I N I C I O
co ntinué,
a la
in g resa d o p o r
tecladc
clave
(encienda
Si
;
/
vaya
XCCLAVE4 OR X>CLAVE4 THEN GOTO ALARMA /
; ig u a l
PREG2:
;Si
X =15 THEN GOTO C_CLAVE es
sa lte
abra l a
esa
v a ria b le
es
a ALARMA puerta
de 5 segundos la
puerta
(apague e l
R E L E)
e t i q u e t a INICIO
para
sa lto
GOSUB TECLADO ;
PREG3:
etiq u eta
para
sa lte
GOSUB TECLADO ;
PREG4:
etiq u eta
para
sa lto
GOSUB TECLADO ALARMA:
,■ e t i q u e t a
para
; la zo
FO R R = 1 TO 1 0 H IG H LED PAUSE
;
P AUSE 1 2 0 NEXT GOTO I N I C I O
;
co n tin u é ;sa lte
FOR d e s d e
encienda
;
200
LOW LED
sa lto
; pausa apague ; el
a la
pausa la zo
el
R=1 h a s t a
10
LED
d e 200ms el de
LED 120ms
FOR h a s t a
etiq u eta
que
R sea
igual
a 10
INICIO
►
70
$
S.C. ' P IC TECLADO:
M ic r o c h ip
; E tiq u eta LOW F I L A _ A IF
para ;
censados
COL_UNO=0
; colum na
uno
;rebote y
GOSUB
AR : RETURN AR : RETURN
IF
COL_CUATRO=0 THEN X =10 fin
del
censo
censam os la
/
FILA B
THEN GOSUB AR : X=4
: RETURN
IF
CO L_D O S=0
THEN GOSUB AR : X=5
: RETURN
IF
C O L _ T R E 3 = 0 THEN GOSUB AR :
IF
COL_CUATRO=0 THEN GOSUB AR : fin
del
censo
censam os la
de la
: RETURN
X = ll
: RETURN
FILA B
FILA C
COL__UNO=Q
THEN GOSUB AR : X=1
: RETURN
IF
CO L_D O S=0
THEN GOSUB AR : X=2
: RETURN
IF
C O L _ T R E 3 = 0 THEN GOSUB AR :
IF
COL_CUATRO=0 THEN GOSUB AR : / ;
fin
del
censados
censo la
X=3
de la
FILA C X=13
IF
C O L _D O 3=0 THEN GOSUB AR :
X=0
IF
COL__TRE3=0 THEN GOSUB AR :
IF
COL_CUATRO=0 THEN GOSUB AR :
GOTO TECLADO ;
; etiqueta
sa lto
para
fin
del
a la
sa lto
censo
etiq u eta
donde se
COL_UNO=0 THEN GOTO AR /
: RETURN
FILA D
COL_UNO=0 THEN GOSUB AR :
/
: RETURN
X =12
IF
HIGH FILA__D
de la
: RETURN : RETURN
X =14
: RETURN
X=15
: RETURN
FILA D
in icio
generará
el
antirebote
del
teclado
si
la
columna
UNO s i g u e
sien d o presionada
si
la
c o l u m n a DOS s i g u e
sien d o presionada
a AR
I F COL_DOS=0 THEN GOTO AR ; a AR
I F C O L_TRE3=0 THEN GOTO AR ; s i
la
c o lu m n a TRES s i g u e
sie n d o presionada
a AR
I F COL__CUATRO= 0 THEN GOTO AR ; s i ; sa lte
X=6
IF
HIGH F I L A _ C
anti
FILA A
COL_UNO=0
;
al
: GOSUB AR : RETURN
de la
IF
/
la
sa lte
7
RETORNE GOSUB
LOW F I L A _ D
; sa lte
con
THEN X=8 :
/
Si
AR : RETURN /
cargue a x
C O L _ T R E 3 = 0 THEN X=9 :
LOW F I L A _ C
; sa lte
GOSUB
es p resionada
IF
H IG H F I L A _ B
; sa lte
FILA A
C O L _D O 3=0
LOW F I L A _ B
IF
la
THEN X=7 :
IF
HIGH F I L A _ A
AR:
sa lto
la
c o l u m n a CUATRO s i g u e
sie n d o presionad¿
a AR
RETURN ; r e t o r n e
a la
lin ea
donde se
quedo
►
71
$
S.C. ' PIC C_CLAVE:
/
etiqueta
M ic r o c h ip para
sa lto
y para
: ¿ slt ~ z r e
r-á~ e
HIGH LED ; e n c i e n d a e l LED h a s z a r - r i z a 4 d í g i t o s de la clave GOSUB TECLADO ; s a l t e a TECLADO r r e z z r o - e r r r u n v a l o r e n l a v a r i a b l e
; x CLAVE1=X / c a r g u e e s e n u e v o v a l o r e r GOSUB TECLADO CLAVE2=X ; c a r g u e e s e n u e v o v a l e r e n GOSUB TECLADO CLAVE3=X ; c a r g u e e s e n u e v o v a l e r e r GOSUB TECLADO CLAVE4 = X ; c a r g u e e s e n u e v o v a l e r er. LOW LED ; a p a g u e e l LED c o m e m u e s t r a ; clave GOTO I N I C I O
/
sa lte
d la
etiqueta
la
v a r i a r l e CLAVEL
la
v a r i a r l e C L AV E 2
la
v a r i a r l e CLAVE 3
It re
v a z - a r - e CLAVE4 za rrio correctam ente
su
INICIO
Cerradura Dicital \1¿~ ' - • - / :'z ?
La clave de fábrica para este proyecto es [0, 0. 0. 7 Como se puede apreciar en el program a lo que s í ha reaitzado es definir variables (CLAVE1, C LA V E2, C LA V E3 y C LA V E4), las que alm acenarán dalos en la memoria RAM que posee cada una de ellas hasta un tam año ce 156. Y en el cam bio de Clave los valores de fábrica se cam biarán por los asignados r*:* el usuario. y se m antendrár en el sistem a hasta que el usuario lo cam bie o se desconecte de la fuente de entrada.
DETALLE DEL FUNCIONAM IEXTO Al ejecutar el program a, debem os asignar la Clave de r a m e a para que la puerta (RELE) se abra, el sistem a accionará el relé y esperará 5 seg u ró o s para retom ar a sus valores iniciales, si el usuario desea cam biar la clave ce f a r r e a le c ae cebe hacer es ejecutar los 3 prim eros dígitos de la clave y digitar el signo - del teclado. el que prenderá un LED y se m antendrá prendido hasta que se ejecute la nueva ; as e. q ue se asignará en la memoria RAM del m icrocontrolador PIC, una vez digitados los cuatro nuevos núm eros, observará que el LED se apago, indicando que su clase se grabó exitosam ente. Y para accionar nuevam ente el relé lo que deberá realizar es dig-tar la nueva clase que guardó. En caso de que la clave ingresada sea errónea, e! sistem a realizará el destello de un LED 10 veces, el que indicará que la clave ingresada no es la correcta. En caso de olvidarse el núm ero de la clave debe resetear el sistem a (D escab ritan d o la energía y I habilitándola nuevam ente), así el sistem a accionará la cías e ce fa b r.-a
72
S.C. ' PIC
M ic r o c h ip
El tercer proyecto consiste en realizar una cerradura electrónica con una clave que se guardará en la m em oria EEPR O M que posee el m icrocontrolador PIC 16F628A y a su vez esta clave la cam biará el usuario de acuerdo a sus necesidades, con la finalidad de que si desconecta el sum inistro de energía al sistem a esta perm anezca con la m ism a clave utilizada. La m em oria EE PR O M (E lectrical Erasable Program able R ead O nly M em ory), m em oria de lectura de program ación y borrado eléctrico, es del tipo no volátil, que quiere decir que los datos que se guardarán en esta no se borrarán al m om ento de desconectar la energía del circuito. P ara los m icrocontroladores de la serie A , el tiem po que perm anecerá los datos en este tipo de m em oria es de 100 años, en cam bio en los m icrocontroladores que no poseen la A, el tiem po es de 40 años. ( Datos obtenidos en la página Web de Microchip)
INSTRUCCIÓN EEPROM - READ - W RITE A ntes de continuar desarrollando este proyecto es im portante conocer cada una de las instrucciones que perm itirán m anejar los datos de la m em oria EE PR O M que posee el m icrocontrolador PIC 16F628A. E EPR OM .- E sta instrucción perm ite grabar datos en la m em oria que lleva el m ism o nom bre, los cuales se irán posicionando en cada una de las celdas del m icrocontrolador, cabe destacar que el PIC 16F628A, posee 128 celdas para grabar datos, las cuales m anejan 1 B Y TE cada una, que significa que podrem os guardar un núm ero hasta de 255 La sintaxis de m anejo es la siguiente:
EEPROM 0, [6 ,2 ,”S ”, ”C ”,6,81 ; indica que los datos [6,2,” S” ”C ” ,6,8] se guardarán en las celdas 0, 1 ,2 , 3, 4, 5 de la m em oria EEPR O M , y en cuanto a las letras, se grabará el carácter A SC II correspondiente a cada una de ellas. READ.- Esta instrucción perm ite leer los datos que se encuentran en la m em oria EEPR O M , y guardar el contenido de las celdas en una variable previam ente definida por el usuario, su sintaxis es:
READ guarde READ guarde READ guarde READ guarde READ guarde
0, en 1, en 2, en 3, en 4, en
A-, significa, lea lo que contiene la dirección cero de la variable A. B\ significa, lea lo que contiene la dirección uno de la variable B. C; significa, lea lo que contiene la dirección dos de la variable C. D; significa, lea lo que contiene la dirección tres de la variable D. E; significa, lea lo que contiene la dirección cuatro de la variable E.
73
la m em oria eeprom y la m em oria eeprom y la m em oria eeprom y la m em oria eeprom y la m em oria eeprom y
$
S.C. ' PIC
M ic r o c h ip
READ 5, F; significa, lea lo que contiene la dirección cinco de la m em oria eeprom y guarde en la variable F. W R IT E .- E sta instrucción perm ite escribir o sobrescribir una dirección o celda de la m em oria eeprom , su sintaxis es:
WRITE 0, DATOS', significa, guarde en la dirección o celda cero de la mem oria EEPRO M lo que contenga la variable DATOS. Conocido el funcionam iento de estas instrucciones realizarem os ía program ación para la cerradura electrónica con clave en la m em oria EEPRO M . CMCON=7 X VAR BYTE R VAR BYTE
; X de / R de
FXLA_A F IL A _B F IL A _C F IL A D
PORTB.O P O R T B .1 P O R T B .2 P O R T B .3
VAR VAR VAR VAR
tam año de 256 tam año de 256 cam bio cam bio cam bio cam bio
de de de de
nombre s i p ^ e r z z nombre s i p ^ e r z o nombre s i p - e r z z nombre si 3 .3
p o r FILA D
COL_UNO VAR P O R T B . 4 / c a m b i o d e n o m b r e a l p - e r z z 5 . Z p o r COL_ JNO C 0 L _ D 0 9 VAR PORTB. 5 ; c a m b i o d e n o m b r e a l p u e r t o 3 - 0 p o r COL_DOS COL_TRE3 VAR PORTB. 6 / c a m b i o d e n o m b r e a l p u e r c o 3 . 0 p o r C O L _ T R E S 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 z z 3 . 0 p o r COLJCUATRO RELE VAR PORTA. 0 / CA MB I O DE NOMBRE AL B I T A . C FCR RE LE LED VAR PORTA. 1 ,• CA MB I O DE NOMBRE AL E I T A l POR LED CLAVEl CLAVE2 CLAVE3 CLAVE4
VAR VAR VAR VAR
BYTE BYTE BYTE BYTE
V A R I A B L E DE V A R I A B L E DE V A R I A B L E DE V A R I A B L E DE
/ ; ; ;
EEPROM 0 , [ 0 , 0 , 0 , 0 1
3 eteo :
; E tiqueta
READ 0 , C L A V E l READ 1 , C LA V E2 READ 2 , C LA V E3 READ 3 , CLAVE4
para la
r lea r lea
la
lea
la
•
/
DE DE DE DE
256 251 256 256
; G u a r d e e n l a m e m o r i a EEFRCfí d e l a r c r o c o n t r o l a d o r ; desde la d irecció n cero hasza la d ire c c ió n tr e s ; lo s datos [0 ,0 ,0 ,0 ]
lea
/
TAMAÑO TAMAÑO TAMAÑO TAMAÑO
sa lto
la j
74
guarde
en
la
va ria b le
CLAVE4
S.C. ' PIC IN IC IO :
/ E tiqueta
M ic r o c h ip para
salto
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 en l a v a r i a b l e X I F XCLAVE1 THEN GOTO PREG2 ; c o m p 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 o c o n t r a r i o s a l t e a PREG2 GOSUB TECLADO I F XCLAVE2 THEN GOTO PREG3 / c o m p a r e s i e s a v a r i a b l e e s ; 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 PREG3 GOSUB TECLADO I F XCLAVE3 THEN GOTO PREG4 ; c o m p a r 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 THEN GOTO C__CLAVE , ' S i e l u l t i m o c a r á c t e r i n g r e s a d o p o r t e c l a d c ; es e l + e n to n c e s vaya a cam biar l a c la v e I F XCLAVE4 THEN GOTO ALARMA / c o m p 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 i g i t o l a CLAVE 5 2 6 9 e n t o n c e s ; (e n c i e n d a e l RELE) PAUSE 5 0 0 0 / 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) ;
GOTO I N I C I O
sa lte
a la
; e tiq u e ta para GOSUB TECLADO PREG3: ; e t i q u e t a p a r a GOSUB TECLADO PREG4: ; e t i q u e t a p a r a GOSUB TECLADO ;
etiq u eta
FOR R = 1 TO 1 0
INICIO
sa lto sa lto
para /
puerta
sa lto
PREG2:
ALARMA:
e tiq u e ta
abra l a
sa lto
la zo
FOR d e s d e R=1 h a s t a
10
HIGH LED ; e n c i e n c í a e l LED PAUSE 2 0 0 / p a u s a d e 2 0 0 m s LOW LED / a p a g u e e l LED PAUSE 1 2 0 ; p a u s a d e 1 2 0 m s NEXT GOTO I N I C I O TECLADO:
;
co ntinué ,- s a l t e
/ E tiqueta
el
a la
la zo
FOR h a s t a
etiqueta
para
que R sea
igual
a 10
INICIO
sa lto
LOW F I L A _ A ; c e n s a m o s l a F I L A A I F COL__UNO=0 THEN X=7 : GOSUB AR : RETURN / S i la ; colum na uno es p r e s io n a d a ca rq u e a x con 7 s a l t e a l ;r e IF IF IF
a n ti
b o t e y RETORNE CO L_D O 3=0 THEN X=8 : GOSUB AR : RETURN C O L _T R E S = 0 THEN X=9 : GOSUB AR : RETURN COL_CUATRO=0 THEN X = 1 0 : GOSUB AR : RETURN
HIGH F I L A A / f i n
del
censo
de la
75
FILA A
►
S.C.
$
PIC
Microchip
HIGH F IL A _ A ; f i n d e l c e n s o c e - 2 F I Z A A LOW F IL A _ B / c e n s a m o s l a F I L A E IF COL_UNO=0 THEH GOSUB AR : X=4 : aXTUXI I F COL_DO3=0 THEH GOSUB AR : 1 = 5 : 1 C T B I I F COL__TRE3 = 0 THEH GOSUB AR. : X=s : U T — I F COL__CUATRO=0 THEH GOSUB AR. : 1=15. : S T T V U HIGH F IL A _ B ,* f i n d e l c e n s o d e l a F I Z A = LOW FILA__C / c e n s a m o s l a F I L A S IF COL_UNO=ü THEH GOSUB AR : X=1 r « g I M IF COL_DOS=0 THEH GOSUB AR : X=2 r I C T U I F COL_TRE3 = 0 THEH GOSUB AR. : X=2 : B I W UI I F COL__CUATRO= 0 THEH GOSUB AR. : 1 = 1 2 : I T T f U HIGH F IL A _ C / f i n d e l c e n s o d e l a F I Z A C LOW F IL A _D / c e n s a m o s l a F I L A D I F COL_UKO=Q THEH GOSUB A?. : X =13 : 1 T T V U I F COL_DOS=Q THEH GOSUB AR : 1 = 1 ; ETTCTS I F COL_TRE3 = 0 THEH GOSUB AR : X =14 : I T I I U I F COL_CUATRO= 0 THEH GOSUB AR : T = l 5 : RTTVPJI HIGH FILA__D / f i n d e l c e n s o d e l a F I Z A I GOTO TECLADO ; AR:
; etlqueta IF ; IF ; IF ; IF ;
salto para
a la
etiqueta
iíu c ís
sa lto
donde se
genierara
¿nzz reró te
del
teclado
THEH
COL_UNCF=0 GOTO AR. ; s i l a r e l a m a ZZFI s z g z e s z e r . d o p r e s i o n a d a s a l t e a AR COL_DO3=0 THEH GOTO AR. ; .2 z z i z m m IC5 s z z u e s i e n d o p r e s io n a d a s a l t e a AR CCL_TPvES=D THEH GOTO AR. - s z l a z z l s n a T R I E 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 COL_CUATRO=D THEH GOTO AR. ; s i l a z z l r r r ¡ I I ¿ I R Q s i g u e s i e n d o p r e s i o n a d é s a l t e a AR
RJETURN ; r e t o r n e C_CLAVE:
a la
; e tiq u e ta
linea
para
donde s e quedo
sa lte j
para
zarzziz
ze
zla~e
HIGH LED ; e n c i e n d a e l L E I h a s t a q u e i n g r e s e l o s 4 d í g i t o s d e l a c l a v e GOSUB TECLADO / s a l t e a T E C L A I C j r e t o r n e c o r . u/3 v a l o r e n l a v a r i a b l e
; x / borre lo que co n tien e la z ir e z z io n cero y a sig n e el nuevo ; 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 j r e t o r n e con un v a lo r en X WRITE l , x ; b o r r e l o q u e c o n t i e n e l a d ir e c c ió n uno y a s ig n e e l nuevo ; v a lo r de la v a r ia b le X GOSUB TECLADO ; S a l t e a t e c l a d o y r e t o r n e con un v a l o r en X WRITE 2 , X ; b o r r e l o q u e c o n t i e n e l a d ir e c c ió n dos y a s ig n e e l nuevo ; va lo r de la v a r ia b le X GOSUB TECLADO / S a l t e a t e c l a d o 7 r e t o r n e c o n u n v a l o r e n 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 ig n e e l nuevo ; v a lo r de la v a r ia b le X LOW LED ; a p a g u e e l LED c o m o m u e s t r a d e q u e c a m b i o c o r r e c t a m e n t e s u ; clave WRITE
GOTO S e t e o
0 ,x
/ s a lt e a la e tiq u e ta Seteo a cargar lo s ; m e m o r i a EEPROM d e l m i c r o c o n t r o l a d o r
nuevos
Cerradura D igital M em o ria E E P R O M . P B P
76
valores
en la
$
Microchip
S.C. ' PIC DETALLE DEL FUNCIONAMIENTO
El funcionam iento de este tipo de cerradura es m uy sim ilar a la anterior, la única diferencia es que la nueva clave asignada p or el usuario no se va a borrar si existe un corte de energía. Para probar este circuito se lo puede cargar en el m ism o diagram a esquem ático ( C e rr a d u ra Digital M E M O R IA FLA SH . Schematic Design) visto anteriorm ente.
NOTA: En simulación el circuito va a funcionar exactamente igual al anterior de la memoria RAM, pero es m uy importante que se tenga presente que a l hacer la práctica real si se le retira la energía al sistema, la nueva clave asignada p o r el usuario es la que se mantendrá. En la parte de simulación como abra notado no se puede desconectar la energía al microcontrolador, porque este se encuentra internamente energizado, lo que nos dificulta realizar la prueba de este circuito. Y p o r último, es aconsejable anotar la nueva clave que se le asigne al sistema, y a que si nos la olvidamos no se va poder abrir la puerta (Energizar el relé), sino esta función la tendremos que realizar leyendo el microcontrolador PIC con el IC-PRO G y observando los datos asignados en la Dirección de datos EEPROM. Dirección - Datos Eeprom 0000: 0008: 0010: 0018: 0020: 0028: 0030: 0038:
00 FF FF FF FF FF FF FF
00 FF FF FF FF FF FF FF
00 FF FF FF FF FF FF FF
00 FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
------- yyyy yyyyyyyy
A
m m yyy yyyyyyyy y y y y y y yy
yyyyyyyy yyyyyyyy
yyyyyyyy
V
Como se pu ede observar en la figu ra los datos que se encuentran en la memoria EEPROM es fO, 0, 0, 0].
77
$
S.C. ' PIC
M ic r o c h ip
M A NEJO DE MODULOS LCD U n LCD (Liquid C rystal D isplay), pantalla de cristal líquido, es u na de las herram ientas mayorm ente utilizadas para desplegar algún tipo de inform ación, así tenem os por ejem plo, en las cabinas telefónicas, para visualizar el costo de la llam ada que se está realizando un display LCD. En el m ercado existe gran variedad de m ódulos LCD , los que perm iten realizar gráficos, los alfanum éricos 16*2, 16*4, 8 * 2 ,, con backlight, sin backlight, etc. En esta ocasión estudiarem os los m ódulos LCD alfanum éricos 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 a lfa n u m é ric o 16 * 2.- Este tipo de LCD , perm ite visualizar datos de hasta 16 caracteres por 2 líneas, cada carácter está com puesto p or u na m atriz de leds 7*5, perm itiendo form ar cualquier letra que se le asigne desde el m icrocontrolador. El backlight es el color de fondo que va a tener el LCD, entre ellos se encuentran los de color azul, am arillo, blanco, naranja, rojo. Y de acuerdo a estos colores varían su precio en el m ercado. N o es indispensable que un LCD tenga luz de fondo o backlight, ya que si el usuario lo desea no lo conecta, ahorrando energía y consum o de corriente.
LCD a lfa n u m é ric o 8 * 2.- E ste tipo de LCD , perm ite visualizar datos de hasta 8 caracteres por 2 líneas, siendo esta la única diferencia en com paración con el LCD 16*2. Y de acuerdo a la aplicación que realice el usuario debe seleccionar el LCD a utilizar.
79
$
S.C. ' PIC
M ic r o c h ip
El LCD consta de 14 pines, para realizar el m anejo o el control del m ódulo y 2 pines adicionales para controlar el backlight que posee, en LC D s que no poseen la función de backlight o que no poseen luz de fondo, solam ente poseen 14 pines para utilizarlos en la parte de control. A continuación presentam os una tabla correspondiente a las funciones que realizan cada uno de los pines del LCD. # PIN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Símbolo Vss Vdd Vo RS R/W E DO DI D2 D3 D4 D5 D6 D7 A K
D ESCRIPCION Pin donde se conecta al GND del sistem a Pin donde se conecta a Vdd o 5V del sistem a A juste para el contraste del LCD varía de (0 - 5V) Registro de control/datos (Al microcontrolado*-) Read / W rite, lectura y escritura del LCD (A G N D del sistema) Enable, habilita o deshabilita el m ódulo LCD (Al microcontrolador) Bit para datos m enos significativo
Bit para datos m as significativo A nodo del Backlight, Vdd Cátodo del Backlight GND
C om o se puede apreciar en la tabla, Los bits que perm iten controlar el LCD son 8, lo cual representa una gran velocidad en visualización de datos. Pero una pequeña desventaja es que debem os conectar varios cables a nuestro sistem a, y ocupar todo un puerto com pleto para transm isión de los m ism os. Por esta razón los fabricantes de LC D s, perm iten al usuario trabajar solam ente con 4 Bits para transm isión de datos, lo que significa que se enviarán grupos de 4 bits, prim ero los m ás altos y luego los más bajos, la velocidad de transm isión sería m enor pero no representaría problem as porque el LCD trabaja en el orden de m icrosegundos. C onocida la disposición de pines del módulo LCD, pasarem os a estudiar las instrucciones que perm iten al usuario controlarlos y m anejarlos de acuerdo a sus necesidades.
80
$
S.C. ' PIC
M ic r o c h ip
INSTRUCCION DEFINE - LCDOUT Para continuar con el estudio de este dispositivo electrónico, debem os conocer las instrucciones D E FIN E y LC D O U T, las cuales m e perm itirán controlar y m anejar estos módulos. D E F IN E .- A lgunos elem entos com o el oscilador, m aster clear, etc. Se encuentran predefinidos en el com pilador Pie Basic Pro, ésta instrucción perm ite definir ciertos elem entos o cam biarlos de definición a los que necesite el usuario. Para el caso de los m ódulos de LCDs, es necesario definir lo siguiente: DEFINE LCD_DREG PORTB / ; DEFINE LCD_DBIT 4 / DEFINE LCD_R9REG PORTB ; DEFINE L C D _R S B IT 3 / DEFINE LCD_EREG PORTB / DEFINE L C D _ E B IT 2 /
D e fin ic ió n para u t i l i z a r 4 b i t s d el p u e r to B para t r a n s m i c i ó n de d a to s d e s d e e l BI7¡ B . 4 h a s t a e l B . 7 / D e fin ic ió n para u t i l i z a r e l r e g i s t r o de c o n tr o l/d a to i en e l p u e r to B en e l B IT B .3 D e fin ic ió n para u t i l i z a r e l e n a b le en e l p u e r to B en e l B IT B .2
y OTA: 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 16F628A. Para evitar que los datos sean incorrectos. L C D O U T .- E sta instm cción es de escritura solam ente, y su función es fijar al módulo LCD para em pezar a escribir en cada uno de los caracteres que posee, y necesita de un com ando para su utilización. A continuación se presenta una tabla con cada uno de los com andos que posee el com pilador. COMANDO $FE,
1
$FE,
2
O P E R A C IO N L im p ia el v iso r del LC D V uelve a l inicio del LCD
$FE,
$0C
A p a g a el c u rs o r
$FE,
$0E
S u b ra y a d o del c u rs o r activo
$FE,
$ OF
P a rp a d e o del c u rs o r activo
$FE,
$10
M o v er el c u rs o r a u n a posición a la iz q u ie rd a
$FE,
$14
M o v er el c u rs o r u n a posición a la d e re c h a
$FE,
$80
M u ev e el c u rs o r al com ienzo d e la p r im e r a línea
$FE,
$C0
M u ev e el c u rs o r al com ienzo de la s e g u n d a línea
81
S.C.
PIC
M ic r o c h ip
Como se puede apreciar en el program a, lo único que se h a realizado es definir los puertos del LCD a trabajar, y m anejar la instrucción L C D O U T p ara displayar el texto pedido para la práctica. N oten tam bién que no se h a realizado ninguna pausa en la program ación sino que se envió directam ente a finalizar el program a. Esto lo realizam os p ara d am o s cuenta que el LCD queda cargado con la frase que se le asigno, debido a que el m ódulo posee una m em oria interna que hace que m antenga visualizando lo que envió el usuario. Y al sim ular el proyecto aparecerá:
U1 jai, RA7/OSC1/CLKIN ja i RAS/OSC2/CLKOUT RAfl/MCLfi
RAD/ANO _ÜJZ. RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 ■3 RAA/T0CKI/CMP2
RB1ÁWDT RB2/TX/CK RB3/CCP1
RB0/T1 OSO/TI CW RB7/T1DSI
JD_ ll £12. 13
PIQ1QFQ28A
NOTA: En el sim ulador Proteus no existe el LCD 8*2, pero las conexiones son las mismas, la única diferencia es que acepta hasta 8 caracteres, p o r lo que se debe simular ocupando solo 8 caracteres. Si se desea visualizar en u n m ódulo LCD algún núm ero decim al de una variable lo que se debe realizar es lo siguiente: LCDOUT $FE,1,DEC DATOS Que significa: L im pie el visor del LCD , ubique el cursor al com ienzo de la prim era línea, y visualice el decim al de lo que contenga la variable datos.
83
$
S.C. ' PIC
M ic r o c h ip
En caso de que sea necesario sacar 2 o m ás decim ales se procede: LCDOUT $FE,1,DEC2 DATOS Q ue significa: Lim pie el visor del LCD, ubique el cursor al com ienzo de la prim era línea, y visualice con 2 decim ales lo que contenga la variable datos. Tam bién se puede insertar texto y el decim al de algún núm ero de la siguiente manera: LCDOUT $FE,1 , "X= ", DEC DATOS
Que significa: Lim pie el visor del LCD , ubique el cursor al com ienzo de la prim era línea, y visualice: X = y el decim al de lo que contenga la variable datos, es decir si datos tiene un valor de 245 entonces el usuario observará: LCDt LMQ10L
84
$
S.C. ' PIC
M ic r o c h ip
PROYECTOS CON LC Ps El prim er proyecto consiste en realizar un reloj digital utilizando un LCD. El diagram a de conexión para sim ulación sería:
R e lo j D ig ita l S e h e m a tíe P e sie n
La program ación para esta práctica sería: 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 ; tra n s m ic ió n de datos DEFINE LCD_DBIT 4 / desde e l BJT B .4 h a sta e l B . l DEFINE 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 d e c o n t r o l / d a t o : ; en e l p u e r to B DEFINE L C D _R 3B IT 3 / en e l B IT 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 enable en e l p u erto B DEFINE LCD _E BIT 2 ; en e l B IT B .2 ; ; M VAR BYTE ; ; 3 VAR BYTE ; ; H VAR BYTE
Cambio d e v a r i a b l e a H d e tamaño 256 v a r i a b l e p a r a l a s HORAS Cambio d e v a r i a b l e a M d e tamaño 256 v a r i a b l e p a r a l a s MINUTOS Cambio d e v a r i a b l e a S d e tam año 256 v a r i a b l e p a r a l a s SEGUNDOS
LCDOUT $ F E , I , "R E L O J D I G I T A L ,r / L i m p i a e l v i s o r d e l LCD y ; p o s ic io n a a l p r i n c i p i o de la prim era f i l a , y e s c r ib e ; RELOJ DIG ITAL
85
se
S.C. ' PIC IN IC IO :
; etiqueta
M
para
$
ic r o c h ip
salto
r O R H=0 TO 2 3 ; l a z o f o r p a r a l a s h o r a s FOR M=0 TO 5 9 ; 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 $ F E , $ C 4 , D E C 2 H, " : " , D E C 2 M, " : " , D E C 2 3 / saca p o r la segunda lin e a dos d e c im a le s de la s h o ra s, ; 2 p u n to s, 2 decim ales para lo s m in u to s, ; 2 p u n to s y 2 decim ales para lo s segundos ; c o r r e s p o n d i e n te s a l a s v a r i a b l e s H ,M ,S r e s p e c tiv a m e n te PAUSE 3 9 5 / P a u s a d e 3 9 5 m i l i s e g u n d o s LCDOUT $ F E , $ C 4 , D E C 2 H , " ” , DEC2 M , " " , DEC2 3 ; saca p o r la segunda lín e a dos d e c im a le s de la s h o ra s, ; e s p a c io en b la n c o , 2 d e c im a le s para lo s m in u to s, ; e s p a c io en b la n c o y 2 d ec im a le s para l o s segundos ; 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 3 9 5 ; P a u s a d e 3 9 5 m i l i s e g u n d o s HEXT / c o n t i n ú e c o n e l l a z j h a s t a q u e S - 5 9 NEXT ; c o n t i n ú e c o n e l l a z o h a s t a q u e M=59 NEXT ; c o n t i n ú e c o n e l l a z o h a s t a q u e H = 2 3 GOTO I N I C I O
/
sa lte
a la
etiqueta
IWICIO
R e l o j P i p i l al. P B P
C om o se puede apreciar lo que se ha realizado es un contador, m ediante la instrucción FOR - N EX T que ya se ha estudiado anteriorm ente. La pausa generada entre la línea que tiene los 2 puntos y la que no lo tiene perm ite visualizar un efecto de interm itencia. Se ha colocado una pausa de 790 m ilisegundos para tener la hora real de un reloj normal.
86
$
S.C. ' PIC
M ic r o c h ip
La segunda práctica consiste en realizar un desplazam iento de un texto en el LCD. Para este propósito es necesario tener en cuenta la Instrucción LO O K U P
INSTRUCCIÓN LOOKUP Puede ser usado para obtener valores de una tabla de constantes de 8 bits, perm ite obtener un carácter de letras o núm eros de una cadena y guardarlos en u n a variable asignada por el usuario. Su sintaxis de m anejo es:
LOOKUP z , [ " h o l a " ] , D ATO S
T om a el segund o c a rá cte r d e la ca dena H O LA y lo guarda en la variable D A TO S
Si la m anejam os con un lazo FO R , se podrá obtener un efecto de desplazam iento de texto. El diagram a esquem ático para la sim ulación en el proteus es:
LCDt LM016L
RV1
¡Slm S 5 S S S S S S
zF
IL lfi1A_
RA70SCUCLKN RAOOSC2/CLKOUT RAS/MCLR
RAO/ANO RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 RA4/TQCKUCMP2 R0Q4NT RBURX/DT RB2/TXCK RB3/CCP1 RB4 RB5 OSO/T1CKI RB7/T10SI
—
1L
-JA
JA 11 XL JA
WC.16F628A
. . D esplazam ientos LCD. Schem atic P esien
87
S.C.
$
PIC
M ic r o c h ip
Y su program ación es: DEFINE LCD_DREG POP*TB / D e f i n í 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 ; tr a n s m i c ió n de d a to s DEFINE LCD_DBIT 4 ; d esde e l BIT B .4 h a sta e l B .7 DEFINE 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 d e c o n t r o l / d a t o ; en e l p u e r to B DEFINE L CD _RSBIT 3 / en el BIT B .3 DEFINE LCD_EREG PORTB ; D e fin ic ió n parau t i l i z a r e l en a b le en e l p u e r to B DEFINE LCD_EBIT 2 / en e l B IT B .2 R VAR BYTE ; X d e t a m a ñ o d e 2 5 6 DATOS VAR BYTE ; DATOS d e t a m a ñ o d e 2 5 6 LCDOUT $ F E , $ 7 ; C o n f i g u r a a l LCD p a r a q u e 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 $ F E , 1 / L i m p i a e l v i s o r d e l LCD
IN IC IO :
; E tiqueta
para
salto
LCDOUT $ F E , $ 9 0 ; U b i c a e l c u r s o r e n l a c e l d a 1 7 FOR R=0 TO 24 ; L a z o FOR d e s d e R=0 h a s t a 2 3 LOOKUP K, [ "ELECTRONICA-PRA.CTICA- " ] , DATOS ; T o m a c a r á c t e r p o r c a r á c t e r d e l a c a d e n a y l o g u a r d a e n l a v a r i a b l e DATOS LCDOUT , DATOS / S a q u e e n e l LCD e l c o n t e n i d o d e DATOS PAUSE 2 0 0 / P a u s a d e 2 0 0 m i l i s e g u n d o s NEXT ; C o n t i n u é c o n 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 2 4 GOTO I N I C I O
;
Salte
a la
etiqueta
INICIO
D esp la za m ien to s de texto en LCD . P B P
08
$
S.C. ' PIC
M ic r o c h ip
INSTRUCCION SOUND Esta instrucción perm ite generar sonido, trabaja a 8 bits, y el ruido generado va en un rango de 0 a 255. Su sintaxis de m anejo es: SOUND PORTB.O,[110,10,100,20] Que quiere decir saque p o r el puerto B el tono 110, m anténgalo durante 10 m ilisegundos, y saque el tono 100 durante 20 m ilisegundos. \ continuación se realizará esta práctica con sim ulación en el softw are proteus. Para realizar esta práctica se debe seleccionar en el proteus el elem ento SO U N D ER el que perm itirá sim ular un parlante de 8 ohm ios, y para escuchar se debe tener los parlantes ¿el com putador encendidos. Ei diagram a de conexión sería: • • • U 1 ......................................................................................................................................................................................... 17 • AA7/O0C1A3 LKM RADfAKO i b .............................................................................................................. • 15“
1 R A S ftté L K
3
r ■4 -
s •
.
R B líR X i’DT
.
.
R1
.
. .
h 1
y
. .. . : : :
É fe - -
9 R E IC C *1 — rc r RB* - T T RBS 12 R B & T tO B O m C W “ TT R B 7/T10EI
•
. . -
-
• B O l lib E R
’
« T ja b *
C 1 S f6 2 »
Instrucción SO U N D . Schcm aíic Pesian
Su program ación será: INICIO:
;
S u b ru tln a
para
sa lto
el p u erto B e l s o n i d o 1 1 0 m a n t é n g a l o d u r a n t e 10 m i l i s e g u n d o s , y s a q u e e l s o n i d o 100 d u r a n t e 20 m i l i s e g u n d o s
SOUND PORTB.0,[110,10,100,20] ; ;
KXTO INICIO / S a l t e
a la
etiq u e ta
; saque por
IN IC IO
Instrucción SOUND. PBP
89
$
P IC
S.C.
M icn o cH iP
INSTRUCCIÓN FREOOUT Perm ite al usuario sacar frecuencias por un PIN, las cuales pueden estar entre 0 a 32767 Hz, y su sintaxis de m anejo es: FREQOUT ;
la
941,1336
P O R T B .0 , 2 0 0 ,
fre c u e n c ia
de
941
y
saque
;
1336
Hz
y
p o r
e l
B IT
m a n ten g a
B .0
d u ra n te
5
segundos
A continuación se realizará un circuito que perm ita generar tonos de teléfono por un puerto del m icrocontrolador PIC, el cual podrá ser probado con el diagram a esquem ático anterior. (Instrucción SOL'Nfí. Schcmntic Pesien)
IN IC IO :
/
S ub ru tln a
para
sa lto
FREQOUT P O R T B . 0 , 2 0 0 , 9 4 1 , 1 3 3 6 ;
la
frecu en cia
de
94L y
/
saque p o r
1336 Hz y
; eq u iva le n te a p resio n a r la te c la PAUSE 5 0 / p a u s a d e 5 0 m l l l s e g u n d o s FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 4 7 7 / eq u iva le n te a presio n a r la PAUSE
50
/
pausa
de
tecla
el
m antenga 0
B IT
B.O
du rea n te
de
un
telefo n o
9 de
un
telefo n o
7 de
un
telefo n o
0
de
un
telefo n o
S
de
un
telefo n o
7 de
un
telefo n o
9 de
un
te lefo n o
9 de
un
te lefo n o
9 de
un
te lefo n o
50 m i l i s e g u n d o s
FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 2 0 9 /
eq u iva len te
PAUSE
50
a presio n a r
/ pausa
de
la
tecla
50 . m i l i s e g u n d o s
FREQOUT P O R T B . 0 , 2 0 0 , 9 4 1 / 1 3 3 6 /
eq u iva len te
PAUSE
50
/
a presio n a r
pausa
de
la
tecla
50 m i l l s e g u n d o s
FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 3 3 6 /
eq u iva len te
PAUSE
50
/
a presio n a r
pausa
de
la
tecla
50 m i l l s e g u n d o s
FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 2 0 9 /
e q u iv a le n te
a
p resio n a r
la
tecla
PAUSE 5 0 / p a u s a d e 5 0 m i l i s e g u n d o s FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 4 7 7 ;
eq u iva len te
a presio n a r
la
tecla
PAUSE 5 0 / p a u s a d e 5 0 m i l i s e g u n d o s FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 4 7 7 /
eq u iva len te
a presio n a r
la
tecla
PA U S E 5 0 ; p a u s a d e 5 0 m z l r s e g u n d o s FREQOUT P O R T B . 0 , 2 0 0 , 8 5 2 , 1 4 7 7 /
eq u iva len te
PA U S E GOTO I N I C I O
/
50
a p resio n a r
/ pausa
S a lte
a
la
de
la
tecla
50 m l l i s e g u n d o s
etiq u eta
IN IC IO
Instrucción I REOOL T VHP
90
5 segundos
$
S.C. ' PIC
M icn o cH iP
INSTRUCCIÓN DTMFOUT Lo que se realizó en el program a anterior es generar los tonos de teléfono para un núm ero celular, obteniendo cam bios de frecuencia cada 50 m ilisegundos. A hora con el estudio de la instrucción D TM FO U T podrem os sacar los m ism os tonos de celular de una m anera más sencilla, es decir sim plem ente escribiendo el núm ero de teléfono a llamar. La sintaxis de m anejo para esta instrucción es: DTMFOUT PORTB.0,[0,9,7,0,B,7,9,9,9] Que significa saque por el BIT B.O las frecuencias correspondientes a digitar los núm eros de teléfono 0, 9, 7, 0, 8, 7, 9, 9, 9 Así de esa m anera podrem os realizar un teléfono con el m icrocontrolador PIC. Para realizar la prueba de esta instrucción generarem os una llam ada telefónica al núm ero 2 506 145, la cual se escuchará en un parlante de 8 ohm ios. La sim ulación de esta práctica se puede realizar en el m ism o circuito anterior. (In strucció n SOUND. Schematic Pesien)
La program ación será: INICIO:
;
etiq u eta
para
sa lto
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 ; la s fre c u e n cia s corresp o n d ien tes a lo s ; 2 506 145 PAUSE 500 ; PAUSA DE 5 0 0 M I L I S E G U N D O S
GOTO INICIO ; s a l t e
a la
etiq u e ta
núm eros
IN IC IO
Instrucción D TM FO U T. PBP
Para realizar una llam ada telefónica con el m icrocontrolador se debe accionar un relé para indicarle a la entrada de la línea telefónica que se descolgó el auricular y proceder a enviar los tonos correspondientes al núm ero que se desee llam ar. El siguiente diagram a de conexión perm ite realizar esta función:
91
S.C. ' PIC
M ic r o c h ip
Llamada telefónica. Schematic Design
Las resistencias de 680 ohm ios a 1 w atio, hacen relación a la carga Z, de un teléfono común. La program ación para realizar la llam ada telefónica será: RELE VAR PORTB. 1 IN IC IO :
;
; Cam bio d e nom bre a l B I T B . l
etiqueta
para
p o r RELE
sa lto
HIGH RELE / e n e r g l c e l a b o b i n a d e l r e l e PAUSE 1 0 0 0 / 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 llam ada DTMFOUT P O R T B .0 , [ 2 , 5 , 0 , 6 , 1 , 4 / 5 1 / 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 fr e c u e n c i a s c o r r e s p o n d ie n te s a lo s números ; 2 506 145 PAUSE 5 0 0 / PAUSA DE 5 0 0 K I L I S E G U N D O S SOUHD P O R T B . 0 , [ 1 1 0 , 2 0 0 0 ] / E n v í e u n s o n i d o 1 1 0 d u r a n t e 2 s e g u n d o s ; p ara I n d i c a r a l u s u a r io que la llam ada g en e ro e l m ic r o c o n tr o la d o r LOW RELE ; Q u i t e l a e n e r g í a a l RELE ( C u e l g u e e l a u r i c u l a r ) GOTO I N I C I O
/
sa lte
a la
etiqueta
INICIO
Llamada telefónica. PBP
En el program a se energiza el relé de 12V, para sim ular la acción del levantam iento del auricular en un teléfono convencional.
92
$
S.C. ' PIC
O
M ic r o c h ip
COMUNICACIÓN SERIAL CON EL M ICROCONTROLADOR PIC “ 16F628A”
Un cable de com unicación serial perm ite que dos dispositivos se com uniquen uno con otro enviando y recibiendo datos por una línea de transm isión y o tra línea de recepción. Los datos enviados por esta línea, se enviarán en grupos de 8 bits, utilizando un formato de envío denom inado código ASCII.
Tabla Ejemplos ASCII A SCII
Hex
C arácter
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 A m erican Standard Code for Inform ation Interchange o Código Estándar A m ericano para el Intercam bio de información. El formato A SC II es reconocido por todas las com putadoras y se puede utilizar para com unicarse con el m icrocontrolador. C om o se pudo ver de la tabla del ejem plo, un conjunto de bits representa cada carácter. U na form a m ás com pacta de representar un conjunto de bits, es m ediante la representación H exadecim al. E sta representación tom a 4 bits y los representa por un núm ero o una letra que va del 0 al F. Se llam a com unicación serial, porque los códigos se reciben uno detrás de otro o “en serie” . Existen 2 tipos de com unicación serial, la sincrónica y la asincrónica, la única diferencia entre los dos es: La com unicación sincrónica necesita una señal de reloj para com pararlos con la línea de envío de datos y garantizar que los datos enviados sean los correctos.
93
$
S C. ' P i e
M ic r o c h ip
En cam bio la com unicación serial asincrónica envia datos sin necesidad de una señal de reloj, en su reem plazo ocupa un m ecanism o com o referencia tierra (norm a RS232), o voltajes referenciales (norm a R S422/485). En este libro se va a estudiar la com unicación serial asincrónica, por ser la m ás utilizada a nivel m undial por varias em presas de com unicación y tam bién porque nos perm itirá com unicam os con el softw are LA BV IEW y V ISU A L BA SIC 6.0. La m anera de transm isión de datos en com unicación serial asincrónica se detalla en el siguiente diagram a: <
!
0
1
1
0
0
0
o
1
ffi
¡ 5
+ 5 V ------------- 1r
i OV
Núm ero enviado El gráfico corresponde al núm ero 01 i 0 0 0 0 1 correspondiente al A SC II de “ A” com o se anotó en la tabla de ejem plo. Las com putadoras poseen la norm a RS232 p ara realizar com unicación serial, la cual utiliza lógica inversa para realizar la com unicación serial, que significa que 5V = 0L y 0V = 1L, la m anera de transm isión de datos para la letra “ A ", en esta norm a será:
0 1 1 0 0 0
0
+5V
OV
Núm ero enviado
94
1
$
S.C. ' PIC
M icn o cH iP
V E L O C ID A D E S DE T R A N SM ISIÓ N DE DA TO S Las velocidades para transm isión de datos van desde los 300 hasta los 9600 bits por segundo en el m odo de com unicación serial, pero hay que tener presente si son velocidades de datos verdaderos, o datos invertidos. A continuación presentarem os una tabla con las velocidades para cada uno de éstos casos: Dato Verdadero T300 T I 200 T2400 T9600
Dato Invertido N300 N I 200 N 2400 N 9600
INSTRUCCIÓN SERIN - SEROUT Las instrucciones que perm ite al m icrocontrolador m anejar la com unicación serial son SERIN y SERO U T, las cuales recepta y transm ite el dato serial respectivam ente. Para utilizar estas instrucciones es necesario incluir los m odos de com unicación m ediante la siguiente instrucción: INC1UDE
"modedefa.bas "
SERIN.- C om o se ha dicho anteriorm ente esta instrucción perm ite recibir un dato enviado serialm ente por otro dispositivo electrónico, y su sintaxis es: SERIN PORTB.0,N2400,DATOS Que significa: R ecepte el dato serial por el BIT B.O del puerto B a u n a velocidad de 2400 bits por segundo y guarde en la variable DATOS. SEROUT.- M ediante esta instrucción se enviarán datos seriales por un pin del m icrocontrolador, su sintaxis es: SEROUT PORTB.G ,N240 0,["A"] Que significa: Envíe el dato “A ” en código A SC II a una velocidad de 2400 bits por segundo por el B IT B.O del puerto B. Conocida la teoría de la com unicación serial pasarem os a realizar u n a aplicación.
95
$
S.C. ' PIC
M ic r o c h ip
COMUNICACION SERIAL PIC - PIC Para realizar com unicación serial es im portante tener en cuenta que deben existir dos dispositivos que se encuentren a la m ism a velocidad tanto p ara transm itir com o para recibir datos seriales, para esta aplicación utilizarem os dos m icrocontroladores PIC 16F628A los cuales uno de ellos será el transm isor y otro el receptor. De ahí que el diagram a esquem ático para realizar este tipo de sim ulación será:
U2
• U1
ifc
R1 E«TE*R*’
R /8 / / K ) R A 1 //N 1
R A 7 /0 S C L C IW N A / e /O S C J C lX D Ü T
R A 3 /A N 3 X X P 1
" ɱ
±
R B 7 /T 1 0 S J
p a
» /* íí
M
D t: L E D -Y B 1 0 *
R A S A tt* R A V T T C K lO í W R B Q /liT R 8 :; R X C T
—k
"1 2 /T X C K R 33
/zar
RB3AXP1
R M / T ic s a m c M
R A 7 /0 S C t ^ U flN R P 0 /0 S C ? « U C U r
r a u m
RA2/AN2\«5 i RAH/TDCKVOra 4-
ih -li— I
935 F B 6 /7 ’ Q S O /T lO í
=ü _ !2
R B 7 /n O S
I C 10 FB 2BA
C om unicación serial P IC - PIC. Schem atic P esien
Com o se puede observar en la figura, se ha conectado para el PIC transm isor un pulsador, el cual al ser presionado enviará un dato serial al otro m icrocontrolador, el cual receptará ese dato y encenderá el LED del PIC receptor. La program ación para el m icrocontrolador PIC que será el transm isor es: IH C L U D E
"m o d ed efs. b a a "
CMCON=7
;
d lg lta llza
el
P U L S A D O R VAR P O R T A . 0 IN IC IO : IF
/
etiq u eta
;
para
;
caso
SEROUT GOTO I N I C I O
/
modos
;
de
com u n ica ció n
A de
nom bre
al
B IT
A .0 por
p u lsa d o r
es
d ig ita d o
p u lsa d o r
sa lto /
si
el
P O R T B . 0 , N Z 4 0 0 , [ ” E W]
GOTO I N I C I O E N D IF
p u erto cam bio
/
P U L S A D O R = 0 T H EH SE R O U T
In clu ye
y
sa lte
/
en víe
entonces
serla lm en te
el
d a to
"E"
serla lm en te
el
d a to
"A"
a In icio
co n tra rio
P O R T B .0 , N 2 4 0 0 , [ "A "] S a lte
a
la
etiq u eta
/
en víe
IN IC IO
T r a n s m isor. P B P
96
S.C. ' PIC
M
$
ic r o c h ip
La program ación para el m icrocontrolador PIC que será el receptor es: IN C L U D E
"m o d ed efs. b a s ”
CMCON=7
;
d lg lta llc e
LED VAR P O R T A . 0 D A T 0 3 VAR BYTE IN IC IO :
;
S E R IN ;
a
;
b le
p u erto
C am bio
/ /
In clu ye
/
el
de
va ria b le
e tig u e ta
para
nmombre
velo cid a d
modos al
DATOS d e
de
com unicación
B I T A.O
tam año
por
LED
de 255
sa lto
P O R T B .D ,N 2 4 Q 0 ,D A T O S
una
lo s
A
de
2400
/
R ecepte
b its
por
el
d a to
segundo y
seria l
del
guarde
en
B IT B .0 la
va rla -
DATOS
IF
DATO3 = " E " T H EN
H IG H L ED
;
SI
DATOS = " E ” e n t o n c e s
prenda
el
L ED
IF
DATOS= ”A rr THEN
LOW LED
/
Si
DATOS = " A " e n t o n c e s
apague
el
L ED
GOTO I N I C I O
/
S a lte
a
la
etiq u eta
INICIO
Receptor. PBP
COMUNICACIÓN SERIAL INFRARROJA A ctualm ente la electrónica se encuentra desarrollando equipos con tecnología inalám brica (sin cables), que le perm ite al usuario tener m as espacio y m ayor estética en sus oficinas, hogares, etc. Lo que hace indispensable com enzar a desarrollar program as que utilicen este tipo de tecnología. L a com unicación serial infrarroja perm ite al usuario com unicarse entre 2 dispositivos electrónicos que se encuentren separados hasta una distancia de lOmts, pero con la desventaja que los LED s infrarrojos de estos dispositivos que actúan com o transm isor y receptor deben estar alineados. El transm isor no es m ás que un LED infrarrojo, el que enviará los datos seriales. Y el receptor es un LED infrarrojo en form a de un transistor que receptará los datos, posee un encapsulado oscuro para evitar que la luz solar o luz artificial distorsionen la inform ación recibida. En cuanto al tratam iento de los datos, que se le debe dar a este tipo de com unicación serial, es igual al estudiado anteriorm ente, lo que quiere decir que en lugar del cable que se ocupó para com unicar el prim er dispositivo con el otro, se utilizará un diodo LED infrarrojo transm isor y un diodo LED infrarrojo receptor los que enviarán y recibirán datos respectivam ente. Y la program ación será la misma. Por lo tanto la conexión para el m ódulo de transm isión de datos infrarrojos es:
97
$
S.C. ' PIC
M ic r o c h ip
R1 SF tTGXT*. .
K3 IR.
•
cT£3T\
:: LEP-reua/v pí
LET
«TEXT>
’ U1
RA7Z0BC 1/CLKH R A & o a c z r c iK o ir r R A S fflB m
R A flA BO r a í/ a r i
R A 2 A K 3 T /R B R A 3 'A K 3 ’CUP1 R A */T T X KkCURZ R B o rirr P.B 1i’RX/DT R a a r x -C K A BS 'CC PI RB* RB5 RBQT1O 0O (T1CW R87ZT1O0I
■ 1? T W
■1 óí
a
i
::
. ZITB04.
TTT ■
12
Transmisor Infrarrojo. Schematic Pesien
N oten que se ha adicionado un pulsador, y que el LED infrarrojo se encuentra accionado a través de un transistor 2N 3904. El diagram a para el receptor es:
U1 RA7A30C MCIX » R A a O 0 C 2 C L >O 'jr RASffE J t
RAW JG RAVAJH R A a rw o rv T is RAYAR?CU>1 R A * m K iK k d F 2 R B » rr R81ZRMXT R 8 2 T ÍC K RB3CCP1 RB*
RB5 R B ^ T IO B O Z T C W
M 7ZT10BI r w
a * —
ítWi*
Receptor Infrarrojo. Schematic Pesien
En el receptor se ha adicionado un LED que se prenderá cuando el pulsador del circuito transm isor sea digitado.
98
S.C. ' PIC
M
$
ic r o c h ip
COMUNICACIÓN SERIAL PC - PIC La com unicación serial que ocupa el com putador es del tipo R S232, utilizando lógica inversa para transm isión y recepción de datos. Se la puede hallar en el conector DB9 M A C H O que posee cada C PU (U nidad central de proceso). Ciertas com putadoras utilizan este conector para colocar periféricos de entrada com o el m ouse, PLC s, entre otros. C ada uno de los pines del puerto serial está dedicado a un propósito específico, que fue determ inado cuando se elaboró el estándar RS232. A continuación se presenta una tabla con cada una de las funciones que realiza este puerto.
Propósito de cada uno de los pines del Conector DB9 Propósito
# i 2 3 4 5 6 7 8 9
T ierra de chasis R ecibe los datos (RD) T ransm ite los datos (TD) Term inal de D atos esta Listo (D TR) T ierra de señal C onjunto de D atos esta Listo (D SR ) Solicita Perm iso para E nviar D atos (RTS) Pista Libre para Enviar D atos (CTS) T im bre T elefónico (RI)
Como se puede apreciar en la tabla, los pines 2 y 3 son los m ás im portantes para nosotros ya que perm iten recibir y transm itir datos respectivam ente.
S.C. ' PIC
M ic r o c h ip
Para introducim os en el m anejo de la com unicación serial con el com putador utilizarem os el softw are V ISU A L BA SIC 6.0.
COMUNICACIÓN SERIAL CON VISUAL BASIC 6.0 Visual Basic es una herram ienta que perm ite realizar una program ación orientada a objetos, que significa que cada uno de los elem entos que se escoja en la p antalla podrá ser programado. ?
X
Nuevo | Existente | Recientes |
f ia
h -
i
-
E:€ estándar
EXE ActiveX
DLL ActiveX
Control ActiveX
Administrador de asistent...
Asistente para aplicaciones...
Addin
Aplicación DHTML
Apécaoón US
Controles de V8 Edición...
F^a Cv
Cs
____________________ Abrir
|
Cancelar Ayuda
P
No mostrar este cuadro de diálogo en el hXuro
A l iniciar V isual B asic aparece la pantalla N uevo proyecto, en donde se seleccionará el tipo de proyecto que se va a realizar. Por defecto aparece la aplicación EXE estándar que es la que necesitam os para realizar el control com putarizado de proyectos electrónicos con m icrocontroladores m ediante com unicación serial.
100
S.C. ' PIC
M
ic r o c h ip
A parecerá una pantalla sim ilar a la siguiente:
»f*tuh
l*J
rra ñ J r« y s c t3 f
*
rorm1 [f am)
-
t e r.fr 1
PfWf'rvlul
H F^ruroi Cj Faru
.)
* -..•I*»-»-ftetat ►ormi har
ÜÜ “3
?q atcgqjg | K a r t ': ’
k .y ,í,t\jr k
Utfc.0©'
;C Q M N k J!v * p :\\í'o :c > V
->\W i|
Capüt'H
h>»fci * l -X» rv v i i ! im u u i» X -X íJ / * Iro m l TK»« Tbj » 13 C p » r*cn 0-5OKJ 1
+
. n.tbv.» » \M/ÍM
• •» U « J v ■) i U U * rr« J r Ü . . L J » .11
Esta pantalla contiene una sección que se llam a F o rm l, la cual perm ite al usuario generar el Form ulario, es decir perm ite visualizar com o va a quedar nuestro proyecto con los elem entos que necesite para su proyecto. En la izquierda de la pantalla se encuentra la barra de elem entos, 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 perm itirá observar el nom bre del proyecto, y el nom bre del o los form ularios que el usuario agregue al m ism o de acuerdo a sus necesidades. En la derecha inferior de la pantalla se encuentra la ventana de propiedades, donde el usuario cam biará el nom bre, el tam año, los colores, entre otros, a cada uno de los objetos a program ar.
101
$
S.C. ' PIC
M ic r o c h ip
Para realizar com unicación serial con este softw are es necesario agregar a la ventana de herram ientas el m odo de com unicaciones realizando un clic derecho en la parte inferior de la ventana de herram ientas, seleccionam os com ponentes.
t m A 151 □ _i p (f ¿A g
O o d te «9 ^ a Competentes. Agregar Picha. fi¡copíabte
QoAar TX
A parecerá la siguiente ventana: C o m p o n e n te s Connotes
D .teftado.es I Objetos rentables vsFfe>*3 C o n tro l
□ Active Setup Control Ib ra ry □ Adobe Acrobat 7.0 Browser Control Type L ix * □ AppicaüonControDispatch 1.0 Type Lfcrary
* - fe J *!*
AxBrowse □ BfcMap 1.0 Type Library
& t . fk
□ C:\ARCHIV~ 1\Nero\NER07~ i \NEROCO-1\CO □ C:\WINDOWS\sy5tem32Vnscorf.J
FJ H!¡
□ C:\WINDOWS\system32\tdc ocx □ CDDBControl 1 .0 Type Itorary □ Cdg □ de 1.0 Type Líbrery □ CompatUl 1.0 Type Ubrary
Examinar...
&
<
>
r
Sólo seleccionados
:•) VideoSoft vsFtex3 Controls-----------------------------Ubicación: C:\WIhD0WS\system32\VSFLEX3.0a
Aceptar
102
Cancelar
Apfics
$
S.C. ' PIC
M ic r o c h ip
En la que se busca el com ponente M icrosoft C om m control 6.0, y se lo seleccionará de la siguiente manera:
Controtes I Diseñadores | Objetos insertadles IvaxpHjgm 1.0 Type Library Microsoft ActiveX Pkjgin Microsoft ADO Data Control 6.0 (OLED6) Microsoft Agent Control 2.0 Microsoft CE 3.0 Intrinsic Design-Time Control L Microsoft Chart Control 6.0 (OLEDB) k i o s o f t Corroí Cortool ó.O C Microsoft Common Dialog Control 6.0 C Microsoft Data Bound Grid Control 5.0 (5P3) CM icrosoft Data Bound List Controte 6.0 C Microsoft DataGrid Control 6.0 (OLEDB) L Microsoft DataList Controls 6.0 (OLEDB) Microsoft DataRepeater Control 6.0 (OLEDB) * . >
jj
992
29
>7.
&
s
Examinar... ¡r
Sólo seleccionados
Microsoft Comm Control 6.0 Ubicación: C:\WIW»WS\system32\MSC0MM32.0CX
Al realizar este procedim iento se cargará en la ventana de herram ientas un nuevo elem ento parecido a un teléfono analógico. x General
*M A |ábí 71 _l F7
a
d d © O j 0 H [ ]E3 E0 m
iJ±J
Este elem ento es el que perm ite al usuario com unicarse con el puerto serial que posee el com putador.
h
103
$
S.C. ' PIC
M ic ro c h ip
Conocidos los elem entos m ás im portantes para el m anejo de este softw are, realizarem os una práctica que consistirá en prender un LED desde el com putador durante 5 segundos , apagar el LED y a la vez m onitorearlo, utilizando V isual B asic 6.0 Para realizar esta práctica debem os adicionar al form ulario los siguientes com ponentes: -
U n botón (Com m andB utton) U n reloj (Tim er), que perm itirá m onitorear el LED si se encuentra encendido o apagado. M odo de com unicaciones U n círculo, sim ulando un LED
Y el form ulario queda de la siguiente m anera: ** Form l
Q
Commandl
Para sacar el círculo se debe escoger la herram ienta shape q u e perm ite dibujar rectángulos, cuadrados, óvalos, círculos, etc. Para nuestro caso ocuparem os un círculo, pero hay que tener en cuenta que p or defecto visual B asic carga al shape con un rectángulo, lo que significa que en las propiedades del objeto shape se debe cam biar a círculo así:
104
$
S.C. ' PIC
M ic r o c h ip
Seleccionar la herram ienta shape y arrastrar com o se m uestra en el gráfico de la parte superior, seleccionar el objeto y en la parte de propiedades proceder a cam biar a círculo.
* lo rm l
Propiedades - S h a p e 1
1
i
1 S h a p e 1 Shape |
J
Aí abética | Por categctas :
-
Bactótyle
0 - Trarsparc * I I
BorderColor
■
BorderStyle
l-S o k d
BorderWidth OrawMode
i 1 3 -C o p y Peí
FÍColor
■ &hogoooc
=*Styte kjnlnkt ¿neignt
1 - Transpare
&H80000Í
1095
Index Left
1320 ectangie
Tag !Top Vistió íWidth
»
0 - Rectangte 1 - Square
2 - Oval V
4 - Rocnded 5 - Rounded
S hape 1 Devuelve o establece un vaior I que indica la apariencia de un
Para seleccionar un color plom o al círculo hay que seleccionar en propiedades del elem ento, F illC olor y escoger el color a usar, y en FillStyle seleccionar SO LID . para que el color se fije en todo el círculo.
105
$
S.C. ' PIC
M ic r o c h ip
Q uedando el círculo com pletam ente editado que sim ulará un LED p ara el m onitoreo.
P r o p ie d a d e s
S lu tp e .l
~J\
S h a p e l Shape A f abética ¡ p » categorías I BackStyto
0- Transparc
BorderCotor
■ &H60000C
fcrderStyte
1-S o M
8orderWic*h
1
> a *M o d e
13 - Copy Per ■ I
I &hoo > ^ I
=ÍStyte
0-S oW
4*ight
1095
Index .eft
4440
Shape
3 -Q d e
Tag Top
1560 True
Wkfch
1455
v
FÜCoter Devuelve o establece el color usado para relenar formas,
Para visualizar cual es la velocidad de envío y recepción de datos p ara la com unicación serial hay que ingresar a las propiedades del com ponente para las com unicaciones. Para esto dar clic derecho con el m ouse en el com ponente sim ilar a un teléfono y seleccionar propiedades, donde aparecerá una pantalla com o la siguiente:
MSComm 1 MSCowh Alfabética I Por categoría* Corrmandl
kKombre)
DTPEnaWe EOFEnable
í$ !
HandsbaHng InfiufferSce Index IrputLen
Páginas de p ro p ie d a d e s
InputMode General | Btfei | Har<*vare | CommPort
|fl
Settngr
|9600/t8.1
|
1 True Fabe 0 • comNone 1024 0 0 - ccmlrputf
3040 leffc WJDtscard Fake OutBufferS&e 512 Par*>*edace ?
v
CommTort Devuelve o establece el núnero del puerto de comuiiceaones.
H andjhakrg ¡0 - centone
Aceptar
MSCcmml
Ayuda
Cancelar
106
S.C.
$
PIC
M ic r o c h ip
D onde indica los valores para la com unicación serial. Q ue se encuentran establecidos en: 9600,n ,8,1 que significa: Envío de 8 bits de datos seriales, sin paridad y con un bit de parada a una velocidad de 9600 bits por segundo. Esta ventana tam bién perm ite seleccionar el puerto de com unicaciones que se va a utilizar para realizar la práctica. A hora lo único que falta es realizar la program ación p ara este proyecto que será la siguiente: C om o se ha dicho anteriorm ente que visual Basic es una herram ienta orientada a objetos, em pezarem os a program ar el objeto form ulario. D ando doble clic en cualquier parte del form ulario que no contenga ningún elem ento. A parecerá una ventana sim ilar a: jLJ [Load
Form P r í v a t e S u b Forro L o a d ( )
I
End Sub
En donde program arem os lo siguiente: C uando se ejecute el program a, habilite el puerto de com unicaciones y a la vez perm ita correr el tim er a intervalos de 1 m ilisegundo: Private Sub Form_Load() MSComml.PortOpen = True Timer1.Interval = 1 End Sub Luego se procederem os a program ar el objeto C om m andB utton, el que perm itirá encender el LED desde el com putador, actuando com o un pulsador. Para esto dar doble clic en el objeto C o m m a n d l.
Commandl
D oble clic para que aparezca la pantalla para la program ación y donde se escribirá: Private Sub Comrtiandl_Ciick () MSComml.Output = " P " 1 envie aerialmente la P para encender e l LED End Sub Esta parte del program a lo único que realiza es enviar el dato serial de “P” para que el m icrocontrolador recepte este dato y encienda el LED.
107
$
S.C. ' PIC
M ic r o c h ip
Ahora lo único que hace falta es program ar el timer, para que realice el moni torco del LED. Si se encuentra encendido, cam biará el color del círculo a rojo; caso contrario cambiará el color del círculo a plom o, m onitoreando de esta m anera el encendido y apagado de un LED. Para cum plir con este objetivo hay que dar doble clic en el com ponente timer que es sim ilar a un reloj, en donde aparecerá la siguiente ventana: Prívate Sub Timerl_Timer() End Sub
Procederemos a ingresar el código necesario para el monitoreo: Pr i v a t e 5 ub T i ra er1 _T im er() DATO = HSCcmml. I n p u t 1 Rece pte e l ciato s e r i a l y g u á r d e l o en l a 1 V a r i a b l e DATO I f Len (DATO) > 0 Then 1 S i e l c a r á c t e r de DATO es mayor a c e r o e n t o n c e s End I f If
DATO = "E" Then 1S i l a v a r i a b l e DATO es i g u a l a E S h a p e l . F i l l C o l o r = QBColor(12) 1 Carable de c o l o r a l c i r c u l o p e r r o j o I n d ic a n d o que s e ha e n c e n d i d o e l LE!) End I f If
DATO = "A" Then 1S i l a v a r i a b l e DATO es i g u a l a A S h a p e l . F i l l C o l o r = QBColor(8) 1 Cambie de c o l o r a l 1 I n d i c a n d o que s e a End I f
c i r c u l o por plomo apagado e l LED
End Sub
Como se puede notar, en esta parte de la programación 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 círculo por rojo y si es A pintar el color del círculo de plomo. El programa com pleto quedaría así:
108
$
S .C . ' PIC
M ic r o c h ip
Prívate Sub Commandl_Click() MSComml.Output = "P" 1 envíe serialmente el dato P End Sub Prívate Sub Form_Load() MSComml.PortOpen = True 1 Habilite el puerto de comunicaciones Timerl.Interval = 1 1 Ejecute el timer a intervalos de 1 milisegundo End Sub Prívate Sub Timerl_Timer() DATO = MSComml.Input 1 Recepte el dato 3erial y guárdelo en la 1 Variable DATO If Len(DATO) > 0 Then 1 Sí el carácter de DATO es mayor a cero entonces End If If DATO = "E" Then 1Si la variable DATO es igual a E Shapel.FillColor = QBColor(12) 1Cambie de color al círculo por rojo 1 Indicando que se ha encendido el LED End If If DATO = "A,r Then 1Si la variable DATO es igual a A Shapel.FillColor = QBColor(8) 1 Cambie de colar al 1 Indicando que se a End If
círculo por plomo apagado el LED
End Sub A hora co n tin u arem o s co n el m icrocontro lad o r. El d iag ram a esq u em ático p a ra este p royecto será:
• U1 RA7ÍOSC1/CLKIN RASCSC2/CLKOUT RASWCLR
RAO/ANO RA1/AN1 RA2/AN2ÍVREF RA3/AN3CMP1 RA4/I0CKJÍCMP2 RHMNT RB1/RX/DT R32/TX/CK RB3/CCP1 RB4 RB5 RB6/T1 O SO /TI CKI RB7/F10SI
PIC16F628A
¿réxf» ‘
C om u n ica ció n serial con V isual Basic. S ch e m a tic D e sizn
C om o se p u ed e a p re cia r el P in tran sm iso r del co n ecto r D B 9 e stá co n ectad o con el Pin que actu ará com o re c ep to r en el m icrocontrolad o r, y viceversa.
109
S.C. ' PIC
M ic r o c h ip
La program ación para el m icrocontrolador es: IH C L U D E
" m o d e d e fs .b e s"
CMCON=7
;
D lg lta llza
LED VAR P o r t A . O DATOS V A R B Y T E IN IC IO :
;
; ;
de
de
de
A
nom bre
tam año
P o r t B . 0 , N 9 6 0 0 ,D A T O S
sa lte
;
a
al la
B it
B .O
y
etiq u eta
caso
;
LED
H IG H
; B .l , PAUSE
para
a
R ecep te
;
una
sa lte
el
velo cid a d ;
a la
pausa
de
de 5
GOTO I N I C I O
;
sa lte
velo cid a d
a
la
da to s
etiq u eta
el
de
en víe
9600
a
apague
SI
se ria le s
va ria b le es
que
DATOS
Igual
a
P
IN IC IO
b its
serla lm en te por
segundo
en víe
9600
b its
serla lm en te por
segundo
LED
etiq u eta
por la
e l
e l B IT
le tra E
segundos
; B.L,
una
d a to s
la
LED
P o r t B . 1 , N 9 6 0 0 , [''A**] / ;
;
lo s
en
pendido
SEROUT LOW L ED
LED
sa lto
,* e n c i e n d a
5000
A. 0 p o r
guá rdelo s
P o r t B . 1 , N 960D , [ " E ”] ;
SEROUT
b it
256
P re n d id o
co n tra rio
etiq u eta
al
de
sa lto
D A T O S = " P " T H E N GOTO
GOTO I N I C I O P re n d id o :
D atos
Ingresan
IF
p u erto
cam bio
; /
etiq u eta
S E R IN
el
In ic io
Comunicación serial con l'isual Basic. PBP
110
por
el
e l B IT
la le tr a A
S.C.
$
PIC
M ic r ü c h ip
M AN EJO DEL SOFTWARE LABVIEW 7.0 El LabV iew es un lenguaje de program ación de alto nivel, de tipo gráfico, y enfocado al uso en instrum entación. Pero com o lenguaje de program ación, debido a que cuenta con todas las estructuras, puede ser usado para elaborar cualquier algoritm o que se desee, en cualquier aplicación, com o en análisis, telem ática, ju eg o s, m anejo de textos, etc. Cada program a realizado en LabV iew será llam ado Instrum ento V irtual (VI). El lenguaje mas apto para realizar proyectos com putarizados se lo ha considerado al softw are LA BV IEW p or varias razones como: • Es m uy sim ple de m anejar, debido a que está basado en un nuevo sistem a de program ación gráfica, llam ada lenguaje G. • Es un program a enfocado hacia la instrum entación virtual, por lo que cuenta con num erosas herram ientas de presentación, en gráficas, botones, indicadores y controles, los cuales son m uy esquem áticos y de gran elegancia. Estos serían com plicados de realizar en bases com o c+ + o visual Basic donde el tiem po para lograr el m ism o efecto sería m uchas veces m ayor. • E s un program a de m ucho poder donde se cuentan con librerías especializadas para m anejos de D A Q (Sistem as de adquisición de datos), R edes, Com unicaciones, A nálisis E stadístico, C om unicación con B ases de D atos (Útil para una automatización de una empresa a nivel total). • C on este las horas de desarrollo de una aplicación p o r ingeniero, se reducen a un nivel mínimo. • C om o se program a creando subrutinas en m ódulos de bloques, se pueden usar otros bloques creados anteriorm ente com o aplicaciones p or otras personas. • Es un program a que perm ite pasar las aplicaciones entre diferentes plataform as com o M acintosh y seguir funcionando. B Fíe
Í-IÍE ^ I
LabVIEW
gát
looIs
Help
NATIONAL INSTRUMENTS N ew ...
▼i
Open...
▼
Configure...
LabVIEW7£r/ms
111
Help...
|•
$
S.C . ' P IC
M ic r o c h ip
Sus partes m ás im portantes son: E L PA N E L F R O N T A L : D onde se ven los datos, se m anipulan y controlan. Í S U n l i t l c d 1 F ro n t P dn e l
Fie Edft Qperate lools frowse Wndov» üelp |<>|<§v|
'FIFII 13ptAppkattonFont
Es en esta pantalla es donde se encontrarán los elem entos 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 sim ilar a: ^ C o n tro ls
Q se a rch l
Al
labe l
Num Ctrls
Buttons
Text Ctrls
vV?|
o ]
f^l
LEDs
Text Inds
Num Inds
112
M 1 User Ctrls
n Graph Inds
ir All Controls
$
S.C. ' PIC
M ic r o c h ip
D onde se encuentran botones, sw itch, leds controles num éricos, indicadores gráficos, etc. E L D IA G R A M A D E B L O Q U E S : E n este se aprecia la estructura del program a, su función y algoritm o, de una form a gráfica en lenguaje G, donde los datos fluyen a través de líneas. ¡fe IJntitled 1 B lo ckD iagram * File Ecft Opérate Jools Browse Window Help . - r i r i r f i i f a g ■■■ | 13pt Application Font
j
< C ada elem ento que se seleccione en el panel frontal aparecerá encerrado en un cuadro dentro de la pantalla, en el diagram a de bloques, en donde se llevará a cabo la program ación que el usuario la vaya a desarrollar m ediante conexiones o uniones del mouse. Así:
113
$
S.C. ' PIC
M ic r o c h ip
EL PR O G R A M A C O M PIL A D O : Cuando se escribe en LabV iew , el algoritm o escrito de form a gráfica no es ejecutable p o r el com putador, p or tanto, LabV iew lo analiza, y elabora un código assem bler, con base en el código fuente de tipo gráfico. Esta es una operación autom ática que ocurre al ejecutar el algoritm o, p or tanto no es im portante entender com o sucede esto. Lo que si es algo para apreciar, es que en este proceso, se encuentran los errores de confección que son m ostrados en u na lista de errores, donde con solo darle doble clic al error, se aprecia en el diagram a de bloques, donde ocurre éste, para su corrección. LOS D A TO S: C om o el algoritm o m aneja datos, requiere de un espacio en m em oria para estos, lo que hace tom ar en cuenta que el com putador usado debe tener la m em oria suficiente para m anejarlos. Por ejem plo, cuando se usan grandes m atrices en cálculos se puede requerir de m ucho espacio. Tanto en el panel frontal com o en el diagram a de bloques, existe una paleta de herram ientas, que sirve tanto para editar el VI, o ejecutarlo según el m odo de trabajo que se tenga. PA LETA D EL PA N E L FRO NTAL
E jecuta el program a repetitivam ente. Perm ite detener el program a t Pausa el program a h H - g>i W II j 13pt Application Font
-» |
♦D"' |
S d
E jecuta el program a una sola vez, p or esta razón se debe to m ar en cuenta que si no se realiza un lazo repetitivo, el usuario no podrá observar el fiincionam iento del program a, debido a que el program a se ejecutará m uy rápido.
Entendido el funcionam iento de las partes m ás im portantes del L A B V IE W pasarem os a realizar una práctica sencilla, que perm ita prender y apagar un led m ediante un interruptor.
114
S.C. ' PIC
M
$
ic r o c h ip
Para la realización de esta práctica en la ventana de LabV iew seleccionar u na hoja virtual en blanco, así: t» I a b V Il w
rNATIONAL INSTRUMENTS C ro U • r * w ytrtuaJ inrtrumant For c o m p u ta ro n , u w r kntarfaca, cu * raport. Generóte, Anaíyze, and Dtspiay
Configure.
En el panel frontal seleccionar un interruptor y un led
$
S.C. ' PIC
M ic r o c h ip
D igitar C RTL + E para pasar al diagram a de bloques donde se realizará la program ación gráfica para este proyecto, que consistirá en unir m ediante el m ouse los dos objetos para prender y apagar el led m ediante el interruptor. f e IJntitled 7 Block Diagram • 0te fcdfc Qperóto ¡pote growse tfndow fcjelp l ^ l ^ l # [ í í l 9 l l W Q | l f f | o t ~13ptAppfcationFont
¡ ^ | " o ’ j -Q«^{ f o - |
Noten que al presionar C T R L + E aparece la pantalla del diagram a de bloques con los dos objetos seleccionados en el panel frontal. A hora sim plem ente h ay que ejecutar el program a para visualizar el proyecto.
SOTA: Tener en cuenta que si se desea observar el funcionam iento hay que correr el programa con el icono que ejecuta el program a repetitivamente, y a que no se le ha asignado ningún lazo repetitivo al proyecto.
116
S.C. ' PIC
M ic r o c h ip
Si se desea que este proyecto se m antenga m ediante un lazo repetitivo, se procede de la siguiente m anera: En el diagram a de bloques dar clic derecho en cualquier parte de la pantalla y se tiene una nueva ventana con diferentes herram ientas: -£ ]
Funcdons
Q v
¡
1 63S i
j i ^ r j
1
g
A
1
Output
Analysis
Input “
Exec Ctr
S
Search j
M
User Librarles
m
D>
Sig Manif
Arith/Compare
AB Functions
En esta ventana se tiene varios elem entos, los cuales perm iten realizar funciones de com paración, sum a, resta, entrada de datos, salida de datos, etc. Para nuestro caso se seleccionará en Exec C trl para seleccionar un lazo W hile Loop que perm ite realizar repeticiones en el sistem a.
Input
Analysis
Output ,1
User Librarles
-$3 Execution Control Exec Ctrl
While Loop
Fiat Sequence
OÜ Time Delay
Case Structure
ÜL Elapsed Time
Para que este lazo funcione en la práctica que estam os realizando se lo debe adicionar dentro de los elem entos que se está utilizando de la siguiente manera:
117
$
S.C. ' PIC
M ic r o c h ip
Y com o se puede apreciar al colocar este lazo se generó u n nuevo elem ento denom inado STOP, el que perm itirá parar el sistem a en cualquier m om ento durante su ejecución. Para ejecutar el program a b asta con d ar un clic en el icono W~, el que ejecutará el program a repetidam ente gracias al lazo W hile Loop que se ha adicionado al sistema.
118
$
S.C . ' P IC
Microchip
COMUNICACION SERIAL CON LABVIEW 7.0 LA BV IEW perm ite utilizar taijetas de adquisición de datos para com unicam os con periféricos extem os al com putador, lo cual tiene grandiosas ventajas, pero los costos de estas taijetas son m u y elevados. LA BV IEW perm ite com unicarse con los puertos de com unicación que posee el com putador, tanto con el puerto paralelo, com o con el puerto serial, siendo esta una de las grandes ventajas ya que el m icrocontrolador PIC puede aceptar un dato serial enviado desde el com putador. A continuación realizarem os u n ejem plo que perm ita recibir un dato serial y visualizarlo en un LED. Para este propósito se necesita un LED com o indicador y un botón para iniciar la com unicación serial, adicionando un indicador tipo texto p ara visualizar lo que contiene la buffer al ingreso de los datos seriales. La pantalla en el panel frontal queda así:
Para com parar si el estado del pulsador es alto o bajo es necesario ingresar en el diagrama de bloques la función C ase Structure, la cual perm itirá obtener un dato verdadero si se digitó el pulsador y un dato falso si no se lo presionó. -{a Functtóns
T¡
Inp ut
Q^Search
Ufo» M il L Analysis
O utput
User Libraries
!W ! -{¡3 Execution Centro!
W hfo Loop
Fiat Sequence
Time Delay
Elapsed Time
119
Case Structure
S.C. ' P IC
M ic r o c h ip
Seguidam ente se colocará esta opción en el diagram a de bloques.
llnido d e adouStcián d e datos señalas!
mm
Cuando el dato sea verdadero, el sistem a perm itirá el ingreso de datos seriales, caso contrario el sistem a no aceptará el ingreso de los m ism os.
de adquisición de datos seriafcsl
120
S.C. ' PIC
M ic r o c h ip
Es necesario incluir el m odo de com unicación serial que se encuentra en Instrum entos I/O. «£] Functions
m : User Librarles
« {3 A i Functtons
Exec Ctrl
Arith/Compare
S*g Mamp
AUFuKbons
tiurnent I ü l1 y E> Ubcl * 55)
a
’
¿El
< S > e * ________ I
■ £ ] In s tru m e n t
I/O
RisáFI írTR rw
N oten que en esta tabla, se encuentra la configuración del puerto serial, el que contiene: M odo para lectura, m odo para escritura, m odo para cerrar el puerto de com unicación serial, entre otros. Los controles más utilizados para proyectos en com unicación serial con LabV iew son: Los m odos de configuración, m odos de lectura, m odos de escritura y m odos de cerrar la com unicación, que posee el puerto serial.
121
S.C. ' PIC
M ic r o c h ip m
El detalle de los pines que posee cada uno de estos controles se presenta a continuación: Para el m odo configuración del puerto de com unicación serial es: VISA resource ñame baud rate (9600) data bits (8) parity (Q:none) error in (no error) flovv control (0:none) VIS A C onfigure S e ria l P o r tv i [V IS A C onfigure Serial P o rt]
Initializes the serial port spetified by V IS A reso u rce na me tothe spedfied settings.
Para el m odo de lectura en com unicación serial es: V IS A r e s o u r c e ñ a m e —-d up VISA resource ñame
b y te c o u n t-J error in (no error) —
r ^ r B®1
reacl bufo* error out
VISA R ead Reads the spedfied number o f bytes from the device or interface spedfied by V IS A re s o u rc e ñ a m e and returns the data in re a d buffer.
Para el m odo de escritura en com unicación serial es: V IS A r e s o u r c e ñ a m e
w ríte b u ffe r error in {n o error)
j %¡jd
^ resource ñame u return count out
VISA W ríte Wrftes the data from w ríte b u ffe r to the device or interface spedfied by V IS A r e s o u r c e ñ a m e .
Para el m odo de cerrar la com unicación serial es: V IS A r e s o u r c e ñ a m e -----------F ^ 2 \]
error in (n o error)
error out
V IS A Cióse
O oses a device sessíon or ev en t object spedfied by V IS A re s o u rc e ñ am e.
Como se puede apreciar en cada control se encuentra el pin V isa resource ñam e, el cual es de vital im portancia, ya que este perm ite adicionar el puerto de com unicación serial que en casi todos los com putadores es el C O M I.
122
$
Microchip
S.C. ' PIC
Para asignarle el puerto de com unicaciones serial C O M I, h ay que dar un clic derecho en el pin V ISA resource ñam e y seleccionar crear constante así:
Visible Items ► Help Description and Tlp... Set Breakpoint Serial Palette VISA Palette Create Replace
► ► ► ►
Constant Control Indicator Proper ty Method
► ►
Q uedando la pantalla así:
IEEHinsA &
En el control I/O que se asigna hay que escribir el puerto C O M I, y eso es todo. Continuando con nuestro proyecto, la pantalla cuando el pulsador no es digitado queda así:
f e c e m ü --------------------------------- 1
fcmao de la Adquisición de Datos seriales|
L -J
r
|I____ ______ ___ ___________ _______________
_______ -
....
Noten que se ha seleccionado el control que cierra la com unicación serial. A signando el puerto C O M I com o se ha detallado anteriorm ente.
123
S.C.
$
PIC
M ic r o c h ip
Si el pulsador es digitado, hay que leer el dato serial, lo cual requiere la siguiente programación: U to*
HS d dato es usual a
'A * e n Q e n d a d LED
Noten que en cada control V ISA el pin V IS A re s o u rc e ñ a m e , se lo conecta al mismo control 1/0 - C O M I, lo que perm ite leer el dato serial y com parar con la variable A, y si es correcto encenderá el LED. La program ación para que el m icrocontrolador PIC, envíe serialm ente el dato “A ” es: IN C L U D E
" m o d e d e ís . h a s ”
TN-CIC:
/
E ric-usta
;
In cluya
lo s modos d e
com unicación
sa ria l
ds sa lto
SKROUT PortB. 1,N9600, ["A"] / E n v í e s e r i a l z r . e n t e p e r e l B U B . l , a una 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 GOTO
r::iTlo
/ S a l t e a la
etiq u eta
INICIO
C om unicación serial con L A B V 1E W 7.0. P B P
124
$
S.C. ' PIC
M ic r o c h ip
U na vez conocida la recepción de datos seriales, realizarem os un ejem plo que perm ita enviar un dato serial desde LA B V iew al m icrocontrolador, el cual lo aceptará y si al com pararlo con otro dato que se encuentre dentro del PIC es el m ism o encenderá un LED externo. Para esto en el panel frontal es necesario incluir un Led para indicar que ha iniciado el envío de datos a través del com putador, un control de texto para escribir el dato que se desee enviar y un pulsador para iniciar la com unicación. Q uedando el panel com pleto así:
De la m ism a m anera que el ejem plo anterior hay que incluir en la program ación 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 program ación es:
Como se puede apreciar el LED se le ha conectado directam ente al pulsad o r para indicar que inició o no la com unicación serial.
125
$
S.C. ' PIC
M ic r o c h ip
Y en el caso de que el pulsador sea digitado la program ación queda:
é—
El dato a enviar se lo coloca en el pin de escritura de la buffer, de esta m anera conseguim os enviar cualquier letra o núm ero a través del puerto serial del com putador. El diagram a para el equipo extem o que receptará los datos seriales enviados desde el com putador es:
Vista P o sterio r
RAl RAI RA5 V II
RAI RA3 Ra : HAS Vdd
río
W
P.»’ P.52 P.SO
p. bo
P Ju
t o o o + -f\ o o o o /
R E S 330
RB5 P.04
_ a a a
7 /
^
PIC 16F62tA
LED
126
$
S.C. ' PIC
M ic r o c h ip
Y la program ación para el m icrocontrolador es: INCLUDE "modedefs .bas” / I n c l u y e l o s n o d o s d e c o m u n i c a c i ó n DATOS VAR BYTE / D a t o s a s t a m a ñ o d e 2 5 6 LED VAR PORTB.1 / C a m b i o d e n o m b r e a l B i t 3 . 1 p o r LED INICIO: ; E t i q u e t a p a r a s a l t o SERIN PortB.0,K9600,DATOS / R e c e p t e e l d a t o s e r i a l
enviado ; a una 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 y g u a r d e en l a ; v a r i a b l e DATOS I F DATOS=”A ” THEN HIGH LED / P r e g u n t e s i l a v a r i a b l e DATOS ; e s i g u a l a " A " , entonces e n c i e n d a e l LED LOW LED ; C a s o c o n t r a r i o A p a g u e e l LED
GOTO INICIO / S a l t e a l a
etiq u eta
INICIO
Comunicación serial con L ARVIEW modo escritura. PBP
127
$
S.C. ' PIC
4 .
M ic r o c h ip
MANEJO DE MODULOS DE RADIO - FRECUENCIA
La R A D IO - FR EC U EN C IA , perm ite al usuario com unicarse entre dos equipos, a través de dispositivos de transm isión y recepción de datos, sin necesidad que los equipos se encuentren alineados, y en algunos casos, no necesitan que se encuentren en línea de vista, es decir puede estar un equipo en una habitación y otro en o tra habitación. A ctualm ente existen en el m ercado una gran variedad de m ódulos de radio - frecuencia, los cuales perm iten al usuario operar con dispositivos electrónicos sin necesidad de cables. En algunos casos estos m ódulos no son m uy costosos, com o los m ódulos de transm isión y recepción de datos de FU TURLEC.
Estos m ódulos son sencillos de utilizar, extrem adam ente pequeños y perm iten realizar controles rem otos de radio - frecuencia a 433.92 M Hz. U tilizan m odulación del tipo ASK, y se usa para m anejar alarm as de vehículos, sistem as de seguridad, teléfonos inalám bricos, proyectos con robots y otros sistem as de control rem oto p or m edio de RF. Cada uno de estos m ódulos puede trabajar sin necesidad de un m icrocontrolador, con los circuitos integrados que perm iten codificar la señal que están enviando y recibiendo, en el caso del transm isor de radio - frecuencia necesita el circuito integrado H T12D , y el receptor utiliza el H T12E. El m anejo de estos m ódulos de RF, es m uy sencillo, ya que estos circuitos integrados tienen la ventaja de asignar un código para transm isión de datos, el cual debe ser el m ism o en el receptor para que el sistem a pueda funcionar. Los circuitos integrados H T12D y H T12E, operan hasta 4 bits, si se desea m ayor capacidad para el trabajo se debe utilizar los circuitos H T 648L en el caso del receptor y H T640 para el transm isor, los cuales trabajan a 8 bits cada uno.
129
$
S.C. ' PIC
M ic r o c h ip
M O DU LO T R A N SM ISO R . El m ódulo transm isor tiene una potencia de salida de hasta 8m W a 433.92 M Hz, alcanzando distancias de aproxim adam ente 140 m etros en espacios abiertos (línea de vista) y de 60 m etros en espacios internos donde se encuentren obstáculos com o paredes, separadores en oficinas, etc. Este tipo de transm isor acepta señales lineales y digitales de entrada y opera con un voltaje de 1.5V a 12V de corriente continua. Para m anejar estos dispositivos se puede utilizar un m icrocontrolador o un codificador HT12E, el que opera en controles rem otos de R F de 4 bits y posee 8 bits de direcciones. En la figura se m uestra una unidad transm isora usando el codificador H T-12E.
A N TE N N A
4-BU ENCODER CIRCUIT
mu i GND
Si se desea ocupar un m icrocontrolador, el pin 2 del m ódulo transm isor tiene que ingresar a cualquier bit del m icrocontrolador que se esté ocupando. Para que p or m edio de ese bit se generen los datos que deben salir a través de la antena a la unidad receptora. El diagram a para utilizar un m icrocontrolador en lugar del encoder H T-12E es: «rtwu
\l/
QJ
lililí » * -*
R AÍ
m e c e r*
c
1
=
R A Í
RAJ
RAO
RA4
R A :
r a o
k a
V s s
V d d
K ty j
Htíf
R 3í
R a í
R32
R S !
R33
RS4
P IC
1 6 F & 2 8 A
NOTA: El bit que se está ocupando para realizar el envío de datos de radio - frecuencia es el B.O del puerto B que posee el microcontrolador PIC 16F628A.
130
$
S.C. ' P IC
M ic r o c h ip
M ÓDULO R EC EPTO R . El m ódulo receptor opera a 433.92 M Hz, y tiene una sensibilidad de 3uV , opera con un voltaje de alim entación entre 4.5V y 5.5V de corriente continua, posee una salida lineal y una digital, adem ás contiene un capacitor variable para el ajuste de la frecuencia de recepción utilizando un destornillador plástico. En este tipo de m ódulo receptor se puede utilizar un m icrocontrolador PIC para el tratam iento de los datos o un decodifícador H T-12D , que se utiliza en controles remotos de RF de 4 bits y posee 8 bits de direcciones, En la figura se m uestra una unidad receptora usando el decodifícador H T-12D . H T-12D D E C O D E R IC +5V ...... Tá~|— T AO
vcc
Tfl
A1
VT
A2
O SC2 M
A3
OSC1
A4
DIN
A5
D3
A6
D2
A7
D1
3n
GND
DO
m
>
ANTENNA
P A V -I
JS]
\/
33K
1
ib —
ruin
R W S -434
12
3 4
O
5 6 7 8
r5V
I GND
4 -BIT DECODER CIRCUIT
-TLTLn Si se desea ocupar un m icrocontrolador, el pin 2 del m ódulo receptor tiene que ingresar a cualquier bit del m icrocontrolador que se esté ocupando. P ara que p o r m edio de ese bit ingrese la inform ación em itida por el m ódulo transm isor. El diagram a para utilizar un m icrocontrolador en lugar del decoder H T-12D es:
ür L
/ RA2 RAS RA4 RAS
RBÚ RE1 R52 R53
RAI RAO RA7 RAÍ
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 PIC 16F628A.
Vrlei R37 R 3í RS5 R34
PIC 1SFS28A
131
$
S.C. ' PIC
M ic r o c h ip
PROYECTOS CON MODULOS DE RADIO - FRECUENCIA El prim er proyecto es utilizar los m ódulos de radiofrecuencia para observar por medio de LEDs el envío de dalos utilizando los circuitos codificadores y dccodiPicadores para el transm isor y receptor respectivam ente. El diagram a para el transm isor es:
>J1Tl n]/
HTL2S
irz
v tc
revi CSC 0S C 2 .‘ T C
¿£11
AD1.0
TT
750K H a b ilita
T r a r » * t.is ió r i
DO
fe
02
Noten que en ci cncodcr H T-12E todos los pines d M A.O - A .7 se encuentran conectados a tierra, esto se debe a que estos pines generan la dirección del transm isor, es decir es el código de este dispositivo transm isor, y los pines A D 8 - A D 1 1 son los pines que perm iten realizar la transm isión de datos a 4 bits. Para el caso del dispositivo receptor se tiene que asignar el m ism o código, es decir, colocar los pines A.O - A .7 a tierra en el decodcr HT-12D. El diagram a para el receptor es:
I I §§
SalidaBies ‘i
132
$
S.C. ' PIC
M ic r o c h ip
En este caso los pines D 8 - D l l corresponden a las salidas. P ara visualizar el efecto de radio - frecuencia, se tiene que colocar los bits de salida (D 0-D 3) a través de resistencias de 330 ohm ios a leds. P or lo tanto el funcionam iento consiste en: Por cada uno de los sw itchs que se habiliten en la unidad transm isora, se prenderán los leds correspondientes a las salidas de la unidad receptora.
MÓDULOS DE RADIO - FRECUENCIA UTILIZANDO M ICROCONTROLADORES PIC. El segundo proyecto consiste en realizar un parpadeo de led utilizando u na unidad transm isora con m icrocontroladores PIC para enviar datos y utilizando una unidad receptora jun to con un led para visualizar los m ism os. Los diagram as de conexión son: U N ID A D R E C E P T O R A
UN IDAD T R A N SM ISO R A
ANTENNA
RWS-434
12
3 4
o ♦5V X
5 6 7 8
¥ GND
A/V
X7 I
|> —
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 program ará en el m icrocontrolador PIC 16F628A, en la unidad transm isora. Se ha utilizado el B it B.O del puerto B para enviar datos a través del m icrocontrolador.
133
$
S.C. ' PIC
M ic r o c h ip
La program ación para el m icrocontrolador 16F628A que se encuentra en la unidad transm isora es: / etiq u eta
i n i c i o :
HIOH PortB.O GOSUB rimer LOW PortB.O GOSUB timer
/S a c a 1L / Salta a / S a c a OL /S a lta a
GOTO ir.icio ; s a l t a timer:
/ etiq u eta
para
a la para
la
su b ru tin a la
/ regresa o r e t o r n a ;
el
GOTO
p o r ai puerto 3 . 0 la su b ru tin a e tiq u e ta d a por el p u e rto 3 .0 la su b ru tin a e tiq u e ta d a etiq u eta d a
su b ru tin a
PAUSE 1000 ; r e a l i z a RETURN
su b ru tin a
tim er
in ic io
GOSUB
una p a u s a a la
tim er
de
sig u ien te
1 segundo lin ea
después
GOSUB t i m e r Proyecto2 R F Transmisor. PBP
Para m áxim a eficiencia se recom ienda utilizar A ntenas del tipo látigo de 'A de onda. La m ostrada en la figura, está diseñada para 433M hz tiene 6.5 pulgadas de longitud y usa un cable coaxial de 50 O hm ios. E s a prueba de intemperie.
134
de
$
S.C. ' PIC
M ic r o c h ip
Y com o últim o proyecto utilizarem os 2 m icrocontroladores PIC para colocarlos uno a la entrada, y otro a la salida de las unidades transm isoras y receptoras respectivam ente. Este proyecto perm itirá contar los pulsos que se envíen p or la unidad transm isora y visualizarlos en un LCD. P ara contar los pulsos por un b it del m icrocontrolador es necesario conocer la instrucción COUNT.
INSTRUCCIÓN COUNT La instrucción C O U N T perm ite contar el núm ero de pulsos que ingresan a través de un bit del m icrocontrolador durante un período de tiem po. Su sintaxis de m anejo es: COUNT PORTB.0,1000,DATOS Para probar el m anejo de esta instrucción se realizará un program a que perm ita obtener los pulsos enviados a través de un generador de señal de reloj durante 5 segundos y m ostrar estos datos en un LCD. El diagram a de conexión es:
Instrucción COUNT. Schem atic P esien
Com o se aprecia se ha adicionado un control, el cual perm ite enviar señal de reloj. El icono en el cual se localiza este control es:
, en el cual se tiene que seleccionar D CLO CK.
135
$
S.C . ' PIC_________
M ic r o c h ip
El program a para este proyecto es: D EFIN E LCD_DR£G 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 ; transizlción de d a tes D EFIN E LCD _D BIT 4 ; d esd e el BIT 3 .4 h a s ta e l 5 .7 D EFIN E 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 t o 3 D EFIN E LC D _R SB IT 2 / en e l B IT 3 . 2 D EFIN E LCD_EREG PORTB ; D e f i n i c i ó n para u t i l i z a r e l er.able en e l puerto B D EFIN E L C D JE B IT 3 / en e l B IT 3 .3 DATO VAR WORD /
D a te d e tam año d e 65536 PULSOS"
LCDOUT $ T E . 1 , Mt:N TA CO R
IC :
/ E tiqueta
para
;
e n v íe a laprim era l i n e a d e l LCD ; e l t e x t o mCONTADOR P U L S O S "
salto
COUNT P C R T 5 . 0 , 1 0 0 0 , DATO ; c u e n t e l o s p u l s e 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 te 1 segundo y g u ard e e l : r e s u l t a d o e n l a v a r i a b l e DATO LCDOUT $ F E , $ C 0 , MCATC= " , DEC DATO / e n v í e 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 "DA7 0 - " y s a q u e e l d e c i m a l d e l e : q u e c o n t i e n e l a v a r i a b l e DATO GOTO
; Salte
a la
etiqueta
INICIO
Instrucción COL'ST. PBP
Conocido el m anejo de la instrucción C O U N T procederem os a realizar los circuitos para m anejar m ódulos de radio - frecuencia sin necesidad de los encoder y decoder. El diagram a para la unidad transm isora es: A N TEN N A
Como se aprecia en la figura se ha incorporado un m icrocontrolador PIC 16F628A para enviar una serie de pulsos por el bit B.O del puerto B, los cuales serán: El prim er rango de pulsos para el código de la unidad y el segundo rango el dato que se enviará.
136
$
S.C. ' PIC
M ic n o c H iP
La program ación para esta unidad es: R VAR BYTE ; V a r i a b l e R d e t a r . a ñ o d e 2 5 6 Y VAR BYTE ; V a r i a b l e Y d e t a r . a ñ o d e 2 5 6 TRISB=%0 ; H a c e s a l i d a e l B i t 3 . 0 d e l p u e r t o 3 para s a lto d e c ó d ig o p ara la R adio - F recu en cia FOR R=1 TO 10 ; L a z o d e c a n t e o d e s d e R ml h a s t a 1 0 PORTB=l ; E n v i a 1 L 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 PORTB=0 ; E n v i a OL p o r e l 3 i t 3 . 0 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 L a z o h a s t a R = 1 0 ; Pausa d e s e p a r a c ió n e n t r e e l c ó d ig o e n v ia d o y e l d a t o a e n v ia r
INICIO:
; E tiq u eta
.
PAUSE 5000 . * + * * * * * * * + *¡rn v í 0 d e l d a t o p o r R a d i o - F r e c u e n c i a FOR Y=1 TO 10 / L a z o d e e n v í o d e d a t o s d e s d e Y— 1 h a s t a 1 0 FOR R=1 TO 100 ; L a z o d e c o n t e o d e s d e R “ 1 h a s t a 1 0 0 PORTB=l ; E n v i a 1 L 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 PCRTB=0 ; E n v i a 1 L 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 NEXT / S i g a e l L a z o h a s t a R ^ 1 0 0 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 é c o n e l l a z o F o r h a s t a q u e Y= 1 0
GOTO INICIO / S a l t e TIMER: ; E t i q u e t a
a la
etiq u eta
INICIO
de s a lto
PAUSE 10 / P a u s a d e 1 0 r . i l i s e g u n d o s RETURN ; r e t o r n e a l a
lin e a donde se quedó RF Transmisor. PBP
Como se aprecia en la program ación se ha incorporado un lazo For para el código (10 pulsos enviados en 200 m ilisegundos), para la unidad transm isora de R adio - Frecuencia, y otro lazo For para el envío de datos, que en este caso se enviará 100 pulsos por el bit B.O durante 2 segundos.
137
$
S.C . ' P IC
M ic r o c h ip
El diagram a para la unidad receptora es: Módulo LCD 16*2
RWS-434
o
12 3 4
5 6 7 8
La program ación para esta unidad es: D EFIN E 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 c o 3 p a r a ; tra n sm isió n de datos D EFIN E LCD__DBIT 4 / d esd e e l BIT 3 .4 h a sta e l 3 .7 D EFIN E 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 to 3 D EFIN E LC D _R SB IT 2 / en e l 3 IT 3 .3 D EFIN E 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.able en e l p u e r t o 3 DEFIN E LCD _EBIT 3 / en e l BIT 3 .2 DATOS VAR BYTE /
V a r i a b l e DATOS d e
;**+*Coaparando e l IN IC IO :
c ó d ig o con e l
tamaño d e 256
del
tr a n s m i s o r de R f************
/ e tiq u e te de sa lto LCDOUT $ F E , 1 , " E S P E R A :" LCDOUT $ F E ,$ C 0 ," T O M A DE DATOS" COUNT P o r t B . O , 2 0 0 , DATOS / E s p e r a c o n t e o d e d a t o s d u r a n t e 2 0 0 m s I F DA TO 3=10 THEN PAUSE 5 0 0 0 : GOTO INGRESO / s i e s c o r r e c t o ; r e a l i c e una p a u s e d e 5 s e g u n d e s y s a l t e a l a e t i q u e t a i n g r e s e
GOTO I N I C I O
;
s a lte
la
a
etiqueta
INICIO
; * * * * In g reso d e D a to s ************ INGRESO:
/
e tiq u e ta
de
sa lto
COUNT P o r t B . 0 , 2 0 0 0 , DATOS / c u e n t e l o s d a t e s d u r a n t e 2 s e g u n d o s I F D A TO S=100 THEN GOTO V ISU A LIZA R / c o m p a r e s i e s i g u a l a 1 0 0 ; e n t o n c e s e n v í e a v i s u a l i z a r e n u n LCD e l c o n t e o d e 1 0 0 p u l s e s GOTO INGRESO /
s a lte
a
la
etiqueta
I NGRESO
138
$
S.C. ' PIC V IS U A L IZ A R :
/
M ic n o c m p
etiq\:e :s
de s a lte
VISUALIZAR
LCDOUT $ F E , 1 , "DATOS IKGRLSAECS** LCDOUT $ r E , $C Q ,D E C TATOS ; S a g ú - e r . e l LCD e i d e © i s a 2 d e l e / v a r i a b l e DATOS PAUSE 5 0 0 0 / P a u s e d e 5 s e g u r . d e s GOTO I N I C I O
/ s a lc e
a
la
etiqueta
I 21I C I C
R / : Receptor. P B P
Con esle tipo de ejercicios la em presa S.C. ' PIC ha realizado, varios tipos de alarmas para vehículos, envío de datos para alineación de vehículos, desarrollo de tele - lectura para m edidores de agua potable, entre otros.
139
$
S.C. ' PIC
M ic r o c h ip
MÓDULOS DE RADIO - FRECUENCIA CON RFPIC A ctualm ente existen m icrocontroladores que tienen la ventaja de convertirse en m ódulos de transm isión y recepción de radio - frecuencia com o son: Los R FPIC s. P ara transm itir datos se tiene al rfPIC 12F675 y para recibir datos al rfR X D 0420, pero el circuito que se debe m ontar es m uy com plicado, ya que las bobinas que necesita no se encuentran en el m ercado. Por esta razón M IC RO C H IP ha desarrollado m ódulos de transm isión y recepción de radiofrecuencia para evitam os la com plejidad de arm ar estos circuitos.
El m anejo de estos m ódulos de radio frecuencia no es m uy com plejo, ya q u e lo único que se debe realizar es m edir la variación del potencióm etro que posee el transm isor y de acuerdo a ese dato p roceder a realizar una función específica. A m ás de estos m ódulos es necesario tener un m icrocontrolador, el cual m edirá la variación del potencióm etro. Por esta razón es necesario estudiar la instrucción POT, la cual perm ite m edir la variación de un potencióm etro de 5K hasta 50K de acuerdo a la carga y descarga de un capacitor conectado en serie. El diagram a esquem ático para esta función es:
140
$
S.C. ' PIC
M ic r g c h ip
INSTRUCCIÓN POT La sintaxis de esta instrucción es: POT PortB.ü,255,DATO Que significa: Tom e el dato del potencióm etro a 8bits y guárdelo en la variable DATO. La program ación para esta práctica es: D EFIN E LCD_DREG PORTB
; D e fin ic ió n para ; transm ición
u tiliza r
4 b ita
d e l p u e r to B para
de datos
D EFIN E LCD _D BIT 4 ; d e s d e e l B I T B . 4 h a s t a e l B. 7 D EFIN E 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 ; en e l p u e r to B D EFIN E L C D _R 3B IT 3 / en e l B IT B .3 D EFIN E LCD EREG PORTB / D e f i n i c i ó n p a r a D EFIN E LCD__EBIT 2 DATO VAR BYTE IN IC IO :
;
;
u tiliza r
el
enable
de co n tro l/d a to *
en e l p u e r to B
en e l B IT B .2
; D a to d e tam año de 256 para
e tiq u e ta
salto
POT P o r t B . 0 , 2 5 5 , DATO ; T o m e 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 e n l a v a r i a b l e DATO LCDOUT $ F E ,l," D A T O E S : ",D E C DATO ; D i s p l a y e l a i n f o r m a c i ó n e n ; PAUSE 1 0 0 GOTO I N I C I O
;
/ pausa
sa lte
a la
u n LCD
d e 100 m i l i s e g u n d o s e t i q u e t a INICIO
Medida de un Potenciómetro. PBP
De esta m anera se podrá leer el m ódulo de radio frecuencia conectando el PIN RA 3 del receptor en la entrada del PIN RBO del m icrocontrolador PIC y de acuerdo a ese dato de 8bits, realizar cualquier tipo de aplicación, com o el m onitoreo de u n a plataform a para la alineación de vehículos, entre otros.
141
S.C. ' PIC
M ic r o c h ip
PROGRAMANDO EL PIC “16F819” Y EL “16F877A” M ICRO CO N TRO LAD O R PIC 16F819 La program ación para los m icrocontroladores en general es la m ism a, lo que difiere unos de otros es la capacidad que poseen, y ciertas ventajas m ás com o la de tener conversores análogo - digital. El m icrocontrolador PIC 16F819 posee 5 conversores análogo - digital, perm itiendo al usuario ocupar esta ventaja para realizar sistem as de m edida de tem peratura, sistemas autom otrices com o el balanceo de llantas, entre otros. Tam bién tiene la ventaja de utilizar oscilador interno, que puede variar desde 31.25 K H z hasta 8M Hz.
CONVERSOR ANÁLOGO DIGITAL Para utilizar la conversión análoga - digital que posee éste m icrocontrolador es necesario estudiar la instrucción AD CIN .
INSTRUCCIÓN ADCIN Los bits del puerto A , que perm iten realizar la función de conversores análogo - digital son el A.O, A .l, A .2, A .3 y A .4, los que detectan el nivel de voltaje que ingresa p or el PIN, y si trabajam os a 8 bits, el nivel de voltaje los dividirá en 256 segm entos que irán desde 0 a 255. Por lo tanto la instrucción A D CIN , perm ite entregar niveles de voltaje y guardarlos en una variable definida p o r el usuario. Su sintaxis de m anejo es: ADCIN 0,DATOS Q ue significa lea el canal cero, y guarde el resultado obtenido en la variable D A TOS. Si recordam os. Para apagar los com paradores de voltaje del puerto A que posee el m icrocontrolador PIC 16F628A y convertirlos a digitales, se realizaba m ediante la instrucción C M C O N =7. Para este tipo de m icrocontrolador la instrucción que perm ite realizar esta función es: A D C O N l= 7.
143
$
Microchip
S.C. ' PIC
A continuación se presenta un program a el cual perm ite leer los niveles de voltaje que ingresan p o r el pin que actúa com o conversor análogo digital que posee el m icrocontrolador PIC 16F819. El potencióm etro debe ser de 5K hasta 50K. El diagram a de conexión es: LCD1 LM 016L
RV1 n
U1
1£_ RA7X5SC1/0-KN 1L—RA6/05C2A1KOUT RASjMCLR
RAO/ANO RA1/AN1 RA2/AN2M5EF RA3/AN3CMP1 RA4/T0CKUCMP2
«r u i uj
_3 18
1
RB1IRXJDT RB2/TX/CK RB3/CCP1 RB4 RB5
10 11
12. 13
R86/TK
Conversor Análogo - Digital. Schematic Pesian
Y la program ación para esta práctica es: 03C C O N = % 110G 100
; C alibra
D E FIN E LCD_DREG PORTB / ; D E FIN E L C D _D B IT
4
el
o scila d o r
in tern o
D e fin ic ió n para tran sm ición
;
u tiliza r
D efin ició n para
hastae l
2
d el p u e r to B para
B .7
u tiliza r
el
reg istro
de
co n tro l/d a to s
en e l p u e r to B
D E FIN E L C D _R S B IT 3 ; en e l B IT B .3 D EFIN E LCD_EREG PORTB ; D e f i n i c i ó n p a r a u t i l i z a r D EFIN E LCD E B IT
4 b its
de datos
/ desde e l BIT B .4
D EFIN E LCD RSREG PORTB /
a 4 MHz
; en e l
B IT B .2
144
el
enable
en
el p u erto B
$
S.C. ' PIC
M ic r o c h ip
D E FIN E A D C _ B IT S 0 / F i j a e l n ú m e r o d e b i t s c o n l o s q u e D E FIN E ADC_CLOCK 3 / F i j a e l r e l o j r c - J D E FIN E ADC_SAMPLEUS 5 0 / F i j a e l t i e m p o de m uestreo ; e n tr e F ija r e l canal y com enzar la co n versió n a /d en
T ris A = % l / E l B I T A .O e s e n t r a d a A D C O N 1=*00001110 ; e l flJ T A .O e s c o n v e r s o r l o s d e m á s DATOS VAR BYTE ; DA TO S d e tam año de 256 IN IC IO :
; E tiq u eta
para
ADCIN O ,D A T O S
se
va
a trabajar
un tie m p o
son
de
50 uS
d ig ita les
sa lto
/ Leer
el
canal
0 y
guardar lo s
da tos
o b tenidos
; e n l a v a r i a b l e DATOS LCDOUT $ f e / l / "E L 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 "E L DATO E S " e n l a p r i m e r a l i n e a d e l LCD LCDOUT $ f e , $ c G , D E C 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 1 0 0 ; p a u s a d e LOO m i l i s e g u n d o s GOTO I N I C I O
;
s a lte
a la
etiq u eta
INICIO
Conver s or A n á l o g o Digital P I C 16F819. P B P
En el softw are proteus no se encuentra este m icrocontrolador, p or lo que el circuito se lo puede probar en el PIC 16F877A , que es sim ilar, pero con la diferencia que tiene 40 pines para trabajar. M ás adelante se indicará las ventajas de utilizar este m icrocontrolador. U no de los proyectos m ás utilizados con este tipo de m icrocontrolador PIC es term óm etro digital utilizando el sensor de tem peratura LM 35, el cual presenta en su de salida una variación de 10 m V por cada grado centígrado que haya censado. alim entación para este sensor varía entre 4 a 30 voltios, p ara nuestro caso alim entarem os con 5 Vcc.
un pin La lo
El diagram a para u tilizar este sensor es: - ■ ■ • u i .................................................................................................................................................. : : •
.................... LM)Í.......................................................................................
145
................
S.C.
$
PIC
M ic r o c h ip
DIFERENCIAS ENTRE EL PIC 16F628A Y EL PIC 16F819 En la siguiente tabla se presenta las principales diferencias entre los m icrocontroladores PIC 16F628A y el PIC 16F819 P IC
M em oria de P ro g ra m a
M em oria d e datos EEPROM
M em oria RAM
C o m p arad o res
C onversores A/D
P uertos
l6F628A 16F819
2048 2048
128 256
224 256
2 N /D
N /D 5
2 2
146
$
S.C . ' PIC
M ic r o c h ip
M ICROCONTROLADOR PIC 16F877A Este tipo de m icrocontroladores es uno de los más utilizados para realizar proyectos que requieren m ayor capacidad para guardar datos, m ayor núm ero de puertos para trabajar com o entrada o salida, etc. Este m icrocontrolador, necesita un oscilador externo, y una resistencia pulí - up para conectarlo en el m aster clear, ya que no hay form a de deshabilitarlo. U na m anera sencilla de darse cuenta que el m icrocontrolador posee las ventajas de tener oscilador interno y m aster clear program able es directam ente en el IC- PROG. IC P r o g 1 .0 5 D EáooTi
Archivo Ó r
■
P r o g r a m a d o r d e p r o to tip o s
Bufer
Ajustes
Bi «ñs»
Comando
*
%
herramientas
%
%
Ver
Ayuda
sjT
[PIC 16F628A
0000: 0008:
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3 FF F
3FFF
YYMfYW
3FFF
3FFF
3FFF
3FFF
3FFF
3 FF F
3FFF 3FFF
yyyyyyyy i ’ ;' - ....i »l- —-— yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy
0010:
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
0018:
3FFF
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
0030:
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF 3FFF
3FFF
3FFF
3FFF 3FFF
3FFF 3FFF
0040:
3FFF 3FFF
3FFF 3FFF
3FFF
0038:
3FFF 3FE T
3FFF
3FFF
3FFF
3FFF 3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF 3FFF
3FFF
3FFF
3FFF
3FFF 3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
3FFF
0048: 0050: 0058:
JJf
3FFF
a
- ¡
WWDT r PVWT
Dfrección - Datos Eeprom
R7 MCLR
0 0 0 0 : F F F F F F FF F F F F F F F F FF F F F F FF F F F F
0008:
FF FF
0010:
FF FF F F
0018:
FF FF F F FF
FF
3
Configuración
Dirección - Código programa 3FFF
“
FF FF
FF FF FF FF FF FF
0 0 2 0 : FF FF F F FF FF FF FF FF 0028:
FF FF
FF FF
F F FF F F F F
0030:
FF FF
FF F r
FF FF
FF FF
0038:
FF FF
FF
FF F F F F
FF FF
yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yw yyyy yyyyyyyy
/V
I ? B0C€N LVP
W
r cpd r cp
Chedcsun
Valor O
¡19FF
¡FFFF
Palabra config; 3FFFh
Butfer 1 [ B uff er 2 | Buffer 3 | Buffer 4 [ Butfer 5 JOM FTogrammer en Comí
Dtspostr/o: PIC 16F628A (147)
En el gráfico se puede observar que en las opciones de configuración para el PIC 16F628A existe una que dice In tR C C L K O U T , que significa q ue posee oscilador interno. Y en los bits de configuración se puede deshabilitar la opción del M C R L , para no ocupar el M aster clear. A hora si seleccionam os en el IC -PR O G el PIC 16F877A , nos darem os cuenta que estas opciones no se las encuentra, indicando al usuario que no posee m aster clear program able ni oscilador interno.
147
$
S.C. ' PIC IC Prog Archivo
M ic r o c h ip
es
1.0b!) P rogram ador do protolipos
Edición
Bufer
Ajustes
Comando
Herramientas
Ver
ai
Ayuda
<9 ^
~Z¡
P1C16F877A
Dirección - Cótfgo programa
Configuración
o o o o : 3FFF 3FFF 3FFF 0 0 0 8 : 3FFF 3FFF 3FFF 0 0 1 0 : 3FFF 3FFF 3FFF 0 0 1 8 : 3FFF 3FFF 3FFF 0 0 2 0 : 3FFF 3FFF 3FFF 0 0 2 8 : 3FFF 3FFF 3FFF 0 0 3 0 : 3FFF 3FFF 3FFF 0 0 3 8 : 3FFF 3FFF 3FFF 0 0 4 0 : 3FFF 3FFF 3FFF 0 0 4 8 : 3FFF 3FFF 3FFF 0 0 3 0 : 3FFF 3FFF 3FFF 0 0 3 8 : 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
m t m t yyyyym yyyyym YYYtM Itt ^^ i1^i n u n 11 yyyyyyyy
yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy yyyyyyyy
*í
B uffer 1
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
B u ffe r 2
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
B uffer 3
FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF
B u ffe r 4
FF FF FF FF FF FF FF FF
< ►
i O sdador |
i
i
i j-j Li W iLiLJL¿l.!L
B is configuración I v V\OT V
r FMyRT
Dirección - Datos Eeprom oooo: 0008: 0010: 0018: 0020: 0028: 0030: 0038:
&
yyyyyyyy
A 1
B006N
&
LVP
r r
yyyyyyyy ÍYYYYYYY
P
CPO CP
i
yyyyyyyy STyw yy
yyyyyyyy
Checksum
yyyyyyyy
JOFCF
Valor D
diiittmmimmtmnmm
yyyyyyyy
B uffer 5 JDM Programmer en Comí
Disposlívo: PIC 16F877A (99)
P or esta razón para que el PIC 16F877A funcione es necesaria la siguiente conexión:
U1
2222— 25¿2— 21—
R BO /1M T
01C1CUCH
O S C 2'C C K O U T
RB1
MCUW**/THV
RB2 R B 3 /P 0 M RB4
M C /A K )
RB0
R A I/ A H 1 /p o c
R A2/AM 2/vner
R B 7 /P O O
R A 3 / A JG A / R E f*
r m
RAVTO CW
üz acomoeom cM iZ_ rcwtcpi 1222_ 21_l
w imikR
R C 1 7 T 1 0 S I/C C P 2 R C 3 /S C K /S C L R C 4 /5 D 1 /S D A R C 3 /S D O
2 5 - RCfl/TX/CK
22 -
ifi_
2°
R C 7 /R X / D T
R D O /P S P O
_
R 0 1 /P S P 1 21— 22_
R D 2 /P S P 2
22 —
2g_ 2230_
R D 3 /P S P 3 R C W PSPA R D 5/P S P S R W VPSPO R D 7/P B P 7
p iq 1 0 7 0 7 7
«TEXT*
Conexión para el PIC 16F87Z4. Schematic Pesien
148
S.C.
©
PIC
M ic r o c h ip
En cuanto a la program ación la única diferencia es que h ay que seleccionar en el com pilador PIC BA SIC PR O el PIC 16F877A, y para digitalizar el puerto A, se tiene que incluir la instrucción A D C O N l= 7.
DIFERENCIAS ENTRE EL PIC 16F628A. 16F819 Y 16F877A En la siguiente tabla se presenta las principales diferencias entre los m icrocontroladores PIC 16F628A y el PIC 16F819 PIC
M em oria de P ro g ra m a
M em o ria de datos EEPROM
M em oria RA M
C o m p arad o res
C onversores A/D
Puertos
16F628A 16F819
2048 2048 8192
128 256 256
224 256 368
2 N /D N /D
N /D 5 8
2 2 5
I6 F 8 7 7 A
CENTRAL DE ALARMAS UTILIZANDO UN M ICROCONTROLADOR PIC 16F877A U na central de alarm as es un dispositivo electrónico el cual perm ite controlar una o varias zonas de protección contra robos en el hogar, la oficina, en centros com erciales, entre otros. En el m ercado existe una gran variedad de centrales de alarm as, las que varían de acuerdo a sus periféricos de control y al núm ero de zonas que poseen. En este caso realizarem os una central para controlar 3 zonas con opción de m onitoreo propio. El m onitoreo perm ite al usuario asignar 2 núm eros telefónicos a los cuales va a llam ar, siendo uno de ellos un telefono convencional y el otro un núm ero celular, a los cuales asignarem os un sonido sim ilar a una sirena, lo que perm itirá saber si existe o no violación de cada una de las zonas. A m as de ello esta central posee un TIM ER de entrada o salida, el cual se asignará m ediante el teclado desde 10, 20, 30, 40, 50 segundos y 1, 2, 3, 4, 5, 6 , etc. minutos. L IS T A D E M A TER IA LES
-
11 Resistencias de 4,7K a / W. 8 Resistencias de 330 ohm ios a % W. 2 Resistencias de 600 ohm ios a 1W. 1 Resistencia de 2.2K a 1/. W. 1 Resistencia de 120 ohm ios a 1/. W. 1 Resistencia de 1,5 K a ’/ . W. 12 Diodos 1N4007 8 leds de alto brillo color rojo para POWER. 2 Capacitores cerám icos de 22 pF 1 Capacitor electrolítico de 1uF a 100V 1 Cristal de 4 MHz 1 Buzzer de 12V para placa 1 Tira de espadines rectos Placa de circuito im preso S.C. ' PIC-CA-23-02
149
-1 Capacitor electrolítico de 1000uF 25V - 6 Borneras de 2 tornillos. - 2 Transistores 2N3904. -1 Relé de 120V a 12V -1 TIP 110 -1 LM317 - 1 7805 -1 Porta-fusible para placa -1 Fusible de 2.5A -1 Batería recargable de 12V a 4A -1 zócalo de 40 pines -1 Pie 16F877A -1 Teclado Hexadecim al S.C. ' PIC -1 Transform ador de 120V a 12V
$
S.C. ' PIC
M ic r o c h ip
En este circuito se ocupará todo lo aprendido anteriorm ente, com o es el diagram a para realizar una llam ada telefónica, M anejo de teclado hexadecim al, etc. Lo único nuevo en este proyecto es la utilización de una fuente de 12V con recargador de baterías. F u sib le 12V sa lid a
Fuente de 12V con recar'¿ador Je batería. Schematic Pesien
El diagram a para la sim ulación de este proyecto en el Proteus es:
Alarma 3 Zonas. Schematic Pesian
En el diagram a se puede apreciar que p ara sim ular la sirena se h a puesto un Led, para sim ular la llam ada telefónica un SO U N D ER el cual em itirá los tonos de los números telefónicos a llamar.
150
$
S.C. ' PIC
M ic r o c h ip
La program ación para este proyecto es: ADCONl=7 ; A p a g a l o s
com paradores de v o lt a je y ; d lg lta liz a lo s p u erto s 8 device XT_osc /U t i l i z a u n c r i s t a l e x t e r n o d e 8 device EOD_OFF / A p a g a e l b o d e n d e c o n s u m o
A B C D
VAR VAR VAR VAR
PORTB.7 PORTB. 6 PORTB. 5 PORTB. 4
/ C am bio / C am bio ;C am bio /C am bio
de de de de
nombre nombre nombre nom bre
al al al al
b b b b
i i i i
t t t t
3 .7 3 .6 3 .5 3 .4
4
MHz
por A por 3 por C por D
UNO VAR PORTB. 3 / C a m b i o d e n o m b r e a l b i t 3 . 3 DOS VAR PORTB. 2 / C a m b i o d e n o m b r e a l b i t 3 . 2 TRES VAR PORTB. 1 / C a m b i o d e n o m b r e a l b i t 3 . 1 CUATRO VAR PORTB.O / C a m b i o d e n o m b r e a l b i t 3
p o r UNO p o r DOS p o r T RE S . 0 p o r CUATRO
POWER VAR P0RTC.7 / C a m b i o d e n o m b r e a l b i t
C. 7 p o r POWER
LEDZl VAR PORTC.O ; C a m b i o d e n o m b r e a l b i t LEDZ2 VAR P0RTC.1 ; C a m b i o d e n o m b r e a l b i t LEDZ3 VAR PORTC.2 / C a m b i o d e n o m b r e a l b i t
C . O p o r LEDZ1 C . l p o r LEDZ2 C . 2 p o r LEDZ3
Z1 VAR PORTD.O / C a m b i o d e n o m b r e a l b i t Z2 VAR P0RTD.1 / C a m b i o d e n o m b r e a l b i t Z3 VAR PORTD.2 ; C a m b i o d e n o m b r e a l b i t BIP VAR PORTD.7 / C a m b i o d e n o m b r e a l b i t
D.O p o r D .l p o r D .2 p o r D .l por
Zl Z2 Z3 BIP
R VAR WORD / V a r i a b l e R d e t a m a ñ o d e 6 5 5 3 6 y VAR BYTE • Variable y d e t a m a ñ o d e 2 5 6 z VAR BYTE / V a r i a b l e z d e t a m a ñ o d e 2 5 6 x V AR BYTE / V a r i a b l e x d e t a m a ñ o d e 2 5 6 i V AR BYTE ; V a r i a b l e i d e t a m a ñ o d e 2 5 6 T V AR BYTE ; V a r i a b l e T d e t a m a ñ o d e 2 5 6 DE V AR BYTE / V a r i a b l e DE d e t a m a ñ o d e 2 5 6 numero V A R BYTE / V a r i a b l e n u m e r o d e t a m a ñ o d e 2 5 6 Sirena V AR PORTA.0 ; C a m b i o d e n o m b r e a l 3 i t A . O p o r S i r e n a Rele V AR PORTD.5 / C a m b i o d e n o m b r e a l 3 i t D . 5 p o r R e l e TONOS VAR PORTD.4 / C a m b i o d e n o m b r e a l b i t D . 4 p o r T o n o s Clavel Clave2 Clave3 Clave4
VAR VAR VAR VAR
BYTE BYTE BYTE BYTE
; V a ria b le ; V a ria b le
; Variable / V a ria b le
C lavel C lave2 C lave3 C lave4
151
de de de de
tam año tam año tam año tam año
de 256 de 256 de 256 de 256
_
$
S.C. ' PIC ;
M ic r o c h ip
C lave
de
fá b rica
de
4 núm eros
=1
/ C la v e l a sig n a d a
con
C la v e 2
=2
; C lave2 a signada
con 2
C la v e 3
=3
; C la ve3 a sig n a d a
con 3
C la v e 4
=4
; C lave4 a sig n a d a
con
C la v e l
i
4
t
; Secuencia de ín ic ia liz a c ió n
de ls
cen tra l
T R IS C = 0 FOR R = 1
TO
5
?CRTC= *10000001 PAUSE 200 ?CRTC:¡*01000010 PAUSE 2 0 0 PCRT C:¡*00100100
PAUSE 2 0 0 PORTO* *00011000 PAUSE 2 0 0 PCRTC^ ■*00100100 PAUSE 200 P C R T C : *01000010 PAUSE 2 00 NEXT
?C ?.T C = 0
; A pague
todo
el p u erto
Lazo de p re g u n ta s para: S i se d íg it a la te c la D . . . S i se dicrita la te c la C . . .
C
A c tiv a la c e n t r a l d e alarm as Para c a m b ia r la c l a v e d e f á b r i c a
IN IC IO : ?C R T C = 0 H IG H A : H IG H B : HIGH C : LOW D I F C0ATRO—0 THEN GOSUB AR : GOTO PRENDIDO H IG H A : H IG H B : LOW C : H IG H C I F CUATRO=0 THEN GOSUB AR : GOTO CCLAVE GOTO I N I C I O
152
$
S.C. ' PIC /
In icia liza ció n
M ic r o c h ip del
TZMER d e
la
cen tra l
P R E N D ID O : GOSUB b a r r i d o
:
GOSUB AR
x = n u m e ro IF
x=13
THEN
GOSUB b a r r i d o
:
GOSUB AR
y = n u m e ro 2= 0
D E=y*10 GOTO c o n t o o E N D IF GOSUB b a r r i d o
:
GOSUB AR
y=numero
D E=0
Z =(x*10)+y c o n te o : FO R R = 1 TO 2 FOR i = l
TO 2 5
P O R T C =% 1 1 1 1 1 1 1 1 PAU SE 1 0 0 0
:
H IG H B I P
P O R T C = 0 : LOW B I P PAU SE 1 0 0 0 N EXT NEXT F O R R = 1 TO DE
PO R TC=% 1 1 1 1 1 1 1 1 PAU SE 4 0 0
:
H IG H B I P
P O R T C = 0 : LOW B I P PAU SE 4 0 0 NEXT
• ******************************* / Alarm a
activa d a ,
preguntando
sí
existe
vio lación
de
zonas
A C TIV A : H IG H POWER FOR R = 1 TO 1 0 0 I F Z l = l THEN GOTO FALARMA I F 2 2 = 1 THEN GOTO FALARMA I F 2 3 = 1 THEN GOTO FALARMA PAUSE 1 0
*•
NEXT LOW POWER
153
$
S.C. ' PIC
M ic r o c h i p PO R R = 1 TO 1 0 0 IF IF
Z l = l THEN GOTO FALARMA Z 2 = l THEN GOTO FALARMA
IF
Z 3 = l THEN GOTO FALARMA
P A U SE 1 0 N EZT GOTO A C T IV A
/
S en sib ilid a d
de
la s
zonas
FALARMA: PA U SE 1 0 0 IF
Z l= l
TH EN H IG H L E D Z 1
:
GOTO ENTRADA
IF IF
Z2=l Z3=l
THEN H IG H L E D Z 2 TH EN H IG H L E D Z 3
: :
GOTO ENTRADA GOTO ENTRADA
GOTO A C T IV A
/
TIMER p a r a
entrada
; No s e a c t i v a l a ; d ig i t e la te c la
c e n tr a l h a sta que e l usuario 7 y l a c l a v e a s ig n a d a
ENTRADA: F O R R = 1 TO z FOR i = l
TO 2 5
H IG H POWER F O R T = 1 TO 1 0 0 HIG H A :
HIGH B
: LOW c
I F UNC=0 THEN GOSUB AR PAUSE 1 0
: H IG H D : GOTO t e c l a u n o
N EZT LOW POWER FO R T = 1 TO 1 0 0 HIG H A : HIG H B : LOW ; I F UNO=0 THEN GOSUB AR PAUSE 1 0 NEZT NEZT NEZT
154
: H IG H D : GOTO t e c l a u n o
*
S.C. ' PIC
M ic r o c h ip
FOR R =1 TO DE HIGH POWER FOR T=1 TO 40 HIGH A : I F ÜNO=0 PAUSE 1 0 NEZT LOW POWER FOR T = 1 TO 40 HIGH A : I F UNO=0 PAUSE 1 0 NEZT
HIGH B s LOW C : HIGH D: THEN GOSUB AR : GOTO t e c l a u n o
HIGH B : LOW C : HIGH D: THEN GOSUB AR : GOTO t e c l a u n o
NEZT -
+ + * + + * + + * + * + * * * + * * * * * + * + *
; S i n o d í g i t o l a c l a v e d u r a n t e e l t i e m p o d e l TIMER ; S a lta r á a p re n d e r la s ir e n a e inm ediatam ente ; r e a liz a r á l a s llam adas te le f ó n ic a s GOTO ALARMA
/ B arrido
del
T eclado
BA RRIDO : FOR R = 1 TO 2 0 0 0 LOW A r= UNO =: DOS = TRES CUATRO = H IG H A LOW B
0 0 0 0
THEN THEN THEN THEN
I F UNO = I F DOS = IF TRES = I F CUATRO = H IG H B LOW C I F UNO = I F DOS
0 0 0 0
THEN n u m e r o THEN n u m e r o THEN n u m e r o THEN n u m e r o
IF IF IF IF
0 0 I F TRES 0 I F CUATRO = 0 HIG H C LOW D I F UNO = 0 I F DOS = 0 I F TRES = 0 IF
THEN THEN THEN THEN
THEN THEN THEN CUATRO = 0 THEN HIG H D
n u m e r o = 1 : RETURN n u m e r o = 2 : RETURN n u m e r o = 3 : RETURN n u m e r o = 1 0 : RETURN
num num num num
=4
: RETURN
=5 =6
: RETURN : RETURN
= 1 1 : RETURN
e r o = 7 : RETURN e r o = 8 •.RETURN e r o = 9 : RETURN e r o = 1 2 : RETURN
n u m e ro n u m e ro n u m e ro n u m e ro
= 1 4 : RETURN = 0 ¡RETURN = 1 5 : RETURN = 1 3 : RETURN
155
&
S .C . ' P IC PA U SE
M ic r o c h ip
10
NEXT RETURN
/ ; A n tir e b o te de T ecles d e l AR: H IG H POWER
:
teclado
H IG H B I P
PA U SE 1 0 0 LOW POWER
: LOW B I P
E S P A C IO : I F UNO
= 0 THEN E S P A C IO
IF
DOS
= 0 TH EN E S P A C IO
IF
TRES
= 0 TH EN E S P A C IO
IF
CUATRO
= 0 TH EN E S P A C IO
PA U SE 2 5 RETURN
/ ALARMA: H IG H S i r e n a GOSUB d e s c o n e c t a r GOTO ALARMA
; Preg u n ta s i d í g i t a e l 7 apaga irjzediaza~.er.ze l a S i r e n a ; y pregunta
l a c l a v e s i no 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 alarm a
desconectar: HIGH A 2 HIGH B : LOW C 2 HIGH D IF UNO=0 THEN GOSUB AR : GOTO teclauno GOSUB LLAMADAS RETURN / ; P reg u n ta s p a ra ; Si la cla ve es
la C lave c o r r e c t a desactiva l a
cen tra l
de
alarm as
TECLAUNO: LOW Sirena GOSUB BARRIDO GOSUB AR IF numero = Clavel THEN TECLADOS GOTO ClaveFalsa ►
156
$
S.C . ' P IC
M ic r o c h ip
TECLADOS: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C la v e 2
THEN T E C L A T R E S
GOTO C l a v e F a l s a l TECLA TRES: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C la v e 3
THEN TECLACUATRO
GOTO C l a v e F a l s a 2
TECLATRES: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C la v e 3
TH EN TECLACUATRO
GOTO C l a v e F a l s a 2 TECLACUATRO: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C la v e 4
THEN OPENGE
GOTO C l a v e F a l s a 3 O PE N G E : FO R i = l
TO 5
PO RTC= %1 1 1 1 1 1 1 1 PAUSE 3 0 0 PORTC=0
:
:
H IG H B I P
LOW B I P
PA U SE 3 0 0
NEZT LOW S i r e n a GOTO i n i c i o
/.************«**********#************* ; P reguntas de C laves i n c o r r e c ta s ClaveFalsa: GOSUB B A R R ID O
: GOSUB AR
ClaveFalsal: GOSUB B A R R ID O
: GOSUB AR
C la v e F a ls a 2 : GOSUB B A R R ID O
-.GOSUB AR
C la v e F a ls a 3 : GOTO a l a r m a . **************************************
►
157
S.C. ; In io io
$
PIC de
la s
M ic r o c h ip llagadas
ze lefir.ica s
LLAMADAS:
GOSUB iniciar x = 5 0 : GOSUB Desc_Cenrral GOSUB iniciar 1 x = 5 0 : GOSUB Desc_Cer.cra 1 RETURM iniciar: x=300
: GOSUB Cesc_Cen:ral
HIGH reía x= 3 0 0 : GOSUB E'e?c_Cer.tral DTÍÍFOUT T C N C S , [ 0 , 5 , 7 , 0 , y =1 0 0 : GOSUB Cesc_Cer.:ral
3, 5]
:C zlccar
al
Número c e l u l a r
a
llam ar
GOSUB TONO
LOW rele RETURN x= 1 0 0 : GOSUB D
e s er.:ral
iniciar 1 : x= 3 0 0 : GOSUB De - c jOer.cr a 1 HIGH rele x = 3 0 0 : GOSUB Cese Central DTMFOUT T O N O S , [2 ,5 ,0 ,6 , 1 ,4 ,5 1 /Ce loca r al x=70 0
.V i~ ;r c
ccr.ver.cior.a 1 a llamar
: G O SUB Deac__Central
GOSUB TONO LOW rele x = 1 0 : GOSUB Ce 3 c_Cer.tral RETURN
TONO: FOR R-l TO 50 SOUND TONOS, [1 1 0 , 1 0 , 1 0 0 ,1 0 ] NEZT RETURN
►
158
S.C.
$
PIC
M ic r o c h ip
; S e c u en c ia s para cambie de c la v e ;
D ig iza r
la
clave
a n terio r
C C LA V E : LOW S i r e n a GOSUB B A R R ID O GOSUB AR IF
n u m e ro
= C la v e l
TH EN CTECLADOS
GOTO C l a v e F a l s a CTECLADCS: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C la v e 2
TH EN C T EC L A T R E S
GOTO C l a v e F a l s a l CTECLATRES: GOSUB B A R R ID O IF
n u m e ro
: GOSUB AR
= C l a v e 3 TH EN CTECLACUATRO
GOTO C l a v e F a l s a 2 CTECLA CU A TRO : GOSUB B A R R ID O I F n u m e ro
; GOSUB AR
= C la v e 4
TH EN GRABAUNO
GOTO C l a v e F a l s a 3 r
;
D ig iza r
la
GRABAUNO: GOSUB A R
nueva
:
clave
H IG H
GOSUB BA R R ID O
:
POWER GOSUB AR
H IG H POWER C l a v e l = n u m e ro GRABADOS: GOSUB BA RRIDO : GOSUB AR H IG H POWER C la v e 2 = n u m e ro GRABATRES: GOSUB BARRIDO
: GOSUB AR
H IG H POWER C la v e 3 = n u m e ro GRABACUATRO: GOSUB BARRIDO : GOSUB AR H IG H POWER C la v e 4 = n u m e ro
.**•***************•**■***************'***
*
159
$
S.C. ' P IC
FOR R=1 TO x HIGH A : HIGH B
M ic r o c h i p
: LOW C
IF U N 0 = 0 T H E N G O S U B A R PAUSE
: HIGH D : GOTO teclauno
10
NEZT
RETURN t
END
A la m ia 3 :onas. PBP
160
S.C.
$
PIC
M ic r o c h ip
D E T A L L E D E L F U N C IO N A M IE N T O D E L A C E N T R A L DE A L A R M A S La clave de fábrica es *******1234******* P a ra in g re s a r a la a ctiv ació n de la c e n tra l, d ig ita r en el teclad o la tecla D. en la cual se in g resa el T IM E R re q u e rid o p o r el u su a rio EJEM PLO: Si se desea activar 2 m inutos para activar la central se dígita: D
+
02
Si se desea activar m enos de un m inuto, ejem plo 10 segundos se dígita: D
+
DI
Siendo éste el tiem po del TIM ER.
P a ra d e sa c tiv a r la a la r m a , se p ro c e d e a: D igitar la tecla 7 del teclado D igitar la clave, si es la prim era vez que ocupa la alarm a digitar la clave de fábrica: 1234 C aso contrario digitar la clave de 4 digitos asignada por el usuario. P a ra c a m b ia r la clave D igitar en el teclado la tecla C Ingresar la clave de fábrica o la clave anterior. D igitar la nueva clave y está lista. R E C O M E N D A C IO N : A l iniciar la alarma cambiar prim eram ente la clave de fábrica 1234 p o r cualquier clave que el usuario la asigne. Colocar la batería recargable para los casos en que se vaya la luz. N O T A : En la simulación que se encuentra en el CD, se pu ede apreciar que la disposición de los dígitos es distinta comparados con el teclado de la empresa S.C. PIC, por lo que hay que tom ar en cuenta estos detalles a la hora de simular este proyecto.
161
$
S.C . ' P IC
M ic r o c h ip
D iagram a de la placa de circuito im preso S.C. ' PIC -C A -23-02
r C e n tra l
d e A la r m a s T e lf
°J
'e
. 0 0 0 0 R600 1W fflfflo c Z D o °o C ¡Z U o
n
$
S.C. ' PIC
M ic r o c h ip
Los m otores son una herram ienta fundam ental p ara realizar procesos industriales, com o el transportar un producto de una estación a otra, se u tiliza tam bién en proyectos de robótica, m ecatrónica, entre otros. En el presente libro detallarem os el funcionam iento de m otores paso - paso y de servom otores. Los cuales ayudarán al lector a realizar proyectos com o: posicionadores, robots, etc.
M OTORES PASO - PASO Los m otores paso - paso son m uy utilizados en m ecanism os donde es m uy im portante la precisión del m ovim iento, com o en robótica, en proyectos aeroespaciales, en m aquinarias industriales com o fresadoras, tom os, inclusive los encontram os en las com putadoras en periféricos com o las im presoras, CD -RO M , floppy disk, etc. La diferencia con los m otores de corriente continua y corriente alterna se encuentra en que los m otores paso - paso son m ás precisos, en su velocidad, m ovim iento y giros, ya que trabajan con señales digitales, es decir con OL y 1L. Existen 2 tipos de m otores paso - paso, los bipolares y los unipolares, la diferencia entre ellos es que los m otores bipolares poseen 2 bobinas y son de 4 hilos, en cam bio los m otores unipolares poseen m ayor núm ero de bobinas facilitando el m anejo al usuario, y poseen desde 5 hasta 8 hilos para su manejo. En el proteus podem os encontrar los 2 tipos de m otores paso - paso, digitando en la parte de elem entos la palabra motor.
Motor paso * paso BIPOLAR
Motor paso - paso UNIPOLAR
163
S.C . ' P IC
Microchip
Para m anejar el m otor paso - paso bipolar se requiere de un circuito integrado L298 que dispone de 2 puentes H (H - B ridge) o p or lo m enos debem os hacer un arreglo de 8 transistores, (4 N PN y 4 PN P). Tam bién se necesita el circuito integrado L297 En cuanto al voltaje de alim entación que se requiere para los 2 tipos de m otores, varían entre 1,3V, 1,9V, 4,5V , 5V , 12V y 24V , y la corriente que consum e un m otor puede estar desde 300m A hasta 3a, dependiendo del torque que éste se encuentre m anejando.
M OTORES PASO - PASO UNIPOLARES El m otor paso - paso U N IPO LA R , posee de 5 a 8 hilos com o ya se ha dicho anteriorm ente, siendo ésta una de las grandes ventajas para trabajar con este tipo de motor, ya que el circuito de control es m uy sencillo. El único inconveniente que se tiene es poder identificar las 4 bobinas principales (A, B, C, D). A continuación se presenta una gam a de colores con la que se las puede identificar: B O B IN A A B C D
COLOR Am arillo N aranja N egro Café
Y los dem ás hilos serán los com unes, los cuales se los conecta a la entrada del voltaje de operación. En las especificaciones del m otor viene dado el grado de precisión, entre algunos de ellos tenem os de 0.72°, 1.8°, 3.75°, 7.5°, 15°, 90° etc. Y de acuerdo al grado que gire el m otor por im pulso, se debe dar un núm ero de pasos para que este gire una vuelta com pleta, por ejemplo: Para un m otor que el grado de giro sea 90°, el núm ero de pasos q u e debe dar para dar una vuelta com pleta será de 4, para un m otor de 1,8° el núm ero de pasos será 200. Para m anejar este tipo de m otor es necesario un circuito integrado buffer U LN 2003, el cual es de m uy bajo costo y posee toda la circuitería interna p ara m anejar este tipo de motores. Este dispositivo electrónico perm ite m anejar un servom otor de hasta 500 m iliam perios, y 50V D C . Si se desea m anejar un m otor con m ayor corriente se procede a utilizar TIP 110, el cual puede m anejar un m otor de hasta 100V D C a 8 A m perios. El diagram a de conexión utilizando el circuito integrado U LN 2003A es:
164
$
S.C. ' PIC
M ic r o c h ip
U2
1L_ RA7/OSC1/Cü
RAO/ANO RA1/AN1 RA2/AN2/VREF RA3/AN3JOMP1 RA4/T0CKÜCMP2 RBCjINT R81/RXT0T
RB2/TXfCK R83/CCP1 RB4
RB5
RBan-iosomcKi R07ÍT1OSI
PIC16F82eA
-1l
-2. 7 5 9 1 2 — 1 1 — 1 —1¿ 1 .
_
.
M o to r p a s o - paso UNIPOLAR
U1
i 2 3 4 JL_
3
i
Ifi
15
IC
3B <3 53 SB 7B
14 30 4C SC - U BC - U 7C
14
( n \ —
i—
I
JLN 2-D G 3*
CTFXT»
I Motor Unipolar. Schernatic Design
En cuanto a la program ación de este tipo de m otores, se lo realiza m ediante secuencias, es decir para que el m otor gire un paso, se tiene que energizar las bobinas A , C, B y D. En el m otor de paso que posee el proteus la disposición de pines es:
B com ún
com ún
D onde A, B, C y D son las bobinas que posee el m otor. Las secuencias m as utilizadas para la energización de las bobinas son: W AVE DRIVE FU LL STEP
165
$
S.C. ' PIC
M ic r o c h i p
SECUENCIA WAVE PR IV E El program a para utilizar esta secuencia es: Trisb=%0000 ; H a c e 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 d e t a m a ñ o d e 2 5 6 INICIO:
/ E tiq u e ta para
sa lto
/ Lazo r e p e t i t i v o
FOR R=1 TO 4
Portb=*G001 ; S e c u e n c i a GOSUB timer Portb=$0010 GOSUB timer Portb=%0100 GOSUB timer Portb=$1000 GOSUB timer HEXT / R e p i t a GOTO INICIO ; S a l t e
el
a la
la zo
tip o
ha sta
etiq u e ta
d e s d e R=1 h a s t a
4
WAVE DR IVE
que R = 4
IN ICIO
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 l c e l a s b o b i n a s c a d a 2 0 0 m l l l s e g u n d o s RETURK ; 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 ó . Secuencia WAVE PRIVE. PBP
Com o se puede observar en el program a lo único que se ha utilizado es la función trisb para generar secuencias. Por cada una de las secuencias generadas el m otor PAP generará un paso. En el program a de la parte superior, se ha realizado 16 pasos en total, por lo tanto esa program ación generará una vuelta com pleta para un m otor de 22.5° por paso.
166
$
S.C. ' PIC
M ic r o c h ip
SECUENCIA F U L L ST E P Tam bién se la conoce con el nom bre de secuencia p or paso com pleto. Es la m ás utilizada a nivel de la robótica, ya que perm ite m antener energizadas 2 bobinas y obtener un alto torque de paso y retención. El program a que perm ite realizar esta secuencia es: Trisb=S00DÜ ; H a c e 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 d e t a m a ñ o d e 2 5 6 INICIO:
; E tiq u e ta para
sa lto
; Lazo r e p e t i t i v o
FOR R=1 TO 4
Portb=%1001 ; S e c u e n c i a GOSUB timer Portb=%0011 GOSUB timer Portb=%0110 GOSUB timer Portb=*llG0 GOSUB timer HEXT ; R e p i t a GOTO INICIO ; S a l t e timer:
el
a la
/ E tiq u e ta para
la zo
tip o
ha sta
etiq u eta
desde
R -l
h a sta
4
FULL S TE P
que R = 4
INIC IO
sa lto
PAUSE 100 ; E n e r g l c e l a s b o b i n a s c a d a RETURN ; 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 ó . Secuencia FULL STEP. PBP
167
100 m l l l s e g u n d o s
$
S.C. ' PIC
M ic r o c h ip
M OTORES PASO - PASO BIPOLARES El diagram a de conexión para utilizar estos m otores es:
Los circuitos integrados L297. y L298 perm iten generar las secuencias necesarias para energizar las bobinas del m otor bipolar. Por lo tanto la program ación p ara este tipo de m otor es: T ris b = % 0 0 G
;
H ace
sa lid a s
R VAR BYTE
;
R
tam a ñ o
de
para
sa lto
IN IC IO :
/
de
E tiq u eta
PO R TB =& 001 ;
generar
;
L298
G O SU B GOTO I N I C I O tim e r:
;
/
/
b its
B.2,
B.L,
8.0
256
el
secu en cia s
núm ero por
b in a rio
m edio
de
00I ,
lo s
p erm itien d o
c irc u ito s
L291
E tiq u eta
S a lte
;
S a lte
a
para
100
R e to rn e
Saque
;
tim e r
PAU SE RETURN
y
lo s
/ a
la
la
etiq u eta
etiq u eta
de
sa lto
IN IC IO
salto
Pausa la
a
de
lin e a
100
m iliseg u n d o s
donde
se
quedó.
M O T O R bipolar. PBP
168
tim er
in teg ra d o s
S.C. ' PIC ü
M ic r o c h ip
¡
M AN EJO DE SERVOM OTORES Los servos son un tipo especial de m otor que se caracterizan p or su capacidad para posicionarse de form a inm ediata en cualquier posición dentro de su rango de operación.
Para ello, el servo espera un tren de pulsos que se corresponden con el m ovim iento a realizar. Están generalm ente form ados por un am plificador, un m otor, la reducción de engranaje y la realim entación, todo en una m ism a caja de pequeñas dim ensiones. El resultado es un servo de posición con un m argen de operación de 180° aproxim adam ente. C om o se puede apreciar en la figura, posee tres cables. El rojo es alim entación (+5V ), el negro es tierra (G N D ) y el cable am arillo es el que perm ite realizar el control. El m otor interno es de corriente directa, el cual posee una taijeta controladora la que indica cuantas vueltas debe girar para acom odar el engranaje. La posición deseada se determ ina por m edio de pulsos, siendo la duración del pulso la que indica el ángulo de giro por esta razón cada servom otor tiene sus m árgenes de operación que corresponden al ancho de pulso ya sea m áxim o, central o m ínim o. El intervalo de tiem po con los que opera el servom otor está dado entre 10 y 30 m ilisegundos, para que un servom otor se m antenga en la m ism a posición durante un cierto tiem po es necesario enviarle continuam ente el pulso correspondiente al ángulo en el que se desea m antenerlo.
169
$
S.C. ' PIC
M ic r o c h ip
En este libro se estudiará el servom otor H1TEC H S - 311, por ser m ás económ ico y tener un torque de salida de 3.0K g.cm , suficiente para proyectos de robótica. A continuación se presenta la generación de pulsos que necesita un servom otor H ITEC HS - 311, para sus tres posiciones:
C om o se aprecia en la figura, de acuerdo al ancho de pulso, girará el servo a 0o, 90° o 180°. 0o
90°
180
'
Existe 2 m aneras de m anejar a un servom otor con el Pie B asic Pro, la prim era es utilizando la instrucción PW M , la cual perm ite enviar pulsos por u n puerto del m icrocontrolador y la segunda es utilizando las instrucciones H IG H , L O W , lazos FOR, estudiados anteriorm ente.
170
$
S.C. ' P IC
M ic r o c h ip
INSTRUCCIÓN PW M PU LSE W ID TH M O D U L A TIO N , m odulación por ancho de pulso, esta instrucción perm ite enviar un tren de pulsos m odulado por ancho a un PEN. C ada ciclo de PW M está com puesto de 256 pasos. Su sintaxis es: p » l
PORTB. 0 , 1 2 7 , 3
Que quiere decir, saque 3 pulsos al 50% en alto p or el B IT B.O del puerto B. Cada ciclo depende de la frecuencia del oscilador, para un cristal de 4 M H Z cada ciclo será de 5 m ilisegundos de largo, para un cristal de 20 M H z cada ciclo será aproxim adam ente de 1 m ilisegundo. A continuación se realizará una práctica que perm ita girar el m otor a la izquierda y a la derecha, m ediante dos pulsadores. El diagram a de conexión es:
Para sacar un servom otor en el proteus digitar en la parte de elem entos M O TO R, y seleccionar M O T O R -PW M SER V O
171
S.C. ' PIC
M ic r o c h ip
Y la program ación para este proyecto es: @ D E V IC E IN T R C __09 C_CLKOUT 0 D E V IC E M CLR_O FF CMCON=7 ; d i g i t a l i c e e l p u e r t o A R VAR BYTE ; v a r i a b l e R d e t a m a ñ o PULSADOR VAR P O R T A .0
/ E tiq u eta IF
nombre a l
; C am bio d e n om bre
PUL3ADOR1 VAR P O R T A .1 IN IC IO :
Cam bio de
;
de 256
para
PU L3A D O R =0 THEH GOSUB ADELANTE
sa lte
a la
etiq u eta
salte
a la
GOTO I N I C I O
/
ADELANTE:
etiq u eta
/
; reto rn e
para
ATRA S:
;
a la
RETU RN
;
el
b it
reto rn e
B.O a
la
;
/
SI
SI
el
e l p u lsa d o r
es
pu lsa d o r 1 es
d ig ita d o d ig ita d o
INICIO
/ Saque cin cu e n ta p u erto B donde
se
p ulsos
a lk
en
a lto
por
quedo
salto
PTOI P O R T B . 0 , 2 5 5 , 0 0 ;
pulsa d o rL
sa lto
lin ea
para
e tig u e ta
A .1 por
A trás
etiqueta
PWM P O R T B . 0 / 1 , 5 0 ; e l b i t B.O d e l RETURN
A.O p o r p u l s a d o r
b it
sa lto
; s a l t e a l a e t i q u e t a ADELANTE I F P U L SA D O R l=Q THEH GOSUB ATRAS ;
b it
al
del
/
Saque
p u erto
lin ea
o chenta
B
donde
se
quedo
SERVOMOTOR. PBP
172
p u lso s
a
lOOk
en
alto
por
a
S.C . ' P IC
M ic r o c h ip
Y la segunda m anera de controlar servom otores es: R VAR BYTE ; V a r i a b l s R de t a m a ñ o de 2 5 5 SERVO V AR PORTB.0 ; C a m b ie de n o m b r a a l b i z 3 . 0 p o r SERVO LED VAR PORTB. 1 ; C a m b i o de r . o m b r a a l b i z 3 . 1 p o r LED INICIO: . # >r>r>r *r>r
/
E ziqueza
i/^ y? e l
para
sa lzo
S e r v o m o t o r 5 0°
HIGH LED / E n v í a 1 L p o r e l b i t 3 . 1 d e l m i c r o o o n t r o l e d o r FOR R=1 TO 100 ;L a z o FOR d e s d e R=*l h a s ta 100 HIGH SERVO ;Saca 1L p o r e l b i z 3 .0 PAUSEUS 500 ; P a u s a d e 5 0 0 m i c r o - s e g u n d o s LOW SERVO / S a c a 0 L p o r e l b i z 3 . 0 PAUSEUS 20000 / P a u s a d e 2 0 m i l i s e g u n d o s NEXT ; Continué el l a z o FOR h a s t a q u e R**1Q0 LOW LED ; E n v i a GOL p o r e l b i t 3 .1 PAUSE 3000 ; P a u s a d e 3 s e g u n d o s . * * * * ***?' 2o v a r
el
s e r v o m o to r a 90° *******
HIGH LED / E n v i a 1 L 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 /Lazo FOR d e s d e P*2 h a s ta 100 HIGH SERVO ; Saca 1 L p o r e l b i t 3 .0 PAUSEUS 1500 / Pausa d e 1 5 0 0 m i c r o - s e g u n d o s LOW SERVO ; S a c a 0 L p o r e l b i t 3 . 0 PAUSEUS 20000 / Pause de 2 0 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 u e R**100 LOW LED / E n v i a COL p o r e l b i t 3 . 1 PAUSE 3000 / P a u s a d e 3 s e g u n d o s . **•-k * * * * *f-$o v e r
el
servo m o to r a
HIGH LED ; E n v i a 1 L 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 1 0 0 HIGH SERVO / S a c a 1 L p o r e l b i t 3 . 0 PAUSEUS 2500 / Peuse de 2 5 0 0 m i c r o - s e g u n d o s LOW SERVO / S a c a 0 L p o r e l b i t 3 . 0 PAUSEUS 20000 ; Peuse de 2 0 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 u e R ^ l O O LOW LED ; E n v i a 0G L p o r e l b i z 3 . 1 PAUSE 3000 ; Pause de 3 s e g u n d o s GOTO INICIO / S a l t e
a la
e t i q u e t a INICIO Servomotores. PBP
173
$
Microchip
S.C . ' P IC
N oten que en la program ación, para que cam bie el ángulo de giro a 0o, 90° y 180°, hay que m odificar la pausa en m icrosegundos a 500, 1500 y 2500 respectivam ente. El diagram a en el proteus es:
U1 R A7/O SC1/CLKIN R A 6 /0 SC2/C LK O U T R A5/M C LR
RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 R M /T0C K1/C M P2
RB0/1NT RB1/RX>DT RB2/TX/CK RB3/CCP1 RB4 RB5 R B 6 /T 10 S O /T 1CK1 R B 7/T 10S I
7
8_ jL 10
JM ü 13
❖
PIC16F628A
Manejo de servomotoresZ Schematic Design
Con estos conocim ientos podrá realizar un robot com o el que se m uestra a continuación.
En el CD que viene adjunto al LIBR O encontrará la sim ulación del robot, para que las patas se m uevan librem ente y sin atascos.
174
S.C . ' P IC
M ic r o c h ip
IN TER R U PC IO N ES
M anejar interrupciones a la hora de m ontar un proyecto es m uy im portante, ya que estas perm iten generar paros en cualquier instante del program a, perm itiendo al usuario por ejem plo realizar paradas de em ergencia en un sistem a autom ático. Para aprender a m anejar las interrupciones en el com pilador PB P, realizarem os un program a que realice el parpadeo de un LED , y cuando exista una interrupción prenda un segundo LED realice una pausa de 5 segundos, apáguelo y reto m e a la línea donde se produjo la interrupción. El program a en Pie B asic Pro es: CMCON=7 / D i g i z a l i z a a l p u e r t o A LED VAR PORTA. 0 / C a m b i o d e n o m b r e a l b i t A . O p o r LED LEDl VAR PORTA.1 / C a m b i o d e n o m b r e a l b i t A . l p o r LEDl ON INTERRUPT GOTO interrupción / En c a s o d e e x i s t i r una interrupción INTCON = %10010000 / H a b i l i t a
; s a lt e a la e tiq u e ta la in te r r u p c ió n d el b i t
in terru p ció n . 3 .0
INICIO: ; 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 e l LED PAUSE 500 / P a u s a d e 5 0 0 m i l i s e g u n d e s LOW LED / A p a g u e e l LED PAUSE 500 / P a u s a d e 5 0 0 m i 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 I N I C I O 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 e n e l HANDLER interrupción: / E t i q u e t a d e s a l t o l l a m a d a i n t e r r u p c i ó n HIGH LEDl ; S a q u e 1 L p o r e l b i t A . l PAUSE 5000 ; P a u s a d e 5 s e g u n d o s LOW LEDl / S a q u e 0L p o r e l b i t A . O INTCON = %10010000 / H a b i l i t a l a interrupción d e l b i t 3 . 0 RESUME /r e to r n a a la 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 después d e l HANDLER Manejo de Interrupciones. PBP
175
$
S.C. ' P IC
M ic r o c h ip
El diseño para probar este circuito en proteus es:
N oten que para producir la interrupción se ha incorporado un pulsador en el bit B.O.
176
8
A N EX O S
$
S.C. ' PIC
M ic r o c h ip
ANEXO A IN F O R M A C IO N E M P R E S A S.C . ' P IC E L E C T R O N IC A & C O M P U T A C IO N La em presa S.C. ' PIC E L EC TR O N IC A & C O M PU T A C IO N actualm ente se encuentra realizando investigación y capacitación a nivel de ingeniería electrónica, fom entando el desarrollo en universidades, estudiantes, profesionales afines a esta ram a. Por esa razón se inform a a los lectores, que próxim am ente saldrá a la venta un libro de R O BO TIC A , con el cual el estudiante aprenderá a diseñar y desarrollar piezas m ecánicas m ediante el softw are SolidW orks, m anejo de servom otores y m otores paso a paso, C inem ática directa e Inversa, grados de libertad del Robot, m anejo de sensores, etc.
ANEXOB Para realizar cada uno de los proyectos que se encuentran a lo largo del libro la em presa ha diseñado un entrenador para el PIC 16F628A, totalm ente económ ico que consta de: PIC 16F628A M ódulo para m anejo de LCD M ódulo de 8 leds para m anejar secuencias M ódulo de 3 pulsadores conectados a 1L M ódulo de 1 Teclado H exadecim al M ódulo de 1 R ELA Y Entradas para utilizar cualquier tipo de program ador serie, paralelo o USB.
179
Hoy en d ía los m ic r o c o n tr o la d o r e s se e s tá n c o n v irtie n d o en una h e rra m ie n ta fu n d a m e n ta l para el d e s a rro llo c ie n tífic o y te cn o ló g ico , se encuentran automatizando procesos industriales, ayudando a grandes empresas a desarrollar su producto con mayor eficiencia y mayor calidad. Se encuentran también ayudando a diferentes empresas de gran prestigio a nivel mundial como la NASA, la cual ocupa estas mini computadoras para desarrollos de investigación científica.
P o r e s ta ra zó n e l a u to r p o n e a d is p o s ic ió n d e l p ú b lic o u n a g ra n h e rra m ie n ta d e d e s a rro llo , co n la q u e p o d rá r e a liz a r p ro y e c to s p a ra su e m p re s a , o fic in a , o su h o g ar., sin n in g ú n c o n tra tie m p o ni p ro b le m a , ya q u e e l le c to r a p re n d e rá a m a n e ja r un s o ftw a r e d e s im u la c ió n e l q u e le p e rm itirá p ro b ar, c a d a uno d e los p ro y e c to s q u e re a liz a rá a lo la rg o d e su vid a.
Los te m a s q u e a b a r c a e n e l p r e s e n te lib ro , so n d e g ra n in te r é s , a n ivel e s tu d ia n te s , a fic io n a d o s o p ro fe s io n a le s d e d ic a d o s a e s ta r a m a .
M u c h o s d e lo s p r o y e c to s q u e s e e n c u e d if e r e n t e s e m p r e s a s a n iv e l n a c io n a l.