Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador PICI 6F84
    Desarrollo de proyectos
1
1   h
        Microcontrolador PICI 6F84
            Desarrollo de proyectos
                 Enrique Palacios Municio
               Fernando Remiro Dominguez
                  Lucas J. Lopez Perez




            Alfaomega        4+
                              )Ra-Ma'
Microcontrolador PIC lbFB4. Desarrollo de proyectos
Q Enriquc Palacios Muiiicici. Feraando Kemi ro Dominguez
y Lucas J . L6pez Pérez

ISBN 84-7897-600-0, edicidn original publicada por RA-MA Editorial,
                        reservxicis 0 RA-MA Editorial
MADRID. Erpaiía. Derc~hos

MARCAS COMERCIALES: RA-MA ha intentado a                  largo de este libro
distinguir las marcas registradas de los términos descriptivos, sigiiiendo el
esiilu de mayusculas que utiliza el Fabricanre, sin introci6n de infringir la
marca y sólo en beneficio del propietariode la misma.


Primera edición: Aliaoiiiega Grupo Editar, Mkxico. agosto 2003




8 2004 ALFAOhlEGA GRUPO EDITOR, S.A. de C.V.
Pithgoras 1139, Cul. Del Valle, 03 100 México, D.F.

Miembro de Id Camara Nacional de In Ind~striaEditorial      Mexicana
Registiw No. 23 17


ISBN 970-15-1033-X


Derechos reservados.
Esta obra es ptopied.d intelectual de su autor y 10s derechas de publicacicin
en lengua española han sido legalmente transferidus a editor. Prohibida su
                                                       l
repri~ducción parcial o total por cualquier medio sin permiso por escrito del
propietario de los derechus dzl copyright.


NOTA IMPORTANTE
             -     -       -


La inforniacirrn cnnten ida en esta oliri tienc un i'iii ex~lu~ivamente
                                                                      diddctico
y. por lo tanto, no esti previsto sil aprovcchamirnio 3 nivtl profcsirinai ti in-
dustrial. Las indicaciones técnicas y programas incluidos. han cidn elahnra-
dos COI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas de
control. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no será jurídicamon-
te responsabte por: errores u nmi<ioner; dairos y perjuicios quc se pudieran
atribuir al uso de la información comprendida en este libro, ni por la utiliza-
ci6n indebida que pudiera dársele.


Edición autorizda para venra e n Mkxici<i y todo el continente americano

                       -
Impreso en Mdrico PrintM in M e ~ k o
A mi m yer. Maribrl, por- sic a p q n o ,c.ari,ioy paciencia.
                                                              rk
       .4 mi,v hijos. C'i-istN ra Enrique. mi rnaymfi~cnir liltiyrias 1'slrtis/;rcciones.
                 A n l i PUIJI-CS. Eririque y Sagr~rriu, rc.c.ujiociniieritu a su sacrificio.
                         ~                             cbti

                                                                                    Enrique


                         . mir pudre.^, hgo y demús ppersoncls it~~port~irirta v i h .
                         1                                                ~k rni

                                                                                       Lucas


   A mis dos mujeres, Natalia con la que decidí compurrir mi.? dius *c ,A~icinicii me
                                                                                que
uir7gi.u cudu diu J J . ~ narici y que a sus tre.y oños no deju de quewr rlj~tltf~irrne
                        que                                                          a
                               escribir y progrumor microcon~oladores per.i/L:r.icos.
                                                                    y

                                                                                  Fernando
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Capitulo 1: MICROCONTROLADOR PIC16FS4..........................................
1.1 Micrricontrolarlures PIC ...................................................................................
1.2 Alimentación de un PIC16F84 .....................................................................
1.3 Puertos de entraddsalida ..................................................................................
1.4 Oscilador ...........................................................................................................
          1.4.1 Oscilador XT .....................................................................................
          1.4.2 Oscjlador RC .....................................................................................
                                                                  .  .
          1.4.3 Osciladores HS y LP ......................... .............................................
          1.4.4 Utilizando una señal de reloj externa ................................................
1 . 5 Reset ..................................................................................................................
1.6 Montaje del entrenador.....................................................................................

capitulo 2: PERTFÉFUCOS BASICOS .........................................................
2.1 Diodo LED........................................................................................................
2.2 Interruptores y pulsadores .....................   .    ....................................................
2.3 Entradas &@talescon optoacopladores...........................................................
                                                                    . .
2.4 Display de siete segmentos .........................................................................
2.5 Controlando cargas a 230 V .............................................................................
      2.5.1 Conml con relé .................................................................................
      2.5 .2 Control con re14 miniatura en cápsula DIL .......................................
          2.5.3 Control mediante fototriac .....................
                                                             . .........................................
     2.5.4 Conml de potencia con tnac ..............................................................
2.6 Zumbador..........................................................................................................
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
9.3 Saltos en funcidn de un registro................... .... ............ ............................... ,.,..
                      . "decfsz f,d" . ..... ............... ....................... .............. ...........
       9.3.1 I ~ h c c i o n
                                r



       9.3.2 Instrucción "incfsz f,d"............................................ ....... ....... ..... .......
                .,
9.4 Cotnparacion de registros.. . ................... .. ...... ......... ....... .. .............. ... .. ... ..
                                      . .                     ..                         ..                   .. .
       9.4.1 Comprobar que un registro vale O .................................... . ......,......,.
       9.4.2 Comprobar igualdad enlre dos regismos.................. ..... .... ......... . ....    ...               .
       9.4.3 Comprobar que un registro es mayor o menor que otro....................
       9.4.4 Programa ejemplo..... ..... .................... ............ ...- . ....... ....... .... ..... .. .
                                                                                    ..                   ... ..
9.5 Lazos o bucles........................                          ...........................
                                           ...................,.,.,..,                           .....................
                                                                                      .
       9.5.1 Lazo de repeticihn infinita......... ...................... .......... .. ....... .... ..
                                                                                                   ...            ...
       9.5.2 Lazo con condición de testeo.......... ................................. ...................
       9.5.3 Lazo que se repite un numero conocido de veces..............................
9.6 Programacion y algoritmo.. ............... ......... . ..,....... ..... .. . .. ,.. .. . .. ... ....... ...
                                       ..                                             .. .. .. ..
9.7 Diagrama de flujo ..... ..... ..... ..
                               .. . .. .. ... ... ... .............. -................. ..... ...........
                                                   .    .                            .
9.8 Más directivas importantes .............................. ...........................        .....................
       9.8.1 CBLOCK y ENDC............................ .... . .............................             ..............
       9.8.2 #DEFINE ..................................... .. .....................................................
9.9 Conversionde binarionatural aBCD................................. .. ..........................
                            .............. .............. . .......,..
9.10 Salto indexado .........                                        ........................... .....................
9.1 1 Salto indexado dcscontrolado ........................ .....            .    ....................................
9.12 Prácticas de labamtorio ..................................................................................

Capitulo 10: SUBRUTTN.4S................ .......... ............................... .....................
10.1 Subrutinas ......................     .
                                           .. ......................... ........................... .....................
1 0.2 Subrutinas anidadas.... ...... ......... ..... ............... ................. .. ..... ... .. ......... ..... ...
                                                                                            ..        .
10.3 La pila .....................
                                 . ............... .....................................................................
10.4 Tnstnicciones "call" y "retuni".......... ... ................. .. . ....... .. . .. ............. ..
                                                         . ..                        ..           .. ..                 ..
10.5 Ejemplo de utilización de las subrutinas...........                     ...........................................
10.6 Ventajas de las subrutinac ..................................... ........................................
10.7 Lbreria de subrutinas........... ................. ...................... .. .... ....... ......... ..
                                                                                         .. ..                    .....
10.8 Directiva "INCLUDE"........... ..... ....,.. ........ ... .... ....... ... ....... .......... ....... ... ..
                                                            ..               ...                                         .
10.9 Simulación de subnitinas en MPLAEI . .......... ....... ....... ................... ..... .., ....
                                                                                       ...
                  .,
10.10 Programacion estructurada........................... ..                                       .q,.,.............,,,
                                                                          ...qq.....,,,-..........,q,




1O .11 Practicas de laboratorjo ................ ..... . ........ ..... .. .............. .......... .. . .. ...
                                                              .  ...                .. .                         ..
Capitulo 11: MANEJO DE TABLAS .....................................................
1 1 . 1 Tablas de datos en memoria de programa .....................................................
                        -'
        11.1.1 Insmccion retlw ............................................................................
                                      11      73




      1 1 -1.2 Directiva "DT' .......... ...................... ... ..,.,... .., ..... .......,., ,.,....-.......
                                    .....                                      .
1 1.2 M i s directivas.................................................................................................
      11.2.1 MESSG ..........................................................           .
                                                                                ...................................
      11.2.2 ERROR ..............................................................................................
          11.2.3 [FyENDF........................................................................................
XIV    MICRW0NTRC)tADC)R PIC'IbFB4. DCSiiR ROLLO DE PROYECTOS                                                        w nA-hW      -
                                                                                                                                  $




1 1.3 Gobierno de un display de 7 segmentos ....................................................                         162
1 1.3 Practicas de laboratorio ..................................................................................

Capítulo 12: SUBRUTINAS DE RETARDO ................................................
12.1    Ciclo miquina ...............................................................................................
                                                                                                                         169
                                                                                                                                  i
12.2    Medir tiempos con WLAB .................................. ..................................                     171      I
12.3            .
        Instniccion 'hop"..........................................................................................
                     I

                                                                                                                         17 1     1
12.4    Retardos mediante lazo simple .....................................................................              172
12.5    Retardos mediante lazos anidados...............................................................                  174
12.6    Librería con subnitinas de retardos..............................................................                176      I
12.7    Rebotes m los pulsadores ......................... .     .  ................................................     18 1     1
12.8    Practicas de laboratorio..................................................................................       184      1

Capitulo 13: LCD ................................................................................................        187      C
13.1 Visualizador LCD...........................................................................................            187   1
13.2 Patillaje ............................................................................................................ 188   1
13.3 DDRAM .........................................................................................................        189   1
13.4 Caracteres definidos en la CGROM ............................................................                          191   1
13.5 Modos de funcionamiento........................ ................................................. 19 1
                                                                 ..                                                               1
13.6 Comandos de control .................................................................................                  192   1
13.7 Conexión de LCD mediante 4 bits ..............................................................
1 3.8 Librería de subnitinas ....................................................................................           194   C
13.9 Visualizacibn de caracteres ..........................................................................                 201
                                                                                                                                  1'
13.10 Visualizacj6n de valores numéricos ..............................................................                     202
                                                                                                                                  1
13.1 1 Conexibn de LCD mediante 8 bits ................................................................                     ?O3
                                                                                                                                  1
13.12 Visualización de mensajes fijos               .....................................................................   204
                                                                                                                                  1'
13.13 Visualización de mensa-iesen mo~iniiento                        ...................................................   208
13.14 Prkticas de laboratorio ......................................................................... 209
                                                                                                                                  1'
Capítulo 14: EEPROM DE DATOS ..................................................................                          213
                                                                                                                                  1'
14.1 Memoria EEPROM de datm ......................................................................... 213                         1'
14.2 Registro EECON 1.......................................................................................      215             1    '


14.3 Librería de subrutinas..................................................................................... 216              1'
14.4 Lectura de la EEPROM de datos ...................................................................            2 17            1'
14.5 Escritura en la EEPROM de datos..............................................................                217             1'
14.6 Directiva "DE" ................... .
                                      .  .....................................................................    218
14.7 Ventana "EEPROM" en el MPLAB ..........................................................                      218             C
14.8 Programa ejemplo...........................................................................................
                     . .
14.9 Bloquear un circuito ....................................................................................... 22 1
                                                                                                                                  1I
14.10 Prácticas de laboratorio..................................................................................  227-            1I
                                                                                                                                      11
                                                                                                                                  1I
                                                                                                                                      11
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
iía estructura de           La teoria desarrollada va siempre dirigida a hacer las prácticas, siendo 13
 m entender los        imprescindible para la realimción de los proyectos de dificultad crecieiite que trabajan
                       sobre circuit~s
                                     reales.

: software y del              Esperamos que    la lectura de este libro le resulte seilcilla y sobre todo que cumpla
M conocimiento         la finalihd para la que esta cscriio, que con los pocos niedicis técnicos de los qiie se siicic
 itilizar porque es    dispuner en casa. sea cap= de desarrollar proyecuis tiiicroprobmables dc una forma
                       autodidacta. C'ualqiiier aficionado, estildiantc o ingzriiero, con ayuda de este libro, debe
                       ser capaz de empezar a utili7ar el PICl hF84 inmediatamente en sus propios proyectas y
lgramable; y el        diseiios.
en detalle cómo
ente.                        Nuestro agradeciiniento a las iiibricantes Micruchip Tt'clinology inc, Phidip
                       Sem~conducror~ Dullu,c Smiconductors, así como a la erliprcsa Sagiiron por su
                                        y
 la enseñ;uiza de      constante esfuerzo en ayudar a los usuarios en la uiilizacion de sus producios.
rnpartú nuestras
317 realizadas por            Querertios finalmcntc agadecer a todos 10s compañeros y alumnos. la ayuda
an de un teclado,      prestada, sugercticias y participación en el desarrollo de esta obra: Carmen Ghtticz, Julio
uello funcionara.      Redondo, Jesús Sanz, Javier Tempradu, G e m a Gil, Jiian M. Morales, Jcid M.
n la tecla r?in y      Escobosa, Atia &irnora. Nuria Tririjatw, José A. Sanz, Alejandro Pico, Loli Moreno.
S alumnos ieniair      Sergiu González-Nicolás, Javicr G m ia-Caro, Diego A. Cbrdoba, Alfonso Martíii,
"'maleta" era el       Eduardo F. Garcia Folgar. Ángel Toledo y Fmando Blanco.
rcicesador eri siis
                                                                                                    LOS AUTORES

s este mundo dc
sdz el esquema a
tid do al sistema


gas. Entrc otras,
1 p e1 misnio y
  r
comprender. No
itorios, sino que
m Y por Ultimo,
       

:4 mismo el que
ar que lo que ha


S
-;         años de
IS   aqui descritas.
ipción. También
rse junto con un
-es, a complejcs
CAPITULO 1



                      MICROCONTROLADOR PIClóFS4


1 . MICROCONTROLADORES PIC
      Un microcontrolador es un circuito integrado programable que contiene todos los
componentes necesarios para contrc~lar el funcionamiento de una tarea determinada,
como el control de m a lavadora, un teclado de ordenador, una impresora, un sistema de
alaril~a,ctc. Para ésto, el rnicrocontrolador utiliza muy pocos componentes asociados. Un
sistema con rnicrocontrolador debe disponer de una memoria donde se almacena el
programa que gobierna el funcionamiento del mismo que. ima vez programado y
configurado, siilo sirve para realizar la tarea asignada. La utilizacion de un
rnicrocontroladoren un circuito reduce notablemente el tamatlo y número de componentes
y, en consecuencia, disminuye el niimero de averías y el volumen y el peso de los
eqiiipos, entre otras ventajas.

       El microcontrolador es uno de los inventos más notables del siglo XX. En el
mercado hay y a n cantidad de ellos, con multitud de posibilidades y caracteristicas. Cada
tipo de microconmlador sirve para una serie de casos y es el diseñador del sistema quien
debe decidir cual es el micrwuntrolador más id6neo para cada uso.

      En lm últimos ~ í í u han tenido un gran auge los microcmtroladores PTC fabricados
                            s
por Microchip Technology Inc. Los P IC (Peripheral Inteqace Conmllerj son una familia
de microcorrtroldores que ha tenido gran acepíación y desasrollo en los Últimos afím
gracias a que sus buenas c mterísticas, bajo precio, reducido consumo, pequeRo tamailo.
gran calidad, fiabilidad y abundancia de infomiacih, lo convierten en muy fácil, ciimodo
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
130 V (bombillas.          Es indispcnsablc coilcclar un diodo cn paralclo con la bobina dcl rc16, tal como
ipropiados donde     muestra la tigurü 2-6. coino protecciOn frente ¿ilos picos de fuerza coiitraeiectromotriz
ica.                 producidos por la carga inductiva de la bobina eri el inomento de la coniniitaciiin.

Iéctrica dc 230V.          Para controlar uri cicrto núincro dc rclCs a partir dcl niismo ~nicrocontrolador,
                                                                                                           sc
provocar lesiones    piiede tititizar un circuito integrado especializado tal coiilo el U LN2003, figura 2-7. Este
aje y revisarlo      chip dispone de siete circuitos inversores rediizados internamente con circuitos
las conexiones o     I)arlingtori, quc aguaiitan una tcnsión inaxii~iadc 50 V y pucdcn alimentar cargas de
is eléctricas, sin   hasta 500 mA, incorpora tainbiCn los indispcnsablcs diodos dc protcccion.




iar dispositivos a
ir de transistores




1   CARGA                                           GND   w7               l--N DIODE
                                                                                 COMMON




                                                         Figura 2- 7 Driver ULN2003

                            La figura 2-8 describe el esquema tipico de conexión, donde el ULN2003 alimenta
                     las bobinas de siete reles.


                                        I           I                                                     5.. 5
                                                    o 
                    ULN2003
                                                    o
                                                      O
                                                    >
                            17                                6
                                                RBOIIMT       7
                                                   RBI
                                  UA2              RB2
                          - RA3
                            W4TTDCKI
                                                   RB3
                                                   RB4
                                                              10
                                                              11
                                                   R55        12
                                                        RB6                IN7       OUT7
                                               rq       RB7   13       8   GND       COM.
                                                                                            g
to a la base del
                                                                                                BOBINAS
:ontactos, puedc                                                   -
:lectricamentc la
 de los contactos
oportar más de 5
                                 F i p r u 2-8 Circuito ttr'yico de gobierno de varios reI&scon ULN2003
-
16   MICROCOWROLAWR PIC 1 hFR4 T)LSARROLLO DE I'KUY CCTOS                                   -' R 4-MA       -
                                                                                                            I RA-M)
                                                                                                             í




2.5.2 Control con relé miniatura en cápsula DIL
                                                                                                            de la
       Para cargas de hasta 10 W es riiejor utilizar reles de láminas encapsulndos en DIL,                  alta f
que necesitan una menor inta~sidridde activacibn, aunquc sus contactos no perniitzii                        dar 11
activar cargas grandes. La f i p r a 2-9 muestra un ejemplo de apjicacitin donde s61o es
necesario un tratisistur para gobernar et reli. Normalmentt estos relés llcvan
incorporados dentro de la cipsula el diodo de protección, como se ~iuede        apreciar en la              fototr
figura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito.
                                                      5v
                                                                        ALlMENTAClON CARGA

                                                                                                                   'l

                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                               CARGA

                                       R1     u1
                                       10k    BC547                        CARGA hiiAxiMA
                                                                           (500 mA. 1bW)




                                                                                                             Figui
F i p r u 2-9 Gobierno de p~qrtriln~
                                  cargas u trai.L.rd~ un rd&de láminas en cu~)sulu
                                                                                 DIL

                                                                                                            hará i
2.5.3 Control mediante fototriac                                                                            ~ U Z .1i
                                                                                                            la te
        En el circuito de I:i figura 2-10 los contactos del relé son siistitiiidos por un                   prácti
fciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz.                         el ti
                                                                                                                rí
                                                                                                            es ne
       El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace                         cona;
mediante w o p t ~ ~ o p l a d o r
             i                  MOC3041, qiic es iiii circuito integ~dc) incluye iin LED
                                                                       que
que controla al fototriac. Este dispositivo esti rspccialmente diseñado para usarse coino
interface tic sistemas 1Ógic0s con equipos que tienen que alimentarse coi1 los 230 V de la                   apag:
red clectiiila. Sus carac tensti cas mas significativas son:                                                 conil
         Incorpora un pequeño y eConíirriicoencapsulado DIP 6 .                                              corrii
         Su tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre la
         red eléctrica y el microcontrolador.
         Es capaz de proporcionar hasta 1 O0 niA, que le permitiría alimentar                                garar
         directamente pequeilas cargas de hasta 20 W.
         Su fototriac interno permite el control de la casi totalidad de los grandes tiiacs,
         lo que no seria posible si se iitilizara un fototransistor ordinario.                               de la
                                                                                                             cjrcu
         Cuenta con un detector de paso por cero inlenlo, lo que permite economizar
                                                                                                             de rt
         un número iio despreciable de componentes externos.
                                                                                                             c ircu
                                                                                                             El cc
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
~ciamínima            Para conseguir cstas potencias, el triar: debe ir montado sobre un buen radiador de
rna es dc      calor, de forma que el semiconductor cc refigere adecuadamente. A la llora de poner el
;mdo en el     radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarse al
. Por tanto.   temiinal T2. por lo que se dcbe aislar cuidado(;aincntc el triac de! radiador rncdiante una
               lamina de mica y un separador dc plishco para el tornillo.                                    I

                                                                                                    '-
               2.6 ZUMBADOR
ic, donde la          En muchos proyectos es necesario indicar mediante tina sefial audible la ocurrencia
 r a! de un    de un evento. Para ello normalmente se utiliza un zurnbsidor piezoeléctrico miniatura
;u vez, esta   corno cl de la figura 2-12.
rolar cargas




                      Un zumbador miniatura funciona con tensiones comprendidas entrc 3 y 16 V y su
               consumo no supera los FO mA, por 10 que puede ser alimentado directamente por la
               salida de un microcontrolador, tal como s indica cn la figiim 2-13.
                                                        e




                                                                       SUM&ADOR EMITE SONIDO
                                                                       CON SALIDA A NIVEL B A l O




tc entrc en
olnac para



                                                                       ZUMBADOR EMITE SONIDO
                                                                       CON SALIDA A NIVEL ALTO
137 (8 A)                                                 822
'uctivas ei


                       Fisura 2-13 Conexihn de irn aimbador ininiafirt-a a un microconfroJador
Microcontrolador pic16 f84, desarrollo de proyectos ao
22   fICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS                                ~RA-M




                                                                                                       En
                                                                                                 microcontr:
                                                                                                 múltiples v
                                                                                                 tienda de ci
                                                                                                 por sí mism




                                                                         1 -
             Ordenador Personal                               Grabador E> Programador
                                                             (TEPO-SE o compatible JDM)


     Fjxlrra 3-1 Coyf;guraci¿inpar[/p b o r micrmot iri-orudorps con medios redz4cilr'os

3 2 GRABADORES
 .
     El grabador o programador es el equipo físico dondc se procede a p h a r la
memoria del rnicrocantrolador con l% instnicciones del prapma de control. Tiene un 

                                      a
zkalo libre sobre el 
quc se inserta el circuito integrado a grabas, el cual debe orientarse
   uadarnente siguiendo la señal de la capsula del chip. Hay multitud d.c grabad ores
                                                                               

   :rciaEes en 
 mercado que se pueden adquirir en cualquier tienda de clec trbnica.
               e1

       Microchip o k c e el gmbador PICSTART PLUS, de muy ficit utilización y
     ihzada fiabilidad respaldada por el fabricante (fipra3-2).




                                                                                                       En las
                                                                                                quc apenas r
                                                                                                miicho rncnu
                                                                                                muy iiitcrcsai
                                                                                                que estos g~
                                                                                                purtAtiles soh
En ltiternct pueden localizarse múltiples grabadores de bajo c o n para
                 microcontroladores PIC. Uno de 10s más populares es el denominado JDM y sus
                 iniiltiples versiones mejoradas, tal como el TEJO-SE que se puede adquirir en cualquier
                 tienda de electriinica por un precio muy asequible (figura 3-3). Si 1            ntarlo
                 por si mismo, cn c1 apkndjce F se proporciona información para el1




-
.    1
    --
amador
Iible JDM)




                        El programador JDM y a l s n a s de sus version¢s                    la Wcb
2- e grabar la
                 diseñrtdor Jens Dyekjm, w . i d r n . h o m ~ a ~ c . d k / n e w ~ i c .
:rol. Tiene un
zbc orientarse
fe grabadores
-ir(inica.




                             ES EXTERNA AL CfRCUtTO



                        3-4       de          cornpnfildeJBM bO.cico cor
                  Fig~rcr Esqzt~rna 110pl1~1dor

                         Eir las figums 3-4 y 3-5 se describen dos versiones básicas de este pmprnador
                 qite apenas reqiiicrc cornponcntes. Evidentemente P fiabilidad de este programador es
                                                                        a
                 mucho menor qiic In dcl PICSTART PLUS. pero su facilidad de construcciiin lo hace
                 mriy intcrcsantc para miiltiplcs aplicaciones. Auiiqiic hay quc hacer tina obsen~acicin es
                                                                                                        v
                 que estos p.abadores tan hrisicos no funcionan cor~ectamenteen algunos ordcnnc
                 pottfitjlcs scihre todo. Ademb, iina conexión incorrecta puede dañar cl ordenador.
1   24     MICROCONTROLAWR PICI 6W. DF5AR ROLLO DE PROYECTOS                                                                                  m~4-WA           -
                                                                                                                                                               r' M-h~


l                                                                              D1
                                                           TU
                                                           n7
                                                                              lWi4                                                                             funcionamiel
                                                                                                                                                               u i i g cstc
                                                                                                                                                                fl7r
                                                                                                                                                                        de
                                                                                                                                                               jq)mg.si:~

                                                                                                                                                                         En 15
                                                                                                                                                                             x
                                                                                                                                                               la iiltima ver:


I
     L y y- E
      5 -                                                                                                                                                      ayudar a todc
                                                                                                                                                   ~K          profundo dc
                                                                                                                                               DB
                                                                                                                                                s m
                                                                                                                                                               programa ¡ .C

                                                                                                                          -
                                                                                                                          -
                                                                                                                                                               3.4 G R
     1.fiE.I L
             .
               t C Avriromri lio
     Fimrvn -, -, YYYL,CI.*" M b                       ni.nhn/Lr
                                                 i r n h. L.I.C.C.",
                                                 l l r l
                                                                       rnnind;hlo IT) fiA hr;r;rn
                                                                           IUY.I,I&,             YUil.U,l
                                                                                                            c;i?    n1;montn~Mnoviornrr
                                                                                                                               -.Lr
                                                                                                                    "I...IL..<UL.V..
                                                                       L"I.I
                                                                               I     " Y l l .              .l.<.                                   ,.U


                                                                                                                                                                         Una   (

               ' "i n ~ " ' " " -.. - ' r"P."""""q
               Al ""-'."' nian rhin' pn pl nrnummndnr hnv n i r ~ r r i n r n r c ~
                             r                        ""'  mp                                                  "      que todos los pines o                    desrirrciilar e
    patilla$ del disposiiivo esttn rectos y de que entren t~ien el 2,,,,,.q l r i ,,n , ,
                                                               en     iXr         U,                                                   ,,
                                                                                                                                        ,
                                                                                                                                       niin        +L tm m r
                                                                                                                                                   L
                                                                                                                                                     - tb a    sólo O C ~ S
    mucho cuidado porqlie estos pines se doblan y :se rompen con extrema facilidad.

               """-
               í'iinndn   CP                            r"".         '"  --""- ""- ""."'-' "..
                          "- r~nli7-nf'"...-"-""'-'rmrnummnrinnrr rc nrnnc&nhl~iitili7nr iin 7iirnln
                                        r ~ r i i ~ n t ~ c '-..'"-"..-"
                                                                               L
                                                                                                                                          '*'-""
                                                                                                                                                               material:
         ixiliar entre el micmcontrolador y el zócalo del proprnador, de tal modo qiie sea los
         nes del 7ócalo auxiliar los que sufran Ii frecuentes insercioncs y no los pines del
                                                   rs
         spositivo. Otra alternativa, es reernplaz~r el z k F o del programador por un zócalo de
         em dc inserción nula Z F (Zgfo Jnserfion Forre), aunque ticnc cl inconveniente de su
         evado precio [figura 3-G).



                                                                                                                                                               P'ig74ru   -,-, '

                                                                                                                                                                   *      Unc


                                              Figura



                                                                                                                                                                          3 coi
           El IC-Pr~g es uno ac ios s o h a r e más populares para la grabación de
    microcontrnladores FIC. Permite la prpgmrnaciOn de miichos dispositivos y esti probado                                                                         *      Un
    con numerosos programadores. entre ellos todos los compatibles con JDM. Es de libre                                                                                   elect
    distrihucián y en la pigiiin Wch ~ w v . i c - ~ r o ~ csc m
                                                             o piicdc descargar y recoger toda la                                                                         o frct
    infamación de uso.
                                                                                                                                                                          Com
           Una vez descargndo, la jnstalaciirn de estc software es muy sencilla. basta con                                                                                Web
           -
     .. - - y . - . . . . , " firh~rriirnrriu 7in v wrniir rl n m r ~ r i i m i ~ n t-..... ~n Winrlnwc Fctp
      qrnmnrirnir PI
       .                              .-*T.
                          - p . - + . - - -         Y--.-.." ,.'-"--..".-"'Y iiqii~l-". .. .-..-Y ..*.* --.,--
                                                                 J
                                                                          -           n                                                                                   obra
      d~ivo  consta del ficliero ieprog.e.re, qiie contiene todo el código necesario para su
hncionamiento, con versiones para cualquier s i s t m a oprativo Windows. En caso de
                   utilkar este software con Windows XP, 2000 o NT, es necesario descargar e! archivo
                   icprog..yde F misma Web y situarlo en la misma cavela, junto con el icpvog.a.
                                 a

                          En las próximas piginas v rxpondfin las conocimientos básicos pñra trabajar con
                   la última versión, al cierre de la cdición de este libro, JC-Prog 1.OSC, con la pretensi~n dc
                   ayudar a todos aquéllos que se enfrentan por primera vez a este s o h a r e . Pasa un anilisis
                   profundo de todas sus posibilidades se rcmite a la documentación tknica, ya que el propio
                   prograina IC-Pro2 tiene un buen sistema dc ayida qiie permite un rápido anrendizaie.

                   3.4 GRA                     5~ CON MEDIOS REDUCIDO
                          Una de las grandes ventajas de T s micmntmladores PIC es que pcrrniten
                                                          o
xlos los pines o   amar: el proceso de p h a c i h n con muy poco gasto. Para aqitéllos qiie desarrollan
                       rollar     ,


 I4ay que tener    S610 ocasionallmente proyectos               ; basados en micmontroladores, es suficiente
Iidad.             utilinIr el procedimjenro de                 in con medios reducidos que se indica a
                   contil~uación.S e ~ i n esquemr
                                         el                     gma 3-1, este pmediiniento utiFiw el siguiente
ili7ar un zkrtlo   material:
3d0  que sea los
o los pines del
jr un zócaIo de
nveniente de su




                   Figuro 3- 7              conectar elprogru~r~uurirrrcrvv., de los puelios
                                 Cuurcy u r ~                     u                              COMI o CUML

                           Un ordenador personal.
                      m    Un cable de conexión entre ordenador y pmgmmador del tipo serie DB9 para
                           puerto COM (figura 3-7). Este cable se puede adquirir en tiendas especializadas
                           o bien fabricarlo mediante dos conectores DR9 (hembra y macho) y cable,
                           preferiblemente plano, concxionando los pines con el mismo nUmero en cada
                           extremo, es decir el: terminal 1 de un conector con el terminal I del otro. 2 con 2,
 b.c.v,.w,4n dc            3 con 3, etc.
 y cstli probado           Un programador TE20-SE, ds                      adquisicihn en cualqiiier tienda de
)M. Es dc libre            electrónica. En apíindicc F y e                 m-ROM que acornpafiiia a este libro se
 rccogcr toda la           ofmen planos para su construcci,,,.
                      *    Como sottWm se utiliza el IC-l%g 1.0:iC, que 1    bajarse librrmente di la
                                                                         ~uede
cilla. basta con           Web www.ic-rmn.com. y que 4e incluye: en el C D-ROM que acornpaiía a 4sta
                                                ,
Windows. Este              obra, p c i a s a   Iri generosidad de Bonny   Gijzen, su autor.
:esario pan su
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
que sólo !a línea
I del puerto y la
~ctum   distinta a
in de ser de esta
ieración de una
W 7 : W . Tcdas
ir, conectada a la


mgramaaas para
y r a 5-9 muestra
variación dc una
 la ultima sefial
le las señales de
o TNTCON.

        ienfación           LENGUAJE MÁQUINA
           máxima
  I I I ~11and0
              está
        ~
                             El Único lenguaje que entienden los rnicr~ontroladoreses el formado par Ios ceros
:ia dcl chip, esta   ! unos dd sistema binario. Cualquier instrucción qiie deba ser cj~cutadapor 61
                      :
luede exceder de     rnicrocontrolador debe estar expresada en binario. A este lenguaje se le denomina
                     lenguaje rnhquina, por ser el que comprende el microcontrnlado~Los códigos de este
                     leripiia,je que fonnari Ins iristnicciones se llaman c6dijys máquina. Así por ejemplo.
                     cuaiido el microcontrolador PlC láF84 lee cl chdigo mricluina " '1 11 11000 1 1 10 1 W, esti
                     recibiendo la instmccion: ".rrrmn58 al regi,v/ro de trabajo W y g-uurda e/ resi~lratfo   en
   Pin               esk mismo regi~tro   W".
 RB7,R84


                                            :J;?   -    c T, +-y
                                                        r
                                                        .

                                                       .t   't-




                            Cualquier otro lenguaje que se utilice debe ser tndticido a unos y ceros para que el
                     rnicrocontrolador pueda procesarlo. Dicha codificaciOn binaria resulta incdrnoda para
                     traba-jar, por lo que muchas veces se utiliza la codificación hexadecimal para facilitar la
                     interpretación de los códigos miquina y no saturar las pantallas (ni los cerebros) de unos
                     y ceros, Asi por ejemplo, en el capitujo 3 se pracedio a grabar los microcontroladom
5H   M1C'ROCC)NTROLADOR P C AF84. DESAñROL LO DF. PROYECTOS
                         11                                                                    3 RA-m




utilizando el pi-ugmrna IC-Prog, que trabaja cn lenguaje máquina, pero utilizando la
codificacion hexadeciinal, tal cotrio se aprecia en el cjemplo de la figiira 6- l.

6.2 LENGUAJE ENSAMBLADOR
       El lenguaje máquina cs difícil de utilizar por el horiihre ya que se aleja de su fonna
natural de expresarse, por esto se irtiliza el lenguaje ensamblador, que es la forma de
zitprwar las instrucciones de una f m a más natural al hombre y quc, siti embargo, es
muy cercana al microcontrolador porque cada una c k sus instmcciones se corresponde
con otra en ciidigo máquina que e1 microcontroladcir es capaz de interpretar.

       El leti-=aje cnsarnblador utiliza nembnicos que son grupos de canctzrcs
alfaniiméricos que siinbolizan las órdenes ci tareas a realizar con cada instruccjón. Los
nemonicos se corresponden con las iiiiciales dcl nombre de la insuuccion en inglés, de
fom~aque "recuerdan" la operaciori quc realiza la instrucci8n, lo que facilita su
mertiorizacion.

       Así. por ejemplo: para oriictiar al rnicrocoritrolndor PIClóF84: "sumu 58 al
rrxistro rh? lt!rriliujo W y gear7i-du el resultado en este m i . ~ m ~
                                                                     registro W", en leiigiajc
cnsarnblador sería "addw d'5'58'"quc es mucho m i s amable qiic cl"1111100011l010"
del lenguaje máquü-ia.

       Resumiendo con un ejemplo:
           Instrucción:       "Srriirri                                W
                                          58 ul r-e,yisiim d~ ~t-ublljo y                r~~~.ulíudo
                                                                            ~ ~ C I Y el ~ U
                                                                                       I
                             en   SIL'    ~ni.~tno
                                                 registro ".
           Elisamblador:     uddw d'5H '.
           Máquina:          1 1 1 1 10 00 11 1 O 1O (expresado en binanol.
                             3 E3 A (expresado eii hexadccimal).

6.3 PROGRAMA ENSAMSLADOR
       El programa ensamblador es un software que se encarga de traducir los
nemonicos y símbolos alfanumkricos del prcgrama escrito en ensamblaclor por el usuario
a código máquina, para qiic piieda ser interpretado y ejecutado por el mjcrocontrolador.

       E1 programa escrito en lcnguaje ensamblador recibe la denominación de código
fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo
hizntc debe ser traducido a código riiiquina, de lo cual se encarga el programa
ensamblador. La mayoría de los ensambladores proporcionan a su salida un fichcro que
sucle tener la extensión *.hex. Este fichero puede ser grabado en la memoria de p r o p m a
mediante la utilización de un grabador de microccintroladores.
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
hli   MIC'KcX'ONTROLADORPTC I GF84. DESARXCJLLO DE PROYECTOS                            E RA-M h




                          6-2 Repertorio de ipisfrucciones del PIC16 F84
                    Tatill~

      Las instrucciones se recogen e n L tabla 6-2 y detallan cn su totalidad en el
                                            a
apéndice B. En este capitulo se estudiimin 111s instrucciones inás scnrillas.

6.9 INSTRUCCIONES DE CARGA
       Las instrucciones de transferencias de datos son típicas de todos los procesadores y
su misión es transferir el contenido un registro fuerite (f! a iiti registro destino (d) o bien
cargar el destino con utia constante. En los microcoilrroladritrs PIC todos los datos
residen en posiciones de la triemoria de datos y en el registro de trabajo W.                      6.9

       En la explicacion de estas instrucciones se ernplea muchas veces una nomenclahita
especial muy sirriplc basada en parintesis y flechas. Con los paréntesis se destaca que se         del 1
trata del "contenido" de las posiciones de iiienioria y la flecha la Jircccibn d e lad             re@
transferencia de los datos. Algunos cjcmplos:                                                      resul

         ( W ) 3 (PORTB):      Significa "el conr~niLio registro W 
 se truns$ere u1
                                                           del                                     w
                                                                                                   Ante
                               puerto B.'.
         (2Bh) 3 (W):          Significa "el contenido 
 la pwíció~?
                                                          dr                   2Bk de M M de       m
                               h t o s se bransjere al registro ri'c. traht-rjo Hp'.
                                                                                                   Et
                                                                                                    ia
         2Bh i (W):            Significa "e/ regt~trode tti-ub(?jose c~irgacon el dato             Ante
                               ZRIi". (Notar la auscncia de parkntesis).
                                                              
                                    w
        Hay cinco instruccioiies de carga propiamente dichas:
                                    

                                                                                                   6.9,
6.9.1 clrw
                                                                                                   regis
       (Cleur W). El contenido del registro W se borrri (se cargsi con b'00000000') y cl
flag Z sc activa a " I ". Esta instrucción también se podria cotisiderar como aritmética.          Ejw
                                                                                                   Ante
                                                                                                   -1
fi R A M A




                                Ejeir                ctw
                                Antc                 (W) =                  Z = l.'?
                                                                             - .
       Ninglino            1    Despues instrucc~on: ( N r )= ~ l x f l f ty L = l .    .
       Ninguno             1
       Ninguno
       Ninmin~             1
                                      (Clemfl. El contenido de1 regrstro ' f se b m (se carga con b'000000007 y el flag
                                                                                 o
                                Z se adiva a uno. Esta instmccibntambién se d n a considerar como aritmética.
       mo. PD
       Ninguno
       m,rnD
                1               Qerr
                                Antc
                                npcr



                                6.9.3 movlw k
.I    total idai
                                      (Mnve Literal to W). El re3ist-m W se carga con el valor de los              8 bits de la
                                constanic'k'. Ningiin flag del registro de estado es atkctado.



.i3 I I I Ubb30

lestino (d) o bien
' todos los datos

C'.                             6.9.4 movf f,d
                                        (Movej.El contenido del registro 'f se carga en el registm destino dependiendo
                                                                                                                                  '

una nomenclatura
se destaca que se               del valor de 'd'. Si 'd' = O el destino es el regstro W, s Vd* I el destino es el propio
                                                                                         i    =

 direcciót

           '..-iuni


IBA & h!AM de
                                registro 'f. El f l a ~ del registro S T A T U S - ~ U ~ ~ ~Z se activa a "1" si el
                                resulitado de la
                                         . .
                                Eiemn 10 F :
                                Ante
                                Dcspuks instn
                                                      Z        -
                                                        i es ccrcE.
                                                         n
                                                          movt PORXd, 0
                                                          p R'A) = Ox 1Ik
                                                           O1  .
                                                          (POR?'A) = 0x11 A,
                                                                                       afectado:

                                                                                              : (PORTAI
                                                                                       (W) = i',
                                                                                       (W) = o:
                                                                                                               + 1w)                  I
 r w
 11    &
                                2em
                                i.
                                 i                                                                -   >

' r p con el dato               Aiizei
                                Dcsp                                                   el resultaido de Ia 1




                                         (Move W lo 1 .
                                                     )Carga el contenido del registro W al registro 'f. Nirigún flag, del
                                registro de estado es afectado.
                                                                                                                                      I
                                Qmplo:
                                Antes inshcc ión:
                                Despuks iinstniccihn:
                                                          rnovwf PORTB
                                                          (PORTR) = i,?
                                                          (PORTB) = 0x4
                                                                                                  : (W) -9 (PORm

                                                                                                                                      I
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
y seleccionar Orrprtt ro File y salvar cl fichero de la forma ya conocida en el entorno
                      'indows.
h i t o general de1
:contenido de la




                                                 5TbTL5
                                                 PCL      .   .
                                                                  -.
                                                                  .




                                             3   de estado
                            Aunque no es una ventana de visualizaci6n propiamente dicha, la linea de estado
                      proporciona infomciiin muy iitil sobre la situacibn actual del microcontrolador. Se ubica



                  1
                      m la pane inf&or de la pantalla y ofrece infomnacion en todo momento del estado de Ia
-------
                      simular1n.i
                        ..."."O
                                  .,

                              Es especialmente útil la infamación sobre el contenido del contador de progama.
                      del registro de trabajo W.También indica el valor de las flags de STATUS. Si la letra está   I
                      m rnaqúsculas indica que ese flag vale "1 " y, si es miniicc~alas "O". Asi en el ejemplo
                                                                                      vale                         I

                      de la flgtn 7-13, Z =O, DC =1 y C=E.
                      ---+
                      WFAQ?u                       ..
                                                   --
                                       :~~~JTARTa ; l
                                              ~         S .
                                                          .
                                                         -. -
                                                          ;   ....... - -
                                                         ~ W m P 7 a h 3 - . w :- .
2 duros                                                       .           ......  --+---                  L .




                             Fipcrn 7-iJ , A ~ ,wc- G , ~ L ~ Lcon la infamación del PC, W yJrapP~ SIn
                                                 , ~ ~         I~)                               del
hre simb6licci que
de usiiario.
                      7,6 SIMULACI~N
                                   BASICA
                            T m el proceso dc ensamblado sc p d e a la simiilacibn del programa, Mientras
                      w ejecuta la simutacibn del programa es interesante visualizar el contenido de las
tc supervisar los
                      ventanas explicadas antes y comprobar el efecto m cada una de ellas.
iso concreto. Para
wdro de dililogo          Es conveniente antes dc nada, comprobar que está cargado correctamente el
ee pulsando sobre     IPLAB SIM, tal como se explicb en L figura 7-4.
                                                         a

                           Los cinco comandos m& importantes p m la simulaci6n se localizan dentro del
rla m posteriores     menú Debbuger y se muestran en la f_ 7-24.
                                                         i m
 I    I   1   .'
              ,
92   MICROCONTROLADOR PIC IóFR4. DE'RROLLO DE PROYECTOS                          c          A-MA




     m   Rfrn. Modo de ejecucibn continua. Ejecuta el programa constantemente. Las
         ventanas abiertas en el paso anterior no se actualizan hasta que no se produce
         una parada. Es la fama m i s rápida de simular el programa, pero no se "vi
         como evoluciona la memoria ni los distintos registros. En este modo se i
         seleccionando Beliijgger > R ~ t n pulsando la tecla F9, tambitn al pulsar S
                                          o
         el icono correspondiente de la barra de herramientas (flecha azul).

         Animate (o teclas ctrMF9). Modo de ejecucihn animada. Ejecuta el programa
         de forma continua pero actualizando todas las ventanas cada vez que se
         ejecuta una instrucción. Es m& Eenro que el modo "Run" pero permite ver
         como van cambiando los registros. Tal vez sea d modo de ejecución más util
         y rccomendablc. Se entn en este modo seleccionando D s h i r ~ ~ >r
                                                                          e Aninia
         también al pulsar sobre el icono correspondiente de la barra de herramic
         (doble flecha azul).

     *   Hah Paro. Para la ejeciicibn del programa y actirajixa todas las ventanas. Se
                                             >
         consigue seleccionando D~hti~gger Run o pulsando la tecla E5. Tambidn se
         entra en cstc modo al activar el icono correspondiente de la bam
         herramientas (dos barras verticales azules).

         Sfep Inro. Ejecuci6n paso a paso. Eiccuta una soJa instnicciCin del progama
         cada vez actiializando los valores dc las ventanas. Es la forma mis lcnta de
         simuIaciiin pero se compnieba fáci 1mente como van evolucionando todos los
         registros y memorias, siendo muy facil dstectar los posibles errores. En este
         modo se entra seleccionando Debugger > Srep Info o piilsando la tecla F7.
         Tnmbjézi pulsando sobre el icono correspondiente de la barra de herramientas.

     *   Resef. Equivale a un reset por activación del pin MCLR. En este modo sc                   Pan1
         entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. También si se    aemho tic
         pulsa sobre el icwo correspondiente de la barra de herramientas.                 Seleccionn
                                                                                          donde Iia   i
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
i   la figura9-4 que
t~
t
.
                                                   .           .    -
                                      Esta dir                     fine una (                             :to. Dondle quiera Ique <nome>
                                    icuentre, e                    mblador :

                                      Ejemplo I :
A continuación se
                                    :]Ni?LED       PORTB                                      s conecta i: cstn Iine
                                                                                              e          n
                                                   ...
                                        bsf        LED



BLOCK (Dflne n              :D~P               id              bc                           tl Ranw O,
lnes (genmlmentc            ~DFF               icof            bs                  : n .o: Rznm 1 .
                                                                                      m; i1
                             -DFF              D               P(                  : El LER sc conccia 3
marcada entre las

                                                                                   ; ACCCW al Banco 1.
                                                                                   ; Confrgum csla línea como salida.
                                                                                   ; hcccw : Banco O.
                                                                                             i1
                                                                                   : Encicndi: diodo L
                                                                                               el


                                  Esta directiva emula #DEFINE del ANSI C standard. Los simbolos definidos con
                            este mCtodo no están disponibles Dara ser usados mr el MPLAB.
anterior ejemplo).
15. Si este valor no        9.9 CONVERS                                           ARIO NATURAL A BCD
 cuwrior al: de la
 si a lo largo del                  La conversión de un numero expresado en binario natural a formato hcu es una
ion de variables,           d e las opcracianes más utilizadas en los progamas con microcontrolador y que merece ser                       !;

                            analizada en detalle. Por eiemplo el valor 124 expresado en binario n a t m 1 seria
                                                           .                                                                               I
                            01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidades
      definida
                            qudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta
.4.                                       Un
                            coni~crsihn. programa ejemplo que lo irnplernenta. seria el descrito a continuaci9n y
                            que s,e pttede comprobar sobre el circuito de Iri figura 9-6.

                            ***si



nienzo los valores          . Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrl e n m psicioncs
                                                                                                     a
a RAM 4de datos.            :dcmem~irins     ilamadas Ccntcna~. Docenas y L'nirladcs A d m i s a l tiiial 1las unidades estaráti en el
    ., -1   h e ,--m   -A
                            ; nihhl c bajo del repsmi W y las dcccnas cn cl nlbhlc alto. En Ins didas LEDs canectados al
                                   o de calida se visuaii7arán ! s dmenas y la* L
                                                                a

                            ; El m                                                            valor que p
                            :niuni

                            :El procediniientr2 utilizado 1
                                             "
                            :ejempln quc trai; A.      l*.s,
                                                         .,
                                                          .-
MICROCO~OLAWR
                      PIC16F84.DESARROLLO DE PROYECTOS                                                          OWMA




                    {Decenas)
                                                                                                                        movlw
                                                                                                                        subwf
                                                  NO, I
                                                      H                     Incremcn                  S).
                                                                                                                        btfi~;
                                                  NO, m!                    NO. .
                                                                            .. .
                                                                               .
                                                                                 hcrt                 cenas).
                                                                                                                        Foto
                                                  NO,mi                     NO. lncmcnta (Uc  cenas).
                                                  NO. resi                  NO. Incremonta (aecenas).
                                                  NO,mi                     NO.Incremnta (Decmia~).
                                                  NO, m                     NQ. Incrementa (Decenas).
                                                  NO. ma lo
                                                       c                    NO. Incrt:menta (Dc cmiaii).
                                                  NO. reSra 10              NO. Incrtmenta (Decenas).
                                                  NO, Festa 10              NO. lncrt:mcn ta (Decenas).
                                                  NO,resr f n               hln lnm..-. + I r % * r * n n r l
                                                                                     . .M -
                                                                            ,*v.iii~ibiiibiira
                                                                                             (r,c bCil02,J.
                                                  NO. m t                   Si. @ecenari)=O, y aldemb
                                                                               incrementa (Cenfew )
                                                  NO, resta 10              NO.Inemnenta (Decenas)
                                                  sí, se
                                   te 'Numero".




                         r-   1l

                    UDE <PI(

             CSLGLAIB(UL                      :u zona ac memona ac usuano comicnz.. ... . .
                                                i                                    . .

             Centenas                         ; dirrccii     h a R h M de datos.
             Decer)y
                   a                          ; Pmició
             Unida                            ; Pmici8
             ENüí

    Numero EQU



             ORG                                  ;El   pmg
    inicio
             bsf        STAT                  ;Accesob al Banco 1
             clrf       TRlSE                 : l s liniz del F erio R se contigam wmo sdicta.
                                                 a             u
             bcf        STAT                  :Acceso al Banco I1.
                                                           b


    mua
     n pr
             clrf       Centenas                  :Carga 10s qismr;con el res1~ltado   inici:                          "BCD-lncr
             clrf       Decenas                   ; En principio (Cenitenaspo y i[Dcce:enas)=
             movlw      Numero
            moru                              : Se carga el n m binano a convertir.
                                                             ú m
    Bm-Restui 10
1
            movh                              ; Alahu          les va restaindo 10en c
                                                                . .
            subwt                             : pa-da. (WJ==(Untdades)-lo.
                                                           ?, i ( W ) Vi!
                                                                                         ,.   .   <


                                                           menor de 1
    BCD
Microcontrolador pic16 f84, desarrollo de proyectos ao
RAO             ABOff N f
                         R41                 RB1
                         RA2                 RB2                                              : Lns salidai se o h t i i
                         RA3                 R53                                              : RR5 (SI;' i, m (53:
                                                                                                              4
                         RMOCKI              RR4
                                             R85
                                             RB6                                              ; ZONA     D'E DATOS




              Fignrn 9-6 Circttito paro compmhar el programa RCD_Ol.mm
                                                                                                           novlw      P
                                                                                                           iioluri 3
                                                                                                           1cf     S
       EI salto indexado es una tknica que pemiite resolver problemas que puedan ser
                                                                                                           aovf-      P
representado mediante tina tabla de verdad, En el PICI 6F84 se basa en la utilización de la                ndlw       h
instniccihn addyf PCI,,F, de este modo, la direccihn del saIto se consigue sumando a[                      ddwf       P
contador de programa (PCL) un valor de desplazamiento almacenado en el regiswo de
trabajo W.                                                                                                 oto       C
                                                                                                           oto       C'
                                                                                                           oto       C
       En el salto indexado, la dirección del salto se co~sigue
                                                              sumando a un registro base
(el PCL) un valor de desplazamiento alrnrlcenado en un registro índice que es el registro
de trabajo W.A cste valor de dcsplazamiento se le denomina también qfl~et. ejecutar la
                                                                           Al
instmccihn cw PCL,F el registro base TCL) debe estar cargado w n la p r i ~ m
               r
               d
direccion de Fa tabla, apuntado de esta manera al origen de ba
                                                             t .                                           >!o       C
                                                                                                           nnO
                                                                                                           ovlw      h'
      En el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado                          ..-
                                                                                                           IlCl      i4

hardware utilizado s d el esquema de la figura 9-7.                                                        .mt
                                                                                                           ovlw      h'l
                                                                                                           ,tn       h.
                                                                                                           id
: tmp11
      :matar un: tabla dc Ii verdad m
                  a          :       i           iancja dc te                                              ovlw      h'l
;Por qjtmpto, la Iabla seri de 3 enmb            s tal como I                                              itn       A'
                                                                                                           1717
C ' M ~ U L O SALTOS
                                                                                                                                                                                       9: 
      135


                                                        o o 1 1 a o 1 o o I;(cd*I-6nl).
                                                        o 1 o 1 1 o o o 1 i;(-hz).
                                                        o r i 1 o o 1 1 1 I;@orSi@&tf).
                                                        1 O O ] 1 O O                             O O O;wgumidn4).
                                                        1 O 1 1 O O O                             i 1 l;(CdgumcibnS)-
                                                        1 1 O [ O 1 0                             1 1 l;(Conftguracibnó).
                                                        1 1 1 1 i 1 i                             1 1 l;(Wguraciún7).

                      ;im enbndw C, B. A se mectai.mia las llneas del puerto A: RA2 C , M (B) y RAU {A).
                                                                                   () 1         

                      ;Lassalidasse~enenelpuertnB:
                      ;RBS(S5),lU34 (M), 3 (S3).RB2 (521, M (Sl) RBO (SO).
                                       M                   1    y

                      ;ZONADEDATOS * * * S H * * * l * % ' * * * * W ' * * * * S I * * * * * * * * * * * * 5 * 1 I I * L * I * * * * * * * * * * * * * * * h * * * * U * * * * *

                                          CONFIG CP-OFF & -ri'DT-QFF & -PWRTEEON & XT-OSC
                                     EST                    P=16F84A
                                      INCLüDE 4'16F84A.lNG
                      ;ZONADEC~D~GOS**'*******************Q"'*L******~****#********S:*****~***++***********

                                     ORG                O                                                         ; El pmgrama conireriza en h direaibn 0.

                                     bsf                STATWSH'O                                                 ; Acceso d Banco l .
                                     clrf               TMSB                                                      : Las heas del hiato B se c o n f i p m u como saiida.
                                                                                                                        
                   

                                     movlw              blOOO1 1 111'                                             :Las 5 líneas det Puerto A se configuran como eukada.
                                     mowf               TRISA
                                     bcf                STATUS,RPO                                                ;Acceso al Banco O.
s que puedan ser
                                     movf               PORTA,W                                                  ;Leo el valor de las variables de e n e .
                                                                                                                        
           

i utilizxiiin de la
                                     andlw              b'00000t1i'                                              ;Se queda c los a c bits de enaada.
                                                                                                                               m e
;igue sumando al                                                                                                 ; Salta a la configuracibn &macla.
en el registro de
                                     goto               Conf1~0iiO
                                     gota               Configuracion 1
                                     goto               Co~guracion2
un registro base                     goto               Corhgumcicin3
que es el registro                   goto               Conñguraciod
;fr. Al ejecutar la                  goto               ConfiguracionS
I con la primera                     goto               Cdguraciaaó
                                     goto               Configmcion7

                                     rnovlw             b'0000101Ot                                               ; Confipuracibn O.
Ito indexado. El                     goto               Activasalida

                                                                                                                  ; configuracibn l.
'.CL*******I*



                                     movlw              b'OO1OOO1li                                               :Cun-ih                       2,


                                     movb               b'0000111~'                                               ; C 0 n ñ ~ i S 3.
                                                                                                                                  o
                                     gota               ActívaSaW
                      Cdgumíon4
136   MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS                         F RA - MA




           mvIw
                                                                                                             El reg
           8 0                                                                                               un reg
C      ~          i   d
           mvlw
                                                                                                             Los bi
Conf~iioti6                                                                                                  puede
           mwh                                                                                               PC LA
           soto
Cwfigmcion7
       mvlw
ActivaSalida
           mw
            Yf                            ;V i d i z a por el pueFto de salida




       En las soluciones de los ejercicios facilitadas en el CD-ROM que acompaña a este
libro, se describe otra forma de implemmitacibn más eficaz mediante el p r o v a
indexado-O1 B.acai.                                                                                    El PCLl
                                                                                                bits son transfe
                                                                                                tiznen por dcsti

                                                                                                        Cuando !
                                                                                                instnicciiin .ad
                                                                                                es así, cl salto e
                                                                                                que el registro
                                                                                                prueba de un sa



                                                                                               ; P r o w a para cor
                                                                                               ;Se debe comproba
                                                                                               9

                                                                                               ; ZONA DE DATO

                                                                                                           INCLUO
                                                                                                           LIST

                                                                                               ;ZONA DE C ~ D I

                                paru comprnhur ios programas de tabla de ivrdac3
           Figura 9-7 Cit.~liliio                                                                          ORG
                                                                                               Inicio
                                                                                                           goto
                                                                                                           c h
9.1 1 SALTO INDEXADO DESCONTROLADO
       Como ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programa                  ORG
                                                                                               Principal
y que direccionan la memoria de código estan guardados en dos registros específicos                        niovlw
(figura 9-8):                                                                                              addwf
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
i RA-VA
                   ¿                                                            CAP~TULO SUBRL'ITNAS DE RETARDO
                                                                                        12:                       173



;ta iiistniccion tarda
 cnstal de cuarzo de




                                     Carga contador R..ContA can                     Carga contador R-ContB con
                                            valor inicial "K"                               valor inicial "M"




                                                                                     Carga contador R-ConlA con
                                                                                            valor inicial "K*



                                                                                      Pequerio tiempo de espera

urrido
                                                                                        Decrementa R-CoiitA




:S   resulta necesario
;intervalospueden
 simple de algunas                A). ESTRUCTURA DE UNA SUBRUTINA
                                     DE RETARDO CON UN LAZO SIMPLE.
:0nseguir el retardo                                                                    Oecrementa R-ContB
rucción es conocido
:I registro R-Corrr.4,
ibtenw el tiempo de


ijerite fragmento de
                                              B). ESTRUCTURA DE UNA SUBRUTINA DE 

la figura 12-4(A) se                             RETARDO CON DOS LAZOS ANIDADOS 




máquina.                                        Figura 12-4 Esfruchci-ade Iw sub~4tjna~ r~~tnrdo
                                                                                     d(9
d valor de "6".
                                  Es fácil deducir que el valor de    constante "K" con el que se ha cargado
                                                                         la
                             ~iiicialmente contador R-ContA vendrá dado por la sigiiientc ecuación, donde el tiempo
                                         el
:cm (al saltar).             viene expresado en ps:

; miquina.
                                                           Ziempo=5+4K           K=


<=249).
EJEMPLO: Calcular el valor de la constante K, para obtener una subrutina de
retardo de 500 ps con la estructura de de la figura 12-qA).


                                                                                                                1
                                                                                             ; apaga durante
      Soluci6n: Aplicando la ecuación se obtiene:
                                                                                             ;ZONA DE DA
                                  Tiempo - 5 - 500 - 5
                             K=-             -         = 123,7
                                      4          4
      Así pues se elige K=123, obteniSndcise un tiempo de retardo real de:
                          Tiempo=5+4K=5+4+123=497ps
       El ajuste fino para Ios 500 ps exactos se consegurta añadietido 3 instrucciones nop   #DEFINE LED        (
al principio de la subrutina de retardo.                                                     ;ZONA DE C O
                                                                                                         ORG
12.5 RETARDOS MEDIANTE LAZOS ANlDADOS                                                        inicio
                                                                                                         bsf
                                                                                                         hcf
       Para lo genecic18nde retardos de niayor duración deber1 ulilizarse lazos aiiidados,
                                                                                                         bff
poniendo un lm dc retardo dcntrv cli: otro. La forma de liacerlo se explica en Ins           Principal
subrutinas "Retardo-200ms" y "Retardo-1 00ms" del siguiente programa ejcinplo, donde                     bsf
a partir de la csmictura de 1 ms conseguido en la sccciiin anterior se obtienen rctardos                 cal1
mayores mediante la redlización de lazos anidados, figura 12-4(B). Este programa es una                  d
    aplicacion de un LED intenriitcnte para cl circiiito de la figura 12-5.
i~til                                                                                                    bcf
                                                                                                         caii
                                                                                                         catl
                                                                                                         gom




                                                    D1
                                                    RBO        R1




                                Figura 17-5 Internaitenle
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
W                                                                                                                                                 i
    318   MlCKIX:OKTROLAWR PIS lriF84, DESARRULW DE PROYWTLiS                                              c~   4 . ~ 4   O RA-MA



    20.9 PROGRAMA EJEMPLO
           Escribir por el teclado de un ordenador y que esta infomacibn se -¡sualice en la
    pantalla del módulo LCD de un sistema con microcontrolador es un ejemplo inmediato de
    las aplicaciones que la conexión entrc microcontrolador y puerto RS232 cle un ordcnddor
    puede ofrecer. Para cl cvmcto fiincionamiento del siguiente programa ejemplo hay que
    cutnplir los tres requisitos fundamentales de este tipo de comunicaciones:
               Hardware: Se ejecuta sobre el circuito di: la figura 20-13, no se ha de olvidar
               conectarlci al pumo COM 1 o COhl2 dcl ordenador a través del cable RS232.
               Un programa de coniunicaciones quc se debe abrir en el ordenador, como el
               evper-Tertninalu otro siini lar.
               Programa de control del rnicrocontrolador que se debe ejecutar en el
               rriiccocontrolador.

           Un programa de control grabado en el rnicrocontrolador podría scr el siguiente
    cjcinplii suficientemente documentado:


    ;En el m&lo LCD se visualizan los caracteres que se escriban en el teclado del ordenador
    ;y se mnsmiten a h v e s de su puerto serie. E s &?tos v o l v e a ser enviados por el
                                                   m
    ; microcontrolador a1 ordenador, por lo que tambikn se visualizxia en su moiútor.

    ;Se utilizani un programa de comunicaciunespara que el ordenador pueda enviar datos
    ;a través de ru puerto serie, como el HyperTminal de Windows o alguno similar.

    ; Concluyendo, lo que re escriba cn el teclado del ordenador aparecer6 en la pantalla de'                                             Figura ;
    ; mduto LCD y cn el monitor del HyperTemind.
    7
    :~~NADE~AT~S**********5*5******C*C*****Qdii**OiPiP*****CC******~~*~****L**************


                                                                                                                                  Una aplicacii
                                                                                                                           hacia el ordenador.
                                                                                                                           RS232-MEN.MC,           1



                                                                                                                                      "RS232-M(
                                                                                                                                      cl microcon
                                                                                                                                      "RS232 LU
                                                                                                                                      del ordenad
               ORG       O
    In1c10
               cl
                a1       LCD_Lnicializa                 ;Ini~dLCUyIaslúiwiaiquese                                          .+~**L**L.*%***4**.*
                                                                                                                           J
               1         RS232-lnicializa               :van a utiIizar en la c m w i w i h c m e puzrto
                                                                                                l                          I
                                                                                                                           ?

    Ptincipd                                            ; Serie ñS232.                                                     j        mbrutinaa
               di        RS232-LeeDato                  ;Esperamibirunmhctm.                                              a;
                                                                                                                          -               tmds del 1
               mwwf      GtmdaLMo                       ;Guarda el daui mibi&.
               d         WD-Cmter                        ;Lo v i s u d k
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
1,.   440   MICROCC1NTKCIL:IDOR PICIGFSJ. DESARROLLO DE PROYECTOS                          E m-MA



               NCLUDE    <RE;TARDoS.INO
               MCLUDE    <BZNBCD. [ O
                                  N
I              MCLUI)E   -UD-4BIT.iYO
I              INCLUDE   <LCD-MENS.iNC>
               END

~:           Para probar este circuito se puede utilizar la tensiiin variable que se obtiene del
1,    divisor de tensión formado por R7 y R8.

            Este voltimetro puede medir una tensión entre O y 2,5 V. Para conseguir otros

i
11
      valores de escalas Iiabria que añadirle a la entrada circuitos atenuadores y amplificadores.
      Sr anima al lector a desarrollarlo como proyecto.
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
454        MCROCONTROLADOR PIC 16FW.
                                   DESARRULI.0 DE PROYECTOS                                        O M.MA




                                                                                           52

                                                                                           MODO




                    -          -
                                    SALIDA
                                                    MOC3041      A6
                                              77m

                                                                                                   d1
                                                                                                   REO
                                                                                                   230 V-
                                                                                                   53
                                                                                                   CARGA
                                                                                                   1500W
           DS1820
          (V~sto debalo)
               por



                           Figura 28-8 Esq ucmd de un termostafo digira)dr' precisihn

,
i*b8**i*C********+**i*******S*+C+SDSi82U             'T-osm,irsm*********************

; hgrama & conml p un tmómeim y termostato digital. U t d k el censor de temperatura
                       m
; DSl82O que transmite la inform~lcion serie a t n v k s de un tiw de ima sola lhea según un
                                      via
:protocolo del fibricwtr:de semiconductorm WaHas Semiwnduciors.

; El ajuste de la te111peratura a l que conmuta el termostato se logra mediante dos puisadores:
                                  a                                                                         :ZONA DE c ~ D
;"MODO" e "iNCREMEWAR",que se conectan a pines del Puerto B y cuyo funciondento ce basa eii
; intmnqxión p cambio mla línea del Puerta B.                                                                          ORG
                                                                                                                       gota
;Se maneja de la siguiente I'nrms:                                                                                     ORG
;     -  En estado de reposo funciona sbto c a n o tennhemi. Aparece la tmpmrura rn pantalla
         de1 niMulu LCB. La salida del termostato está apagada
                                                                                                                       guiu
Y

; -      Pulsa "MODO" y se ajusta h tmpmtura deseada m&te el p u l d m "INCREMENTAR''                       Mensajes
; -      Vuelve B pulsar 'MODO". se activa el temw>stato.Si la temperatura n a d a es menor que               ,     rrddwf
         Itt d m d a mcimde la carga, que puede ser un caiefactm. Si la bemperatura medida es               Mewijchibliciwic
         nuiyor que la M a h , apaga la carga.                                                                         DT "ES.
; -      Si se vuelve a pulsar "MODO", apaga la carga y pesa a funcionar FL como t e r r n h m .
                                                                           6o
,SI RA- MA                                                                   28:
                                                                                  (:AP~K~LO B US DE l . r N ~
                                                                                                            L~NE.A 455
     -
     A-M A




             ;Así pues, en el circuito se distinguen ms m d o s de funcionamientoque se identifican
             ;mediante tres flag:
             ; A)         Modo 'TemiostatotoOFF",donde funciona como termbniew normal sin temiostato. Se
                          reconwe por e1 flag FTemostato-OFF.
             ;B)          Mado "TennosMo-Ajuste", donde se ajusta la temperatura deseada cuando funcione
                          coma termostato. Se reconoce por el flag F-Termostato-Ajuste.
             ; C)         Modo "Tmmtatc-ON", donde funciona como temrórnetro niirrnal con tmrnosraw.Se
                          reconoce por el flag F-Temiostato-ON.

             ; El progama consigue que esti activdo uno solo de los flags antenores.

             :Al apagar el sistema debe conservar el valor de la temperatura deseada en e1 termostato
             ; para la priixíma vez que se encienda.




                            CONFIG -0-OFF & -WDT-OFF & _PWRTE-ON & -_XT-OSC
                          LIST    P= 16F84A
                          MCLUDE XP I GF84A.iNC>



                                                                          ; Guarda 10s incrementos cada 50 m .
                                                                                                             s
                                                                          ;Guarda 10s flags para establmer los
                                                                          ; m&s de trabaja

                                                                           ; Corresponde a la dirección O da la zona
                                                                           ; EEPROM de datos. Aqui se va a guardar e1
J3
CARGA                                                                      : la temperatura deseada. En principio24 "C.
i5W'N

             #DEFIN E      SalidaTemostato             PORTl3,I           : Cargd controlada por el termostato.
             #DEFINE       Zumbador                    PORTJ3,2           ; Aqui se conecta el zumbador.
             #DEFINE  MvdoPulsador                     PORTB,7            ; Los pulsadms se conectan a estos
             #DEFINE  Incmenta~pulsador                PORTB,6            ; pines del puwo B.
             #DEFINE  F-Termostato-ON                  FlapMdos.2         ; FIags utilimdos cn el ajuste de la
             @DEFINEF-Temio~tato~Aji~te                FlagsMdos, 1        ; temperahira del temiostato.
             #DEFINE: F-Termostato-OFF                 FlagsModos,O

             TMROCargaSOms EQU               -d'195'                       ;P m conseguir intemipción cada 50 m.
             cargas        eQU               df4O'                         ; k e r i d a 2s = 40 x 50ms = 2000ms.
7

456   MCKOCONTROLADUR PIC16F84. DESARROI-LO DE PROYECTOS                                        %K ~ M A           CR4.W



MensajeTemmtato-ON                                                                                                            c h
         DT "Termostato: ",OxOB                                                                                               call
Mt~l~ajeTermnstato~Ajuste                                                                                                     illoy

       DT "Tenqm. deseada",QiiBO                                                                                              mv
M e n s ~ w m t i m                                                                                                           mov
       DT ' ",OxOO
            T                                           ;EjlpmuaLCD:'mC "
                                                                                                                   ;La seccidn "P
                                                                                                                   ;Nogepitede~

                                                                                                                   Prmcipal
                                                                                                                              %oto
                                   - Pregara mbdulo LCD.
                                   - Configura entradas y salidas
                                   - Visualiza monsaje publicitario

                                                         1
                                   i   -   "DSI 820-Inicializa", comienza


                                           inicial de funcionamiento.



                                       - Inicializa todos los registros.
                                       - Recupera la última temperatura
                                           deseada del termostato.
                                       - Habilita las tnterrupciones.



                                            Espera las intemipciones.




                Figura 28-9 Dit7grntna deflujo principal del temostafodigif nl
Inicio 
 d          U=DU=D~iza
         i d        STA'EUSW
         mwhu       bW111'                              ;Aeacalerde255~d~Oyhab~3ita
         m 0 4      rnN-REG                             ;~kadc~I~delaifatoB
         bsf        lddomwm                             ;s%cúdñpmacomaataada
         bsf        L-
         bcf        WTcm#W                              ;S    e   ~     c   o   m   o   ~   .
         bcf        zuulhbx
         Bef        STAWSJUW
         caii       LCDCD~l                             ; S e ~ i t & a l ~ i & h ~ ~
         mwlw       Mensajehrblicie
         d i        LCD-Mensaje                                                                                        Fipru 2
         C&         DS1azo-~nicia~iza                   ;~omieripla~0nwónde1term6metroyporie
         cal1       ModDTemomt~~OFF                     ; &te n a d a de f u n e i d m .                       ;S
                                                                                                                u&            "Ser
         movlw      TMRDL€arga50ms                      ; Carga el TMRO en comp1emento a 2.                    9
         mwwf       m 0                                                                                        ; a t qa h
                                                                                                               m ca i e a
         d      w   Carga2s                             ;Y elregistronryo~t~wntadlos2s.
         movwf      RegistroSOms                                                                                   servicio^
á' RA-hL4
-
                                                                          CAPITL~LUBUS DE ~
                                                                                 18:               N LjNEA 457
                                                                                                      A


            c h                                         , Lee h pica611QxOOde m a m i EEPROM de datos
                                                                                            ~
            cdl   EEPRW-LeeDsto                         ;donde se guarda k t e m p e r a t u r a e d e h61m-m
            m o d -
                  T                                                ;v e z q w 9 e ~ .
            movh b'lOIU1W                               ; Activa inmmp5bn del -0      (m), m b i o de
                                                                                        por
            movwf        DT U
                          TC N                          ;ln dd Puerto B (R3B)y l general (GIE)
                                                          iw                        a

; L a 6 a x i & ~ e s m a n w ~ t o . w o ~ ~ ~ .
; No se puede poner en modo de bajo c o ~ w porque la inimumi6n "deep7'
                                             ~ o                     ddene el Timer O.

ml
 p
 a
            gato         Priocipl




                                                        Q"Serviciolnterrupcion"



                                                                                      pasado 50 ms?




              II
              I I
                    "Termomsim" Lee terrnbmetro y
                    actualiza el termoslalo.


                                ¿Han interrumpido las
                                pulsadores?




                                                       -
              11    "CarnbiarModo":cambia el mDdo      1 L-.-.
                                                             '(NO                             1
                    de funcionamiento.                                       ¿E& puisaso
                                                                             "INCREMENTAWJ



                     "IncrementarTempOeseada":
                     Ajusta la ternpsralura deseada.




                                                J
                                                  Limpia flags de reconocimiento de
                                                  las interrupciones.


                                                        Retorno de la intempcion



      Figura 28- 10 Diagramu d'rqfliqo la subrutina de atención a
                                     de                                                    intewlkpciones
458   MICROCONTROLAWR PlC 16F84. DES4RROLLO DE PROY E C M S                                                     2 R4-w   t RA-~,4



         btfsc       INTCON ,TUF                        ; Si es una interrupcion producida por el Timer O   

         call        Tennometro                         ;lee el termómetm y actualiza termostato.                        I
         btfss       NCON,RB[F                          ; Si es una intemipcion RBI lee los pulsadores.                  ;Esta subrutina lee y
         pob         Fin[nternipcion                                                                                     ;debido a la peticiba
         btfcs       M d o P u lsador            ; &stá presionado el.pulsador de "AJUSTE"?                              ; temporizaciinide 2
         a¡l         CambiarMdo                  ; Sí. Ajusta la temperatura deseada en el termostato.
         btfss       IncrementarPulsador;¿Pulsado "INCREMENTAR"?                                                         ;TarnbiCn actúa so&
         cal1        IncrcmcntarTempDcseada      ;Si, pasa a incrementar la temperatura deseada.
Fininterrupcion                                                                                                          Termomebu
         bcf         MTCON,RBF                          ; Limpia los flngs de remnocimiento.                                        movlw       '
         bcf         iNTCON,TOIF                                                                                                    m 0 4       '

         ret fie                                                                                                                    decfsz      ,

                                                                                                                                    goto        1
                                                                                                                                    movlw       4
                                                                                                                                    mowf     1
                                                                                                                                    cau      1
                                         Prepara para que se produzca la                                                            call     1
                                         próxima interrupción dentro de 50 ms                                                       cal¡ -
                                                                                                                                    d i 1
                                                                                                                                    m




                                             "DS1820-Inicializa": Coniienza la 

                                             conversion para la siguiente 





                                             "Termostato" 

                                                                                                                             Visualiza la temp
                                             - NO 
"ModoTermostato-ON".                                                      se desea ajustar
                                               apaga la carga.                                                                     'Temper. c
                                             - SI"ModoTemostato-ON",
                                               compara la temperatura medida 

                                               con la deseada y actua en 

                                               coiisecuencia activando o 

                                               apagando la carga 

                                                                I


                                I       I1     " ~ i s u a ~ ieii el forniato
                                                              za~                II


                                3                           Return


                   Figura 28- 11 Diagrama de flujo de la subrutina Te~mometro
Q RA-MA                                                             c . ~ P ~ W L O BUS DE UNA L
                                                                                      28:                  ~ 459 

                                                                                                              A


     - S&mth "T-om-"                                           ---
                                                        --------.
!    *
i    ;Esta subnitina lee y visualiza el tennbmeko cada 2 segundos aproximadamente. Se ejecuta
I!
     :debido a la peticih de interrupción dei Tmer O, c& 50 m.Para wnseguir una 

m    ; temporizacibnde 2 S, habrá que repetir 40 veces el lazo de S0 ms (40~5(hrrY=7000ms=2s).

     ; Tarnbih actiia sobre la salida dei termostato posicimbndofaadecuadamente.

     Termmietro
             movlw
           , movwf                                    ; Recarga el TMRO.
               decfsz                                 ; Decrcinenta el cmt~dor.
               goto                                   :No lian pasado 2 segundos, por canto sale
               movliv                                 : Repow este contador nuevamente.
               monvt'
               cal l                                  ; Lee la temperablra.
               cau                                    ;Comienza conversiónpara la siguiente 1ectm.
               cal1                                   . Actha sobre el termostab.
               cal1                                   ; Como e s n subniha se caribe ri continuación
               return                                 ; se ahorra e s t a dos instniccionrs y a m
                                                                                              h
                                                      ; tarnbien espacio en la pila.




                                             0    "Visualiza"




                                                                         en formato:




         se desea aiustar en formato:
               "~em~er. deseada"
                      25OC       "
                         I




                                                                         Visualiza la temperalura medida
                                                                         y la deseada   en formato:

                                                                     1         'Termostato: 25OC"
                                                                                       24.5%       "




                        Figura 28-12 Diagrama de$ujo de l subrutina I~'isimliza
                                                        a
; V i s u a ü z a d t ~ e a ~ f ~ p o s i b l e s :




                                                                                                            '
    ; A)     Con el kmos@ hacth-ado, m& "Temmkto-OFP. Pm ejernpb:
                                       ' ~ , ~ P pmua W)d "
                                       '' 24.5% " (Segunda u). -
                                                                                                                ; "VisdizaTermom
                             ~enlaprimcra~se~zaunmemjepub-lic~ayenIa                                        i     9
    $                        SegUadsttneahoemparaturaaedrBa~tual.
    ; B)             Ajuste &1 termostato, modo Tmmebfa-A&e".
                                                         PM e j 4 o : -                                         ;En laprimeraha
    *                                    'Trroper.~"~~~                                                           ;temperaturam&b
                                         "    25% "(k@náalinea).                                                  9


                             Dondemlasc~~vidizala~attíraqire~dcseaa~.                                           ;Enldas:    -
    ; C)             Con e
                         l      &va&, modo ' T m m - O WPor ejenrpQo:
                                         Tcmroststo: m"
                                                           ,
                                                         wntm un#)
                                                                                                            i
                                                                                                            I
                                                                                                                *
                                                                                                                I

                                        I'   23.5% "f-dalmea).                                                  7




                                                                                                          - 1 ;
                             ~enlaprimemlinease~la~~qiiesedfsa
                                                                                                                VidizaTemonm
                                                                                                                          caH
                                                                                                                          movlw
                                                                                                                          call
                                                                                                                VisuaiizeT~tur
                                                                                                                          movlw
                                                                                                                          d
                                                                                                                       btf~
                                                                                                                       gm           '
                                                                                                                T e m m - w
                                                                                                                          movhv     '
                                                                                                                          cal1      1




i       t
i
        ; Enmdax              T&
                              (e)
                               -                   temprr#ra ajustada en Imi suhutha bmmmtar.
t

I       Visuai~Term~atato~Ajuste
i                ,   cdl      LCDLineal                  ;Se sihia al principio di l primera ha
                                                                                   a
!                    mvk      MensajeTemstato-Ajuste     ; Visualiza men6s.e en la primera hm.
                     call     LCD-Mensaje
                     movlw    -6                         ; Se coloca para centtarvisudhcih m ia
                     cal1     LCD-PosicionLinea2         ; segunda Uaen.
        VWT-                                                                                 . . -
                                                                                           . . .-, .

            1.         .
                     M.-            T     w        W      .   ,   .   . , -.   .; . .   .-..   -
                                                                                               .   , ..
; Se s i h al principio de h primera ha.
162 M J C R C ~ C O h T R O L ~PtC 16FM.
                               R       DESARROLLO DE PRCiYEC'TOS                                        O R 4-MA




                       decisiones sobre h salida.
                  -    @S 1820_S&io), registro cori el aig1-10 de la t
                                                                   -   medida. Si es cero
                       b tmpmm es mtr y todos sw bits son "1 ",es negativa
                                           ii a

;Salida            -   Su funcionamiento:
9
                         -      Estando apgada, si la temperatura medida k i e n d e por debajo de la
                                temperatura deseada la salida se activará.
I
                          -     Estando encendida, si la t m m medida supera la dcseada la
                                salida ce apagará.
                          -     Si las temperahiras medidas y deswida son iguales se qu& en estado
                                anterior,tanto si está encendida w m o si má apagada.
                          -     M temperatura negativas la salida se debe aictivar siempre.
Temostam
       btfss      FTemostato~ON              ; Si el t m o ~ t no está activado salta a
                                                                o
            goto  Apagacarga                 ; apagar la carga.
          Msc     DS 1 82OLTemperaturaSipo.7 ; Con bmperatum negativas pasa a activar
          goto    EnciendeCarga              ;la carga.
          btfvv   SalidaTmvstato             ;Comprueba el estado actual de h salida para
          gotd    SalidaEstabaApagada        ; actuar en cnnsecuencia.
Sal idaEstaMctivada                          ; Pava a coinprcibar si tiene que apagar la carga.
          rnovf   DS 1 8 20-Temperatura. W
            subwf      TeniperdrurdDeseadn,W        : (W)=(TemperaturtiDcslada)-(DS     I820-Tanpe~tura).
            bik        STATUS,C                     ; ~(Teniperahml3escada)QDS      1820_Ternperanira)?
            goto       FinTmostato                  :Si, por tanto, lo deja encendido y sale.
            cal1       Pitido                       ; Pitido cada vez que conmuta la carga.
ApagrtCarga
            bcf   SalidaTcrtiiostato                ; Apaga la salida y sale.
          goto    FinTwmostato
SalidaEutabaApagada                                 ; Pam a comprobar si tiene qiie encender la carga
          rnovf   TmperatmDesctul&W
          subwf DS 1820-TempcraturqW                : w)=(DS 182O-Teinpera~)1Tempm~eseariii).
          btfsc   STATUS,C                          ;¿@S 182~Teinpcraturar(TemperaturaDeseada)?
          gota    FinTermostato                     ;Si,la deja apagada y sale.
Enciendecarga
          cal1    Pitido                             ;Pitido c&   vez que activa la carga.
          bsf     SalidaTcmostato
FinTemostato
            Retum
    Subm-     "Camb;arM&" v "M&Tm ustatri -O F P

; Subrutina dc atención a la intcmipcion pducida por e pulsador "MODO" que canibia el. m
                                                      1                                 &                          :Así pues, el 1
;de funcionamiento.Cada vcz que pulsa pasa por los modos "Tennostato_Ajusie","Temio~tato~ON,                       ; Euncionarnie
; "Termostatc-OFF"y vuelta repetir.                                                                                ; - (FlagsMd
                                                                                                                   ; - (F!apMod
;El ajusic de la temperatura deseada en el termostato se logra mediante dos pulsadores: "MODO"                     ;- (Flags&ld
;e "1NCREMENTARU o n d a s a pines del Puerto B.
                        c
                                                                                                                   ; Pueden dan
; Al principio aparecmá s61o el tcrmbmetro y el termostato estará desactivado:modo                                 ;   -      Qu
; "Termoritato-0Wt                                                                                                            (fl
; Para comprender el fwicionamie;ito de esta subnitina, hay que saber que el registro FlagsModos
; contiene 3 f l a p que permiten diferem.iar cada uno de las modos de funcharniento:
                                                                                                                   ;    -     *
                                                                                                                              'Ti

                                                                                                                              P
B R A-MA                                                                          c . ~ P ~ 28 L ~ DE UNA LMEA463
                                                                                                   U BCrS




                                                                                            I
                                                                              "PitidoCorto"en el zumbador.




                                 - S I esta en "ModoTerrnostato-OFF"
                                  pasa a "ModoTermostato-Ajuste".
                                 - Si es& en "MadoTermostato~Ajucte"
                                  paca a "ModoTermostato-ON".              - Pasa a "ModoTemostato-OFF".




                                                                       ll
                                                                            "LCD-Borra": Borra la pantalla.
                                                                            "Visualiza": Segun el formato de
                                                                            cada modo.                         11
                                                                       1          - Espera deje de pulsar.
                                                                                                                l
                                                                                  c3     Return




                      ; A)     Modo "TermostatqOFF", donde funciona como tmnúrnetra normal sin termostato. Se
                               reconoce por el flag F-Temosiato-OFF, que es el bit O del ~ g i s f t n  FlagsMhs.
                      ; B)     Modo " T ~ r m o s t a t ~ A je'', ~donde sc ajusta la ternperahira dewda cuando funcione
                                                              u t
                               como termostato. Se reconoce por el flag F-Tmostam-Ajuste, que es el bit 1 del
                               registro FlagsMdou.
                      ; C)     Modo "TemostatqON, &nd< tiuiciona como termómetro normal y, a d e d , como termostato.
                               Se m o n m por rl tliie F-Termostato-ON, quc es el bit 2 del registro FlagsModos.

>                     ; Así pues, el contenido del regism (Flas~Md<i~)
                                                                   identifica los siguientes modos de
ON",              j
                      :Funcionamiento:
                      ;- (FIsgsModos)=b'0000000l'. Esta en el modo "Terntosratci-CjFF".
                      ;- (FlagsModos)=b'O~lOi.     Esth en el modo "Tennostato-Ajute".
                      ; - ~FlagsMdos)=b'00a00100'.F A en el modo "Tcmotitato-ONU.
                  I
                  1
                  
                      ; Pueden darse dos casos:
                      ; -       Que pulse "AJUSTE" e&     en el modo m , alto, "Termostato-ON",
                                                                       &
                  N            (FlagsMdos)=b'00000 100'. En este caso debe pasar al modo inicial
                               "Termostato-OFF" poniendo (FlagsMdos)=b'0000000 1'.
                      --       Que pulse "AJUSTE" estado ya en cualquiera de los otros dos mollos, m cuyo caso &be
Jh4       MICROCONTROLACKIR PIC 16F84. DESAIZROLLODE PROYECTOS


             ejemplo, si antes esata e5 m&        "Teimasq,OFF",( F l a g ~ U d m ) = b ' m I pmud a
                                                                                              ',
             ( F i a g s M o d w ) = b ' ~ 1 que idedifica al m& "Temocta~i~psUste".
                                           O'


             d         haf&-2(hns
             btfsc     M-
                        &                            ;Si es m rebote, sale fuera
             goto      FinCambiarMh
        cal1      PitiMom                            ; Cada vez que pulsa se oye un pitido.
        btfs      PPT~ostatotoON                     ;DeectasidmeliUtinrom&.
        goio      Modosiguiente                     ; Si no. pasa al modo siguide.
Modo'Tert-r~ostato~OFF
        dl        Pitido                            ; Pitido cada vez que c n m la carga.
                                                                           om
             bcf       SaiiditTemost~io              ;Apaga la carga.
             rnovlw    b'0000a001'                   : ActuaIiza e1 registro FlagsModos psmdo al
             movwf     FlagsMh                       ;modo inicial "Temiostato-OFF".
             gow       Borrapantaita
                                                     ;Desplaza un " 1" a la izquierda del registro
                                                     ; FlagsModos p m ajustar secuenciatmente
                                                     ;cada urio de Ios modos de fiutcionamienio.

        cail   LCD--Borra                            ;Borra la pantaik anteríor.
FinCambiarModo
        cdl    Visualiza
        btfss  ModoPuisador                         ; Ahora etipera a que deje & pulsar.
        goto   FinCambiarModo




                                                                                                                    INCI
                                                                                                                    END
; pr-al      su d o r en caso que desaparaca la dhentacih                                                         Este n
                                                                                                           28-6. que res
TmperamaMinima EQW               .?O
TeinperaWaxima EQU               .36                                                                       pulsadores, i
                                                                                                           estará trabaj;
Incremen~Taop~                                                                                             necesidad de
     4     Retardo2hs                        ;Espera a que se estabilim nj~elcs tensión.
                                                                              de
     btfsc i n c r e m e n & M r ; si es un rebote d e fuera.
     goto  Finlncrementar
     b
     &     FTem~tatD~Ajuste                 : Si no est6en mDdo "Termostib-Ajuste" sale
     goto  FinIncrementar
             c d      PitidoCofto
             incf     Temperammhmdaf                     ; I m t a el valor de h tempmba deseada.
             movlw    Temperatumhhh                       ;¿Hallegado a h temperatura maxima de ajuste?.
             subwf    Tarpm~eada,W                        ;IW)= ( T e m p m W a d a ) -Tmpmatar&kim
             b&       STATUS,C                           ; ¿(T-eadaPTemperaW-7
             goto     V i s u a l ~ c r e m e n bNo, pasa r vimdhrIo.
                                                 :
             movlw    TempemmMinima                       ;S, eatmces inicializa e regism.
                                                            í                     l
             movwf    T~~
PJ M-MA

          I   c RA-VA


              Visual-ito
                           caU      Vkualim
                                                                              CM~TIJLO28: RliS DE UNA L ~ F A465




                                                             : Visualiza mienmiespm a que dqe
                           cnU      Retad-200ms              ; de puisar.
                           btfss    Inmmntddaador; M i m a p n m n e z c ~
                                                                         pulsado,
                           g*       IncremenierTempea$8   ; incmmta el dlgiio.
                           cfrw                            ; Saiva tl valor de la tempemmra deseada e la
                                                                                                     n
                           mw v f   EEADR                  ;posición 0% de la EEPROM de daros. Se consewa
                                                                                                      

                           mf v     Ternperatm&w&,W        ; aimqiie se apague la dimentacibn.
                           call     EEPROM-Em'beDm
              Fidnmmentar
                           rm
                           e



              Pitidohgo
                      bsf           Zumbador
                           c d      Retardo_SOOms
              Pitido    bsf         Zumbador
                        call        Retardo-200ms
              PitidoCorto
                        bJf         Zumbador
                        caU         ReW020ms
                        bcf         Zumbador
                        renim

                           LNCLUDE <BUS- 1 LlN.INCí,         ; Subnitinac de control del bus de 1 Ihea.
                           WCLUDE <DSk820.INCr               ; Subrutinas de control del termómetro digatl.
                           INCLUDE <RETARDOS.INC>
                           INCLVDE <Brn-BCD.rNC>
                           JNCLUaE SC7D_4BlT2INC>
                           INCLCTDE <LCl-MENS.TNC>
                           INCLüDE <EEPROM.ZND
                           END

                     Estc mismo programa puede servir p m un termomctro digiial coino el de la figura 
            i
                                                                                                                            i
                                                                                                                                1
              28-6, que resulta ser el mismo esqucma del termostato, del cual se haii eliminado todos los
                                                                     
                                                     ,,

              piilsadores, zunlbador e interface con la carga de 230 V. Eii consecuencia, el 
programa                 ,        !

              estará trabajando siempre en el modo 
"Termostato+OFF" como simple termómetro, sin
              necesidad de alterar nada del programa del termostato.
CAPITULO 29



            MOTORES DE CORRIENTE CONTJNUA
                                 



      Et cotiíicirniento dc los sistemas control de motores dc comerits continua C.C. (i)
DC) dt: pequeña potcncin es fundamcntnl par:i cualquier aficionadri y ut: quiera rralizar
proyectos con ~~iicruc(intr~c~ladorcs, qiie Ic dedicamos este capiiulo.
                                    por lo

       El primer problema a considerar es la formri de alimentar el motor. ya q i i t la
corriente mrixitna quc puede proporcionar cualquier linea de salida de un PICI 6FX4A
cstá limitada a 35 mA como rtii-xinio. Esta corriente cs demasiado pobrc para alimentar
un motor DC ciirectarnente. Por ello, se hace necesario la utilización de trarisistorcs que
pueden ir coiitigurados en difei-eiites disposiciones,siendo la más utilizada e1 Puente en H
(figura 79- 1 ).
                                          VCC- 5
                                             0




                                             I
                                            &
                                            -



                           Figura 29- 1 Puente en H con trc~lisistore.~
46% MICROCONTROLAWR PIC i6F84. DESA RROLLC) DE PROYECTOS                           ~RA-MA




29.1 PUENTE EN H
       Es conocido que el sentido de giro de un motor de corriente continua depende de la
polaridad que se aplica a sus terminales, en consecuencia para cambiar el gro es
necesario intercambiar los terminales del motor o bien cambiar la polaridad de la
alimentación.




                                           -
                                           -



            Figura 29-1 Fitncionarnicnru con 11 a nivel alto e l2 a ani~vl
                                                                         bajo
                                         vcc- 5v

                                                                                            L293R y el enc




                                                  allo
            Figura 29-3 Fu~cionnmienfo 11 a ~tiilel r 12 cr nivel b4do
                                     con

       La forma más sencilla de conirolar un motor de corriente continua de baja
potencia, en velocidad y sentido de gro, es mediante la comiiutación electrónica de unos
circuitos realizados básicamente con transistores que reciben el nottibre de Puente en H,
como se describe en la figura 29- 1.
7 RA-M<
                2                                         C A P ~ T U79: MOTORES DE CORRENTE CWNTITMUA 469
                                                                     XI


                      Este circuito está f o m d o por cuatro transistores que trabajati en conmutacioit y se
                coniportan como interruptores controlados por la señal que les llega a las entradas 11 e 12.
:nde de la      Su funcionamiento es el siguiente:
I giro es
iad de la                 Cuando se activa la entrada 11 a nivel alto y la entrada 12 a nivel bajo los
                          transistores 43 y 4 (NPN y PNP) entran en saturación simultáneamente,
                                                 2
                          mientras que Q1 y Q4 están en corte por ser de signo contrario (PNP y NPN
                          respectivamente). Eri estas condiciones el motor gira en un sentido, por ejemplo
                          en el contrario a las agujas del reloj (figura 29-2 ).
                          Cuando se invierten las señales de entrada, es decir 11 a nivel bajo e 12 a nivel
                          alto, los transistores que se satiiran son Q I y Q4, micntm que los que entran en
                          estado de corte son 4 2 y 4 3 . Esto hace que el motor gire en sentido conkario
                          (figura 29-3).

                       El problenia de este tipo de circuitos es la caída dc tensión real que hay en los
                transistores y que habrá que compensarla con L tensión de alimentación. Para evitar estos
                                                                ?
                problemas se puede utilizar circuito integrado como el LM193B.

                29.2 DRIVER L293B
                       El L293B es i driver de 4 canales cap:= de proporcionar una corriente de salida
                                     m
                de hasta 1 A por carial. Cada canal es controlado por scñales de entrada conipatibles TTL
                y cada pareja de canales dispone de una señal de habilitación que desconecta las salidas
                de los mismos. La figura 29-4 describe cada una de las patillas de las que dispone el
                L293B y el encapsulado de 16 pines.




                   CHIP
                   ENABLE 1
                   INPUT '
                         i
                   OUTPUTI
                   GND
                   GND
                   OUTPUT2
                   INPUT 2
                   vs




Ja de baja 

ica de unos 
                                 Fipm 29-4 Pufiljl del Driver L2938
                                                            luc
iente en H,
470   MlCROCONTROLADOR PIC IhF84. DESARROLLO DE PROYECTOS                           O RA-ht4




      Dispone de una patilla para la alimentacibn de las cargas que se están controlando            29.3 GfF
(Vs) de manera que dicha alinientacibn es indepcndjentedc la 16gica de control.
                                                                                                           La figu
       La fiyum 29-5 representa el diagrama dt. bloques del L293B. La seiial de coritrol            cotitinua que g
EN1 activa o desactiva la pai.qa de canalcs formada por los di-i.zrs 1 y 2. La señal EN2
                                                                                                            El mo
controla Ia pareja dc drivers 3 y 4. Las salirlas OUTn se asocian con las corresporidicntt.~
                                                                                                            detien
INn. La tabla de dicha figura detalla cl funcionainieritoparri cada uno de los drivers.
                                                                                                            El mo
                                                                            +VSS                            dciien




              H
              L   -
                  = Nivel alto
                  Nivel bajo" O
              Z = Alta impedancia
                                 "1"



                                                     VS


         Figurrr 29-5 Biirgrma de bloqir P.S del L293 8 y tahlu de funcionumiento                                     k




       La tabla 29- 1 informa sobre los ttiáximos valores admisibles.
                                                                                                              Fier

                                                                                                           La Tabla


                           Tensicin de entmda
                           Tensidn de habilitación



                         Tabla 29- 1 Rnngo.s absolutos del driver L293B
                                                                                                               Tabi
     También se fabrica el modelo L793D, cuya principal diferencia respecto del
L293B es que proporciona una comente mixirna de 600 1 1 ~ 4 .                                            Es iiidispi
                                                                                                    motores tal coi
      Veamos seguidameiite algunas formas de coticctar los motorcs de corriente                     contraelectromo
continua a este driver.                                                                             conmutücián.
                                                                                               1.
6: RA-M,+                                     CAP~TULO MOTORES DE CORRIENTE CONTTNUA 471
                                                                  79.



             29.3 GIRO EN UN ÚNICO SENTIDO
                   La figura 29-6 mucstra el modo de funcionamiento de dos motores de corrieiite
:c(>~~trol   continua que giran en im Uriico sentido, suponiendo que lri Vinh = 5 V :
ñal EN2           m       El motor M 1 sc pone en marcha a1 poner 3 niwl bajo la cntnda de control A y se
~ndientes
                          detiene con uii nivel alto de entrada.
:s.
                          El nintor hI2 se pone eri marcha al poner a nivel alto la etikada dc control B y qe
                          deticnc con un nivel bajo de entrada.




                           F i p r a 2 9-6 Cunei ion de dos mofvre.rDC. MI activo por "O" y M2 por "1 "

                         La Tiibla 29-2 mucstra el modo dc iuncionamicnru del circuito.




                              Tuhia 29-2 Modo de,func.ionumit!n~o r.ir.c-zríto de lu$gira 29-6
                                                               (I(/I
?ecto del
                    Es indisperisable conecta los diodos D 1 y D2 en paralelo con los devanados de los
             tnotorcs tal como muestra la figura, como protección ficnte 3 los picos de fuerza
corriente    contraelectromotnz producidos por la carga itiductiva de la bobina en el momento dc la
             conmutación.
472   ~ C R O C O ~ O LPIC1t6F8-4.DESARROLLO DE PROlTCTOS
                        ~ t                                                            ORA-MA




29.4 GIRO EN LOS DOS SENTlDOS
       El circuito de la figura 29-7 pemiite controlar el doble sentido de giro del motor:
         Cuando la entrada C estíi a nivel bajo y la D a nivel alto, el motor gira en un
         sentido.
         Cambiando la entrada C a nivel atto y la D a nivel bajo se cambia el sentido de
         giro del motor al contrario.




          Figura 29-7 Circuito dr controlparu el doble giro de uli motor de C.C.

       Los diodos de protección se pueden cotiectar segun se muestra en la figura 29-8.




                                                                                                       Para   (

                                                                                                MotorDC-01 .a
                                                                                                marcha del mo
                                                                                                La posición de
                                                                                                depende de la
                                                                                                motor los giro!
                                                                                                en la figura 29-
        Figura 29-8 Conexión de diodos de protección d circuito de 1aJ;guro29-7

       La Tabla 29-3 muestra el modo de funcionamiento del circuito.
ORA-M4                                   CAPÍT~ZO29: MOTORES DE CORRIENTE CXIhTWUA 173




del motor:
or gira en un

. el sentido de                                                                                          i.           I
                                                                                                         ',S,
                                                                      dc.1
                                     Tobh 29-3 Modo de~firncionnmiepriv cirrui io d~ Iu.fip4r'rr 29- 7
                                                                                                              $   -
                      29.5 CONEXIÓN              DE MOTOR C.C. Y PICl6F84
                             LI  figwa 79-9 iiiueslra una conzxih tipica de un motor de corriente continua a rin
                      microcontrolador PIC16F84A a traves de un dnver L293 B. La tensión aplicada al pin Vs
                      es la de alir~ientacihn motor, en este ejemplo se utiliza un motor de 12 V.
                                            del




                  1
                               Figuru 29-9 Con PO/ de motores c.c con el dnver L2933 y el P1CI 6FMA                       :li
                                                                                                                          b


                  I          Para comprobar su funcionamiento se puede cargar el progrania
                      McltornC-Ol .asm, que controla el bivcr dcl motor. La l inea RAO curilrula la puesta en
                  '   marcha de1 motor, si RAO es"O" el niotor se pone en marcha y si RAO es "1" si: detiene,
                      La posición del interruptor conectado a RA4 controla el sentido de giro que por supuesto
                  ,   depende de Ia polaridad de conexidti del motor. si se intercambian los terminales del
                  I   motor los giros serrin en sentido contrario. El organigrama de este programa se muestra
                      en h figura 29- 10.
rra 29-7          i
474         MICRCK'ONTROLADOR PlC l hFñ4 DES .ARRULLO DE PROYECTOS



                                                                                          "MotorDC-0 1 .asrnm



                                                                                        Configura lineas de
                                                                                        Entrada y Salida.




                                                                                      Gira a la DERECHA:                                               Motor PARADO:
                                                                                     RB4=1, R B I = l , RBO=D




                                        Fi_qum 29-I O Orgunigrt-rniodel pruguma MotorDC-0 1. m
                                                                                           m



;Programa de control para un motor & comente continua en funcionmienio y sentido de
; gim. Con R A e O . el motor se pone en niarcha y <u sentido de giro dependerá del valor
;que tenga RA4.



                       CONFIG -CP-OFF & -WDT-OFF & -PWRTE-ON & -XT-OSC
                   LIST                  P=16F84A
                   WCLUDE <PIbFMA.iNO

#DEFINE EntredaMarcha                                    PORTA,O                                ; Ititemrpionde pmsh en marcha.
#DEFINE Entmddhtido                                      PORTA,4                                ; Intemiptor de sentido de giro.

; Z O N A D E C ~ D ] ~+ S* L * * L " * * W * * * * * * V * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                      I b                                                                                                                                                     La ~CXIS
                                                                                                                                                                       frecuencia con
                                                                                                                                                                       variando el ci
                                                                                                                                                                       sumjnistra al rr
                                                                                               ; Configura las Iineas & enkda.
                  hf                  Entradakitido
                  clrf                PORTE3                                                   : L a h a s del Puerto B conñguradas como salida.
                  bcf                 STATUSRPO

                                                                                               ; Con esta cornbinacibnse detiene el motm.
                                                                                               ;Comprueba el estado del Uitmqtm de funcionamiento.
                                                                                                                                                                       alimentacihi di
,ou-VA                                     C A P ~ W L O MOTORES DE CORRIENTE CO N T I N U A 475
                                                       29:


         goto     ActivaSSda
         movlw    b'm0100iO'                ; Girti en un sentido.
                                                          

        btfic     Ent~~daFentido            ; Cornpnieba el sentido Ge giro deseado.
        movhv     bfOOOI0001'               ;Gira en el otro satrido.
Activ&lida
         movwf    PORTB
         goto     Plimipal




29.6 CONTROL DE VELOCIDAD
       La velocjdad de un motor de corriente continua depende del valor medio de la
tensi6n aplicada en sus extremos.

      El sistema más uti1i;tado para controlar la velocidad de un motor DC' de pequeña
potencia es mediante la modulacion por aricho de pulso P WhI (Pulse Widdi~    Modulufion)
de una señal cuadrada TTL, como muestra la figura 29-1 1. Bajo el control PWM. el
motor gira a una velocidad determinada por la media del nivcl de la señal cuadrada.


                                                                 O% (Motor parado)




                                                                            --
                                                         100% (Velocidad rnAxirna)



             Figura 27- 11 Control velocidad de un nutur c.c. mediante PIIffid

       La tensión continua mcdia presentada al inotor se controla manteniendo la
frecuencia constarite, y variando el tiempo que la señal permanece en alto, es decir.
variando el ciclo de trabajo (duty cycM. Así, si el ciclo de trabajo cs del 50?.1ó     se
suministra al motor una tensión media del 5098, con un ciclo de trabajo del 20% sólo una 

quinta parte de la tensibn t t h i m a es suminjstrada a la carga. Cambiar de un ciclo de
trabajo de1 50% a otro del 20% conllevarii una disminucion de la velocidad del motor.

      La regulacian PWM proporciona iin eficaz método mediante la utilizacion de una
simple señal digital de control. Si se utiliza una señal de estas carrictaisticas para atacar In
entrada EN1 del montaje de la figura 29-9 se consigue que el valor medio de la seíial de
alimentación del motor varie, de tal manera qiie cuanto más tiempo cstC la linea RB4 a
476   MICROCONTROLADOR PIC IúF84. DESARROLLO DE PROY ELTOS                                   Q RA-MA     U RA-M4




nivel alto más deprisa girará el motor. Ldgicamente si la duración del impulso a nivel
bajo es muy grande el motor se parará.

                          'MatorüC-a2.asm"                                                               .*#*~*****d




                  Configura llneas de entrada y salida
                                                                                                          de anchura^


                                                         Motor Parado: RB4=0. RBI=O, RBO=O




                    (RA3:RAO)-r (Ciclos-ON)
                    ID - (RA3 RAD) + (Ciclos-OFF)


                  Motor en ON: R84= 1, R 8 i =l. = O
                                              WO                                                        ;ZONA DE I

                                                                                                                       -C
                                                                                                                       LIS
                           Retardo de 100 ps
                                                                                                                       INC

                                                                                                                       CBI
                    (Ctclos-ON) - 1 + (CiclosON)
                                                                                                                       Cici
                                                                                                                       Cicl
                                                                                                                       Gua
                                                                                                                       EM
                                                                                                       Maximenwr

                 Motor en OFF: RB4=0, RBI=O, RBO=O
                                                                                                       ;ZONA DE C

                                                                                                                       OR(
                                                                                                       inicio
                           Retardo de 100 ps                                                                       I
                                                                                                                   d
                                                                                                                   mov
                                                                                                                   mw
                                 -
                   (Ciclos-OFF) 1 4 (Ciclo-FF)                                                                     ckf
                                                                                                       Wpal
                                                                                                                   mOY
                                                                                                                   aKh
                                                                                                                    ¿l
                                                                                                                   m
                                                                                                                   bth
                                                                                                                   m'
              Figura 29- 12 Organigrama del pr-opnnia AhtorDC-02. arm                                              srPbh
liso a nivel          El programa MotorDC-02.asm es un ejemplo de gobierno de la velocid-id de iin
               motor de C.C. mediante control PWM. Su funcionamiento se explica en los comeiitarios y
               en su diagrama de flujo de la figura 29-1 2.
               .**+VV*+*+**C*88*************IMOtor~                 M,-****Y*W***V***********..*..****..

               9

               ; Programa de regulación & velocidad & un motor de corrientecontinua mediante Ia modhciiin
               ; de anchura de pulso (PN'M). la línea de salida se genera una onda cuadrada de kmewia
                                               Por
               ;wnstmte a 1O0 Hz @ocio de 1 ms) y ciclo de trabo d a b l e desde 0% a X W h ,
                                                   0                                               dqmdicndii
               ;de1 dar de la entrsda del Puerto A. Es decir, el tiempo m aito varia entre O ms (0%) y 10
               ; ms (1 00%) de a c u d o con la siguiente tabla:
                                                                  (Ciclm-Or)                               (Ciclos-UFF)
                          Entrada           DC (YO)             SEMiPWODO ALTO                             SEMIPERIODO BAJO




                          -CONFIG -CP-OFF         8: --FF       & _PWRTE-ON & -XT-OSC
                          LIST   P=I FiF84A
                          INCLUDE e l bF84A.INO




               MaximaEnaada         EQU     -10



                          ORG
               Inicio
                          bsf   STATUS,RW
                          movlw b'00001111'                     ;RA3:RAOcano mmdas.
                          mw r n A
                            v f
                          M         TiUSB                       ;Las iáieas del                0 se-aonfigtuanwmo didas.
                                                                                               , .
                          M         STATUS,WO
               Prhcipal
                          mMrf
                          d   w
                          m  *
                          btfsc
478     MICROCONTROLADOR PIC 1 hF84. DESARROLLO DE PROYECMS                                          rEi R A M A




           btfsc    STATUS,Z
           gow      m-IDDPoiCietito
           btfss    STATUSC                         ; ,i,C=l?, i(W) positivo?, L(PORTA%=~
                                                                                        07
           goto     IX:-CeroPaCim                   ;Ha resultado (PORTA> 10)
           movwf    Ciclos-OFF                      ; ~O-(PORTA)--~~~C~S-OW).
           movf     GuardaEnwada,W
           movwf    Ciclos-ON                       ;Carga RA3:RAO en (Ciclos-ON).
Motor-ON
        moviw       btOM)lOO10'                     ; Habilita l s drivers y un sentido de g h .
                                                                o
           movd     PORTB
           caU      Retardo-lms
           decfsi   Ciclos_ON,F                     ; Si (Ciclos-ON)=O salta a Motor-OFF.
           gota     Moto-0N-t-2
Motor-OFF
           clrf     PORT3                           ; Inhabilita los drivers. Motor parado.
           cau      ~ o 0 l m s
           decfsz   Ciclos-OFF,F                    ;Si (Ciclos-OFF)=O salta a Principal.
           @m       MotorLOFF+l
           g*       Fin
DC-CemPotCiento
       clrf     PORTB                               ; Inhabilita los dnvers. Motor 
p&.
           gota      Fin 

K-1M)PorCiento
           movlw    b'0001001Ot                     ; BabiIita los drivers y un sentido de giro. 

           movwf    PORTB
Fin 
      goto      Pnncipd




       La generación de la onda cuadrada PWM tambien se puede realizar mediante
interrupciones por desbordamiento del Timer O, tal como sc cxplico cn un cjcrcicio del
capitulo 18. El siguiente programa es un ejetnplo de ello.


:Programa de mntroI de velocihd de im iiiotor dc crirricntc coiitinw mediante la modulacihn
;de   wchim de pulw (PWM) similar al M~iiorD-O?.asmdonde el control de tiempos se realiza
; mediante iniempcionrs por dwhrdaniirnto del Tiincr O.

:El sentido de giro del motor se decide en fuiicion del valor dc la lina RA4.

; El control de las lineas de salida se realizi+ mediante direcciunamiento por bit con
; l s iimiccionrs "bsf' y "bcf'.
   a




            CBLOCK O W  x
            CicloTrabajo                             ; Ciclo de   habajo d e d .
b Rn-MA
                                                       CAP~TULO MOTORES DE CORRIEKTE C:CNlT?JUh
                                                             29:                                            474 



                        GuardaEntrada
                        Tirnd-ContadorA                ; Contdor auxiliar.
                        ENIX

            TMRO-Cqa             EQU      4745'        ; Valor obtenido expcrimentahente con la ventana
                                                       ; Stopwatch para un tiempo de 1 ms.
            MaxirnaEnrrada       EQU      .10

            #DEFINE SalidaSmtidoO         PORTB,O      ; Salidas      determinan el sentido de giro.
            #DEFiNE SalidaSemidol         PORTl3,l
            #DEFINE %lidaMarcRa           WRTB,4        ;Salida de puesta <ti m a r c l o paro del motor.
                                                                                        ~
            #DEFlNE EntradaSentido        PÜK'i'A,4     ; Interru~br sentido de gim.
                                                                    de
            ;~ONAWEC~~D]GOS**~***V+LC*****S***~****IC*U~**U~~~C~******V******~VV**~********~***~

                        ORG      0
                        goto     iii
                                  nco
                        ORG      .4
                        goto     TimerOrOlntemipcion

            Iaicic!
                        bsf      STATUS,RPO
                        bcf      SdidaMamha             ;Estas 1Inea.s se configuran como   dida.
                        hf       SalidaSmtidoO
                        bcf      SalidaSentidol
                        movlw    b'00011111'            ;Aierto A confiprado como eneada.
                        movwf    PORTA
                        movlw    b'0000000I'           , ThlRO cun p~iscaler 4.
                                                                           de
                        movwf    OFTIONLREG
                        bcf      STATüS,RFQ
nediante                bcf      SalidaMarcha           ; Al yiriiicipio el motor parado.
cicio del   Principal
                        btfsc    !%baddenti&            ;Comprueba el sentidu & giro deseado.
                        goto     OtroSentido
                        bsf      SalidaSentidoO        ; Gira en un sentidó.
                        hcf      Salid9Stntidoi
                      goto       TesteaVebcidad
            Otrosentido
                     bcf         SalidaSrniido0         ;Gira eii el sentido opuesto.
                     bsf         SalidaSwtidn!
            Trsteavclocidad
                     movf        PORTA,Mf               ;h e el puerto de entrada
                        andlw    b'00UOllll'
                        movw f   GuarciaEntrda          :Guarda e1 v~lor.
                        btfsc    STATUS,Z
                        goto     DC_CeroPorCiento
                        sublw    MaximaEutmda           :(W)- IO-(PORTA )
                        btfsc    STATUSL
                        goto     E - 1 OOPoKiento
                        &        STATUS-C               :iC=l'?,       positivo?, ¿(FORTA)<=IO?
                        goto     DC-CeroPorCiento      ; H resultado PORTA> 1 0.
                                                          a
                        movf     GuardaEntrada.W
                        mmwf     CiclaTraba~a
                        moviw    b'1
 10000iJ
                                    0
480   MICROCONTROLADOR PIC 16F84.DESARROLLO DE PRUY LCTUS                                             O M-MA




         mm-f -
              N                                    ; A u t h inferrupcibnTOT y la -1         (GIE).
         goto Fin
DC-CeroPurCiento
        bcf      SalidaMarcba                      : Pwe l salida siempre en bajo.
                                                         a
         goto      MiabilitaInternrpciun
m-1OOPorCiento
          bsf       SaLdaMArcha                    ;Pone La salida siempre en alto.
lnhabilitalntemrpcion
          clrf      INTCON                         ;W   i t a iiitffnrpcionm.
Fin       goto      hincipal

 Subnitina " T k e d Intemipcicm"
                    -               --       -- u -
                                      - - - - - - - - - - - - -- -
                                       - - -        -- - - -- - - -- - -




; Mantiene la &da en alto un tiempo i g d a 1 ms x (CicloTrabajo)
; y en bajo iui tiempo igual a 1 m6 x (10-CicloTrabjo).

          CBLKK
          --W
          M-STATUS
          ENDC

TimerO-intempcion                                                                                              1
        mw G d - W
          o f                                      ;Guarda los valcm de ttnian W y STATUS en el                           No es ra
          mapf      STATiJS,W                      ; Programa P*
                                                               &.                                                  conseguir un rr
          movwE Guarda-STATUS                                                                                      de iin proyecto.
          bcf    STArnS,RW                         ;Garantiza que trabaja ai el Banco O.
          movlw TMRO-Carga
          movwf T M R O
          decfsz Thd-CmtadorAS                     ; h m m t a el contador.
          gota   Fin_TimerO-iniemipcion
          kfs    Salid&mha                         ; Testea d anterior estado de la salida                                Los m01
          gm        EstabaAlto                                                                                     dispositivos COI
EstabaBajo                                                                                                         papel de una ir
          bsf       S h W h a             :Estaba bajo y lo pasa a alto.
          m&        CicloTrabajo,W        ;Repone el contador nwammte crin el tiempo en
                                                                                                                   disqiieteras de
          mwwf      Tiind-ContadorA       ; alto.                                                                  obsenra que en
         goto       Fin-TimerOerOIn~pcion                                                                          por el eje del m
EstabaAlto
                    SalidaMarcb                    ;Bt&ad~ylopabrijo.                                                     Los mot
          movf      CicloTrribajo,W                ; Repwe e1 c m t a h nuevmnite con el tiempo
          sublw     .lO                            ; en bajo.                                                      comente contin
            TUnaO-ContadmA
          mwwf                                                                                                     hacerlo continu
Fin_TmerOerOh~ion                                                                                                  rnicrocoiimladc
          swapf     M-STATUS,W                     ; Restaurs regidros W y STATUS.                                 dentro de una
          movwf     STATUS
                                                                                                                   control de pos
          swapf     Guarda-WF
          swspf     C ~ - W , W                                                                                    revoluciones pc
          bcf       mc0NJwIF                                                                                       y carsa mecánii
          bcf       INTCON,TOiF                                                                                    por niétodos ser
          Fetfie
                                                                                                                         Un motc
                                                                                                                   devanados. El i
                                                                                                                   Cada pulso pro
c APÍTULO      30



                                        MOTORES PASO A PASO 



      No es raro qiie un aficionado a la electrónica desguace una vieja impresora para
conseguir un motor paso a paso y poder realizar alguna tarea de posicionamiento dentro
                                                 trabajar con estos utiles motores.
de un proyecto. En este capitulo se explica coi~io

30.1 MOTORES PASO A PASO (PAP)
       Los motores paso a paso o PAP (Stepper ,Ilotorj son muy utilizados en los
dispositivos controlados por sistemas digitales. Por ejemplo los mecanismos que arrastran
papel de una impresora, [os que mueven cl brazo de un rvbot o los que hacen gii-m las
disqueteriis de un ordcnador dependen de motores PAP para su funcionamiento. Se
observa que en estas situaciones se requiere un conml pr~ciso la trayectoria a seguir
                                                                 de
por el eje dcl motor

       Los rliotores PAP proporcionan iitu considerable ventaja sobre los motores de
corriente continua o DC. El eje de un niotor PAP gira a intervalos reguiares en lugar de
hacerlo continuamente, como ocurre con los motores de continua. Bajo el control de un
rnicrocontrolador, los mvtures PAP puden ser usados para pasicionarnientos precisos
dentro de una amplia gama de aplicaciones, incluyendo robótica, autornatización y
control de posicionanuentu. La velocidad de un motor de DC viene expresada en
revoluciones por minuto (yni) y es función de la tensicin aplicada, corriente por el motor
y carga mecánica del mismo. Un posicionamiento preciso de un motor DC no es posible          e . .

por mhodos sencillos.                                                                        j;      j




      Uri motor PAP gira en h i c i ó n de una secuencia de pulsos aplicados a sus
                                                                                             i
devanados. El eje del motor gira un determinado ángulo por cada impulso de entrada.
Cada pulso provoca la rotacion del mtor ciel motor en un increttiento de ánguio preciso,     ,/&
                                                                                             I           E
482   MICROCDNTROLAWR PIC 16F84. DESARROLLO DE PROYECTOS                              O RA-MA




denominado paso, de ahi el nombre de motor "paso a paso". El resultado de este
inovúniento, fijo y repetible, es un posicionamiento preciso y fiable. Los incrementos de
pasos de la rotación del rotor se traducen en un alto grado de control de posici~namiento.

      Los incrementos de rotación o pasos se miden en grados y es cl paramemo
fundamental de iin motor PM. Tarnbien se piicdc cspresar en números de pasos por
rcvolucion de 360 grados. Un motor paso a paso puede girar un número exacto de grados
en ambos sentidos.

       Los motores PAP se comercializan dentro dc una gran variedad de grados de
rotación por paso, desde 0,72"a 22.5". correspondientes a 500 y 16 pasos por revolución,
respectivamente (efectivamente, 360°;0,72" = 500 y 360°/22,5"= 16). El motor PAP más
comerc~alimdo el de 7,5" por paso o 48 pasos por revolución.
               es

      El principal problema que presentan los motores PAP es su limitada poteiicia. Sin
embargo, este problema esti siendo resuclto por los iiuevos diseños, con los que se ha
logrado potencias superiores a 1 CV.

      En este capitulo se va a explicar como realizar el control de niotores P.4P mediante
un microcontrolador PIC16F84, pero antcs liay que examinar sus pnticipios de
funcionamiento.

30.2 PRINCIPIO DE FUNCIONAMIENTO
      Aún basados en el mismo fcnhmeno que el principio dc funcionamiento de los
motores de corriente continila, los niotores paso a paso son mis sencilos, si cabe, que
cualquier otro tipo dc motor eléctrico.

       La figura 30-1 ilustra el modo dc funciunarnicrito de un motor PAP. Supotiernos
que las bobinas L 1 como L2 poseen un núcleo de hicrro dulce capaz de iniaiitarsc cuando
dichas bobinas scan rccotridas por una corricntc cl6cttica, esto es el denoil-iinado estatur.
Por otra parte, el imán M puede girar libremente sobre el eje dc sujeción central, este es cl
rotor.

      Inicialmente, sin aplicar ninguna corrieilte a las bobinas (que también recibe11 el
nombre de fases) y con el imári M cn im:i posiciiin cualquierao cl i d n liermanecerá en               Lnviríienc
rcposo si no se somete a una fuerza tihteiria.                                                  la situaci6n de
                                                                                                inwriimos de n
       Si se hacc circular comenie por ambas fases, como se muestra en la figiiia 30- I (a),
                                                                                                grados y se hab
se crcaran dos polos magnéticos NORTE en la parte interna, bajo cuya influencia el imán         grados.
M se desplazah hasta L posiciún indicada en dicha figura.
                        a
                                                                                                       Si se m
        Si invertimos la polaridad de la corriente que circula por la bobina L 1 se obten&      corrientes son 2
la situación magnética indicada cn la figura 30-1(b) y el imán M se vera desplazado hasta       cada pulso aplic
lo de este            la nueva posición de equilibrio. Es decir, ha girado 90 grados en seiitido contrario a las
menios de             a p j a s de1 reloj.
iarniento.

 parámetro
  pasos por
I de grados




 kmdos de
rvoliiribn,
:P.4P mas


tencia. Sin
yuc se ha
                           I          I        (a) Paso 1                        1          1          (b) Paso 2

' mediante
icipios de




nto dc los
 cabe, que


;iipclincmos
rse c L   I : ~ ~ O
lo estator.
1, Aie es c.1


reciben el
mecerá en                    lnvirticndo ahora la polaridlid de la corriente que atraviesa la bobina L2, sc llcga a
                      la situación de la fik~1t.a30-1 (c) habiendo girado el imán M otros 90 grados. Si
                      invertiiiim de nuevo cl sentido dc la corriente en la bobina Ll el iman M girara otros 90
m 30-](a),            grados y sc. habra abienido una revolucidn completa de dicho imán en cuatro pasos de 90
:a el imán
i                     grados.

                               Si se mantiene la secuencia de cxcilacion expuesta para L1 y L2 y dichas
484   MICR0CONTROLALK)RP1C 16F84.DESARROLLO DE PROYECTOS                                o M-MA


       Analizando lo expuesto podeiiios decir que un motor paso a paso es un dispositivo
electromecánico que convierte impulsos elecbicos en un movimiento rotacional constante
y finito dependiendo de las características propias del motor.

      El modelo de motor paso a paso que hemos analizado?recibe el nombre de bipolar
ya que para obtener la secueticia completa, se requiew disponer de corrientes de dos
~iolaridades,presentando tal circunstancia un inconveniente importante a la hora de
diseñar el circuito que controle cl riiotor.

30.3 MOTORES PAP BIPOLARES
        En este tipo de motores las bobinas del eshtur se conectan formando dos grupos,
tal y como se muestra en la figura 30-2.
                                                           Mobr paso a paso
                                                               biwlar




                  F i p m 30-2 Circuito de Control de    uri   niolor bipolur

         De este motor salzri cuatro hilos conectados al circuito de control, que realiza la
función de cuatro intemptores electrbnicos dobles que pemitm variar la polaridad de la
alimentacion de las bobinas. Con la activacion y desactivacion adecuada de dichos
interruptores dobles, se puede obtener las secuencias correctas para que el ttiotor gire en
un sentido o en otro. Estos transistores carifigurados como pi~enteen H pueden ser
sristititidos par el driver L293B taj como se estudió en el capitulo aiiterior, la conexión de
un motor P bipolar y el driver L293B se muestra en la figura 30- 13. En la figura 30-3,
              M
puede analizarse como debe ser la secuencia de excitación para que el motor gire en un
sentido.

       Tiene dos modos de funcionamiento: Full Step y HoVStep.
t,RA-MA    O RA-MA                                                     CAP~TULO30: MOTORES PASO A PASO 435


i dispositivo    30.3.1 Motor PAP bipolar en modo Full Step
ial constante
                        En el modo Full Stcp el rotor del motor PAP avanza un paso par cada piilso de
                 excitación.
s de bipolar
mtes de dos                              1           +               -
 la hora de                     Reloj


                                                     1                              1        1

                           Terminal 1'
                                         1   1

                                             I   '
                                                     I
                                                     !

                                                     l   l   l       h
                                                                         I

                                                                         1

                                                                         l
                                                                                1

                                                                                l
                                                                                    I
                                                                                    1

                                                                                    l    l
                                                                                             4

                                                                                             1

                                                                                             l     l
                                                                                                       -   t
 dos grupos,                                         1                   L          1        1
                                                                                                   -
                           Terminal 1'       I       I       I           I          I        I

                                             u       1       1                      1        1             t

                                             -
                                             I   I
                                                 1
                                                     I   u
                                                         1
                                                                 I   I   I      I   I    I   I     I



                           Terminal 2            N       I                                         N

                                                 1       1                                       +-S       t




                             Figunr 30-3 Secuencia d~ In señal de excirucion del motor PAP bipolar

                        La tabla 30-1 muestra las secuencia para generar los rrwvimientos eii sentido
                 horario CW (Clnckwise) y antihorasio CCW (Counf~rc.lor;hui~e)un motor bipolar. Los
                                                                                  de
                 términos "horario" y "antihorario" se deben rclatjvizar ya que dependen del punto de
                 mira del obseivador y de la posicion del motor, por tanto, solo se deben tomar como una
                 forma de indicar que gira en un sentido o en el coritrario.




que realiza la
slaridad de la
la de dichos
motor gire en
i pueden ser
                       Tublu 30-1 Sec.iic,ncia de ccopih-ol de un motor PAP hb~ulurpara modo Full Step
iconexibn de
a figura 30-3,
:or gire en un   30.3.2 Motor PAP bipolar en modo HaH Step
                           En el modo cle medio paso (Harf Sfep) el rotor avanza medio paso por cada pulso
JMb   M I C R O C O h T R U W R PIC !6FW DESARROLLO Ut PROYbCTOS                         DR%.%I~




        disminuye el avance angulw (la nlitad qiie en e! modo de pasa completol. Para conseguir
        tal cometido, el modo de excitación consiste en hacerlo alternativamenk sobre dos
        bobinas y sobre ima sida de fllas,   según se rnucstra en la tabla 30-2 para airibus seritiiicis
        de giro.

               Según la fibwra 70-1 al excitar dos bobina consccutivas del esvalor
        sitnuitaneamente. el rotor se alinea con la bisectriz de ambos campos magndticos.
        Cuando desaparece la excitación de una de ellas, extjnguiendose el cminipo magnitico
        inducido por dicha bobina, el rotnr queda bajo la acción del h i c o Campo cxisteilte, daildu
        lugar a un desplazai~iientuinitad.




                                                                                                                      En este c
                                                                                                               control del sent
                                                                                                               tabla 3 4 para i
                                                                                                                              n




        30.4 MOTORES PAP UNIPOLARES
               Una forma de paliar cl inconveniente que supone la necesidad de dos polaridades
        de la corriente para generar la secuencia del motor, si este dispone de una toma media
        cntre las bobinas, es realizar el montaje que se representa en la figum 30-4. Se obtiene uti
        motor PAP unipolar de cuatro fases (o bobinas), donde la corriente circuIa por las
        bobinas en un h i c o sentido.
1
                  En los incitores PAP unipolares, tíidas las bobinas del estator están conectadas
I
        formando cuatro grupos. Estos, a su vez, se conectan dos a dos y se montan sobre dos
        estalores diferentes, tal como se aprecia en la figura 30-4. Del motor paso a paso saIen
I   '
        dos grupos de tres cables, uno de los cuales es c o m h a dos bobinados. Los scjs
        tetminales que parten del motor se conectan al circuito de control, el cual, se comporia
        corno cuatro conmutadores electronicos que al ser activados o desactivados producen la
        alimentación dz los cuatro grupos de bobinas. Generando una secuencia adecuada de
                                                                                                           I
        funcionamicilto de los transistores que trabajan como interruptores, se pueden producir
         all los de un paso en el número y sentido deseado.                                                           Su priiicip
                                                                                                               inicialmente se al
h" ~ n - t . ~                                         CM~TULO 30: hiO'CORES PASO A PASO 487
   O RA-MA




conseguir
sobre dos
1 sentidos
 s


1 estator
:                                                                     Dispositivo de control
agneticos.                                                        I   y de potencia
magnético
!de. dando




                      En este caso la tabla de la secuencia que debe introducirse en las bobinas para el
               control del sentido de giro es la mostrada en la tabla 30-3 para modo FUI/Step y en la
               tabla 3-4 para modo HalfStep.



                                                                        FULL STEP




                     Tubla 30-3 Secuencia de control de un molar PAP Un@olarparumudo Fzrll S t q ~

&rkiades
ima media
obtiene un
ila por las


coiiechdac
 sobre dos
 paso salen
.. Los seis
i compcitta
~rducenta
lecuada dc           Tublu 30-4 Secuencia de conrrn/ de toi motor PAP Unipolar para modo Half Step
:n prodiicir
                      Su principio de funcionamiento se representa gráficamente en la figura 30-5.      Si
               inicialmente se aplica la corrizntc: a las bobinas L I y L3 cerrando los interruptores S1 y
4$8   MLCRM30NTROLADOR PIC'l hFM. DESARROLLO DE PROYECTOS                            O RA-m




S3, se generarán dos polos NORTE que atraerán al polo SUR del jni;úi M hasta encontrar
la posición de equilibrio entre arnbos como puede vcrse en la figura ?O-5(a). Si se abre
posteriotmente cl uitemiptor S1 y se cierra S2, por la nueva dislrjbucion de polos
magnéticos, M evoluciona hasta la situación reprtsentada en la figura 30-5(b)
                                                                                                  30.5 CON
                                                                                                          E modelo
                                                                                                          1
                                                                                                  mayor atractivo 1
                                                                                                                     I
                                                                                              I   anguiarts.




                                                                                                         Una fomu
                                                                                                  el número rle bbbi
                                                                                                                         ~
                                                                                              1   y a p8rdiheis muy
                                                                                                  Hmh &ore p    m        1


                                                                                                  nricles8 de l bc
                                                                                                               u
                                                                                                  micropsles mgnl
                                                                                                  mpktieea con n
                                                                                                  motora c hmh
                                                                                                             h
                                                                                                  i.ssurpii& s ~ t d i ~
                                                                                                                   a
               Figura 30-5 Princhipio hhrjsico de un motor. unipolur de cuatrofasw

       Sigmendo la secuencia representada en In figuras 30-5(c) y 30-5(d) de ta misma
forma se obtienen avances del rotor dc 90 grados habiendo consepiida, como cn el motor
bipolar de dos fases, hacer que el rotor ai7ancepasos dc 90 grados por la acción de Icis
impulsos eléctricos de excitación de cada una & las bobinas. El movirnicnto obtenido ha
sido eii sentido coiitrario al de las agujas del reloj. Ahora bien, si las secuencias de
excitación se generan en orden inverso, el rotor girará en sentido contrario. Podemos
dcducu que el sentido de giro en los motores paso a paso ss reversible en función de la
secuencia de excitacibn y, por tanto, se piiede hacer avanzar u retroceder al motor un
número determinado de pasos según las necesidades.

       La función de los intemptores sera ejecutada por los transistores NPN de la figura
3 0 4 que se incluyen dentro del driver L293B estudiado en el capitulo anterior, la
conexión de iin motor PAP unipolar y el driver L293B se muestra en la figura 30-14.
ORA-MA                                             CAP~TUM MOTQMS PASO A PASO 489
                                                                                30:


;ta encontrar     1                   INTERNA DE UN MOTOR PAP
                      30.5 CONSTITUCI~N
                  I
). Si se abre
jn de polos       !         E modelo de motor paso a paso tsnidisdo, salvo pw su valor didhctico, no ofrece
                             l
                      mayor atractivo desde el punto de vista pdctico debido a la amplitud da sus avances
                      angulares.
                                                             ESTATOR




                                                              L    J
                                                              ROTOR
                                                              (Mbvll)



                              Um fama de conseguir metores BAP de gam n mdueido esnsiste m amentw
                                                                              &
                      el nilanero c bobiaee del erihtor, pero ello llevada a un aumento del coste y del volumen
                                  b
                      y a gddirla~m y eonddaablea en el rendimiento $el motor; por lo que no a i vi~biblo,
                      Hri~ta&ora pwa eon~eguirla salucidn rds i d h a M r e e m ai 18 rneemi%arcibn loi   Be
                      nuclm~de lae bobinrie y el mtsr en foma de hendidura O d i ~ n h e d n d o ~ eMI
                                                                                                  ,
                      mjoropoloa m@tico~, tmtgfi come diente8 y @i~ablaeienQ ~ l W i o n e 8 equilibrio
                                                                                    1
                                                                                    m               dc
                      mapdtiee~ m avmeer~mgulms muohe mmoia. Be bita f o m e piiblo conaegulr
                                   c                                                        m
                      metome de h t de 500 pasos e inelmo m h , En k figura 30-6 se m u e m de f o m
                                     ua
                      raaumih eeta dhpodoibn g m un motor BAP do 22,S0,
fases

 de la iiiisma
o en el motor
acciiin de los
D obtenido   ha
;ecuencias dc
riii. Podemos
 funciiin de la
- al motor un


N de la figura
o anterior, la
4W    iíiCROCONTRQLAI)OR PIC E hFR4. DESARROLLO DE PROYECTOS                                                 G M-MA




        En las fotografias dc las figuras 30-7 y 30-8 piieclen apreciarse un estator y un rotor               centrales, mientl
de un motor bipolar de 48 pasos desguazado.                                                                   en el interior cst:

                                                                                                              30.7
                                                                                                                     Desde cl 1
                                                                                                              de algunas de las
                                                                                                                       Par dini
                                                                                                                       dinhmica
                                                                                                                       perder pi
                                                                                                                       estator )
                                                                                                                       velocidaa
                                                                                                                       generadni
                                                                                                                       t
                                                                                                                       i
                                     30-8 Esfator del motor paro a paso
                                Fip~ra                                                                                 moror po


30.6 PIISPOSICIÓN DE LAS BOBINAS
                                                                                                                            ] bri

       La existencia de varios bobiirndos en el cstator de los motores paso a paso da lugar
a varias f m a s de agrupar dichos bobinados para quc sean alimentados adecuadamente.                                       1-


                                  +vcc    +vm
                                                                                                                      Par de m
                                                                                                                      dgimen d
     (a) Muraa Blpolar        (b) Mator uniplar 6 Mlos   (c) M o r Umpdar 5 hlhs   Id) M&nr Unlpdar 8 hilas           mayor qiri
                                                                                                                      posicibn e
                         Figura 30-9 D i . ~ p u ~ ~ i d~ k bobinar de motorm paso a pn.70
                                                 NSn c ~ m
                                                                                                                      Númemd
      En el caso de IOS motore5 ;laso a paso unipolares se pueden encontrar con cinm                                  pam real iz
seis u ocho ~ m i a a l e s que aderntis de los bobinados Iiay otros terminales qui
                          ya
compondcn con las tornas intermedias de las bobinas, los cuales se conecta1
directamente a positivo de la fuente dc alimentación para su correcto funcionamiento. La
figuras 30-9@), 30-9(c) y 30-9(d) describen como están conectados internamente lo                                     donde NP
teminalec de estos tipvs de motores.                                                                                  krecuenci
                                                                                                                       Úmerci d
      Hay qiie tener en c:ieiita q d e los [notores PAP uriipolares de seis u ocho hilos,                              lecuadarr
pueden hacerse funcionar como rnotom paso rr p s o bipolares si no se utili7m las tomas
!
         iLX RA-MA            n R4-h4A                                                 ~ A P h l 30: AiOTORES PASO A PASO 49 1
                                                                                                 0



cir y   un rotor
                         l!   centrales, mientras que las de cinco hilas no podrán usarse jamás mmo bipolares porque
                              en el interior están conectados los dos cables centrales.

                              30.7 PARÁMETRO DE LOS MOTORES PAP
                                     Desde el punto de vista mecánico y eléctrico es conveniente conocer el significado
                                                           características y parametros que definen un motor PAP:
                              dc algunas de las ~iiincipales
                                         Par dinámico de trabajo (Workifig Torque). Depende de sus caracteristicas
                                         dinámicas y es el momento máximo que el motor es capaz de desarrollar sin
                                         perder paso, es decir, sin dejar de responder a algún impulso de excitacibn del
                                         estator y dependiendo de la carga. Hay que tener en cuenta que cuando la
                                         velocidad de giro del motor aumenta, se produce un aumenta de la f.c.e.m.en 61

                                         generada y, por tanto, una disminucion de la corriente absorbida por los
                                         bobinados del estator. Como consecuencia de todo eHo, disminuye el par motor.
                                         Ángulo de paso (Step Atrgle J . Se define como el avance angular producido en e1
                                         motor por cada impulso de excitación. Se mide en grados, siendo el número de
                                         pasos estándar más empleados los mostrados en La tabla 30-5.




                                                                        '
                                                                        ,

                                                 Tablri 30-5 Atigu10.v íIe paso mas comirnes rn los motorrs P.4 P

                                         Par de mantenimiento(Holding Toque.).Es el par requerido para desviar, en
                                                  de
                                         regin~cn excitrición, un paso el rotor cuando la posición anterior es estable. Es
                                         mayor que el par dinámico y actúa como fimo para mantener el roior en una
                                         posición esbble dada.
                                         Número de pasos por vuelta. Es   I;i cantidad de pasos que ha de efectuar el rotor
                                         pam realizar una revolución completa. Evidentemente su ecuación es:


                                                                                   a
                                         donde NP es el número de pasos y a e l arigulo de paso.
                                         Frecuencia de paso máximo (,Wavimtarn pull-in/out). Se define como el máximo
                                         número de pasos por segundo que puede ejecutar el motor funcionando
                                         adecuadamente.
i
                  492    MICROCONTROLADOR PIC 16FS4. DESARROLLO DE PROYECTOS                            B m-MA                 O RA-MA



                  30.8 CONTROL DE LOS MOTORES PASO A PASO                                                                      de resistencit
#..
      1                                                                                                                        hilos que m i
                         Para realizar el control de los motores paso a paso es necesario, como hemos visto,                   de ohrmos. E
N ,               generar una secuencia determinada de impulsos. Además, estos impulsos deben ser                              dos a la parej
I:I
1,.               capaces de enrsegar la corriente necesaria para que las bobinas del motor se exciten. La
                  figura 30- 10 muestra el diagrama de bloques general de un sistema de conml para un
                  motor PAP,



                         de
                                                                                                Mee6nlw
                        Mando          Control           Potencla


                    Figura 30-10 Diagrama de bloques de un sistema de conlrol para motorpaso apaso

                         Vamos a centrarnos en el control de los motores paso a paso utilizando el 

                  microcontrolador PIC 16F84A,Como el microcontralador no es capaz de generar la 

                  corriente suficiente para excitar las bobinas del motor PAP utilizaremos los drivers                         A-B (1-1') O
              I   contenidos en el integrado L293B (figuras30- 13 y 30-14)
                                                                                                                              sentido antih
                                                                                                                          I   de la bobina
                         EJEMPLO: E c h i t o de conhl que gobiema un motor PAF de 7,5O por pam,
                                       l
                  pmiucc ei s m c a de I 1 prsoi      motor s una frecuencia de 200 ~ z ¿suintos grados
                                                                  
                      ,
                  gira? si se desprecia la inercia y los ronmientos mechicos, ¿cuánto tiempo tarda en                     1
                                                                                                                          I

                  realizar dicho movimiento?.                                                                             1
                         Soluclbn: Como el motor gira 7 , 5 O por pulso, d t&  de aplicar los 11 pulsos,
                  el eje del motor habrá girado: 7,5 x 11 82,5". I31 priodo & la señal es de 5 ms,por
                                                                                              

              1
              I
                  tanto, el motor tardad SS ms en realizar este movimiento.                                           I


                  30.9 IDENTIFICACI~NDE UN MOTOR PAP                                                                  !
                                                                                                                      I
                        Para Iti rcalizaeibn de los ejercicios que vamos ri plantear, se van a utilizar dos
                  motores paso a paso, uno bipolar y otra unipolwr, recuperiidos de miquinas de 
desguace,
                                                                                                                      !
                  como discos duros, impresoms o similar.
                              

                                                                                                                      1
                         La primera dificultad eei la ideatificacidn dc las bobinas internas con tras teminales       1I
                  del motor, Es eenvmimte tener en cuenta cl niliiiem de hilos que diripone el motor PAP,
          i
          i
                  para intentar identificar su estructura i m a con alguno de las modetm desrritoi en I i     
   1                 Se mide
                                                                                                                              cwlquiem dis
                  figura 30-9,

                           Oenertilrnente se deduce por el color de los cribler pero, en cmo de d h , es
                                                                                                                  ¡   I
                                                                                                                              bobinas y los (:
                                                                                                                              central se niide
                                                                                                                  1           medida de 150
                  convaniante mdir le resietencia de la bobina con un ohmem, Asi, por ejemplo, plrm un 
          1           mitad correspo
                  nicitrir hipolar qiie tiene cuatro hilm debe utilizame uii polimetro en posirihn de medida
                                                                                                                  I           2' y 3'- 4'.

                                                                                                                  l
O k4-M.4                                             CAPITULO 30. MOTORES PASO A PASO a93
                     II
                          de resistencias para detectar las dos bobi   independientes. Para ello, hay que buscar dos
                          hilos que midan iin valor cualquiera que no sea infinito, generalmente mas pocas decenas
10hemos   visto,          de ohmos. Estos dos hilos pertenecen a los terminales de una de las bobinas y los otras
isos deben ser            dos a la pareja opuesta.
 se exciten. La 

:oneol para un 
                                                  nas




*pasoa paso
                                                 Figirm 30-1 1 Motor puso n poso de 4 hi1o.c
  utilizando el
                                 En este caso no es importante coriocer el devanado que corresponde con la bobuia
 de generar la
                          A-B (1 -1 ') o a la C-D (2-29, ni identificar siis terminales, porque una vez conectados los
10s   los driver9
                          cables al circuito de control si el motor gira en sentido horario y queremos que gire en
                          sentido antihorario, solo tendremos que cambiar las conexiones de la bobina A-B por los
                          de la bobina C-D.
:7 , 5 O por paso,
,ls
 &b       @O8
                                 Para los motorcs de 6 hilos si queremos identificarlos con los del motor dc la
impo tarda en 
           figura 3 0-4, procedcrernos de la siguiente manera:

U 10s11 @OB,
a de 5 m, por




n a utilizar dos
as de despace,

                                               F'igrra 30-12 Fofo de ula tiItorrivpaso uyuso de 6 hilos
                                                                                                  

n los terminales
: el motor PAB,                  Se mide con el ohmetro para buscar los tres hilos que entre si 
 rnidan un valor
 dcsct.itos cn la         cualquiera distinto de infinito. Estos tres hilos pertenecerán a uno de los juegos de
                          bobinas y los otros tres pcrtetiecerán al otro juego de bobinas. Pim averiguar el terminal
                          central se mide la resistencia entre dos cables, 
ubtsriiendo para nuestro caso concreto la 

                          medida de 150 S1, midiendo los otros dos resulta 300 SZ, por lo tanto, el que tiene el valor
                          mitad corresponde con la toma central de la bobina, numerados en la 
tigura 304 con 1'-
0 M-M                                                CAP~TUKJ MOTORESPASO A PASO 493
                                                                              30:



1                 de resistencias para detectar las dos bobinas independientes. Para ello, hay que buscar dos
                  hilos que midan un valor cualquiera que no sea infinito, generalmenteunas p a s decenas
irnos visto,      de ohmios. Estos dos hitos pertenecen a los terminales de una de las bobinas y los otros
 deben ser        dos a la pareja opuesta.
exciten.La
m1 para 1




so apaso
                                         Figura 30-1 1 ~Uotorpaso paso de 4 hilos
                                                                a
tilimdo el
  generar la            En este caso no es importante conocer el devanado que corresponde con la bobina
 los dnven        A-B (1-1 ') o a F C-D (2-27, ni identificar sus tminnles, porque una vez conectados 10s
                                   a
                  cables al circuito de control si el motor gira en sentida horario y queremos que gire en
                  sentido antihorario, s61o tendremos quc cambiar las conexiones de la bobina A-B por los
5
"
r        pitso,   de la bobina C-D.
ntos prados
po tarda cn             Para los motores de 6 hilos si queremos identificarlos con los del motor de la
                  f i p 30-4, procederemos de la simiente manera:

IS   11 aulsos,
            or




 utilizar dos
Ic desguace,

                                       Figtra 30-12 Fato de zrn motor paso a p a ~ ode t hilos
                                                                                       í
s tminalcs
motor PAP,               Se mide con el olimetm para buscar los tres hilos que cntrc si midan un 
valor
ssi-itor; en IR
             
    cualquiera distinto de infinita. Estos tres hilos pertenecerán a uno de los juegos de 

                  bobinas y los otros tres pertenecerán al otro juego de bobinas. Para averiguar el terminal 

                  central se mide la resistencia entre dos cables, obteniendo para nuestro caso concreto la
de dudn,    CR
                  medida de t 50 R, midiendo los o- dos resulta 300 Q, por lo tanto, el que tiene el valor
plo, pnni iin     mitad corresponde con la toma central de !a bobina, numerados en la figura 3 0 4 con 1'-
1 ric ntcdictn
                  2- y 3'- 4'.
494   MlCROCOiriTaDLAüOR PIC16F84.DESARROLLO DE PRO Y ECTOS                          O R.-MI




              Para identificar cual de los hilos corresponde a las bobinas 1, 2, 3 o 4, procedemos
        de la siguiente forma, tendremos que alimentar el motor, el valor de la tensión de
        alimentación normalmente suele ir indicado por una etiqueta o serigrafiaclo en la carcasa.      activar las e
        En caso contmrio, deberemos de tener cn cuenta que la mayoria de los motores paso a             las bobi
        paso están consb~iidospara trabajar a 4, 5 , 6 , 12 y 24 voltios. Probamos con 5 V, por
        precaución, conectando esta alimentación a la patilla central de Ias dos bobinas.               ejeniplo se u
        Seguidamente se toma uno de los dos hilos, se numera con cl número 1 y se conecta a
        masa y el otro hilo del mismo juego de bobinas se nurnmrá 2011 el número 2 y se deja sin              Las ~ i
        conectar. A continuación tomamos uio de las terminales del otro jucgo de bobinas y se           dichos pines
        conecta a masa, si el motor gira un paso en sentido horario se numera el terminal con el        cerrados, res
l
        número 3 y el otro terminal con el 4. Si por el contrario lo hace en sentido contrario a las    del motor sej
        agujas del reloj se numera con 4 y el último tmnina con el número 3.
i
1
               Una vez identificados 10s terminales del motor bipoiar y del unipolar. cn los
        siguientes epigrafes veremos los circuitos que vamos a montar para cada uno de ellos.                  El moi
    !
                                                                                                        bipdar. En e
    I
        30.10 CONEXIÓN MOTOR PAP BIPOLAR Y PICI 6F84                                                    alimentación
    1                                                                                                   terminales 3
              El montaje que vamos a realizar para el motor bipolar se muestsa cn la figura 30-         centrales de 1
    !   13, en el que se ha realizado la conexión del motor PAP a través de los drivers de1             en este ejern~




              Figura 30-13 Cottcxihn del motor P,4P bipolur u PICl6F84.A y driver L2 93 B
4, procedemos                Las ljncas RBO, RR1, M 2 y RB3 serán las encargadas de genemr la secuencia de
   la tension de      rictivaci@~.ii motor paso a paso, mientras que KB4 y RB5 se ponen siempre a "1" para
                                  del
o en la carcasa.      activar las entradas de habilitación de los drivers. Las salidas de los drivers se conectan a
motores paso a        las bobinas del motor para conseguir la corriente suficiente que permita su
s con 5 V, por        funcionamiento. La tensidn aplicada al pin Vs es la de alimentación del motor, eii este
; dos bobinas.        ejemplo se utiliza un motor de 12 V.
  y se conecta a
i2 y sc deja sin            Las lineas RA5:RAOse han concctado a unos interruptores que pueden entregar a
le bobinas y se       dichos pines un nivel alto "1" o un nivel bajo "O",dependiendo de que estén abiertos o
 tenninal con e1      cerrados, respectivamente. Esto perrnitira controlar las condiciones de funcionamiento
i contrario   a las   del motor según el estado dc cstos intcrruptorcs.

                      30.11 CONEXIÓNMOTOR PAP UNIPOLAR Y PIC16F84
diipolar, en los
lo de ellos.                 El montaje se muesm en la figura 30-14 y es muy similar al del motor paco a paso
                      bipolar. En este caso se ha conectado la toma intermedia de los bobinados a la tension de
                      alimtrntación, e1 terminal 1 y 2 a las salidas de un par de drivers del L293B y los
                      terminales 3 y 4 a las salidas del otro par de drivers. La tension aplicada a la tomas
en la figura 30-      centrales de los devanados del motor debe ser igual a su tensión nominal dc alimentación.
 los dnvers del       en este ejemplo se utiliza un motor de 12 V.


                                                                      MOTOR PAP
                                                                      UNIPOLAR




                           Figura 30-14 Conexih del motor PA P urlipolur a PICI 6F84A y driver L293B
496 MICROCONi'ROLADOR PIC lbFB4.DESARROLLO DE PROYECTOS


30.72 CONTROL DE MOTOR PAP EN MODO FULL STEP
       Utilizan& cualquiera de los montajes de las figuras 30-13 6 30-14, vamos a
analizar el programa MotorPAP_Ol .asm, que es un programa que hace g r r el motor
                                                                             ia
siempre que este cerrado el interruptor conectado a la linea R A O y dependiendo del                               m
estado & la linea RA4 girará en un sentido o en el contrario. El programa para los dos     hido
tipos de motores es el mismo y su organigrama es el que se muestra en la figura 30-1 5 .                           w
                                                                                                                   beE
                                                                                                                   w ;
                                                                                                                   M
                                                                                           Pdiscipltf
                                                                                                     L..   -       w.
                                                                                                     '.'   -       gBOO
                                     micmcontrolador.                                                              ctñ
                                                                                           -1:-
                                                                                           G &.
                                                                                           ,.              - .*
                                                                                                              ..
                                                                                                                   :#M
                                                                                                           -       .&-
                                                                                                               -   m-
                                                                                           a-
                                                                                            * .
                                                                                           * :.-::-*
                                                                                           ,:  , ,


                                                                                                 . -.
                                                                                                  :
                                                                                           ...--:..
                                                                                                      .            al-
                                                                                                                    .
                                                                                                                          --




             Figtra 30-15 Organigrama del programa MotorPriP-01.asm
Q RAMA                                                                                             CAPITULO 30: MOTORES PASO A PASO 497


,STEP               #DEFiNEEni&&khci    PORTA,O                                                           ; htemptor de p t ben marcha.
                                                                                                                         us
                    #DEFiNü ~ s n d d o PORTA,4                                                           ; Inkmpbr & sentido de giro.
    -14, vamos a    ;~A~&I~**W.**~~******~*****~L*WWW~~~~~**++****O*+***~****-**
    $rar el motor
    mdiendo del                      ORG            o-




                    -
                             -

         los dos
    i para
                    Inicio
                       .             W              STAWS&W
    m 30-15.                         bef            l%m&Mmb                                               ;Ema hms se crmfipm cona0 entrada.
                                     bef.
                                     M-             FWITB,                                                ;Las l     b &l hiena B configurada8 como salidas.
                                     bcf            SAWSJtM

                           - - .:,   m.        ,   .. . -                        -        .-              ;--en        marcka?
                                                                                                          ;s.  -,

                                     drf:      -   'PURTE                                                  ; N , p r el motor, poniendo rt cero la líaea
                                                                                                              o aa
                         -'..sw:.,;:Fm .&                                                                  ; #e Wlitzzidn
                    &::; .-a-
                           . .
                               .:,-
                                                                 -
                                                                 "
                                                                       .


                                                                       .
                                                                             .


                                                                             . ..           -        .
                                                                                                         - ; Cgqmcba el sertiido de giro deseado.

                                                       , -
                       -         :   d              --.                                                   ;Gimen unmtido.
                                     ,*
                                      :.           -*:/
                                                                                      -   ,. -   -
                                                                                                         --: i w%mi&
                                                                                                          @         ~          0 0 ~ 0 .

                                           . . ,   ..                :-.,.           .-




ri
,   parado


                                                   .         .
498   MICROC'I )NTROLADOR PiC 16FL14. DESARKOL[.O DE PRI )YFCTOS
                                                      
                                               c RA-MA


          movwf     PORTB
          cail      Retardo-lOms                   ;Temporkción antes del siguiente paso.


          NCLUDE m A R D O S . M C >


       Este control también se podía haber realizado mediante tablas de datos, de forma
similar a los juegos de luces plaiiteados y res~~cltos el capitulo 12. Se anima al lector a
                                                    eri
inodificar &te y los próximos ejercicios resolviéndolos mediante el procedimiento
descrito en el ejercicio Retardo-08 .asrn.


30.13 REALIZACI~N E SECUENCIAS DE MOVIMIENTOS
                D
      Eri muchos proyectos es necesario realizar una secucncia dc moviinientos con 
los
motores PAP. A continiiacihn se muestra un ejemplo que tambjQ nos p u d e servir para 

conlpmbar correcto funcionamiento. 


      Si no se conoce el nutnero de pasos que tiene nuestro motor ahora puede ser un
buen momento para saberlo. Así, si se hace la kinpc.irización Iriayor llamando por
ejemplo a la subrutina Retardo-5Oms en lugar de Retardo-IOms, denm de la silbnitina
"ActivaSaljda", podenios contar fkilmente cuántos pasos necesita para dar una vuelta
completa. El motor unipolar que hemos utilizado nosotros necesita 48, por lo que cada
impulso de excitaciiin recorre 7,5", que corresponde a urio de los valores comerciales
recogidos en la Tabla 30-5.

        El progranla MotorPAP-02.asm Iiacc que el motor ejecute wia iuelta completa en

el ángulo de paso del motor o, lo que es igual, el número de pasos a recorrer para que el
eje del motor ejccute una vuelta completa.                                                                                   8Ob

                                                                                                                    : Suhtina "Gire

                                                                                                                    GiroIiqukh
; El motor PAP realiza una vuelta en sentido y dos en saitido c o n m o ufizaodo el modo Full Step.                         movlv
                                                                                                                            call
                                                                                                                             KtoYlu
                                                                                                                             call
            CONFIG -CP-OF'F t -WDTTOFF & -PWRTE_ON & -XT-OSC                                                                 mmlv
          LIST   P=16FS4A                                                                                                    call
          N C W E 816F84A.INC>                                                                                               movh
                                                                                                                             cal1
          CBLOCK OxOC                                                                                                        m
          Cich                                     ; Se denementarli cada ciclo de 4 pasos.
          Vue1tasHdo                                                                                                ; slhltina"Gk
          VwhasAnatihorario
          ENüC                                                                                                      Girokmha
                                                                                                                             movlv
NumeroCjclos        EQU        -12                 ;Un ciclo & 4 p o s son 30 gradas p m un PAP 


                                                                                                                I
O RA-M:   Q RA-MA                                                 CAPI I'YI.CI 10: MOTORES PA S O A PASO 499


                                                     ; de 75' en modo Half-Slcp. Por tanto para
                                                      ;m p l c t a r una vuelta de 3W.se requieren 12
                                                     ; ciclas de 4 paso, cada uno.
                     ;ZONADEC~DIGOS***********+~~~*****Q~~~~*****QQ"*********X*#************V**

                                  ORG      O 

                     inicio
os, de forma                      bsf      STATüS,WO
na al lector a                    clrf     WRTB                 ; Las lineas del Puerto B configuradas coniu salidas.
                                  bcf      STATUS3PO
-ocedimiento         Principal
                                  movlw    0x02                 ; Dos vueltas en sentido horario.
                              movwf        VueltasHorarío
                     OtraVueltakr&a
                                  mvlw     Numdiclos
                           m 0 4 Ciclos
:ritos con los       OtmCicloMha
                                  cal1     GiroDerecha
.e servir para                ,   kfsz     Ciclos,F
                                  goto     ~                ~      1                 0                ~
                                  decfsz   VueltasIIorario,F
puede ser un                      goto     OmVueltaDaeCha
lamando por
                              movlw 
 OxOl
  la subrutina                mwwf Vue1tasAntihomrio            ; UM vuelta en sentido 
 antihorririo.
ir una vuelta        OtraVueltalzqurerda                        ; AL wt una soh vueltano haria falta el contador.
  lo quc cada                 movlw NumeroCiElos                ; Pero se deja para que el lectot pueda k e r iq
                                                                                                              a

  comerciales                 movwf Cco  ils                    ; pniebas que crea oportunas canibiando l carga
                                                                                                           a
                     OtmCicloiqtiierda                          ; (VueltaAntiliorario}.
                              cal1      Girohquierda
                              decfsz CiclosF
 completa ~ri                 goto 
 OtroCicloIzquierda
:ne en cuenta                 d&        VueltasAnti~o,F
!r para que el                    goto     CbVueMzquierda
                                  goto     Principal



                     GiroIzqirierda
                               movlw                            ; Wmer paso.
                                  catI
                                  movlw                         ; Segundo paso.
                                  ira11
                                  movh                          ; Tercer paso.
                                  cal1
                                  mvlw                          ; Cuarto y iiltimo pmS.0
                                  cd
                                  retum




                                                                ; Primer paso pam el giro hacia la daecha.
i   PAP
l
        5W      MCROCOhTROLADOR PIC16FM. DESARROLLO DE PROYECTOS                                      F RA-MA
                                                                                                                i



        Aaivasalids
                m w WRT3
                   v f
                   caü                                   ;Tempimibn antes del siguien& paso.
                   rmm




        30.14 CONTROL DE MOTOR PAP EN MODO HALF STEP
               Una de las posibilidades que tienen 10s motores paso a paso es la de utilizarlos en
        cl modo medio paso u HurStep. En esre caso hay que utilizar una secuencia de 8 estados,
        como la que se muesba en las Tablas 30-7 y 30-4, corno puede coinprobarse en el
        programa MotorPm3.asm, el proceso de progmacion es el rnisino. Como ejemplo
        de aplicacibn se va a repetir el progma de la sección anterior pero en modo Hcilf Step.


    I
        ;El motor PAP r d i m una w l í a en m&do y dos en sentrdo conbajo u t i h d o medios
        ;~(nmdoWalfStep)paraobtcneraias~isiBa
        ;ZQ~ADEDA~****h+***I*******+***.L***V********~*****+****UW************************




                           EQU       .i2                 ;Uncichde8~son30griidwparamPAP
                                                         ; dt 73" m m& w - S t e p . Par tanto para
I                                                        ; co@etar una vuelta de 3W,se quieri:n 12
                                                         ; ciclog de 8 pagos c& uno.
        . ~ N A D ~ C ~ D ~ C ~ ~ S ~ * L ~ * * * * ~ + ~ Q * * * * ~ * * ~ ~ L Y ~ * I * * U U ~ * * * * ~ V * + * + ~ *

                   ORG     O
        kucio       -
                   bd      STATüS,RW
O RA-MA    e M-MA                C ~ P ~ T U L O MOTORES PASO A PASO 50 1
                                                  30:




STEP
tilizarlos en
e 8 estados,
b m e en el
no ejemplo
'alfStep.



                         ;Frimsrpo.

                         ;Se&       paso.
                         ; Tercu paso,

                         ; Gurirto p o .

                         iQuia~g~eo*

                         ; soxw p o .

                         ; -PO.
                         ;mwyrilthnopa
r
502   MICROCON't'ROLADCiR P1ClhF84 DESARROLLO DC PROYFLTOS                                        3 KA-m
                                                                                                           l    2,RA-MA



          movlw      b 0 1 1 1000'
                      '0                              ; Sepimdo paso.                                                     CBLa
          cal        ActivaSalida                                                                                         VeloeY
          movlw      b'00i 11010'                     ;Tercer paso.                                                       EMX
          cal1   ActivaSalida
          movlw  U001 100 10'                         ; Ciiarto paso.                                           #DEFINE Entra¿
          cal1   ActimSaIida
          mor~lw WíMI 10110'                           topas^.                                                 ; ZONA DE C        ~
          call   .4ctivaSalida
          movlw b'00110 100'                          ;Sexto paso.                                                        ORG
          call   ActivaSaf ida
          movlw b'0011010lt                           ; Skptimo paso.
          cal1 - Activasalida                                                                                             movlw
          rnovlw b'00 1 1000 1'                       ; &cavo y ultimo p w .                                              movwf
          cail   ActivaSa1ida


                                                                                                                          movf
                                                                                                                          andlw

          mowf       PORTB
          cal!       Retardo-jOms                     :Temporizaciiin antes del siguiente p o
                                                                                           s .
                                                                                                                          m     M

          lNCLUDE <RETARWS.iNO

                                          L
30.15 CONTROL DE VELOCIDAD
       La velociilad del motor queda determinad21 por la frecuencia a la qiie se ejecutan                      PamMotvr
los pasos de la secuciicia y la direccihn de giro depende del sentido en qiiz se aplique
dicha secueiicia. Esto proporciona un excelente coii~alde velocidad y posiciijn sin
rcalimentacion.                                                                                                ; Sdnititte "Seiwx:

       E 1 programa MotrirPAP-04.asni describe un procedimiento para controlar la                              :hlkrando los valc
velocidad. E1 hardware utilizado será el de las figuras 30-13 6 30-14. La lectura de las 
                     SeIeccionaVeIocidE
cuatro lineas bajas 
del Puerto A determina el tiempo de retardo qiie hay entre la                                        addwf
aplicacion de una nueva combinacion a los devanados del motor. Cuanto mayor sea este
rctardo m& dcspacio girara el niotor.
                                                                                                               : Subrutina "Girola

:Programa de c o n n l de velocidadde un motor PAP. La velocidad del 
motor esta4 g&m&
; por el valor de las cuatro líneas bajas del Puerto A. El sentido de giro de motor se decide 

;en funcibn del valor de la Iinea RA4.
     
                                                                                                                    movlw

                                                                                                                          movlw
             CONFIG -CP-OFF & -_wDT-OFF & -PWRTE-ON & -XTXTOSC                                                            movlu-
           ~ S T P=IóFS.IA
           [NCLUDE -+16F84A,i?VO
                                                                                                                          retum
#DEFmE E n W a i t i d o      PORTA4               ; Interruptor de sentido de giro.


                I
                !             ORG
                     Inicio
                :
                1             b~f       STATUS
                              inoviw    b*WM11111'                      ; El Rierto A se conñgura m w entrada.
                !
                1             movwf     PORTA
                4             CM        WRT5                           ; L8S l i n w del mierto B m 6 g u r a d a s corrm salidas.
                              bcf        STATüS,RPO
                1   bipai
                              movf      PORTA, W                        ; Lee el puerto de entrada
                              andiw     b I O I 1 I I'
                                         YO O                           ; Se queda con los cuatro biis bajm.
                              btfx      STATUS.7.
                                        P&otur                          ; Si es cero se mantiene pwado.
                              cal       SelmcionaVelocidad              ; Pasa a seleccimar ei factm      el que se va
                              movwf     VeIocidxd                       ;a multiplicar el ixtafiki pakhn.
                              ms
                               c        EntradaSmtida                   ; Comprueba el sentido de giro &seado.
                              &Oto      AA*&
                              di        Girohecha
                             gafo
                    A-Izquierda
                              call
                              goto
ejecutan            ParaMotor
                            c irf       PORTB                         ; Para ci rnutor, piniendo a cero la linea de
:apliquc    '       Fin       goto      Pnncipai             ;habiliwción.
ición sin

                    ; Alterando los valores de esta tabla se pueden conseguir diferentes retardos.
trolar la
ra de las                    Velocidad
                    Seieix~ona
entre la                     addwf PCL,F
sea este                     DT       0,675', dr6S', d'G0', i1'55',d'5íY, 64T, b40'
                                            d17ú',
                             DT       837,d'30t.d'25'. dt20',d'15', dlOf,d'5'



                    GiroIzquierda
                              m o v : ~ HMJIOIOI'                      ; primer F.
                              cdl       ActivaSaiida                                                           el
                                                                       ;Lo envía a la salida donde esth cone~hdo motor P,4P.
                              movhv b'00110110'                        ; Sogundo paso.
                              cd1       AchvaSalida
                              movhv     blOO1llO1O'                    ; T e r w paso.
                              call      Ac~vrtSalida
                              niovlw    b l W1 1 1001'                  ;Cuarto v   ÚItimo vaso
7
504       MICROCONTROLADOR PIC 16F84.DESARROLIB DE PROYECTOS



;SulaP1IisiQhDasha"-



             d
             1       Actimwdri
      ,      -kv-    ~001~11014
                     ActiyaSW                ,- ,   .   -   .
             mlw     buXf1lOIIOt~:       -
             4       Aotiddidn       .




                                                                             Paca la
                                                                      servomotort~,   c
                                                                      (figura 31-1). PO
             odl     ~ ~ l           m       a
             dfz
              ms     Cmadnr,F                                        de rtiodelismu a
                                                                     tirnbn dc uii barc




                                                                    3     . SERVi
                                                                            Un servomc
                                                                    ruedas: deritadas qu
                                                                    una pequeña tiirjet;
                                                                    figura 31-2 inuesk
Para la renlizacibn de rnicrorobotq experimentales es frecuente utilizar
semornotores, que son pequedos dispositivos utili7ados tradicionalmente en radicxonwol
(figura 3 1 -1 ). Pnpulamcnte reciben d nonlbre de "servos"y suelen usarse para el control
de modelismo a distancia, actuando cobre el acelerador de un motor de cornbuaihn, en el
timón dc un barco o de un avión, en el control de direccián de un coche, etc. Su pequeño
tamaño, bajo consumo, adcmás de una buena robustez y notable precisión, los hacen
ideales para !a constnicción de los microrobots.




31. SERVOMOXORES PARA MICRORO'B~TICA
   l
      Un m o m o t o r esih crinsiirnido por un pequeno motor de corriente continua, unas
niedac dentadas que trabajan corno reductoras, 10 que le da una potencia comiderablc, y
una pcquefia tarjcta de circuito impreso can la electrónica necesaria para su control. La
fipra 31-2 muestra el despiece dc un sewo
5íkÍ   MICIROMNTROLiZWR PIC16F84.DESARROLLO DE PROYECTOS                             QR ~ M A




                                                                                                          en Torrejon dr
                                                                                                          donde exponc
                                                                                                          supuesto, taml
                                                                                                          I n t mct, siemp




                                                                                                                  Ln tcnsir
                                                                                                         voltios, El con!
                                                                                                         una scfial cua
                                                                                                         Moh~lnrion).    L
                                                                                                         p n e a el eie dcl
                                                                                                         eje del motor ( 1
                                                                                                         una retroalimen




                                                                                      m o esiándar
                                                                                      constante y
11      proporcional a la carga. Otro servo compatible w el anterior y muy utilizado es el
                                                        n                                                       -a auracia


1       Futaba S3083, www.fiitaba-rc-com.                                                               f i ~ t 3 14.Cada
                                                                                                                 a
                                                                                                        el ancho dcf pu
             Si el lector tiene dificultades para comprar estos s m o s en su proveedor habitual de     mecanicamctite r!
1:
        componentes eIectr6nicos puede adquirirlos en tiendas de modelismo donde vendan                 smvomotor utili;~
IT
II~     matcnal para radiocontrol de aviones, coches, barcos, etc. TambiCn pucdc entnr en               es&nentre 0.3 y
,!f I   ww.itl.rnodejirnport.com,que es la pagina Web de Mdel Import S.A, empresa con sede              rns indicaría la PG
u M-MA                                    (:AP~TLJLO1: SERVOMOTORES DE RADIOCONTROL 507
                                                                      3



                   en Tomejon de Ardoz (Madrid), distribuidora oficial para España de los servos Futaba,
                   donde expone una completa relacion de tiendas ordenadas por comunidades. Y, por
                   supuesto, también puede adquirirlos en alguna de las múltiples tiendas que hay en
                   Internet, siempre comprobando que trabaja con las necesarias garantías.

                   31.2 FUNCIONAMIENTO DEL SERVOMOTOR
                          La tensión de alimentacián de los servos suele estar comprendida entre los 4 y 8
                   voltios. El control de un servo S limih a indicar en qué posición se debe situar, mediante
                                                    7
                   una seiial cuadrada TTL mgdulada en anchura de impulsos 	 PWM (Pube Width
                   Mudulationj. La duracion del nivcl alto dc la señal indica la posición donde queremos
                   poner el ejc del motor. El potenciómetro que el servomotor tiene unido solidariamente al
                   eje del motor (ver figura 31-3) indica al cixuito electrónico de control interno mediante
                   una retroalimentación,si éste ha llegado a la posicion deseada.


i1 servomotor


                                                                                         Extremo
                                                                                         tzqtierda

                   3 rns
                    3
                   -
                   t           20 ms
                                       -
                                       b
                                                         -                -                              900




                   r
                   1,2 rns
                                                                                     -   Posición
                                                                                         Central



                   -
                   A           20 ms
                                  

                                       -
                                                                                                         1 BOD



                   -   2,lme
                                                                                         Extremo
                                                                                         Dereda




servo estándar         Figura 31-4 Tren de imp wlso.s pava control de un servo de radiocontrol Futubu S3003
d constante y
~tilizadoes el 	          La dwaciiin de los impulsos indica el ángulo de giro del motor, como muestra la
                   figura 3 1-4. Cada servomotor tiene sus márgenes de operación, que se corresponden con
                   el ancho del pulso máximo y mínimo que el servo cntiendc y que, 	en principio,
ior habitual de    mecánicamente no puede sobrepasar. Estos valores varían dependiendo del modelo de
donde vendan       servomotor utilizado. Para el servomotor Futaba S3003 los valores de la señal a nivel alto
iede entrar en     están entre 0,3 y 2,1 ms, que dejarían al motor en ambos extremos de giro. El valor 1,2
Jresa con sede     ms indicaría la posición central, mientras que otros valores de anchura del pulso lo dejan
508       MICROCONTROLADOR PIClbF84. DESARROLLO DE PROYFCTOS                           A RA-MA



en posiciones intermedias que son proporcionales a la anchura de los iinpulsos. Si se
sobrepasan tos limites de movimiento del servo, éste coinmzará vibrar o a einitir un
zumbido, denunciando un cambio en la anchura del pulso.

       El periodo entre pulso y pulso no es critico. Sc suelen emplear valores cntrc: 10 ms
y 30 ms, aunque lo habitual es utilizar 20 ms, que implica una frecuencia dc 50 Hz. Si el
intervalo entre pulso y pulso es inferior al mínimo puede interferir con la iemporizaciiin
interna del servo causando un zumbido a vibración del brazo de salida. Si es mayor
que el máximo, entonces el servo                     donnido entre pulsos provocando que
se mueva a pequefíos intervalos.

       Es importante destacar qiie para que un scm'o se mdntenga en la misma posicibn,
es necesario enviarle continuamente un pulso de una anchura constante. De este modo si
existe alguna fuerza que le obligue a abandonar esta posiciiin intentari resistirse. Si se
deja de enviar pulsos, o el ititervalo entre pulsos es mayor del máximo pcmitido,
entonces el sernomotor perderá fuerza y dejará de intentar mantener su posiciiin, de triodo
que cualquier fuerza externa podría desplazarlo.

 31.3 TERMINALES
       Un servoniotor es básicamente un motor elkctrico que sblo sc piiede rnover cn un
arigulo de aproximadamente 180 grados (tio dan wcltas complet cbmo los motores de
comente continua). Los sen~omotores  disponen de tres terminales:
            Positivodealimentaci6nunidoalcabledr:coIorrojo.
            Masa o negativo, que casi siempre es rin cablc de color negro.
      +     Señal por dotide se aplica la entmda de impulsos y cuyo cablc surle ser dc color 

            blanco, amarillo o 

                               naranja.

       La Tabla 31-1 inuestra una relación Jc fabricantes de servoniotorcs, con la
descripción de cada uno de los tcrmiriales destacándose en n e p l l a los fabricantes Futaba
y Hitec que son los más importantes.                                                                     Los ten
                                                                                                 alimentación í
                                                                                                 microcontrolnd
                                                                                                 las dos fuentes
                                                                                                 se construye ur
                                                                                                 utilizar dos fui
                                                                                                 energía a los
                                                                                                 presupuesto piu

                                                                                                       El siguie
                                                                                                 ejemplo, el eje i
  Tabla 3 1-1 Ident$caciÓn de los terminales tic I0.f servos, st'gzin rJiversosf~h~.icantes




                                                                    as
npulsos. Si se               En la figura 31-5 piedcn identificarse los concctrires de algunos de estos
o a einitir u11        fabricantes.


es cntre 10 m s
le 50 Hz. Si el
 tcmpori7aion
i. Si es 
rnayor
nvocando que 



isnia posición,
c este modo si
esistirse. Si se
mo permitido.
icibn, dc modo
                                                                                               Red (*)

                                                            11ack ar Wkila                 *Brown f.)
                                                                             Qrrngr (Slgnil)

                                       ind   I-) Ihc
                                               ari
e niovcr en un                        i'rrwso s l Futdba.                    ,


Ios motores de

                                                                                       de
                          Figwru 31-5 Conecforcsy cubkes us'udo,spor aPrgunosfubricun~es semornolores

:le scr de color       31.4 CONEXI~NDE                          U N SERVOMOTOR A UN PlC16F84
                            En la figura 3 1-6 se muestra iin ejemplo de conexión de un scrvomotor Futaba
otores, con la         S3003 a uii microcontro1ador PIC 1 6FS4A.
ricantes Futaha
                              Los tcrminatcs de alimrritacibii del senwmotor se conectan a u n a fuente de
                       alimeritaciári a 5V que puede ser Ia misma que se utilice para alimentar al
                       rnicrocontrolador. En caso de utilizar dos fuentes distintas debemos conectar las masas dc
                       las dos fueiites de alüiientación, pasa que tengan la misma tsnsion de referencia. Cuando
                       se construye un mecanismo o un rnicrorobot con servamotores, es siempre recomendable
                       utilizar dos fueritcs dc cnergía distirios, una para la "electrónica" y la otra para dar
                       energia a los servomotores. pero desgraciadamente no siempre hay espacio ni
                       presupuesto para ello.

                            El siguiente programa aq-iidarj a comprender la técnica de pmgramaciiin. En este
                   m   ejemplo, el eje del servomotor girar6 dc O a 1 80" y de 180 a 0"indefinidamente.
 fabricantes
Inicio




                                                                                                                                                                             Pl'wipl

                      Figz~m 1-6 Cone~.ibn PfCI 6F84.4 parn contrtr/ de1 servomotor
                            3            del
. I ~ * * i r * * * * * r ( i + * t * * * * ñ * * * ~ * ~ * i I * * * * ~ t S e r Y a .S+ + I * * * * * + 1 5 * 8 * * * 0 * * 0 * * * * * * I + * * * * C * * # L
                                                                                   O] -
9                                                                                           -
; P r o p de conbol riel posicionamiento de m servornotor Futaba S3003.Controla el @do
; mediantc una d a 1 cuadmda FWM de 20 111sde perimh quz se aplica a su Iinea de cnnml.
; El gngulo es gobernado por el tiempo en alto de la seAal cuadrada desde O" (para 0,3 ms
;de tiempo en alto). hasta 180" (para un tiempo en alto de 2,l m).

; En este progmma el servomotor s posiciona en 09 90". 1 80",vuelve a W y repite el cicio.
                                  e
; Permanece en cadaposiciiin &te     1 s. E1 funcionamientose explica en la siguiente tabla,
; donde se ha tomado como tiempa p t d n 100 ps (O,]ms) conseguidiis medrante interrupciones                                                                                 ; Subnrtina 'Ti
;por desb0rdamit:nto del Timer O.
                                                                                                                                                                             ;Mantiene la a
                                                                       Titnipu Ah
                                                                                l                          Timipo 3ajo                                              Anguio   ; a lWpx(2C
                                   FactorAlto                          O,1.FactorAllo                      O,](200-FxiorAlto)                                       (Grdm)
                                   -- +-
                                    .m -                               M-
                                                                        *-
                                                                        --
                                                                         .                                 m-------+--------.                                   -----                  CBI
                                            3                                O,! ms                                  19.7 rns                                        o"                Gw
9                                          12                                1
                                                                             ;
                                                                             ,   m~                                   18.8m~                                        qO0
                                           21                                2,l ms                                   17,9ms                                        180"               Tim
                                           12                                1J ms                                   18,8 ms                                        9P                 ENI
L
;ZONADEDAMS *                              * * * * V * * C * * * * * * * * * * e * * * * * * C I * * * b * V




                 -CONFtG -CP-OF'F                          & -WDT-OFF Br -FWRTi-ON & -XT-OSC
                 LIST                      P16F84A


                 LBLOCK OxOC
                 Contador
                 FaccwAlm                                                               ; Factor por el que se vaa multipiicar e1 tiempo
                 ENDC                                                                   ; patrbn de 100 p.s para obtener el tiempo en atto.
RA-MA   cR~-L~A                                          CAPITULO 3 1: SFR VOMOTORES DE RADIOCONTROL 5 1 I




                       TMRO-Carga           EQU         49'
                                                         '0               ; Vator obtenido experirnmtaimentecon la ventana
                                                                          ; Stopwatcb para un tiempo de 100 s.
                       #DEFINE Saiidn       PORTB,O                       ; Lfnea del W Odonde se conecta el servornotar.
                                                                                            B



                                   ORG      O
                                   gota     Inicio
                                   ORG 
 .4
                                   gob      TUnerO_Inknupcion
                       Inicio
                                   bsf      STATUS,RW
                                   bcf      Salida                        ; Esta línea se cmfigwaw m salida.
                                   movlw    blOOOO1OOO'                   ; TMRO sin prescder.
                                   movwf    OPTION-REG
                                   bcf      STATLrS,RW
                                   movIw    bt1O10000(r
                                   movwf    NCON                          ; Autoriza intemipibn TOI y la general (GiE).
                                   clrf     Contador
                       Principal
                                   movf     Contador,W
                                   andlw    b'OOOOOO1li
                                   caü      SeleccionaFxtorAlto
                                   monvf    FactorAlto
                                   cai t    Retardo1 s
                                   incf     Coutador,F
                                   gob      Pciticipd

                       SeleccionaFactmAlto
                                   M f
                                    w       =S*
                                   DT 
         d'l2*, 1 '. d112'
                                            dT3',    d'2                  ; Tabla para el s e ~ l
                                                                                               Futaba S3003



                       ; Msnrime ts salida en alto un tiempo igual alODps x (FlictorAlto) y en bajo un tiempo igual
    Anguio             ;a 1@s      x (2WFactorAlbo). El @o&    de la stAal cuadrada lo rnantrene en 20 ms.
    (Grados)
    --e
     - -




     @'
    90"
    180"                                                                  ; Contador auxiliat.
    90"

                       Tirad-htmpcion                                                                                        'I
                              mowif Guarda-W                              ; Guarda las valores de tenian W y STATüS en el    h I

                               swapf  STATUS,W                            ;P - * .
                                                                              PP @                                           ['
                               m o d Ouarda-STATUS
                               bcf    STATUS,RPO
                              rnovlw TMRO-Cqa
                                   movwf
                                   decfsz
                                            TMRO
                                            TimerOerOContadorA,F
                                                                          ; Garantizaque trabaja en el Banco O.


                                                                          ; Decremerita ei cwtadar.
                                                                                                                             'i',
                                                                                                                               l
                                                                                                                               Il'  ,


lempo                              goto     Fin_TierOrOhtempcion
1   en alto.
       
                           btfsc    SW
                                             a                            ; Testea el mtaior esiado de la salida
5 12      MICROC'OKTROLADORPIC 16F84. UE5ARRVLLO DE PROYEC i 3 i S                                               O~ 4 - M A




             g m          EstabaAlto
EstabaBajo
             bsf          Saiida                              ;Estaba bajo y lo paM a aito
             mf
              v           FactwAlto,W                         ; Repone el cunhdor n u m e n t e m el tiempo en
             mowf         T M - C m ~ A                       ; alto.
             goto         Fm-T~merD~Intemrpcion
Estabdlto                                                                                                                     I   ;A paitir de una
        bd                Salida                              ; Estaha alto y lo pasa a bajo.
        movf              FmAltn.W                            ; m n e e contador nuevamcnrc con el t i m ~ p o
                                                                         l
              ,200
             sbw
              ul                                              ; en bajo.
       movwf T m d - C ~ ~ r A                                ; E periodo sera de 100ps.2W21iOOOps=2Oims.
                                                                 1                  

Fin4TimdemInteqxion
              M-STATUS,W                                      ; Restaura registros W y STATUS.
             movwf
             swapf
             mf --w,w
             bcf
             bcf
             re&
                          STATUS
                          Gw&-W,F

                          iNTCON,RBF
                          LNTCON,TOIF
                                                                                                                                            ~1
                                                                                                                                            ENDC




       A la hora de claborar el progranla de control, hay que tener eri cuenta que las
especificaciones de estos servomotores dc pequeño cnctc no suclcn ser muy eclrkhs. De
heclio si cambia wi servo por otro de la misma marca y modelo no es raro que tenga que
reajustar el centrado e incluso los reconidos. Luegi* ttio debe extraiiarsc si necesitara
reajustar ligeramente las constantes de cstos programas, para su caso particular.

       En el siguiente programa ejemplo el ai-igulo del senJumotor í*s ~onbolxhpor el
valor de entrada fijado por los interruptores conectados al Puerto A con una resolución de
10". Asi sj la entrada vale O se posiciona en O". si vale [ en lo0: si vale 2 en 20"; ..., y si                                             ORG
vale 18 e111SO .      0
                                                                                                                                            Boto
                                                                                                                                            ORG
                                                                                                                                            soto
                                                                                                                                  lii
                                                                                                                                   nco
9
                                                                                                                                            bsf
iPrograma de ~untml l
                  h       posicionamiento de uri servomotor Futaba S3003. Conirola el k l o
;m d m t e mMíal cuabtodaJ M de 20 m de p i d o que se aplica a su línea de control.
                                W
                                '           s
                                                                                                                                            bcf
; El hgulo es gokmda por el tiempo en alto da h seiíal cuadrada desde O" @ara 0,3ms
;de tiempo en alto) hasta 180" @mu 
n tiempo en alto de 2,1 ms)
; l e& pro-
  3              la lineas del Pueao A conbrolanel ingulo de posicionamiento con una
;mlwiún de          1 aegh los val-
                    P                                 a siguiente tabla, tornando conm
                                   que se indican en l 

;tiempo patr6n 1M) ps {0,1 ms) mseguidos median& interrupciones por desbordamiento del
;Timer O.

;.Enaada                  F~           A i t o   Tiempo AIto            Tiempo Bajo                   An@O
; RA4:RAO                 (31-htda)              0,lxFactorAlio         O,lx(2OC-FactorAito)          (S
                                                                                                       -}
' ---m-                   - * - .- -
                           - e -. -              -+------*-             --------+----<-------         -+-----+


;0                            3                     0,3 my                  19.7 ms                     0"
; 1                           4                     0,4ms                   19,6ms                     1 P
; 2                           5                     O,5 m6                  19.5 ms                    70"
7

     ?
     ,
     .   ~ U - V4       ,3 w-vA                                         CA~~TL'LO S~.'IIVTJMOTOKESDF.R,UIO(:O'I'TROL
                                                                                31:                                               513




                        ; 17                    20                 2,O ms               18,O ms                        170"
                        ; 18                    2I                 2,l ms 
             1 . ms 

                                                                                         79                            180"
                        7

                        ;A pariir de una entmda superior a 18 d   m v ih
                                                                   F i
                                                                     r     4.
                        ;~~ADEDA~)S*********************************v************************t**********

                                   -   CONFLG -CP-OFF & -WI)T-OFF & - PWRTE-ON & -XT-OSC
                                   LIST    P-16F84A
                                   INCLUDE 'P16F84A.INO


                                   CBLOCK OxOC
                                   FactorAlto                              ; FactOr por el que se va a multiplicarel tiempo
                                   ENDC                                    ; patriin de 100 pc para obtener el tiempo eii alto.

                        TMRO-Cnrga           EQU       490'                ; Valor obtenido eqerimentalmcntc w la ventana
                                                                                                              n
                                                                           ; Smwatcli para un ticinp de 100 ps.
                                                                                                


                        :L próxima conshnte hay que variarla se@ el tipo de Servomotor utilizado
                          a
que las
                        AltoCeroGrados       EQU       d'3W                ;Tiempo en ;lita para O". Para el Futriba S3003.300

                                                                                       
                                      p.
:tas. De                TiernpoPatron        EQU       6 1#'
iga quc
cesitara                FactwMinmio          EQU       AlroCeroüddTizmpoPatron

                        #DEFINE Salida                                     ;Línea dcl Puerto B donde se conecta el servomotm.
-ipor el
ición de
 ..., y si                         ORG       O
                                   goto      inicio
                                   ORG       .4
                                   Pro       Timero-Intempcim
                        Inicio
                                   bsf       STArnS,RPO
                                   bcf       Salida                        ; Esta línea se coafigura comu snlida.
                                                                                           

                                   movlw     b'OOO1lllli                   ;haoA configurado como entrada. 

                                                                              it
                                   mwwf      PORTA                                     .    .

                                   movh      b'00001D0(1'                  :TMRO sin prescaler.
                                   movwf     OPRON-REG
                                   bcf       STATUS,ñPO
                                   mwlw      M 0 Carga
                                   movwf MO-                               ; Carga el Timer O.   

                                   movhv btl0100000'
                                   movwf W C O N                           ; Autoriza inhmpcióa TOI y la general (GIE).
                        Rincipai
                                             PORTA,W                       ; Lee el puerto de entrnda
                                   andhv     b'000Illll'                   ; Se quede con lm bits d i d o s .
                                   d     w   Factorhimo                    ;Para conseguir el timp mínimo correspiindientt:a O".
                                   mowvf     FíictorAlto                   ;Valor eniregado a la subtutina de
513   hIICROCONTR(3LADOR PICI bFg4. DESARROLLC DE PROYECTCX                                        O RA-WA


                                          /
          pm        Pruicipai                      ;atención a la intcmrpcibn.



; Mantim la aabda en alto m tiempo igual a 1 0 0 ~ x (FactorAlto) y en bajo un tiempo igual
                                                   s
;a 1 0 0 ~ x (2WFactorAlto).El periodo de la s&l adrada lo mantiene en 20 m.
           s




                                                   :Contadorauxiliar.


TirnerOerOIntemipcion
         movwf m - W                               ;Guarda los valores de tenfanW y STATUS en el
         swapf     STATtlS,W                       ; p m p m a principal
         movwf Gwd-STATUS
         bcf    . STATIIS&PO                       ; G;uantiZa que W j a en el Bancg O. 

         rnovlw TMRO-Carga
          movwf     m 0
          decfsz    ThnerO-ContadorAJ?             ; Derrerncntmi el contador.
          goto      Fin_TimcrO_Intmpcion
          btfsc     Salida                         ; Testm el anterior estado de la salid&
          gotD      E s w t o
EsWajo
          bsf       Salida                 ; Estaba bajo y lo pasa a alto.
          rnovf     FactorAlto,W           ; Repone el ccmtadoinuevamente con el riaapo en
          rnovwf    TimeiO-ContdorA        ; dto.
          goto      F~TimerOerOintemrpcion
EmbaAlto
          bLf       Salida                         ;Estabaaltoy lopasaabajo.
          movf      FactorAlto,W                   ; Repone el con-      nuevammte c m el tiempo
           sublw     .200                          ; en bajo.
           momf TirnerQ-ContadorA                  ; El periodo será de 100fis-2W20000pa=2hs.
F u i T UnaI)-íntampcion
           swapf     Gd-STATUS,W                   ;Restaura registros W y STATUS.
           movwf STATUS
          swapf     Gia-wJ
          swapf     Guarda W,W
          bd        INTCD~,RBIF
          bcf       N K O N ,TOIF
          mfie
7
-
A-MA




                                                                                   C~QPITULO 32 




                            SENSORES PARA 
MICROROBÓTICA


           32.1 SENSORES PARA MICROROB~TICA
                  El presente capitulo es iiiia basc de datos o guía de referencia sobre algunos
           seiisorcs y de cómo conectarlos al inicrocontrolador para realizar aplicacicines
           especialmente dirigidas a 10s niicrorobots yero adaptable a muchos proyectos industriales.
           Los sensores que se van a estudiar son:
                   LDR, detector piisivo de luz. Sc utiliza para detectar ausencia o presencia de luz.
                   CNY70, serisor cjptico reflexivo por infrarrojo con salida a transistor. Diferencia
                   colores blailco y negro.
                   OPB7031415,   sensor óptico reflexivo por infrarrojo.
                   H21A1, sznsor óptico de barrera. lndicado para medir velocidad de mi~tores.
                   GP2Dxx, sensores uifrarrojos para medición de distancia.
                   1S471F, censor detector de proximidad de obsthculos por infratrojos.
                   B~tmper, i a l de carrera mechico para detección de obstáculos
                            f
                   SRFM, sensnr de obstaculus y medidor de distancias por ultrasonido.

                 Pero antes es iiecesario conocer ima forma de acoridicionar sedalcs no dipitales
           mediante inversores Trigger Schmitt.

           32.2 INVERSOR TRIGGER SCHMlTT 40106
                   Algunos sensores no proporcionan sefiales digitales puras y es necesario conformar
           dicha seiial antes de aplicarla al microcontrolador,como en cl ejemplo que sc muestrrt en
           la figura 32- 1.
KA.kl.




                                                                                                           vi
                                                                                                            *




          Figiir.u 32- 1 .L)ñ~r/c:s ~tirrcrcitr .~ulir tic un ciwu ifo Trigger Srhrnit f
                                 ric          y      lrt

      I Jiia Ioi~i::~ rcllla 1.l~: cutifr,ri-narutio seha1 e 1 digital es mediante puertas Trigger
                     3c.i                                   1
Schmitt, ccitno Iris qiic ticnc cl circuito iiitegrado 401 06. Este dispositivo contiene 6                 El
in>crsorcs J.ri:;;cr Sr!iiiiiii cncrips~iladi>s scgúii se inilict?en la figiira 3 2-2.               funcional:
                                                                                                     una mane
                                                                                                     añadir el (




        Estos disposili*os ticneii Lina c;iracteristica de transferencia como la que se muestra
en la 1Tgii1~ 32-3. Fn csta cuma se aprccia que si la tensibn de entrada aumenta desde O V                       Tal
hasta un nivel ,ilio la traiicicicín se prtiducc siguiendo b curva A y conmuta para el valor
V I' . dcnoininnrlo amhral superior. Por cI contrano, si la entrada esti a un nivel alto y                  E st
disininuyc Iiiistü 01'., tranciciiiii sc prodiice sigiirendo 13 curva B cuando se alcanza el
                        II                                                                           con señait
dcnoniiiiadci taoibr:il ieihrioi V ,-. I,o.; valores de         y de V , - para el caso del 40106    32- 1 se m
                                                                                                              i
depeiidcri de la tc.r~~~iiiiiiilinieritnciiin y piicdcn tomar Icis valores de la t-bla 32-1,
                          dc                                                                         digital. Ci
                                                                                                     vuelve a ti
        Eli !; ciirva d,: i:;!ti~f~rc:i~ia dcl iiivcrsor Schrnitt cs iniportante observar que la    consideni
tmiisiciori dc salid:: dc iito - 3 Brijri cs distinta que la dc Unjo -+ Alto. A estc fenbmeno se    40 106, la ;
Ic coni3i'c coino Xliaii'esis.
-
    RA-MA
    1




                          FIguru 32-3 Curva de truisv/;~i.c~~?r'ina ini)ojntir. Triggcr ,S~,hrnift
                                                              r.lo r 117
Trigger
ntiene 6            El inversor Tnggcr Srhmitt, y todos. Icis disposiii~os cor, ~ q i r : iipo ric
             funciominicnto, utiliza el sirnholo de la figiiia 32-3 pai:i iridici~iq i i c pucdcii rcspciririci dc
             una manera fiable ante striales q i i e cambi:iii con Icrititud. Ilsta s~rt-il~oI~gi;i x i cii
                                                                                                     sc h
             añadir el dibujo de la pifica de histcresis en la ciitr:id;i corrvsprindici~l~.




:muestra
esde O V             Tabla 32- 1 I "rrinresclk t y 1 T ~ I A W o1 40 1/16 (tr)~Ii>.~ il:,r{:i.
                                               T                                 k )r                   i   ~:o/tio.s)
i el valor
)el alto y           Estos circuitos son de ~ a utilid;id cuando sc clrscn c(:nii-{il:ii. 1111 r*it-L-iiito
                                                     i ~                                                             digiVal
lcanza el    con señales que no lo so11o señales digitalcs coil una srii:il dc i-iii di: ,iriniar;ln. En 1;i íiglir;i
el 40106     32- 1 se muestra como actúa un circuito no invcrcoi- lfenlc a iitia s;:i-i;tl rliic ri;i cs ~ iii-aiiicritc
                                                                                                                   i

.l.          digital. Cuando la señal V I alcanza 21 valor V., ' I;i sal¡da V,, h n c c i i l : ~:I ~ i iiiil:cI al11 y rir!
                                                                                                          i          i

             vuelve a tomar un nivel bajo hasta que 1;i ciiirada n o Ilcgilc n  ', l:,~ la tigul-i~ 1 sc 11;i 32-
a que la     considerado un no inversor para una mis, ficil cxplicricicin. I'nia iin iiivcr;c>i. ~ o t i i ocl
5meno se     40 106, la señal de salida hubiera cstado invertida reYIiEicici dc 1;i t i ~ , i i i n
5 IX   U I C R o C O U T R O W R PIC I6F84. DPSARROLLQ DE QROYECrOS                              8MM
                                                                                                   - A
                                                                                                                      -
                                                                                                                      CR A M A




       En conclusión, un dispositivo Trigger Schmitt produce transiciones de calida
limpias y rápidas, aunque la entrada no 10 sea. 
 rnimonkolador P C I6F84A posee Ia
                                                Et                  T
línea RA4 con entrada Trigger Scmitt (figura 5-7) que se puede utilizar para este fin sin
~eoecidad intercalar un 40 106.
          de
                                                                                                                 I


                                                                                                                         R7
32.3 
LDR                                                                                                                337


       Las resistencias dependientes de la luz, LDR aight Dependertr Rcsistor) o
fotmistencias, son dispositivos que varían su rmisíencia en funci6n de la luz que incide
                                                              

sobre su supwficie. Cuanto mayor ssea la intensidad luminosa que incide sobre ella menor
será la resistencia entre extremos de la misma. Para su fabricacibn se utilizan materiales
fotosensibIes.Su a w n fisicn y sUnbologia mLr.~
                   
              
              común se muestra cn la figum 32-4.




                                              .       8




          ..       .-
                                                                               L
          ,
          ,
               -
               . :S-.
                    .:                        .. .
                                               -
                                                                   LDR             LDR
          i +
          ; .-
             :
             .      .. -            ..
                    -                     -       ,




                           F o m fisica                    Shbofo eléctrico más común de 3 LDR
                                                                                         n                   I
                                                                                                                     * .CL YUL Ie mcurwc
                                                                32-4 LDR
                                                          Figz~ro                                                    ; del miiduilii LCD vc
                                                                                                                     :b sa 99
                                                                                                                       at
     Su valor nominal se especifica sin que incida la luz externa. Así, por ejemplo, una
LDR de valor nominal 50 m, como la de la figura, tendri dicho valor si se tapa de                                    :ZONA D'EDATOS
manera que no incida la luz sobre su superficie, si se la acerca a una bombilla de 60 W
puede bajar hasta unos 30 a.

       Las principales aplicaciones de estos componentes son cnntroles de iluminación,
control de circuitos con selb,en a l m q , etc.

       La forma más sencd1a de conectar estos sensores de luz a un rnicrocontmladores
mlizando un divisor de tensión con la LDR y un potmi0metm, que permite ?jurzar e          l
                                                                                                         I                       DRG      O
nivel de luz a detectar, A la salida'del divisor de tensión se le coloca una puerta Trigger                                      i

                                                                                                                     Inicia
Schmitt para conformar la señal, tambikn puede hacerse m una entrada de a t e tip como
                                                                                                                                 1
la RA4 del PICláF84A tal mucstaa la figura 32-5.
                                                                                                         I
      El p r o p m Senso-DR-Ol.acm                          menta el número de veces que es c o d o un
haz de luz que incide sobre la LDR.
t M-MA                                            CAPITI~U) 32:      SENSORES PAR.4 MI~ROROBOTICA 519


ies de salida
84A posee la
-a este fin sin




t Resistor) o
uz que incide
lreella menor
an materiales
ura 32-4.

                                                                    - Incide luz sobre LUR --> Entrada RA4= ' O
                                                                    - Corla ha2 de luz cobre LDR --> Entrada RA4="1'
                                                                                                     (Flanm Aspendenle)
                                                                    -Vuetue a Incldir luz sobro LDR -> Enirada RA4= "0"
                                                                                                     (Flanai Descendente)




                      Figuru 32-5 Cvn~xion una LDR a la mlruda Trigger Srhniirr RA4 de un P1CI 6F84A
                                         de


LDR               9

                  ; Una LDR ae i  e la entrada Trigger Schrnia RA.t/TOCKI aplicando impulsos d Timw O Eada
                                        a
                  ;vez que se os cure^ al intmpnetse ua-i objeto   la W de htz y la LDR En la pantalla
                  ;del d u l o LCD se visualiza e1 númao de veces que se hkmmpeel haz & luz en dos dlgiios
                  ;( a *o).
                     h 99
 ejemplo, una
si se tapa de
billa de 60 W


:iluminación,


controlador cs
mite ajustar el
puerta Tngger               ORG      O
                  inicio
:ste tipo con10             4 1      LCD-inicializa
                            bsf      STATUS,RPO                    ; AoocsodSanm l.
                            rnovlw   b'00101W                      ; TMRO mino contador por flan00 scendenre de
es cortado un               mowf     OPTION-REG                    ;R A W K 1 . . Prescaier asi&  d Watchdog.
                            bf
                            E        STATLiSJWO                    ; Acceso al Banco O .
                            ctf      TMaO                          ; lnicializa contador.

                  ; La seccih "PrincipP es de mantmhiento. So10 se dedica a visualizar el Timer 0, cuya
;cuenh sc increinenta coii bs flancos ascendente prucedente de   Iri   cntmda Triggcr Schriiitt             ;C      d la LDR
    : RA4iTOCKI donde se ba conectado la LDR.

    Principal.
                 cal1      LCD-Lineal                  ; Se pone al principio de la lhm 1.                      ;ZONA DE DA
                 niovf     TMR0.W                      ; k e l T u n e r O.
                 cal!      Bm-a-BCD                    ; Se debe visualiznr en BCD.
                 cal1      1,CD-Byte                   : Visudiza, apagando las dxenss en c a ~ o q~ie
                                                                                                de   sean 0.
                 goto      hiricipal




            Este programa solo pertnite contrir dc forma corrccta hasta 99. Se deja al lector su
    mejora para ~iridcr aumentar la cuenta y utilizarlo. por ejemplo, en la coinputüción de los
    ob,jcios que están en una cinta trarisportadora, pcrscitias quc pasan por uria puerta. etc. Estc
    niisrno programa se l~iiede utilizar para otros censores que sc dcscrihcn mas adelante, por
    qjcmplo para cotitar el iiiutierci dc objctos que pasan por delante dc iin sensor dc                       Inicio
    iiltrasonidos.                                                                                                        bf
                                                                                                                           s
                                                                                                                          bif
                                                                                                                          bcf
           El circuilu de la figiiia 32-6 jiiilto con cl prograina Sorisor .ILDR_-fll.asmconstituye                       kf
    otra aplicacihri típica. Se trata de un interruptor crepiiscular, que cs un circuito para                             bcf
    cricender una Iimpara cuando llega la noche y apagarla con los prirncros raycis del sol.                   PrUicipd
                                                                                                                          btfss
                                                                                                                      Boto
                                                                                                               EacierideLw
                                                                                                                      caii
                                                                                                                      btfss
                                                                                                                          soto
                                                                                                REO
                                                                                                                          bsf
                                                                             Y RE1.E   e                       4 -
                                                                                                                %
                                                                                                                          caU
                                                                                                                          btk
                                                                                                                          g*
                                                                                                                          bcf
                                                                                                               Fin        cal1
                                                                                                                          goto

                                                                                                                          INcLLrn
                                                                                                                          END


    +***I**bC*ir4*$******,***i******L4*     ScnSoI LDR-
                                                 -                ~*****Lm*****~**********C******I*~*Y*


                                                                                                                      Este tipo I
1   ; Programa de un interruptor crepuscuIat:una b p a r a se inatendrh encendida mientras wa                  LED, y un recep
    ; de noche. Uria LDR detectarh la luz arnbicnte (sin que le Heme la l z de la Ihpm quc
                                                                         u
    ;pretende conu.olar) y estad conectada a la 8ntrada Ttigger Scbrnirt RA4.
                                                                                                               define el tipo ya :
; Cuando la LDR detecte osmidad el sistema activará ima kmpara:
                   ; - LDR ihuninada 3 Enb& P C = "0" -A Lhpmapagada.
                                                I
                   ; - L D R a i o ~ ~ ~ i d a d EneadaPIC="l" ALbmpani-ida.
                                                 ->




                   #DEFRIE LmpmPORTB,I                             ; Lhm donde se conecta la calida.
i al lector su     #DEFINE LDR PORTA,4                             ;E -
                                                                      n     Trigger Schmi~ PIC don&
                                                                                           del           se
conecta
                                                                   ; b LDR.
lacion de los      :ZQNADEC~D~~S**********+*I***********I****~****I****~******~******W********
:rtri. etc. Este
idelante, por 
                ORG
11 serisor de 
    hiciti
                               bsf                                 ; Acceso al Bataco 1.
                               bsf
                               bcf
ni constittiye                 bcf                                 ;A
                                                                    -          al Bmco O. 

:ircuito para 
                bcf                                 ;En principio I h p a r a upapda.
                                                                       

s del sil.         Principal
                               btfs9   LDR                         ; J?ntrada=l?, &DR en &?. 

                               gow     ApaWpara                    ;No,LDR i ! i m h d a por el sol.Apga la Idmpm.
                                                                          

                   Encid-
                               cal1    Retad- 20s                  ;Espffaesietimppmnbu~Ioaat&$
                               btfss   W R          
              : &nmda=l?, ¿LDR sigue en oscuridad?
                                       Fin                         ;No,sale fuera.
                               baf     Lampara                     ;SI, mciendc la lamparrt
                               goto    Fn

                                        i
                   APasaLampara
                           cal1        Retado-20s                  ; Espera este tiempo p m conñrmar la luz de1 mi.
                           Mfsc        LDR                         ; ¿EnW=O?, iLDR sigtic ihiiaimda por ~ U del sol?
                                                                                                                Z
                                       Fm                          ;No.sale
hem.
                               bcf     LamP                        ; si, a w Igmpara.
                                                                          p
                   Fin         cal1    ~    0   ~   2   0   s      ; Permaneceenelesardo~n~~lmtriosestetiemp~.
                               soto    Principal

                               INCLWDE 4U5TARDOS.MC>
                               END


                   32.4 FOTOSENSORES ACTIVOS
                          Este tipo de sensores consta de un emisor de luz, que nonnahente es un diodo
                   LED, y un receptor. que suele ser un fotodiodo o un fototransistor,la situacirjn de ambos
                   define el tipo ya sea reflexión o por barrera como se estudiará a continuacicín.
522               PICl h%M.
      MICROCO~OLAWR       DESARROLLO DE PROYECTOS                                     0 RA-VA




      Sti aplicacjbn. entre om, suele ser la detecciiin de la prcscncja de objetos, medida
de distancias inuy cortas, lectura de cisdigos de barras, etc. En microrob6tica suelc
        :para dcitectar una marca o seguir una línea (normalmente negra sobre fondo

                                                                                                                  vcc:
              ..
       Los problemas mis comunes que suelen darse con este tipo de sensorcs son que la
reflexión depende las características del material y del color;en principio los colores mis
                                                                                                           Al
claros reflejan el haz de luz infranoja m i s que l s oscuros. La luz ambiente es una
                                                      o                                                    2;:
importante fuente de mido a tener en cuenta.


          Sensor optico CNY7Q

                    es un sensor optico reflexivo con salida a transistor (figura 32-7)
                  Vishqk. TeIej~nken Semlcondttctors (www.vishay.cum). Tiene una
constmcciOn compacta donde el emisor de luz y el receptor se colocan en la misma
dirección para detectar la presencia de un objeto por medio del empleo de la rcff e x i h del
haz de luz idmmoja IR (Infraredl sobre el objeto. La tongjtud de onda de habajo es 950          #


m. El emisor es un diodo LED infrarr~~ioel detector consiste en zin fototmnsistor. La
                                             y
distancia del objeto reflectante dcbe estar entre los 5 y 10 mm de distancia. La corriente
directa del diodo Ir= 50 m4 y la intensidad del colector es de IC= 50 inA.




                                                                                                           El circuitr
                                                                                                    Utiliza un arnplrfi
                                                                                                    ha canectado cr
                                                                                                    potcnciólrnctro qui



                                                 Vista desde arriba

            Aspeicto y pati1Iaje                           Diagrama interno

              . ipr-a32- 7 Sensor cipiico relferivocon salida n fransisfni.
               Fi                                       
                 CW70

        ara conectar estos dispositivos hay que polariz;rrlos, ésa es la fiinci~nde I q n
resistencias del circuito de la fipura 32-8, donde se mt!esiran las dos posibles formas de
conexión. según se quiera la salida alto para color blanca o negra. 


       El 
 invmor Trigger Schmitt 40106 se intcrcata pam corifomras las tensiones a
valora lógicos. Hay que tener en cuenta que los valores de msiciiin de la puerta son VTt
= 2.9 V y V = 1,9 V para una tensión de alimenlacion de 5V y no podemos variarlos.
             ;
                                                                                                                     f
P RA-MA                                                      CAPITULO32: SENSDRFS P,WA MICROROB~JTICA 523


is, m e d i h
                    Funcionamiento del Circuito (A):
 rica suele
bre fonclo           - Detecta Negro -> Transistor en Cone     -.
                     - Detecta Blanco --r Transistor Salurado - - r E n h d a al inversor "U --> Entrada al VC "1"
                                                                   Entrada a) inversor "1" -r Entrada al VG'O"


                                VCC=SV                                                      vcc=5v
son que la
dores más
ite es una




       32-7)
riene una
  la misma
 flesion del
ia.10 cs 950
insistor. La
.a corriente
                                         - Detacta Negro    --r Trans151or Corte --> Entrada al inversor "O" --> Entrada al pC "1"
                                                                         en




                                             Figflru 3.2-8 Cirtrritu tr;tlzcosde conexiupr del CM70

                       El circuito de la figiira 32-9 permite ajustar la tensión de disparo del CNY70.
                Utiliza un amplificador oper~cional, trabaja como comparador de tensiiin, al que se le
                                                     que
                ha conectado en la rtitnda no inversora cl sensor y a la entrada inversora iin
                potencibmetro que traja como un divisor de tensión.
                                                                            VCC'W




1'70

ción de las
S formas de


tensiones a
erta son VT
ariarloS.                              Fi<yura32-9 Conexibn del CNY70 u truvés de un c w i ~ ~ a r ~ r l o r
524   MICROCOWROLAWR P1C lbFR4. DPSARROLLO 'I PROY E
 m S
                                           IE                                            '13 un-M




       Su funcionamiento es el siguiente: si la tensión en la entrada no inversora es mayor
que la tensiOn presente en la entrada inversom, Irt salida del amplicador operacional toma
el valor '"1" y si, por el contrario, la tensibn en la no inversom es menor qiie la existente cn
la entrada invasora, la salida toma un nivcl "O'. Es recomendable que la resistencia
variable del circuito sea un potenciómetro rnultiwelta, ya que dc csta forma es más
sencillo el ajuste.




      h senaores OPB703, OPB704 y QPB705 de E empresa Optek Technolom
       c                                                 a
(www.op~ekinc,coni) son tarnbidn del t i p reflexivo y utilizan como emisor un diodo
LED emisor de infiarrojos y como receptor un fototransistor (fipia 32-10). En este tarso
est5n montados sobre unas lentes convegentes alqiadx en la carcasa n e p y la forma del
sensmpermite que el haz refleje en una superficie más concreta que el (247'70.

       De los tres modelos aqui tratados, el OPR703 no dispone de lente?el OPB704 tiene
una lente azul de polisdfuro y 
 OPB705 pemiite un desp~azamiento la lente para
                                 e!                                     de
corregir el Q ~ P En estos dispositivos la lente de plisulfuro elimina g n n parte de las
                    ~ .
interfmncias producidas por la luz ambiente.

                                                              Superficie Reflexiva

                                                               /                                           Para cc
                                                                                                    y los OP703
                                                                                                    circuito con
                                                                                                    siiperficic blz
                                                                                                    hará que en 

                                                                                                    enfrenta a un;
                                                                                                     LCD aparcct



       n;lpl-lci   y patillaje                          Patil t as y cabezal

                      Figura 32-1O Sensores Opiicos rgflaivos O P703/4/5

       La distancia del objeto reffectante debe estar e n k los 4 mm y 10 mm de distancia,
L comente directa mhirna del diodo lF = 40 mA y la intensidad del colector máxima es
 a
de Tc = 30 d.

      Los circuitos de aplicación sedn 10s que se han mostrado en las figuras 32-8 y 32-9
pero habrá que modificar las resistencias de p l a r h c i b n tcniendo en cuenta la corriente
máxima que soportan estos dispositivos.
c RA-MA                                           c~rinrto
                                                                       32:         SFNSOWS PAKA M K R O R O B ~ T I C A 525
                                                                                           -




2s   mayor



I   es mas




chnologv
un diodo
este caso
Tamia del
                                                                 Funcionamienlo.
                                                           GZ     . Blanco ->Transistor   Sauraao   .--Enbada inversor " 0 --> RA3; '1'
                                             1
                                             -         -
                                                           22P    - Negro --Transistor en C m e     --, Enmda invsrsor "1" --> M = - D .
704 tiene
ente para
rte de las

              32.4.3 Ejemplo de aplicacion
                     Para corriprobar el funcionamiento de los dispusjtivos que tiernos analizado CNY70
              y los OP703104105 se puede cargar el programa Sensor-CNY70-01 .asm y montar el
              circuito con el sensnr de la figura 32-1 l . Cuando cl sensor se enciimtra frente a una
              superficie blanca el h a z infrarrojo refle-ja y en la entrada RA3 aparece un nivel alto que
              hará que en el LCD visualice el rnensajc "Color BLANCO". Si el haz inhrrojo sc
              enfrenta a una superficie de color negro o tio encuentra superficie, el haz no refleja y en el
               LCD aparece el mensaje "Color NEGRO".


              ;E i ba L.CD se visualiza el color "Blanco" o "Negro" que e& detectando el sensor CNY70,
                  a l
                   ml
              ; se& b configuración del esquema corrrspiindimie. Si:
                -
              ; Color B h c o -->transistor sahuado 3 abada al inversor"O" --bRA3 = "1 ".
                -
              ; Color Negro -> transistor en corte 2 enhda al inversor "1 " -aKA3 = "0".

 distancia,
náxima es


7-8 y 32-9
3 corriente


                                                             ; Líneas donde se conecra d sensor.
526    MICRWONTROLADOR PIC 1 hF&l. DESARROLLO DF PROYECTOS                                                                                   O M-M.4



; Z Q ~ ~ A D E C ~ D *~ *~ ~ * vS w * * * * * * * * * * * ~ * * ~ ~ * * * v ~ * * + b * * * ~ * * ~ * * ~ ~ * * u ~ ~ * * * ~ * * m e * * * ~ * * * m m + ~
                    * ~ * O +


              ORG           O

             4 1            LCD-hiciaiiza
             movlw          MensajeCiilor
             call           LCDMemaje
             bsf            STATVS,rn
                                                                       ;Linea del senwr se configura corno entrada.
              hf            STATCiS.RPO

             call           LCD-Lind
             movlw          MensajeNegro                              ; En principio considera que es negro.
             btk            Sensor                                    ; Lae el sensor.
             rnovlw         MmajeBlanco                               ; No,es blanco.
             cal1           LCDMensajc                                ; Visualira el msultado.
              goto          Principal




              DT " BLANCO". 0x00

             DT " Negra ",0x00

             WCLmE <RETARDOS.IND
             WCLUDE Sc&4Brr.ENcii.
             INCLUDE a - m s . I N 0



 32.4.4 Sensor óptico de barrera H21AI
       El representante más populw de este tipo de sensores es el H2 1 A 1 (figura 32- 12)                                                                         cl haz infrarrt
fabricado entre otros por Isocom Componetirs (www.isocorn.com)               y Faiwhild
Semiconductors (www.fairchildsemin~j.

       Estos sensores también tienen como emisor un diodo de infrmojos y Como                                                                                      que pasan po
receptor un fototransistor. En este caso el etnisor y el rcceptor estjti enhitados a una                                                                           luz eii la unid
distancia de 3 mrn y entre ellos existe un espacio para que un objeto pueda introducirse y
romper la barrera iri frarroja.                                                                                                                                    32.5 SE
       El circiiito de aplicacibn para este tipo dispositivos es similar al de la figura 32-8.                                                                 1          Los 1F
Los valores de )as resistencias de polarización deben limitar la conientc por el diodo                                                                             alta sensibilii
emisor IF a 60 mA y por el colector del transistor a una comente lc no siiperior a 20 mA.                                                                          C:orporntion
El fabricante facilita los valores de pmeba indicados eri la tabla 32-2.                                                                                           muestran cn 1
v

     BF M A       ORA-MA
                                           -.    --            CAP~TL;LO 32. SENSORES PARn M I C R O R O ~ J ~ C A
                                                                                                               727




                       Aspecto y patillaje                 Posición del emisor y del rcccptar en el dispositivo

                                         Fi,qura 31-12 Sensor Upfico de hmera H2 IAJ




                          Para comprobar el funcionamiento de estos sc         :picden utilizar muchos de
                  los programas propuestos en temas anteriores sustituyendo pr         por el cimito con
                  el sensor hptico. Por e-icmpl las pro_mrnas rn~in-i.asrn,
                                                                          l   .   '   ,
                                                                                       1n-nt-02.asm     o
                  Semor-LDR-Ol .asm, que prcsentarin en un LCD e1 n h e r o dc veces que se interrumpe
                  el ha;? infrarrojo del senwr.

                           Una aplicación típica dc estos censores es medir la velocidad de un motor. Para ello
                  se acopla a eje del motor un cncodcr, quc es una Eimitia circular con una serie de ranuras
                             1
3   y comu        que pasan por el centro del m o r y cortan el haz de luz, el número de artes del haz de
dos a una         luz en la unidad de tiempo sed proporcionar a !a velucidad dcl motor.
3ducirse y
                  32.5 SENSORES INFRARROJOS GP2DXX
                         Los IR Sharp GP2DXX son una familia de sensotec de infrarrojos compactos de
                  alta sensibilidad para IR deteccibn y medida de distancia. En la página Web dc Sharp
                  Corporarion &np://sham-wor1d.m) encontramos algunos dc los modelos que se
                  muestran en la tabla 32-3.
524   MICROCOWRCIL4DOR PIC 16F84.DESARROLLO DE PROY PCTOS                    c
                                                                                 .   R4   .w


                                                                                               distancia o la
                                                                                               mudo de func
                                                                                               transmite a trí
                                                                                               contrario, no
                                                                                               lectura que se
                                                                                               obstáculo el h
                                                                                               punto de refle?

                         ndiendo de l distancia.
                                     a




                                                                                                      Seguida




                            Tabla 32-3 Sen,cor4es l serie GP.2D.u
                                                de a




                             El objeto esa cerca, el
                             triangulo as pequeAo y el
                             Bngulo B gran&




                                El objeto esa lejos, el
                                bi@qulo alargado y el
                                          es
                                hnwlo es pequefío




                      Figirra 32- 13 Concepto de medida por trimgiiducion                             El senso
                                                                                               micmontroIad
1   32.5.1 Principio de funcionamiento                                                         la entrada de ci
                                                                                               dto no ha dcite
          Estos dispositivos emplean el método de triangulación, utilizando un pequeño         alcance al que z
    Sensor Detector de Posición lineal (m, Sensitive Detector) para determina la
                                           Position
BRR-m                                       CAP~WLO SENSORES PARA MICROROB~TICA3
                                                  32:                         S


distancia o la presencia de los objetos deniro de su campa de visión. Rhsicamente su
modo de funcionamiento consiste en la emisión de un pulso de luz infrarroja, quc sc
transmite a través de su campo de v s 6 4que se refleja contra un abjcto o que, p r el
                                         ii1
contrario, no 2 hace. Si no ennientra ninpiin obstáculo el haz de luz no refleja y en la
                0
lectura que se hace indica que no hay ningún obstáculo. En el caso de encontrar un
o'bstaculo el haz de luz infrarroja se refleja creando un trihngulo formado por el emisor, el
punto de refl exiiin (obstáculo) y el detector.

       La información de Ia distancia se extrae midiendo el ángulo recibido. Si el angufo
es grande, entonces el objeto estA cerca, el iriángulo es pequeiío y ancho. Si el ángulo es
pequeño, quiere decir que el objeto está lejos, el triángulo es largo y delgado. En ta f j p
32- 13 podemos ver una representación de estos conceptos.

       Seguidamente describiremos el m 4 0 de manejo de algunos de estos dispositivos.



       El Sharp GP2DOS es un sensor capaz de medir distancias por i n h j o s e indica
mediante una salida lbgica(O ó 1) si hay algún objeto dentro de un alcance preahblecido
(figura 32-14), El rango se ajusta entre 10 y 80 cm con la ayuda de una resistencia
variable que incluye el propio dispositivo, que es ficil de regular.

                                          Patendornmo ---
                                                      pai a
                                          ajuste de distancia




       El sensor uiia sblo una línea de entrada y otra de salida para comunicarse con el
                  tt7
niimontroladot. Su utilización es tan sencilla como mandar un impulso a nivel bajo en
la entrada de control (Vi), esperar en* 28 y 56 rns y leer el estado de V,, si esta a nivel
alto no ha detectado obskiculo, si está a nivel bajo ha detectado un obstáculo dentro del
alcance al que se ha ajustado.
530   MICROCONTROLAWR PlC16FM. DESARROLM DE PñOY E-                                6 RA-MA
                                                                                      





32 
 " qP2P15
   '
       El Sharp GP2D15 es un sensor medidor de distancias por infmojos que indica
mediante una salida digjtal si hay un objeto a menos de 24+3 cm (figura 32-15). La
detcccibn se hace de forma continua, esto significa que no es necesario ningtin tipo de
circuito de control ni temporización externo. Basta con aplicar tensihn para que la medida
este disponibte cada 50 ms. El sensor utiliza una Unica línea de: salida para comunicarse
con el micmntmlador.
     De características similares a este dispositivo, Sharp ha sacado recientemente al
mercado el GP2YOD21 YK.



                                                                       vcc

                                                                       GND

                                                                       vo



                                     ktas de tcn GP2DJ l                                           El SI
                                                                                             infram,ja n
                                                                                             negro esta c


       El S h r p G P 2 v l ~ un sensor que mae distancias por inrmrrojos. El dispositivo
                            es
indica mediante una salida annlhgica la distancia medida al objeto sobrc el que refleja el
haz de luz. Za tensibn de salida varía de foma no lineal cuando se detecta un objeto en
una distancia entre 10 y 80 cm, ital y como se aprecia en la curva de la figura 32-16. LA
salida eski disponible de foma continua y ni valor es actualizado cada 32 ms.
Normalmente se conecta esta salida a la entmda de un convertidor analhgico digital, el
                                                                 por
cual convierte la distancia en un número binario que es utifi~ado el micmontrolador.
ia salida tambikn puede ser usada directamente m un circuito analbgico. El sensor utiliza
sólo una h e a dc salida para comunicarse con el mimontroladot. Su margen de medida                Este
esde 10a80cm.                                                                                un p m p l
                                                                                             paso banda.
     D caracterÍsticas similares a
      e                              este dispositivo, Sharp ha sacado recientemente al
mercado el GP2YOA2 1YK.
Figura 32-16 Función de fiansferencirs del GP2D12

                32.6 RECEPTOR PARA CONTROL REMOTO SFHSI .10

                32.6.1 Descripción
                       El SFHS110 es un receptor de TR (infi-are4 utilizado para detectar un haz de luz
                irdiarroja moduIada en sistemas de telemando {figura 32-17). Su encapsulado en eoior
                negro estA disehado con un filtro de corte para la luz del día.


                                                                                       VCC
                                                                                     J -- .-
                                                                                     - -GND
                                                                                     *     1
                                                                                           -




holadiir.                              Figura 32- 17 Vida y patillaje del SFHSI 1 O
p o r utiliza
&&medida              Este circuito integrado incluye un fotodiodo sensible al haz infrarrojo de 940 nm,
                un preamplificador, un control de ganancia automático, un demodulador y varios filtros
                paso banda, como puede apreciarse en el diagrama de bloques de la figura 32-18.

                      Se comercializan distintos modelos de este sensor dependiendo de la hcuencia de
                'la portadora a utilizar, como puede comprobarse en la tabla 32-4.
532   MICROCOM'ROLADOR PIC' l nF84. DESARROLLO DE PROYECTOS                                                         t. HA-MA




                                                                                                                    32.6.2 
Cit
                                                                                                                           La fg
                                                                                                                               i
                                                                                                                    detecta una h


                                   Auiomdtico
                                  de Ganaricia
                                                 -     paso banda 4Demdulador



                                                                                                                           El c i r c ~
                                                                                                                    un ciclo de tra
                                                                                                                    otra initad a n
                  Figura 32-18 Diagruuiri de3bloques del circuito SFH5 I I O                                        circuito integ
                                                                                                                    ajusta la frecc
                                                                                                                    realizar cl ajus
                                                                                                                i




         TubZu 32-4 Frt~mencia porfadora de los djstlntns nzodelos dtl setrsure.7
                             de


                                                                                                  o   Vcc=+SV                  vcc=5V O



  SFH 5517
-XX
                                                                               Microconfmlador




                                                                                                                    de infrarrojos
                                                                                                  n      GND        señal a iina (
                                                                                                                    Darlington BE
         (") R1 y C l cdlo son necesarias para eliminar las periubaciones de la fuente de alimentacibn
                                                                                                                    32.7 SE1
                 Figuru 32-1 tJ Circuito receptor de haz inftnvrojo moúulario
                                                                                                                          E1 iS47
                                                                                                                    que es capaz (


                                                                                                                I
L, RA-uA
         .'                                               CAPITULO 32: SENSORES PARA MICR~ROBPTITA 5.1)



         32.6.2 Circuito detector
vcc
                La figura 32-19 iiiuestra c l circiiito de aplicacihn que proponemos. Cuando se
         detecta una haz de luz infrtirruja modulada a la frecuencia del sensor, pone un nivel bajo
         en la patilla V,, en ausencia del haz modulado la salida es un nivel alto.
Salida

         32.6.3 Circuito emisor
 GND
                El circuito emisor debe de ser capaz de generar uiin olida cuadrada a scr posible con
         un ciclo dc trabajo del 50%, es decir, la mitad del periodo In sena1 e t w a tiivel bajo y la
                                                                                sL h
         otra mitad a nivel alto. El circuito propuesto es un multivibrador 	astable realizado con un
         circuito integrado 5 5 de uso muy corriente (figura 32-201. El potencibmetro cori el que se
         ajusta la fi.ecusricia del multivibrador es recomendable qiie sea multivuelta, para poder
         realizar cl ajuste cle La frecuencia de manera mis cómoda.




                             !    - THR         CV    5
                                                                                             -
                                                                                             -
                                                                                                          1




                             ~7
                              DIS
                             -3 Q         
 TR        '
                                          K
                                          U 
                                                   2N2222
            -                             q                                    15K     4K7



                                                                                                R3
                                                                                                47 

                                 R2                                 DI
                    VCC=5V    - 3 -
                             0 1
                                                INT
                                                           T
                                                                     w
                                                          1    C2
                                                                    . .
                                                                    Emisor lnfrarmjo

                                                          TIO  UF




                        Figzcr-rr 32-20 Cir~-l I O
                                            I ~ t3rnisorde haz infrarrojo modulado 36-40 kH.2

                Si se disiniiiuye el valor dc la resistencia R3 hasta hacer pasar por un diodo emisor
         de infi-arrojos SFH 45 10/SFH 45 15 iina corriente de 500 mA, se puede llegar a recibir la
GND      serial a una distancia de 30 m. El transistor 2N2222 se puede sustituir por un par
         Darlington BD135 y BC547 utilizado en otros esquemas (por cjcmplo cn cl32-6).

         32.7 	 SENSOR DE PROXIMIDAD IS471F
               El IS47 1F fabricado por Sharp Corpoiatioir es iin detector de ubst&ulos infrarrojo
         que es capaz dc dctcctar cuando se refleja sobre uii objeto el haz que emite un fotodiodo
534   MICROC'ONTROI. m R PlC 16FX4 DF.SARROT.1I ) DE PRí-)Y ECITOS                     O*   RA-MA




emisur dc infrarrojos que se le conecta tal y como se muestra en el circuito di: la figura 32-
23.




                                                                                                    salida se nbti




                                                            o vcc
                                                            a GND
                                                              vo
                                                            0
                                                            @ GLout


       Estos dispwitivos son inmunes a las perturbaciones de luces externas debido al
sistema de modulación de luz quc llevan incorporado. El prvpio circuito incluye el &ver
de ~111150~ shcronismo, como puede verse cn el diagrama de bloques de la figura 32-22.
           y
El circuito detector y emisur tiene un amplio margeri dc tensión de alimentación que va
desde 4,5a 16V.
                                                                                                          En este
                                                                                                    conectar uti con

                                                                                                    32.8 BUN
                                                                                                           Los detei
                                                                                                    uno o vanos
                                                                                                    mecánicos com
                                                                                                    control de nive
                                                                                                    robatica convcn

                                                                                                           Los buml
                                                                                                    comutador qui
                                                                                                    meta1 qiic hace
                                                                                                    que dispone de
                                                                                                    longitudes de la
                        Figitrcl32-22 Dingrum~i hkuqires del 1.9471F
                                              [le
El circuito prácticn de aplicación que proponemos es el de la figura 32-23, con c l
            que se pueden delectar objetos situados a una distmcia máxima de 70 mm siii quc haya
            contacto fisico con los mismos, la distancia puede disniinuir dependiendo del color del
            objeto sobre el que reflecta el tiaz iiiírarrojo. Cuando se aliriienta el circuito a SV, en la
            patilla de salida (V,) aparece un nive1 alto con una tcnsiiin de 5V si no hay ningi~n  objeto
            próximo. Si se coloca un objcto eri el radio de acción del dispositivo, en la patilla de
            salida se obtienen O V y por lo tanto un nivcl bajo.




                      C.....
:bid0 al                                                             1S471F
:l driver
3 32-22.
. que va                       Fiswra 32-23 Circuito hasico de ~~plicación IS4 71F
                                                                        rfd

                  En este circuito para estabilizar la teilsibn de alimcntrición es recomeiidable
            concctar un condensador de iiltt-o20.33pF. cntre Vcc y GND cerca de1 dispositivo.

            32.8 BUMPERS
                   Los detectores de obstáculos mecánicos son unos dispositivos que abrcn o c i e m i
            uno o varios circuitos elictticos. En el mercado existen innumerables detectores
            mecáriicos como pueden ser pulsadores, interruptores: sensores dc presión, boyas para
            controI de iiivel de agua, etc. Nosotros tratareriios de los finales de carrera que en la
            robótica convencional y micicirobótica reciben el nombre de bumpers {figura 3-23).

                  Los burnpers como puede verse en el diagrama de su represcntaciiin eléctrica. es un
            conmutador que cambia de posición al realizar la presiiin necesaria sobre la lámina de
            metal que liacc de brazo de una palanca de primer orden que a su vez activa u11pulsador
            que dispone de un miielle de recuperacih. Se comercializan burnpcrs con diferentes
S36 
 MiCROCOmOLArXIR P1Cl bFS4. DESARROLLO DE PROYECTOS                                 O RAMA




                                                                                                          Los urtrason i ci
                                                                                                   pero dc fsecuencia
                                                                                                   humanas. Los dctcc:
                                                                                                   mediante un dispos,
                                                                    O
                                                                    -                              algUn ob-jeto. ri tni
                                                                        Activado (A)
                                                                                                   tiempo quc tardan 6
                                                                                                   objete sobre el que P
               Final de carrera                     Representación de un final de carrera
                                                                                                          EL S1
                      Figura 32-24 Final de carrera de tipo Bumpq                                  Ltd ( w ~ ~ . T o ~
                                                                                                   [w.sul>en
       AI activar el brazo de la palanca, el temhal común C realiza un contacto elktrico           se encuerim
con el t m i n a l activado A. Cuando no se activa la palanca el terminal C estñ en contacto       su bajo consumo y g
                                                                                                                     r
con e1 t m i n a l dc reposo R.                                                                    32-26,
        En temas anteriores se ha utilizado siempre sistemas a n t h b o t e softwaTe para los
pulsadores. Un sistema antirrebote hardware se muestra en la fgum 32-25, se mta de un
flip flop M que presenta en las salida Ql y Q2 unas seiiales complementarias. En el
estado de reposo la salida Q E tiene un nivel alto y la salida 4 2 un nivel bajo y al activar e!
final de canera la salida Q pasará a tener un nivel bajo mi-?
                           1                                         que la salida 4 2 pasad a
nive1 alto.




                                                                                                          Este sensor fui
                                                                                                   hacer la medicibn. S I
                                                                                                   anchura del piilso de 1

                                                                                                          El scnsor SR1
                                                                                                   emitidos viajan a la z
      Figirro 32-25 Conrxión delfinal de carreraa trm& $E un circuito antimebofe                   reflejado y captado íil
                                                                                                   incorporado cs emitir
32.9 DETECTOR POR ULTRASONIDO SRFO4
                      Loi; ultrasonidos son vibraciones del aire de la mislila naturaleza que el sonido,
                pena de frecuencia superior a l s 20 H-k por lo que no son audibles por los m
                                                 o
                humanos. Los detectores de obszacuIos por ultrasonidos emiten pulsos de ultrasonido
                mediantc un dispositivo transmisor, cuando las ondas ultrascinicas se reflejara sobre
                algún objeto, a tmvés de una cápsula sensible se captan los pulsos reflejados. El
                tiempo que tardan en volvcr los piilsos reflejados es proporcional a la distancia del
                objeto sobre el que se reflejan.

                       EL SW04 es un módulo de sensom por ultrasmidos, desrtrro!lado por Deiwrrrech
                Lrd (~w.mbot-electronics.co~uk) comerciali;rsido en Espaiia por Intpluc S.L
                                                               y
                ( w w w . s u ~ m o h o t i c a . ~ ~ ) ,es capaz de detectar objetos y calcular la distancia a la que
                                                  que
i   eléctrico   se encuentra cn un rango de 3 a 3 M cm. De muy pequciío tamaño, el SRF04 destaca por
1 contacto
                s bajo consiirno y gran precisión. Su aspecto fisico y conexiones se muestran en la figum
                 u
                32-26.
e para los
                                                                       Canexlones del
rata de un                                                                    SRFW
ias. En el
 activar e
         1
2 pasad a
                                                                         t .5llrnanlsd4n ?N
                                                                          -
                                                                         Z Salldn Eca
                                                                          -
                                                                         3 E111rada Disparo




                                Aspecto fisico                                Cencxiones y vista postcriol




                       Este sensor hncinnn por ultrasonidos y contiene toda la electrónica encargada de
                hacer la medicion, Su uso es tan sencillo como enviar el pulso dc arranque y medir la
                anchura del pulso de retorno tal como se muestra en la figura 32-27.

                       El sensor SW04 fiinciona emitiendo impulsos de uftrasonidos, Los impulsos
                emitidos viajan a la velocidad del sonido hasta alcanzar un objeto. entonces el sonido es
                reflejado y captado de nuevo por el receptor de ultrasonidos. Lo que hace cl controlador
                incorporado es emitir una ráfaga de impulsos, a continuacibn empieza a contar d tiempo
538     MlCRKONTltOLADOR PIC 1 hFM, DESARROLLO DE PROY ELTOS                                                                      un-MA




      3--  -- -- --- --- =" - - - - -. ---- t --'
      aiie tarda en lle~arel eco. Ente .i e m m se traduce en un nulso de eco de michura
                                                                   -   - -   -      -   -   ---    -                                                     J;.-,.-+~I              n*
      proporcional a la distancia a la que se encueiitra el objeto.

                                Pulso de Disparo 

                                 10
 uS Mínimo
            Entrada Pulso
            ds Disparo


'1
11
                                                  U Impulsos
                                                  ultra<anicos                                          I             IPermita un retardo de
                                                                                                                       10 mS desde el final         l                               1
       Rafaga sónica
                                                                                                                       del Pul- o de Eco y el
                                                                                                                       COmlEriZG del Pulso de       !                  II
        ----- 01
        d~crla     cancni
                 u. u-,
                                                                                                                          Disparo
[/                                                                                                                                                  I
                                                                                                                                                                             U

                                                                                                            Nota E l P u l s o ds Eco                          d
                                                                                                                                                                   -         u
                                                                                                                                                                             >
                                                                                                                                                                       NC        Iidr
                                                                                                                                                                             Z     E
       Pulsu de Salida de Eco
                            -
                                                                                                                                                                            -
                                                                                                                                                                            -


       Figura 32-2 7 Diagramar de iiempos del SRFO4, (c¿~rfe~..iLi           ica.com)
                                                             de www.srtp~rrohof

            La relación entre la distancia medida y el ancho del pulso se muestra en la tigura
      32-28. Por cada centímetro de distancia la anchura del pulso se incrementa en 60 p,
      siendo el rango de medida ihlida entre 180 11s y 18 m, correspondientes a 3 y 300 cni
      respectivama te.
                                                                                                                                                    1
                                                                                                                                                    i
                                                                                                                                                        .**************
                            3        4        5          6
                                                             - -       - - - - -   *-
                                                                                   258            259         300
                                                                                                                    DISTANCIA (cm)
                                                                                                                                                    1
                                                                                                                                                         ------.-
                                                                                                                                                        .L



                                                                                                                                                        ; Para el control
                                                                                                                                                    I
                                                                                                                                                        ; lhea RA3 que
                                                                                                                                                        ; sensor se ponga r
                                                                                                                                                        ; uitemrpciones po
                                                                                                                                                        ;S e g u i d a m a se
                                                                                                                I
                                                                                                     ANCHURA                                            ;centirnms.
                      0,lO 0,18     0,24    030         0.36                       17.68      17.94
                                                                                       18,00 36.110tPULS0 ( m s )                               I
IF'
                    MlNiMo I
                       I   l-
                                ..,-
                                 ,.
                              _nniurn n~           ."          --                  --A
                                                                       ...--.-,i n a q
                                                                       ~~n                  MAXlMO
                                                                                                                I          I
                                                                                                                                                        ..
                                                                                                                                                        , D-
                                                                                                                                                           ,   A-A-
                                                                                                                                                         I V I L-Ua bGl L
                                                                                                                                                                     . IU W
                                                                                                                                                                            . -
                                                                                                                                                                             , L.

                                                                                                                                                        ; En este programa

                Figura 32-28 Relación entre la distaticio »tedida y la unchuua de pulso                                                             i   : ZONA DE DATi
                                                                                                                                                I
            Una aplicación típica puede ser un medidor de distancias, como el de la figura 32-                                                                              -r n M
      29, donde en el display se visualiza la distancia desde el censor a un objeto.                                                            I                           LIST
                                                                                                                                                    I                       iNCLUI
             El programa Sen~or~Ultrasonido~O1.asm,    piiede utilizarse para comprobar d                                                                                   C8UIC
      funcionamiento del sensor. La técnica de programación consiste en mandar un impulso a                                                     I                           Distancii
      nivel alto de disparo con una duración minirna de 10 ps al pin 3 del SRFO4 (entrada                                                                                   ENDC
Rh-MA




: anchura      disparo). Después se lee el pulso que sale por la patilla de ECO pin 2 y se mide su
               longitud. que es prcipiircional al eco recibido.




retardo de
le sl 6nal
e Eca y el
le1 Pulso de




.
ila figura
en 60 ps,
y 300 cm

               .*kli**O*iT~U**L***O#*******i**,**SeIISM
                                                                   - uaoniJo
                                                                          -             +*****~"+C*~***,VU**I**~




               ; Programa para      un medidor & dismclas hasta un objeta utilizarido L.erisoíporuhmonido SRF04.

               ;Para el control del semar en primer iugar se genera un pulso de 10 us a mvei alto por la
               : línea      que se conecta a Ia entrada de di~paro m mSeguidamente se espera a que m el
                                                                 del s .
               ; aensor se ponga un nive1alto en la salida ECO que se conecta a la liea RA4 y se utilizan Ips
               ; interrupciones por desbordamiento &I Timcr O para medir el tiempo que está en alto el pulso.
               ; Segudmente se v i d i z a en el módulo LCD el valor de Ia distancia hasta al okqeto e x p r d m
               ; centimfms.

               ;Por cada mú& de distancia al objeto el SRF04 aumenta 60 ps la anchura del pulso.
                          tr u
               ; En este programa la distancia minina es
                                                  3 ctn y la mixima 250 cm.




                            CBLOCK OxOC
                             Distancia
                             m i
540   hIICRKONTROLAWR PIC 1 hF84. UESARROLI.0 DE PRO'rT.C'TUS


#DEFINE Diqm PORTA,3                              ; Disparo para iniciar la medida.
#DEFINE Eco          PORTA4                       ; Pulso cuya anchura hay que medir.

MinimaDis!ancia     EQU          .3
MaxbDistaacia       EQU          ,250
TMROCarga~crm                    EQU     4'27'     ; Valor obtenido experimenttilmente con la
                                                   ;ventana Stopwatch para una interrupción del
; Timer O cuda M) p. Si no mide correctzmciitt pir las tolemcias de los componentes M d
; que hacer un a j e fúio de este vator, comprobándolo wbre Ias condiciones reales.



          ORG       O
          goto      Inicio 

          ORG       4
          goto      Serviciointemipcim



M-jeDistaracia
         DT " Distancia: ",OxOO
MensajeCentimetro
         DT " cm", 0x00                                                                                     ; V i s W la d
hfmsajjeDisranciaMenor                                                                                  I   ;visualizmrrm
         DT 'mist. MENOR de:", 0x00                                                                         ;Ycuandom
McnsajeDistanciaMayor
         DT "fist.MAYOR de:", 0x00
              
                                                                                             ;Si la distancis

          4 1       LCD-Inicializa
          bsf       STATWS,RPO
          kf        Disparo                                                                                            moy
          bsf       Eoo                                                                                                subu
          mwlw      b ' m '                       ; Prescaler de 2 para el TMRO.                                       bth
          movwf     OPTION REG
          bcf       STATL'S~PO                                                                                         ~ D
                                                  :úticializa línea de disparo en bajo.                                sub1
                                                                                                                       btfsr
          clrf      Dic(arrcia                    ; Iniciztli el registro.                                             !
                                                                                                                       m
          bsf       Disparo                       ; Comierw el guiso de disparo.
          cal1      Reiardc-70micros              ;Duraciún de1 pulso.                                      DisrauciaMayt
          bcf       Dispara                       ; Final del pulso de disparo.                                        mov
m=x~Eool                                                                                                               mov
          btfss     Eco                           ; Si E C M , espera el flanw be subida de h &al                      mov
          @tu       ESpera-Ec0-l                  ; de salida del censor.
          movlw     TMROOCargadOmicros            ; Ya se ha producido el flanco de subida
          m M       W O                           ; Carga el Timer O. 

          rnoviw    b'10100000'                   ;Auton~a    iriterrupcibndel TMRO (TOIE).                            mv
          movwf     MCON                                                                                               mov
                                                                                                                       mOY
                                                  ; E s p flanco de bajada de la s d a i de la salida
          gota      Espera-Eco-O                  ; del S W .                                               Ds~caib
                                                                                                             ilniFai
          clrf      NCON                          ;Se ha pducido d h c o de bajada. Prohlbe intemp.                   m
          cdl       VisuaIiza                     ; Visualiza la distancia.                                 VisurilizaDim
call      Reíardo-2s                   ; Espera un tiempo huta la pr6xima medid&
      Fin         gota      Principal
      - Subrutina"S&cioIntmppioa"                   -  ------.        -            -
      ; Se ejecutadebido a l peticibn de interrupción del Timer O cada 60 ps que 8s el mCmento
                              a                                                   

del   ; & la anchura de pulso por centímetrode distanciamedido. La variable "Distancia"contiene el
      ; valor de la distancia espresada en centímetros.

      ServicioIntmpcion
               movlw TMRO-Carga60micros                   ; Cwga el Timero.
               movwf TMRO
               movlw . i                                 ; Se utiliza insmicciim "addwf",en lugar de "incf'
               &lwf     Distancia,F                      ; para posicionar flag de Carry.
               mvlw MaximaDisimcia                       ; En c m de desbordamiento carga su máximo valor.
               btfk     STATüS,C
               movwf Distancia
               bc f     MTCON,TOF
               rdie



      ; Visualiza la distancia expresada en centimetros. Se t i x e de manera que niandohaya que
      ; visiialitar un nírmero mayor de 99 las dwenas siempre se vimialicen aunque sean cero. 

      ; Y cuando sea menor de 99 Iasdecenas no se v i d i c e n si es =o.

      ; Si la distancia eu menor de 3 cm o tnayor de 250 cm apmcc un mensaje de emir.

      Visualita
                  can                                    ; Borra la 
pantrilla antsrior.
                  movlw 
                                ; Va a comprobar si es menor del mInimo 8drnisblc.
                  subwf                                  :TW)+istancia)-Minimaatancia
                  btfss                                  ; ;C=l?, ¿(W)positivo?. i@istancia)rMinimaDi~ia?
                  goto                                   ; No ha resultado menw. y salta al mensaje de error.
                  movf                                   : Va a comprobar si es mayor del máximo sdmisible.
                  sriblw                                 ; (W)rMaximaDistancia-(Distaricia)
                  btfs                                   ; ¿CeO", ¿(W) negativo?, &laximaDistancia~istancia)?
                  goto                                    ;No,la medida de   la distancia entra dentro del rango.



                            MaximaDistancia              ; La distancia es rnayw que el &o
                                                                                        

                  movwf     Distancia 

                  movlw 
 MensajeDistanciaMayor
                  goto      VisusiizdXstancia

      DistanciaMenor
               niov1w       MinimaDistmcia        ; L distancia
                                                     a                          del
                                                                          ir~enor minimo fisble.
               mowf         Distancia
               movlw        MensajeDiutanciaMenor
                            ~iisual~Dis~c~~
      DistanciaFiable
               movlw
      VisuatizaDisimcia
542   MICR(K0NTROLADOR PlC16F84. UESARKOLI .U DE PROYEflOS                                   0 KA-MA
                                                                                                       !
                                                                                                       ',
         caIl     LCD-Mmje
         rnovlw   .S                      : Centre la metida de la distancia m la segunda llnea
         cal1     LCDLPosicionL~          ;& la pantalla.
                                                 

         movf 
   DistancikW
         4 1      Bi'Na-BCD               : im pasa a BCD.
         mvf      BCD-Centem~W            ; Primero lai centenas.
         btfss    STATi JS,Z              ; Si mc r no vislializa las centenas.
                                                   ea      

         gota     VisdmCentenas
         mcst-f   DistanciqW              ;Vuelve a recuperar este valor.
         d i      BIN-a-BCD               : Liopass aBCD.
         d i      LCD-Byte                ; Visualiza las decenasy unidades.
         gota     Visuali~a-cm
VisdizaCentmas
        cail   LCD .NitibIe               ;Viwalim las centenas.
        movf   Distancia,W                ; Vuelve a reci~perar vaior.
                                                              este
         d
         cal1
                  BIN-a-BCD
                  LCi-ByteCornpleto
                                          ; Lo pasa a BCD.
                                          ;Visualiza las detenas r a q u e sea cero) y
                                          : unidades.
                                                                                                            ¡              C
         movlw    MensajeCentim-
         csll     LCD-Mumaje
         rem

         INCLUDE <REtARM)S.INU                                                                              I           La mb
         INCLUDE <LCI3-4BR.lNO
         INCLUDE -=T.CT)-MENS.IND                                                                               eleckbnica. H



       Un sensor con mejor resolución es el SRFO8. Se trata dc un niedidor de distancias
por ultrasonidos para robots con conexion I2C. Tiene un alcance de 6 m y un consumo de                                  Para ul
35 mA activo y de sólo 3mA en reposo. Gracias a su bus 12C se pueden conectar Imta 1h                           sobre una a
unidades con s8lo dos líneas de entrnda y salida, permitiendu montar un completo sonar                          cxperimental,
perimetral en cualquier robot Únicamente con dos pjnes libres, Como valor dadido,                               conocimientos
incorpora iin scnsor fotoeléctrico que indica el nivel de iluminación a traves tamhikn del                      ‘-trasto", el le
bus IZC. Su precio es aproxiinadamenteel.doble que el del SRFW.                                                 como hito lir

                                                                                                                33.1 INT



                                                                                                                niveles, cada
                                                                                                                rnicrombot. E:

                                                                                                                    a    Nivel

                                                                                                                          único
                                                                                                                          capac
segunda l   h




                                 CONSTRUCCIÓN DE UN MICROROBOT 



                             La robótica es una de las aplicaciones m s apasionantes de la electranica. Hasta
                                                                      á
                      hace poco tiempo había que ser todo un experto para poder adentrarse en esa rama de la
                      electrónica. Hoy en día, gracias al imparable avance de la microelectrónica, tio es dificil
                      construir un microrobot, denoniinado también microbot, qiie es un pequeño robot de
                      investigacibn que nonnalrnente se controla con un microcontrolador y que esd diseñado
3r de distancias      para realizar tareas concretas.
un consiuno de
                            Para un solido aprendizaje, sc van a desarrollar las explicaciones de este capitulo
lnectar h a ? a 1 6
                      sobre una aplicación real. Vamos a detallar la conssucción de un microrobot
:ompleto sonar
                      experimental, a partir del cual, el lector pueda desarrollar toda sus habilidades manuales y
 valor añadido,
                      conocimientos de mecánica y electrónica. A este micromhot experimental le llamaren~os
 es también del
                      "Trasto", el lector puede introducir todas l i s mejoras que sea capaz de idear, poniendo
                      como Unico limite su imaginacion (y presupuesto).




                              Al plantear la constniccion de un microbot es interesante conocer la clasificación
                      que hace la empresa Microbotica, una de las pionera? en este campo en Espaiia. Esta
                      clasificación esta basada en la Torre de Bot o TorreBot (figura 33-11, que tiene seis
                      niveles, cada uno de los cuales diferencia un paso en el diseño y construcción del
                      microrobot. Estos niveles son:

                              Nivel físico. Comprende la estructura física, las unidades motoras, y las etapas de
                              potencia. Es posible encontrar desde sistemas sumamente sencillos basados en un
                              único motor hasta estructuras sumamente complejas que buscan emular las
                              capacidades mecánicas de algunos insectos.                                             -A
534   MICROCOW.I1'ROLA~CiR 1hF84 DESARROLLO DF. PKUYE(:TílS
                             PIC                                                              <,   IL-MA       4%   KA-.UA
                                                            --

                                                                                                            


             Nivel de reaccihn. Está formado por cl ccinjunto de scnscrrrs y los 
sistema?                                     Nive
             básicos para su manejo. Estos sensurcs cubren un amplio 
 margei dc                            I                  con11
             posibilidades, así podenios encontrar desde simples bumpcrs (finales de carrera),                                 cono
             hasta microcaii~arasdigitales con sistcitias de rcconociiniento. Un microbot que                                  coop
             haya superado cn cuanto a su coilstnicriiin tanto cl nivel fisicn como el 
 de                                    PnPU
             reaccibn, se denomina microbot reactivo. 
    Estas unidades trabajan cuiiipl iendo la
             premisa, "acci6n-reaccioii". En estc caso los sensores son los propios                                           En estc
             contr»ladoresde las iinidadcs irlotoras, sin ningún tipo de control intermedio.


                                                                                    Nivel 6

                                                                                    Nivel 5                     un motor p
                                        Nivel de Inklgencia
                                                                                    Nivel 4
                                                                                                                mcrcatlo.
                                                                                    Nivel 3


                   1I                       ~ i v e~ l s l c o
                                                   l
                                                                                1   Nivel 1
                                                                                                                son los que S
                                                                                                                revoluciones
                                                                                                                apropiados p
             Nivel de control. Iricluye los circuitos d s básicos quc i'elacionan las 
salidas de
             los 
sensoriis Con las restantes unidades. Partiendo de una simple lógica digital y
             llegando hasta potentes microcoritroladorrs buscan dotar al rnicrobot de la
             capacidad para procesiu L infonnaciói~
                                         a             ribtenida por los serisorcs asi coino actuar
             de una manera controlada sobre las uiiidndcs motoras.
                                                                                                                       ~n los 1
             Nivel de inteligencia. Abarca la $ir1ificaci6n a largo pluo. En csie nivel se                      o la posibilida
             introducen los cibjetivcis dcl microbot qrie tienen relativa indepei-idenciri de los               redirctorcs. qu
1
             sensores. Este es cl nivel más alto dc iiiteligcncia quc puede alcanzar un inicrobot               microbot cnn
l            corno una utiidad iridividuat.                                                                     de algunos dc

I            Nivel de comunidad. Se trata de la puesta en hiicionatniento de más de un
             microbot dentro de iiti tnismo entorno de forma ximultliiea y sin que ninguno dc
I            ellos tenga conocimientos explicitoq dc la existencia de otros eii su mismo                               En mic
             entornci. A estos rccintos sc los dtmomina granjas. Los centros de 
invcstigacibn                  radiociititrol. 1
             utilizan 
 1 s granjas conio entomiis de observación de los microbot. Dichos
                            -   .                                                                               estudiado en e
             establecimientos pucden contar con sistemas sufisticados quc permitan a u 1     1
             operario monitorilx el coinpcirtarniento dc la comiinidad asi como alterar las                                   Estos S
             condiciones externas dcl sistema (agregar obstáculos, cambiar la 
terriperatiira.                  constmcción 1
             etc.) 
                                                                                            trasladar cibjei
                                                                                                                mutti tud dc a(
histemas              Nivel de cooperación. Comprende los sistemas doildz a partir dc iiii nivel cle
3rgc:cn de             comunidad se planifican o programati Icis microtiut para quc icngan
:carrera),             conocimiento Q la ewistcncia de otros, dc inarizra que posean la cqacidad de
robot qiie             coopera1 para el huzii desarrollo de uria tarea. Deiitro dc este pip estarian los
mo el de               populares equipo:, de fútbol constitliidcis por rnicrcirubots.
~iliendo la
   propios            En este capítiilo vamos a cunstruir un robot quc 1leg:ira hasta el nivel dc control.
dio.
               33.2 NIVEL F ~ S ~ C O .
                                    MOTORES
                     Dentro dcI nivel fjsico comenzarelnos a hablar de los motores. A 13 hora dc elegir
               un motor para aplicaciones dc microbiitica, debemos tener en cucnta que cxistcn varios
               hctorcs como son 13 velocidad, el par, el frenado. la inercia y el niodo de ccintrol. Si lo
               que queremos es utilizar un motor de cot.iientc coiitinua cxisten varias posibilidades en el
               mercado.

               33.2.1 Motores de corriente continua de pequeña potencia
                      Denti.0 de la gran aricdad de tipos existentes en el mcrcado los tilis economicos
               son los que sc utilizan en alguncls juguetes. Ticneti el inconveniente dc que su niimero de
               revoluciones por nimuto es muy clei*adoy sil par cs pequeño, lo quc no los hnctl rnuy
               apropiados para la ccin5mcciiin de un nitcrubot si no    be   iitilizan rediictoras adicionales o
salidas de     un sistema dc regulación electrbnico.
. digital y
lot de la
nio actuar     33.2.2 Motores de corriente continua con reductoras
                      Eri los juguetcs como ,tl(~c.rrno I,cp podemos cncuntrar motores con rccluctoras
                                                       y
 i nivel se
               o la posibilidad dc constniirlus. TarnbiCn podemos encontrar cn cl mercado inotijres con
:ia de los     rcdiictoies, que adernas de disminuir 1;i lzlocidad le dati más par, lo que permite mo tir e1
 microbot      microbot con su cstructiira y batería quc pruporcionalmente pcsa muclio. Las fotagi-afias
               dc algunos dc cstos motores se rnucstran en las figuras de la iabla 33-1.

.as de un      33.2.3 Servomotores
nguno de
u inismo              En micrnbótica se suclcn utilizar los n~isnicisservoiiiotorcs que en inodclismo y
~stigacioii    radiwontrcil. Sc trata de unos motorcs con iin circuitci electronico. ccinio los que si: Iiail
 . Dichos      estudiado en cl capitulo 3 l.
tan a un
 .Iterar las          Estos senuinotores cumlilen las características que los Iiacen ~ ~ S ~ I I L ' para la
                                                                                                     US
 ipcratura,    coiistrucción dc nuestro microbot, conici un bucn par de salida, potencia suficiente para
               trasladar objetos o uno hcitcría, baja inercia, capacidad de niovcr 3,5 K g I; cm, incliiyrn
s66     MICROCONTROLAWR PIC 1 @M.DESARROLLO DE PROYFCTOS                                      Q m-MA       CRA-MA




        esñuctura plana al ir dentro de una carca- de plástico rectangular m w p d e s para fijar
        los rornillos. De hecho la opción que hemos elegido para la mstmcci6n de nuestro                             h s S
        microbot "Trasto" ha sido utilizar estos servomotores como elementos motnccs.                                de girar conici
                                                                                                                     como es reqlicr
                                                                                                                     las que estin
                                                                                                                     restricción vic

                                                                                 *                                   m w h~icos
                                                                                                                              quo

         l



                                                                          :.-M
                                                                            -.
                                                                                      2.-




             Motor reductor dc relaciciri 194: 1 con doble eje Motor con reductor dc relacihn 17:1 can
                                                                                                                     circliito cleclrcc

                                                                                                                     por In tanto,
                                                                                                                     motor de DC c

                                                                                                                     Quitar c1 tornit
             bi 2,4x6 mm, tensirjn de h b a j o 1,5V-12V       doble eje de 44x20 rnm, tensión de trabajo            me&? mcton
                                                               13-t2Y                                                que es eskiao
                                                                                                                     s a c d a despub.



                                                                      I




                              ...+--. -
                                -L.
                                  .




             Motor rcductor de reiacicíti 23: 1 crin doble eje 4 ~~o~   mludor reIaicj6n 10:1 con doble
                                                                                de                                   Sacar tos      CM

             4x40 mm,tensibn de mbaio 1,5 V a 12 V               eje de d 2x20 mm, tensi6n de trabalo 1,SV-          posterior. Al Ii
                                                                 4,s v                                               circuito clcctrt
                                                                                                                     esti metido a
                        TabFn 33-1 Tipos d~ mororc~ C.C. comevciu~es redtcroras
                                                  de               con                                               hay que extrae7
                                                                                                                     del potenciam
                  Pata pder utilizarlo en nuestra apIimci0r1,un servomotor debe ser "mcado"p                         engranajes que
        quc e cjc dc3 motor pueda girar 30s 360 " ya que normalmente giran entre hasta 180" ó
            l                                                                                                        quc hemos ahie
        270". dependiendo de los fabricantes.

1       33.2.4 Madifiicacidn de un servomator
                                                                                                                     En es
               El ""tmcar" servomotores los hará inservibles para su use en las aplicaciones
                            los                                                                                      de la            .
t       tipicas dc radiocontrol, ya quc se convertirá en un motor de comiente continua con una                       reducir la ~ifelo
        caja reductorrt, pero desde luego p m nuestro fin no tiene ningún problema                                   potcncia y par (

                  Seguidamente se miiestran los psos a seguir p a n convertir los scrvomotores en
        motores de corriente continua con iina caja reductora. La mayor parte de los
        servomotorcs son similares, nosotros vamos a modificar el modelo HS300B de la m a                      ,
        Hitec que es muy similar al Fiitaba S3003.


    !
    1
tes para  fijar
i   de nuestro        L serv~mtom oigal
                       m         de                      3VU   ~~pccs         . ..- -   .- .   ..   -   ..
                      de girar como mucho entre 180" y 27W,


                                                                         -K
3.
                      como es requerido en las apbcaciones para -
                                                                        '~

                      I í ~ qqueestán riensados inicialmente. Esta
                      restriceitjn         lpuesta Fmr unos t o v s :
                      mecánicos que limi tan el gilm a 180"' y un
                                     .
                      circuito elscmnico. Si eliminamos las dos .
                                        A




                      cosas podeirnos con!segiir el 1giro de 3 60" Y. I
                                                             1
                      por lo tanto, que sc comporte con10 un
                                  .-                                                                         b
                      motor de DL con caja d u c t in. m
                                                       ,
                                                                                                              -
                                                                                                             w!
                      Quitar el tcirnillo qii e sujeta el soporte de la P- - - -
                                          -
                      rueda tractosa uniaa solidariamente al eje,
                                            1                           .
                      que es estriado, F
                      sacarla dccptiks a pr
                                                                ' "'
                                                                                                             SI


                                                                               -        -      -        .-   -   -
 con doble            Sacar los cuatro tomillos de Ia tapa
ihjo 1,5V-            posterior. Al levantarla, se puede ver un         .
                      circuito eIectaónico que en nuestro caso
                      está metido a presjiin, para pdcr quitarlo
                      hay que extraer el EomilEo que sujeta el eje
                      del potencihmetro por 1 partc de los
                                                 3
ricado" para             - "
                      enmnaies que están en la cara muesta a la
iasta 180" ii         qlie hemos abierto.

                  1
                  l



                                                                   . . . - .
                      En esta figura se aprecian los engranajes m      a  h
                                                                             -.


iplicaciones          de la etapa reductora cuya misión CY;
ua con una            reducir l velocidad del motor y dar mayor
                               a                                ..
                      potencia y par de arnnqiie al sistema

motores en
rtc dc los
l e la marca
-54% MlCROCONTaOLADOR PlCIóF84.DESARROLLO DE PROYECTW          RA-MA


                                                                       -
                                                                        Volver a moi
 [ rniicho cuidado de no      pcrder ningina de [        -Y            caja reductor
     cllas. prestar atencion al pequefio eje que                        no confundirr
     hay entre las niedas intcrniedias, cn                              no fomqr ni1
     algunos modelos de servornolores es                                       .. Y- -
                                                                        manen niic
     mtivil. en nuestro caso está fijado a la                           tapa supeior.
     carcasa. Con ayuda de unos alicates de                             nnest 1-0caso
     piinta plana quitar ahora la tlicrca que                           eje de ias ru
                                                                               1-   E--   h.




 1   sujeta el poinci6rnetro.
                                                    l-
                                                     -
                                                                        está t
                                                                        -
     Proceder a desmontar la placa del circuito                          At~nriiiar i i i u
     impreso y e potcncibnietm ayudandose
                 l                                                      aconsejable 1
     con un destornillador para hacer un poco                           cables dcl rr
     de palanca.                                                        interior para
                                                                        cl caso dc tira



                                                                 i
                                                                        -

     al motor para desprenderlo del circuito
     impreco. Hacer lo mismo mn los cables
                                                                               En todo c
                                                                       la meda dentadc
     g i ~ cconectan el exterior a la placa del
                                                                       ocurrc muy frec
     circuito impreso para poder reiitilizarlos.
                                                                       la meda. sc pu
     Seyidamcntc conectar e rijo al terminal
                                  l
                                                                       conveniente inl
     con el punto roio y el negro al otra. cl
                                                                       separado cri tien
     tercer cable no sc iitiliza.
                                                                             Pues bic
                                                                       deberemos hacc

     Ahora eliminar el lirnitadot mecánico, que
     consiste en una pestal'ia de la rueda
     dentada. para ello utilizar unos alicates de
     corte tal y como se muestra en la figura.                               Para tijñi
     Usar una lima peqiieña si hay que eliminar                        prbximo apnrtai
     algunos restos dc la pestaña. Tener miicho                        hacerlas nosoM
     cuidado para no romper la mcda porque el
 '   scniomotro sc volveria inservible.                                       Si se util
                                                                       han mostrado li
                                                                       carca= rednnd:
                                                                       el tubo dc las in
Volver a montar las medas dentadas de la
  caja reductor% fijándose en In tigira para    ,
  no confundirse, y tener mucho cuidado de
  no fomar ninguno de los en_majes, de
  manera que no puedan deteriorarse. La
  tapa superior debed entrar sin forzarla. en
  nuesm caso hay que tener cuict~do elcon
  eje de las ruedas superior e infcrior que
  estA en la propia
                                              A-




  Atornillar nuevamenre 1 tapa inrenor, es
                            n
  acorasejablc hacer antes un niido en los
  =Mes del motor y dejar el nudo en el
  interior para que proteja las soldaduras en
  el caso de fimr del cable.




                                                            -


Tahln 33-2 Secuencicl paro rransJomas un .rwvomotoi. en mo,

      En todo este procesa, el momento mis delicado es Ia elitninaciiin de la pestafia de
la meda dentada ya que si no se hace con sumo ciiidado la mcda se ptiede partir, caso quc
ocurre muy frecuentemente. Si abn con todos Iw avjsos quc se le estarnos dando. r o m v
la nida, se pucde intentar pegar con un pegamento de contacto. En cstc punto. es
conveniente informar de que estas medas dentadas también se pueden conipmr por
separado en tiendas de modeIisrno y radiocontrol.

      Pues bien, ya tenemos uno de los motorcs preparados pwa niimm mimbot.
deberemos hacer lo mismo con el otro para tener la pareja necesaria.

33.2.5 Fijación del motor a la estructura
       Para fijar cl motor a Ia csmtcttira de nuestro microbot, que describiremos en el
priiximo apanado, tan sÓIo tendremos que ~orisegir   unas escuadras c m unos taladros, o
hacerlas nosotros mismos con un trola de aluminio y la aytida de un tornillo dc banco.

       Si se utiliza cualquiera de los otros tipos dc motores de comientc continua que se
han mostrado la fijación al chasis pucdc ser mis o menos compleja. Si el motor tiene una
cascasa redonda, que es lo normal. se puede utilizar una grapa de lac utilizadas para fijar
el tubo de las instalaciones cléetricas de supcfieie, tal como se miicstm en la figura 33-2.
w
    55O   MICRDCONTROLADOR PIc'l hFP4. DESARROLLO DE PROYEcrOS


                                                                                                   Un eje
                                                                                                       

                                                                                             1 de la empu
                                                                                             donde pvdem
                                                                                             impreso de P
                                                                                             alqada una b:
                                                                                                         





                                                                      ana




           Para la cunsiru~xi0nde tlurñirrv microbot piemos utilizar rnucl~os tipos de
    estructuras, que dependerhn de la fi~nci0n quminos realizar, no es lo mismo diseñar
                                             que
    un rbot bípedo quc ~ i n
        
                  mstreador a un hexiipdo.

    33.3.7 Estr
          Unas de las estructurac más utibzadas es la de los juegos educacionales de
    construcci0n tipo Lego, ~Mccano Eifech, intmsantes por su flexibilidad. Para un diseño
                                   o
    un poco mrjs profesional se pprreden utilizar las ntructum de los Fi.~cherTechnik que
    k o n disefiadas originariamente para aplicaciones técnicas tanto estáticas corno de
                    micas con movimiento (figura 33-3).                                            Para el
                                                                                             microbot expt
                                                                                             por ejemplo
                                                                                             incluso pucdc
Un ejempb de estnrctura realizada con un Mecano es el caso del microrobot Pivot-
               1 de la empresa Microgsdazs Engineering. En la foto qne se muestra en la Figura 3 3 4 ,
              donde podemos ver cómo sus disefiadares han integrado hábilmente la placa de circuito
              impreso de mnhE en la estructura mecánica y jiistrtmente debajo de él se encuentra
              alojada una batm'a de plomo de 12?y 0.8 mA%.




 tipos de
io disefiar




              33,3.2 Estructura del rnicrarobot experimental "Trasto"
corno de
                     Para el caso de nuestro mlcmbot, que no debe salvar absdciilos y que sed un
              rnicrobot. expetirnental de bajo coste, d e m o s utilizar una estructura más sencilla, como
              p r ejemplo un trozo de metacrilato, poliestireno, PVC, placa de circuito impreso o
              incluso puede servirnos la caja de plástico de i Coinpact Diycs.
                                                              m




                                         33-5 Estructirra del rnicrohot "Trasto"
                                   Figi~ro
                                                                                                             I
Eri nucstro caso vamos H utilizar dos placas de poliestireno blanco dc 180 x 13,5
                                                                                                      DIRECCI~
mm, pero piieden utilizarse otras mcdidas. Se utilizan dos placas para poder poner las                Ruedas de
batctías en el piso inferior y el circuito de control de los motores y scnsores esi el superior
(figura 33-5).


33.4 NIVEL F~SICO.
                 RUEDAS

33.4.1 Estructuras segun la colocación de las ruedas
       Los microbots utilizan Jus tipos de niedas:
         Ruedas irioiiices o dc traccibn, qiie cstán corizctadas al inoior mediante un cjc y
         &en ser Capaces de adaptarsr: a Los obstáculos del terreno.
         Ruedas "locas". que deben ser capaces de rodar y liiwtar sobre si mismas.

       La ruedas sc piieden colocar según alguna de las estsucturas indicadas cil las
figuras 33-6 a 33-9. La configuracion adoptada para iiuestro microrobot experimental ha
sido la corrcspondientc a 1;i figiirn 33-7 que permite un control mis sencillo del sistema.



  E S T R UC TU R A D E COCHE                                E S T R U C T U R A DE
  T r a c c i ó n y d i r e c c i b n en                    NUESTRO MICROBOT                             Las rue
  das ruedas                                                                                      moviniisnto li
                                                                                                  contrario es pc




                                                        I         Rueda Loca




     F i p i m 33- 6 Es!n4ct~ira c:oclrc
                               tipo                  Figitm 33- 7 Paru rnict.nhot Truslo                 Las sol
                                                                                                  ciptado por la
                                                                                                  pacias a una :
                                                                                                  cualquier fem
180 x 13,5
                      DIRECCI~N   DIFERENCIAL                       ESTRUCTURA DE
?r poner las          Ruedas de tracción                            TRIC1CLO
1 el superior




.nte un eje y

mas.

:adas en 
  las
crimental tia
                     Figwra 33-8 Con direccirin difirencid           Fipm 33-9 E.striictrrn dp triciclo
*1 sistema.

                  33.4.2 Ruedas "locas"
                        Las ruedas "locas" deben scr capaces de d a r y pivotar sobrc si misrnas    con   I
                                                                                          -
                  movimiento lo tnás suavc posible pam no dificultar la rotación (' -
                  contrario es posible que se bhtoqucc y patine.




                                       Fig-um 33- 11) Ruehs "Iocrzr"cwr r mrlm lentos

                        Las soluciones para este tipo de d a s pueden ser muchas. Nosotros hemos
                  optada por las de la figura 33-10. que son niedas que giran libremente sobre su eje
                  gracias a una peqiiciia plataforma con rodamientos,Jaspdcmos cnconimr fácilmente en
                  cualquier ferretería, ademhs hay un _san surtido de ellas en lo referente a mrnañcis, Otra
MICROCONTROLAWR PlC 16FR4. DESARROLLO DE PROYECTOS

                                                                                                i
5?d                                                                                   r un-VA       r



opcibn podn'a ser utilizar la bola de un mil-on de desodorante, a la que se le adapta un eje
acabado en un terminal pam fijarla a la estnictrim.




                                                                                                                Er
                                                                                                        hacen
                                                                                                        mcivimie;

                                                                                                                L
                                                                                                                i
                                                                                                        einr los
R4-!iA
        t>
                       K4- M A                                    C'APITUIO 33:   (:O'IS-~RL~C'C'ION UN MICRUROBVT
                                                                                                  DE                 555


d p t a un eje        33.5 NIVEL F~SICO.
                                       MOVILIDAD                                                                               I
                                                                                                                                   i
                            La cstruct~iraque hemos clegido para nuestro iiiici-obot nos pemiitiIá realizar
                      tnovimientos hacia delante, hacia ñtrris, giro a la derecha, a la izquierda y sobre si mismo.            N

                                                                                                                               I
c un jug~etc                                                                                                                   1

en enconw,ir
:undaria para                                                                                                                  I

ichci o de uri                                                                                                                 1
                                                                                                                               !
                                                                                                                               1

ntcs hay que
 ruedas, para                                                                                                                  i
iiie de S!ípcr
3ara fijar las                                                                                                             8   ,




                           F i ~ ~ k m 12 Mo i~intierrtuhucia delunte Figura 33- 13 Moilir~lit'rito
                                   33-                                                            hacia atru.~

                             En la tigura 33-12 se mucstra como se realiza wi ttiovimiento hacia delante. Se
                      haceti girar los dos motores en la misma dirección hacia delante, esto provoca un




                             - -
                      movimiento rectilíneo, siiponiendo que los dos motores sean exacLm.icnte iguales.

                             La figura 33-13 reliresenta la forma de realizar el mor,irniento hacia atrás. Se hacen
                      girar los dos iiiotores en la misma dirección hacia atrás, esto provoca uii movimiento
                      ~ectilineo,supiitiicndo que los dos motores scm exactaiiziite iguales.




                             - -
                                                                                                                 1


                                 I

                                      Giro a la derecha                            Giro a la izquierda




                             Figum 33-1J Giro en ,spnti& hora,.io          F ~ L U33-15 Giro LJ /U iqzkierd~l
                                                                                  ~U

                                 Por su parte la figura 33-14 muestra la forma de realizar un moviniiento de giro a
556   h4ICROCOYTROLADORP1C 16F84. DESARROLLO DF PROYECTUS                          c RA-t.44



      La figura 33- 15 indica cbmo realizar un movimieiltn de giro hacia la izqiiimda. Se
hace girar el motor izquierda hacia atrA.5 y el motor de la derecha hacia delantc, esto
                                                                                               

                                                                                                   -4
                                                                                                   r: D.-hiA




provoca un niovimicnto de giro a la izquierda de la estructura.




                     Figura 33- 16 .Movimiento de giro SObre su propio c . j ~

       El movimiento de giro completo sobre sii propio eje abarca tina superficie i~iuy
grande que no hace la estructum. isuy adecuada para moverse en recintos muy pequeños
(figura 33- 16) como podrín scr cl caso dc movi tiiiciilvs e11 pruebas de laberintos.
                                        



33.6 NIVEL DE R E A C C I ~ N
        Como decimos al principio de este capitulo. este nivel esta formado por 10s
sistemas electrónicos y sensoriales básicos para su control. Vamos a realizar
seguidamente un sistema de control pam construir un microbot reactivo, gobernado por el
rnicroconwolador PIC16F84h, qiie sca capaz de seguir una Unea niigr;i sobre un fondo
blanco. A este tipo de microbots se los denomina rastreadores y probablemente son los
m i s sencillos para introducirse cn e! mundo de la riiicrorobiitica.                                          Para fi
                                                                                                       adyuicicion e
       La figura 33-17 muestra el circuito eléctrico donde se aprecia quc los sensores
utilizados son infmrrojos reflexivos del tipo CNY70, descritos en el capíhilo anterior.                       Para 1
Para controlar los niotores utilizmios el driver L293B explicado en el capitulo 79.                    i ~ üroco~itro
                                                                                                            c
                                                                                                       la ventaja d
< RA-MA
                          RA-M.4



     :quierda. Se
     elante, esto




                                                                                                                  G@AEN SENTi30 HORARIC.
                                                                                                  REO = "1" MOTOR 	
                                                                                                  RüO = "Y.hlOTORG ñ A EN SENTOO ANTIHORARIO
                                                                                              RB1 ="O'. IhHABILITA DRlVER 1 Y 2 M T O R I PARADO

                                                                                              RB2 = '1" H481LtTA ORIKR 3 Y P
                                                                                                 RB3 = Y". MOTOR G R . EN S E N T W HORARIC,.
                                                                                                  R83 = D".MOTOR W R 4 EN SENT DO AFIllHOPARIO.




:rficie miiv
y pequeños
s.




do por los                                 - DETECTA BWNCO --r    TRPNSISTOR SATURAD3 d ENTRADA AL INWRSUH W' --> HA = " 1-.
                                           - DETECTA NEGRO -> TRAVSISTOR EN CORTE a ENTRADA AL IhVERSDR '" --> RA = "O*
                                                                                                                    1
a realizar                                 51 E N RAO t Rkl HAY UN "?'ESTA FUEW M L A C l f l E A Y CON W" DENTRO DE LA LIHEA.
 do por el
: un fondo
nte son los
                                                 Figwu 33-1 i Ca'rclri/ot'I4ciricti del hficrobot "TRASTO "

                                   Para tijar los sensores heuios utitiaado una cinta adhcsivn por                      !S   dos caras. de fácil
S sensores
                         adquisicibn cn una ferretería. En la Figura 33-18 se aprecia la forma de fijarlos.
3 anterior.
                     I          Para poder conformar las señales de los senscires C m 7 0 a la eiitrada del
9.
                         niicrocontrutirdor hemos utilizado puertas inversoras Trigger Schmtt, que ademh, tienen
                         la ventaja de qiie en cl mismo chip 40106 nos encoiitramos con seis inversores. El
icionamento y la descripcibn de os dispsitivm se explicaron en el capitulo
erior. Como puede apiwcinrscen el circuito dc la figura 33- 1 7:




r i e r a 33-10 ryac

*    Cuando un sensor detecta el fondo blanco, a la entrada de la linca del PORTA al
     que está conectado F llega un " 1".
                        e
         indo un sensor está sobre la linca n e-m , a   la entrada de Ja línea del PORTA al          EII casa
         está conectado F Ilega un 'V.
                        e                                                                     que hacer es i i
                                                                                              que nresmta cl




                                                                         k                    33.7.1 Est
                                                                                                   Antes di
                                                                                                          d
                                                                                              micmbot, ya S{
                                                                                              fiincion. Dc cst;

                                                                                                    En pnnci
                                                                                              hr;i de diseñar
                  Figura 33-19 Visto laretnl de! rnicrolior    Trcritu
                                                                                                      Primer
    Al L29I1R le hemos conectado los dos niotures que necesita cl rnicrobot:                          que el   1
                                                                                                      los C i l
     €1 motor de~echnse encuentn m c c t a d o a los dtivm 1 y 2 que est5n                            c o mpi
                                                  nicrocontrolador.                                   cnciieiit
.      -.<    -   -
                                                                                                                      - --   --
           7



                                                                        C ' A P ~ U L 33; CONS 1-KUCC'IOYDE UN MCI1C)KOBC)T 559
                                                                                      ~)
-
Iln-hl).
               <   '   nd->A
                                                  -.                                                             -

itlilili                 r      El motor izquierdri se enciientra cunectado a los d r i v m 3 y 1,qire a su vez están
                                controlados pur las lineas KB2 y Rl33 del micmcontrolador.

                               El modo dt fiiiiciiiiiainiento de lo5 rnotriires se niuestra en 135 tablas 33-3 y 3 3 4 .




                                                       Tabla 33-3   roitrrol dcl inotvr, de~ttclao




                                                       Tabh 33-4 Conlrol del m u : izquierdo
                                                                                    ~

                     En caso que 3 montar10 cl motor le gire en sentido contrario. In iinico que ticrie
                                    1
               que hacer es inveitii siis cuncxicincs. La iorografía de la figura 33-19 miiestiu el aspecto
               quc prcscnia el microbot ''Trasto" cebo cl circuito implernentado.

               33.7 NWEt DE CONTROL

               33.7,l Estrategia a seguir para un rnicrribot rastreadór
                      Antes dc rcalizar cl programa dcbzmos fijar la estrategia que Jebe seguir el
               inicrobut, ya sea lima qiie se cornportc c o m un robo1 rristreador 0 pala cualquier otra
               hinciiin De esta riuiierti podren-ios fiar el al~oriimci conixol.
                                                                      de

                      €11 principio parece razonable peitsar en cualqiiiera de las siguierites estrategias a la
               hora de discfiar-el algor ítnici dc hiii~cioriamiento:
                                 Primer .4ignritma. Depcndjcrido de la posición de los sensores podemos hacer
                                 que el micrrihcit tome las dccisiunes ~nostradas la f i w a 33-20, En este dibujo
                                                                                en
                                 los ~uacirados dc la derrclia e Izquierda indican lectura del s c i w r
                                 corresporidic~tte: cs blaiico indica que detecta fondo blanco y si es negro que
                                                  si
                                 encueiipa encima de la lirica nzga.
Salida por el borde      Permanece sobre la            Salida por el borde
izquardo. Realizar       linea n ra Seguir             derecho. Realizar
                                                                                     Está fuera de la línea           El P
                                                                                     girar a la derecha o
giro a la derecha        hacia d3aite                  giro a la izquierda           a la izquierda            continuació
                                                                                                               cntiende el (


     Analizando este algoritmo detenidamente se puede comprobar que no es lo 

     suficientemente 
bueno. puesto que el seguiiniento de la linea dcpende de la
     imprecisibn del camino seguirlo por el microbot, es decir, depende de la anchura 

     de la pista. Esto puede ocasicitiar retrasos en el recorrido, cabeceus no dcscndos o 

      incluso que 
11egue a perderse.

     Segundo Algoritmo. En este caso, dependiendo dc la posición donde se                                     ;        bianco si
     encuentra el microbot sobre b Iínea, decidimos seguir urio de los bordes, eri                            ;       - S el sensor
                                                                                                                        I
     nuestro caso el borde derecho, es decir, la detección de negro-blaiico                                   ; lndependi
                                                                                                              ; -Sielmi
     respectivamente por los sensores colocados a la derecha y a la izquierda tal y
                                                                                                              ; hasta que w
     como se muestra en la figura 33-21.
                                                                                                              ; La sedal de los
                                                                                                              ;inversor 40106
                                                                                                              ; Color Blancr
                                                                                                                  +




Salida por el borde      Permanece sobre la                                                                   ; (No estienci
                                                       Salida por el borde           EstA fuera de la Iínea
izquierdo. Realizar      tinea negra Realizar          derecho.Seguir hacia          girar a la izquierda     ; - CoIw Negm
giro a la derecha        giro a la derecha             delante                                                ; (Estiencima

            Figura 33-2 1 Decisio~res irirrinr seghi el sepndo algoritnru
                                    r7
                                                                                                              ;ZONA DE DA




      0   Robot Raslreador


        ConfiguracibnPuertos:
        RA4 RA0 -> Entradas

                                                                                                              : ZONA DE C ~

                                                                                                                             ORG
               Ha salido                                                                                      lnicio
           por la derecha?                 por la izquierda'                                                                bsf
              ¿RAO=I?                                                                                                       bsf
                                                                                                                            bsf
                                                     NO                                                                     clrf
                                                                                                                            bcf
          Gira a la derecha:             Sigue camino recto:                 Gira a la izquierda.
                                                                                                              hcipal
           RB3=1, R02=1                    RB3=1. RB2=1
           RB1=1, RBO=O                    RBi-1, RBO=I                                                                     movlw
                                                                                                                            bcEsi
                                                                                                                            soto

         Figura 3 3-?2 Diagratnu r i'rflujo dd prugrama del micvnrnhof ru~trmdor                                            movlw
                                                                                                                            b&
1
                                                                                                                        -
-
w.4   ~ I A       a RA.MA
                  3                                                  CAP~TLLO < ' C ) ~ ~ S T R U C CD~ N RIICKOROROT 561
                                                                            37:                      I f I1N


                  33.7.2 Programa del rastreador
linea                   El programa quc realiza el s c p n d o algoritino del rastrcador se muestra a
iao
                  continuación, es fácil deducir su funcionamiento si hernril; seguido los i-azoriarnientos y se
                  entiende el organigrama de la rigiirri 33-22

                                                                                 -
                  ; Programa de control para el micnibut TRASTO, el cm1 se desplaza siguiendo una lhea negra
k la              ; marcada ~oii~c blanco a malo & pi.;ta.
                                   fondo
:Iiiira           ;Los sensores iipticuu de reflexibn a y 7 0 están situados en Ia p a delantera inferior del
dos U             ;mimbot: El sensor de la derecha esti conwbdo ü RAO y el sensor d e la izquierda a M.1.

                  ;El programa adopta la estrategia de seguir la linea por el híirde derecho:
                  ; - Si derecta que esti en el borde d m ~ h osmsor izquierdo sobre negro y derecho sobre
                                                                 :
ICse              ; blanco sigue en hacia delante.
C:    en          : - Si el sensor de Ia derecha detecia liiiea negra gim hacia la daecha buscando el borde,
lanco             ; independientementede como estk el sensor de la izquierda.
                  ; - Si el microbot tiene los dos sensores fuera de la Iínra. se le hace girar a la itquierda
 tal y            ; hasta que vuelva a c n c o n ~ I d ~ .
                                          


                                                                   s entrddas del micrmontroIador a baves de un
                  ; La 
sena1 de los sensores CNY70 se aplican a h :
                  ; invavor 40 106 de m a n a tal, que para color:
                  : - Color Blanco --I transistor saturado --> e-
                                                                n     al inversor "O" --> RAx = "1"
3 linea
!rda
                  : <Noesti encima de ia Iúiea negra, se ha salido de la pihta)
                  ; - Calor Negro -+i en cortc --> entrada al inverwr "1 " -2
                                      @amistar
                  ; (Esti encima de la linca negra. wta dentro de La pista)
                                                                                                -  "O.





                              -CONFIG -CPOFF & -WDT-OFF & -PWRTI-ON & - X u S C
                              LIST    P= 6FS4A
                                        1
                              INCLUDE <P16FX4A MC;.

                  #DEFINE SensorDcrecha         PORl'&O                 ; Scnsor optico Dcrccho.
                  #DEFINE C e ~ ~ l ~ u i e r d PORTA, I
                                                a                       ; Sensor bptico Izquierdo.



                              OKG      o
                  Inicio
                              bsf      STATUS,RFO                      ; Selecciona Banco 1 de registros.
                              bsf      SeusorDerecha                   : Estas líneas se coiifiguran como entra&
                              bsf      SensorIquierda
                              clrf     PORTB                           , Liiu líneas del Puerh B se configuran como salidas.
                              bci'     STATUS.RP0                      ; SeleccionaBanco O de regish-m.
                  Principal
                              movlw    b'OMK!i110'                     ; P m girar a la derecha.
                              bffis    SensorDerccba                   ; ¿Ha salido por la krecha?, ¿detecta blanco?
                              goto     ActivaSalida                    ;No,el detector derecho c d cncirna de la lima
                                                                                                 s
                                                                       ; nm gira a la derecha.
                                                                          e
                              movlw    b'00000111'                      : Para girar a la 
izquierda.
                              btfss    Sensorlzqiiierria                : ¿Ha saldo también por la izquierda?
S        AIICROCON I'K0LAI)OR PIC'I 6F84. UESARRCJI .LO DE PROYECTOS                                         G lb MA




                     kovlw        b'0000 1 1 1 1'             ;No, estaen el bde.derecho. Sigiiz recto.
        Activasalida                                                                                                                    Para ci
                     movwf        PORTB                                                                                          tipo SFH511(
                     goto         Prbcipal                                                                                       figura 32-19,
                                                                                                                                 El esquema cc
                     EN¡


        33.7.3 Estrategia a seguir para un robot detector de baliza
                Nuestro rnicrobot "Trasto" cn este caso debed detcc~ar una señal infi-arroja
        modulada a 38 kHz que emitc uti circuito como el de la figura 32-20 (capitulo 32) y
        dirigirse hacia ella.

b                                                                                 M1
                                                                                  DERECM


                                                                                           M2
                                                                                      IZQUIERDA
                      R1          R*
                      IW          loa           O                                                       5v

r
                     RESEi


                                                S



                                                                       :   OUT+




                                                                           tN2
                IC 1                                     T1
                PICIBFMA
                                                                                                             4011-

1   ,

                           -                -
            C        5v                5v           5v                                             5V




                                                                                                                                33.7.4 Pro
                                                                                                                                      Si se h,
                               SENSOR
                                                                                                             SENSOR
                                                                                                             IZQUIEROO
                                                                                                                                fácilmente el p~
                               DERELUH
                 - -
                 - -

                                                                                                                                ; Programa de oonh
                                                                                                                                ; una sena1 infmrroj
                    F i p r a 33-73 Esquema del i~iict-ubot
                                                          TTCLTEO lus sensor-es de i~frarrojo,~
                                                               con
Para conseguirlo añadiremos eil el frontal de nuestro microbut dos sensores del
                 tipo SFH5110-38 montados como detector de sefial infrarmja, se@ se indicaba en la
                                                                         y
                 figura 32-19, y que denominaremos ~ e n s o r ~ e r i c h oScnsorIzquierdo, rcspcctivamcnk.
                 El esquema completo es el que se muestra en la figura 33-23.

                        La estrategia que vamos a seguir es la siguiente. Si los dos sensores detectan la
                 señal de la baliza el rnicrobot dcbcrá desplazarse cn línea recta y por 1 tanto, las dos
                                                                                             0
                 ruedas deberán de girar en sentido de avance. En caso contiarici se coiii~~izieba sólo el
                                                                                                    si
1
1   infrarroja   ScnsorIzquierdo detecta la sefial infrarroja, en Caso afirmativo el niicrobot dehwá girar a
pirulo 32) y     la izquierda hasta que el SensorDerecha detecte la señal, por lo yiie la nieda derecha
                 girará c sentido de avance y la izquierda en sentido de retroceso. Por el coiitrario, si
                        m
                 Sensorlzquierdo no detecta el haz infrarrojo modulado se conipnieha si lo hacc el
                 SensorDerecho, en caso afirmativo el robot gira a la derecha. haciendo girar la rueda
                 izquierda en sentido de avance y la derecha en sentido de retroceso, h s a que     at
                 Sensorlzquierda detecte la señal infrarroja. Se repite el ciclo de fonna continua. La figura
                 33-24 aclara los movimientos que seguid cl microbot.




                                                                                                   Sensorlzquierda
                                                            senwrlmuierdas n s o r ~ e r s c n a
                                                                        ~                                        SensorDerpcha




                                                                 e    i i r Ikt~gnr Id baliza
                                     Figrrn 22-24 Estraregiu u s
 ~ ~ p~im        n


                 33.7.4 Programa de robot detector de baliza
                       Si se han seguidu los razonamientos del apartado antetior se comprenderá
    CENSOR
    IZQUIERDO
                 fácilmente el programa Robot-Bal im-O 1.abm.



                 ; Programa de contml para Micmbot TRASTO el mial detecta una baliza que genera
                 ; una seRal infratmjii moduladaa 38 kHz.
rojos
;Los swiswes fipticosSFHSI 10 están situados en fa parte h t a l del microbot
; El saisor de la daecha eh2á cconmrln a RA2 y el &ensor 1 lzquicrda a RA3.
                                                         de s

; Cuardo el smsor SFHS 110 detecta luz infranoja inodulada, propiirciona un nivel bajo en su
;línea de sdida.

; El progrnma adopta la estrategia sguiente:
; - Si no se detecta la baliza por ningún semiir el niicrnhnt giw ri~mpre la dcrecnn.
                                                                            a
; - Si los dos msores dztectln prtdora el microbot avanza Eacia adelante.
; - Si se detecta porbdora en el m s o r de la izquierda y no en el de ia derecha el
;     lmicrobot gira a la izquierda hasta que los dos smsores detecten la baliza.
: - S: sc detecta portadora en e [ sensor de la derecha y DO en el de la izq~ierdael
;     microbot g~ra la d w h a basa quc 10s dos sensores detecten la baliza.
                     a
I
ZC)NXVkUA['us ***X***************&***W******C***'U"L'*"'****+**********************+*Q***Q*




#DEFINE SzrwrDzrccha           POKI'A,Z            ; Sensor Derecho.
#DEFINE SensorIzquierda        PORTA,3             ; Senwr Izquierdo.




            ORG
Inicio
            bsf                                    ; Selecciona Banco 1 & regisbus.                     m   El sct
            b6f                                    ;E t s lineas se coniigiran como enlmda.
                                                      sa
            bsf
            c lrf                                  ; Las líneas del Puerto B se configurancomo didas.
            bcf                                    ; Selecciona Banco O de registros.
Principal
            btfsc   SensorDerecha                  ; i,Ha detectado sekí      la h e c h a ?
            gu
             o      Ver-Izquierda                  ; No mibe por la derecha.
            brfsc   Senuo~lzquicrda                ;Si, Ltarnbitn xid pui la izquierda?
            &Oto    GiroDmcha                      ;No, solo sella1 por la derecha, gira a del-&a.
            mavlw   bilWOO11 1 1 '                 ;Sí, recibe por los dos sensores. Sigue recto.
            goto    AcrivaSalida
Ver-Izquierda
         brfvc                                     ; Por ia derecha no r ~ j k,Y por I izquierda?
                                                                               .      s                 i   1nsti-u
            gota                                   :Tampoco, ni por la derecha ni por la inquisirla.    i   LOS da
Girohquierda
            movlw                                  ;Gira a la izquierda.
                                                                                                        m   Dispon
            got@                                                                                        m   La pila
GiroDer~ha                                                                                                  Dispr
            moviw                                  ;Gira a la derecha.
                                                                                                            deshab
AdvaSalida
        movwf                                                                                                    O
            iwo                                                                                                  O
                                                                                                                 O
                                                                                                                 O
I
                                                                                                                     j:
                                                                                                                     :I




                                                                                                                          t




                                                                                            APENDICE A 


                                                                                                                          I




                                   CARACTER~STICASTÉCNICAS DEI,                                                          1
                                                      PIC16F84A                                                          1.




               1
               1

               i
                   <:*HAC.IKKÍS ~ I C * SDE L*        <:wmsc
                       La arquitectura de la CPU es del tipo 
Haward.
                                                                                                                 i
                                                                                                                     l
                                                                                                                     1
                                                                                                                 0I 1I
                                                                                                                 8   1


                       El set de irisiiiii;ciriiies rieiic 35 instr-uccioncs de 
una wla paliibra.
                                  
                         3
                       Todiis las iiistrucciiincs duran un 
ciclo máquina, excepto las dc salto que duran dos.
salidas.               Velocidad de opcracion:
                           o 
 D c 20 MHz, para la frecuencia del reloj de entrada.
                           o DC - 200 ns, para la duncibn del ciclo inaquina.
                       Frcctiericia rnáxitria dc funcior~irnientcide 4 MHz (PIClbF84A-04) 6 20 MHL
                       (PIC L 6FK4A-201.
                       Memoria de príqrama iipn Flash de 1024 pusiciuncs. 

                       Menioria RAM dc datos de 68 
bytes.
                                                

                       Meinoria EEPROM de datos 
dc 64 byfes.
                   i                          una
                       Instriiccioncs con 
 longitud dc 14 
bits.
                       Los datos ticiien una longinid de 1 bytc (8 bits)
                                    

                       Di.;pne de 15 registros de funciones especiales. 

           1           La pila tiene 8 nivelcs de profundidad.
                                          

           j       m   Dispot~cde cuatro fuerires de iiiterrupcion, 1 cuales pueden ser habilitadas O
                       deshabilitadasindependientemente por sofrware:
                                                                                 s

                            o Extenia por el pin 
RBOANT.
                           U     Por dcsbortlamientu del Timer O .
                                                               

                            o Por cambio eri las liiieas PORTR <7:4>
                            o Por finalizacion de cscntiira de Iii memoria EEPROM de datos.
1

    ENCAPS ULADO DIL-18 





                        Figura A -1 Microcon~o/udor K I 6FMA
                                                  P

    CAR~CTER~STICAS LOS PERIFÉRICOS
                 DE

       Disponz de 13 liricas de entrad$ salida con control individiial de dirccción.
       Alta capacidad dc corriente por terminal. Proporciona suficiente corriente para
       gobernar iin LED:
           o Consume 25 mA por pin cuando csta a nivel bdjo.
           o Proporciona 20 mii por pin cuando csbi n nivel alto.
       Dispone de un Tcrnporkador/Contador de S bits(TMRO) con división de frecuencia
       programable.




       La memoria Flash d programas admite hasta 1.000 ciclos de borrado y escritura.
                         e
       La memoria EEPROM de datos admite hasta 1.001).000 de ciclos dc borrado y
       escriblra.
       Ciwantiza una retenciiin de datos para la mcmoria EEPROM de datos superior a los
       40 años.
       Se puedc programar en el circuito vía sene mediante dos pines, ICSP (In Circ.uil
       Serzul Progrunrii?in~)
       Puwer-On Re.wr (PO N , Po wer- C'p Timer (PWRT), Oscilla~urSturt- Up Titner
                                 )
       (OSTI                                                                                    CARACTEI
       Dispone de un temporirador Watchdog {WDT) con su propio oscilador RC para un
       funcionamiento fiable.                                                                       Tensii
                                                                  de
       Priltec.cicin de código dc proparno mcdinntc la activa~irjii un bit de proteccihn.           (excep
       Mudo de bajo consumo SLEEP.                                                                  Tmcii
       Tipo dc oscilüdor seleccionable.                                                             Tensic

                                                                                            /
I RI-MA
                :                                             APENDICI; A: C A R A C T F . R ~ S T I C ~ I S ' T É C ~ ' ~ C ~ S PlclIiFX4A
                                                                                                                            nEL               567



               -4RQUITECTURA INTERNA

                                                                       MEMORIA M DATOS                               MEMORIA DE
                                                                                                                   PROGRAMA CON
                                                                           (SRAMI                                  1024 POSICIONES
                                                                                                                        (FLASH)
                                                                                                                     OOOhl    RESET
                                                                                                                    -

                    RA 1
                                                                              PCL
                                                                                             -.

                   RA3
                   R.4




                                                  ----. -,
                                                      J
                                                                 DBh,        EEDbTA
                                                                                - ..
                                                                                   .          ---
                                                                                         EECONI
                                                                                                        181hli
                                                                                                          e
                                                                                                          &
                                                                                                              a
                                                                                                              u
                                                                C
                                                                 09h
                                                                       1.-   EEAOR       EECON2          8%




1.

riente para


                      DATOS
                     EEPROM

                                          -1
                                      /*t.-.
                                        3€n
                                                          -      BUS D E I
                                                                 DATOS                 CPU        j
                                                                                                      BUS DE INSTRUCCIONES
                                                                                                              r
                                                                                                                              1
                                                                                                                             PILA




:ntiua.            VSS
                                              r---                               -- -NIVEL 5


                 p - , k - " ; " " " ~ ~ l M +FE 1
                                           1 Ey
                                                   ---N                              I

 borrado y
                 MCLR


mior a los

(ln Circtdi~
                                               Fipnr .4-2 Arquitectura ipr/~<r-ncr PICI 6Fb4 1
                                                                                (le/
- 0 p Timer
               CARACTER~                MÁX I MAS ADMISIBLES
                       STICAS ELECITRICAS

                           Tensirjn de cualquier pin respecto de Vss
                           (excepto V,,, MCLR y RA4) ...... ................. .......................... -0.3 V a (VD,+-0. 3 V)
                           Tcnsion en VD, rcspccto dc Vs, ........................................................... -0,3 a +7,5V
Tcnsiiin en RA4 rcspectn de Vss ...................................................... -O,> a +X,5V
             . . .
                                             .
Potencia de disipaciiin tnkl ....................   ....................................... 8           mW
Máxirna corriente por c l pin Vss ................................................................. 1 50 mA
  ..
Maxima corriente por el pin VDD ................................. . .       . .............. 1 m.4
                                                                               .
Máxima corriente dc salida e i i halo por cualquier pin 1IU............................ 25 mA
Mixima corriente de salida zti alto por cualquier pin I/O ............................ 20 i r i A
Máxima corrieiite de salida eti bajo por el conjtinto dcl Puerto A. ............. ,.S0 inA
Máxima corrienic de sal ida en alto por el conjunto dcl Puerto A ................. 50 rnA
Maxima corrietiie dc salida en baio por el conjunto dcl Piiertri 8 .............. 1 50 mA
Máxiinn corriente dc salida en alto por cl conjunto dcl Puerto A-.............. 1 00 mA




                                                                                                                         El PIClt
                                                                                                                   instrucciones. E
                                                                                                                   chdigo de o p e
                                                                                                                   instrucciones de
                                                                                                                   la Tabla B-l.

                                                                                                                         La nomen
                                                                                                                          Eii las in
                                                                                                                           O    Si   I

                                                                                                                                W.
                                                                                                                           o Si i
                                                                                                                         En las in
                                                                                                                         del bit d
                                                                                                                         siempre t
                                                                                                                         Eii las ir
                                                                                                                         literal qu

                                                                                                                         Las 35 in:
                                                                                                                  RISC, que no so1
                                                                                                                  instrucciones cd
                                                                                                                         Las insti
                                                                                                                         tiempo de

                                                                                                              i          de salto, (
                                                                                                                         Las inst
                                                                                                                         utilizar ci
APENDICE B



                     REPERTORIO DE INSTRUCCIONES 



       El PIC16FR4 csti compuesto por una LPU de tipo RlSC con un jucgo de 35
instruccicincs. En los 14 bits que forman las instnicciones máquina del PTC se incluyen el
código de operacibn propiamente h c h u y los o p e d o s , en caso de que haya. Las 35
insmiccionzs de quc consta cste microconlrolador son las que se muestran clasificadas en
la Tabla B- t.

      La ntimenclntiira qiie ritiliziin estas instrucciones cs la si~iicnte:
       En las instrucciones la letra f representa un registro y d representa el destino:
        o Si d es "O" el resultado dc la operación se sitúa en el registro de trabajo
              W. 

         ci   Si d es "1" el resultado se sitia en cl misino registro f. 

       Eii las iiismiccic!nzs que manejan bits. b representa en binario la posición (0.7)
       del bit deseado dentro del byte, C representa el byte o registro. El bit O es
       sietripre el bit de tnenor peso.
       En las instrucciunes con literales y de control Ií reprzsenia una constante o
       literal que según Ios casos puede ser de 8 u 1 1 bits.

      Las 35 instrucciones del PIC16FX4 cumplen las caracteristicas de un proccsador
RiSC, que no sOlo supone tener iui juego de instnicciones reducido sino que, además, sus
instrucciona cuniplen las siguientes caracteristicas:
       Las instrucciones son simples y rápidas. Todas las instnicciones tienen un
       tiempo de ejecución de un ciclo máqiiina (4 ciclos de reloj) a excepción de las
       dc salto, que tienen un tiempo de ejecuci6n de 2 ciclos máquina.
       Las instrucciones son ortogonales. Casi todas las instrucciones pueden
       utilizar cualquier operai-ido.
570



      m
          MICKOCONTROLADOR PIC16FIW DESARROLLO DE PROY ECl'CiS


            La longitud de las instrucciones y los datos es constante. Tcidns las
                                                                                        D RA-MA




            instrucciones tienen una longitiid dc 14 bits y los datos una longitud dc 1 byte.
                                                                                                   T
    1f         Dirección del registro ( de 0x00 hristu Ox7F)

               Posición de un bit dentro d l i s t r o dc Y bits
               Liteial, dato constante o etiqueta
                                     que puede ser"0" o " 1 "
                                       si d = O, el resultado sc guarda en W, si d
               resultado de la operación se guarda en el registro f. El valor por dcfccto es




 )             1 Bit de Power Down                                                             1
 1
     [I        1 Opcional
                        -

     (1        Contenido                      -

     3         Sentido clc la transferencia
               Campo del bit de un registro                          I


SET DE INTRUCCIONES DEL PlCIóFS4



                                     Instrucciones de CARGA
     clrf      f      00 3 (t)                         no ooo i I fff t~            z
     clnv                +
                      00 (W                            0000010xxxxxxx               z
     movf      f,d       +
                      (f) (destino)                    00 1000 dm fVf              Z
     movlw     k      k 3(W)                           1 1 OOxx kkkk kkkk       Ninguno
     movwf     f          +
                      (W) (f)                          00 0000 1 ml ~ f f       Ninguno
1                                       Instrucciones dc BIT
                      Pone a O el bit 'b' del rcg, 'f. 01 OObb bfffffff
                      Ponc a 1 el bit 'b' del reg. ' f . 0 O lbb bflT mf
                                                          1                     Ningiino
:. Todas las

d de 1 byte.

                                         IiU U1 11dtEfW
                                         00001 I dfffffff
                                         00 1010 dmfm
                                         I 1 Ilnx k k k k k m




                                         00 0101 dmm
                                         00 1 O 1 dfff ffff
                                               0
                                         11 1000 kkkk kkkk
                                         00 o100 m m

               del Carry   + (destino)




$1
Ninguno
r    572



     addlw
           hfiCROCONTROLADOR PICI AFM. DESARROLLO DE PROY CCTOS




     Sintaxis:        arldlw k
                                                                Suma el literal k con w
                                                                                          K
                                                                                         ~1   A-~IA
                                                                                                      7

                                                                                                          !
                                                                                                              I


                                                                                                              I
                                                                                                                  c,~ 4 . 4 ~ 4


                                                                                                                  Ejemplo:
                                                                                                                  Antes im
                                                                                                                        r u
                                                                                                                  Después insl

     Operandos:       O 5 k I 255
                        
 

     Opeiacihn:     (W)+ k (W)
     ~ l a afectados: C, DC, Z
           p
                                  +
     Código de OP :   m r K m                                                                                     Sintaxis:
     Descripciiin: Suma el contenido del registro W al litcral 'k ' y almaccna el resultado en
                      W. Si se produce acarreo el flag C se pone a "1 ".                                          Operandos:

     Ejemplo 1:                   addlw 0x15               ;(W)+Ox157(W)                                          Operación:
     Antes instrucción:           (W)=OxiO, y C = ¿?
                                                  
                                                               Flags afectar
     Después instniccibn;         (W) .=0x 10 + 0x1 5 = 0x25 y C = O.                                             Código de O
                                  (W)=b'00010000' +b'~O10101'=b'0010 0101'                                        Descripción:


i'   addwf                                                   Suma w con el registro f
I
:                                                                                                                 Ejemplo:
     Siiitaxis:       addwf f,d                                                                                   Antes i s
                                                                                                                        nm
     Operandos:       0565127                                                                                     Después inst
                                                                                                          !
                          d E [Q,11
     Operacion:       (W)t(t)+(destinol                                        (Add W andb
     Flags afectados: C, DC, Z
                                                                                                                  bcf
     Códigodr'OP: [ 00 0114dfff Imf 1
     Descripciori: Suma el contenido del registro W al contenido del registro ' y
                                                                                     - f
                      almaccna el resultado en W si d = O, y en el registro f si d l. Si se
                      produce acarreo el flag C se pone a " 1".
                                                                                                                  Sintaxis:
                                                                                                                  Operandos:

     Ejemplo:                     addwf Registro,O       ; (Regisiro)+.(W)   + (W)                                Operación:
     Antes instniccibn:           (W)=O?c17, (Registro)= OxC2, y C =¿?                                            Flags afectad
     Después instniccion:         (W} = OxD9, (Registro) = OxC2, y C = O.                                         Código de O
                                                                                                                  Dcscripcion:

     andlw                                                                w AND Literal k                         Ejemplo:
                                                                                                                  Antes i s
                                                                                                                        nm
                                                       -              -                  -
                                                                                                      I           Después insb
     Sintaxis:
     Operandos:
     Operación:
                      andlw k
                      O5k5255
                      (M:)AND (k) (W)
     Flags afectados: Z
                                                                    (.&VD Literal wilh ?+y
                                                                                                      l
                                                                                                                  bsf             ~
                      1
     CódigodeOP: 11 100-                                                                                          Sintaxis:
     Descripción: Efectúa la operación AND liigica entre el contenido dcl registru W y el                         Operandos:
                                                                                                      I
                      literal 'k'. el resultado se almaccna en W.
-
                  L', M-h4A                                       APFNDIC'E 0: KEPERTORIO DE INSTRUCCIONES í 7 ?




:on W 	           Ejemplo:                  ruidtw b'01011111'         ; (W)
                                                                          	    AND b'0101111~' + (W).
                  Antes instnicción:        W) 	 b'l01000ll'
                                             =                       y z=¿?
                  Después instnicción:      0 = b'00000011' y Z = 0.

YUI 10   W)       andwf                                                                            W AND f


ultado cn         Sintaxis: 	      andwf f,d
                  Operaiidos:      O I f 5 127
                                   d E [O,]]
                  Operación:       (W) AND (f) (destino)                                    (A ND W withd
                  Flags afectados: Z
                  CÓdigodeOP: 0 0 1 0 1 0l)dffT ffK    1      1
                  Descripción: Efectúa la operación AND lógica entre el contenido del registro W y cl
                                   contcnido del registro 'f y aimxetia el resultado en W si d = O, y en ' f
                                   si d = l .
                  Ejemplo:                 andwf Registro,l     ; (W) AND (Registro) 3 (Registro)
                  Antes instruccidn:       jW)=b'0010111', (Registro)=b'11000010' y Z = i ?
                  Después instniccion:     (W) = blOO1O 11', (Regrstro)= b'00000010' y Z = 0
                                                       1                                    .


                  bcf                                                                   Borra un bit de f

                  Sintaxis:        bcf f,b
                  Operandos:       O 5 f < 137
                                   Ci<b57
                  Operación:       O 3 (f <b>}
                  Flags afectados: Nin uno
                  Ciidigo de OP : 
m m         f  f  f            l
                  Descripcióri:    Pone a cero el bit i~íimero del registro ' f . 

                                                             'b'
                  Ejemplo:                 bcf FlagReg,7           ;O      + CFlrigReg,7)
                  Anks instnicción:        (FlagReg) = b'11000111'.
                  Después instrucción:     (FlagReg) = b'0 100011 1'.


                  bsf                                                                  Activa un bit de f

                  Sintaxis:        bsf f,b
                  Operandos:       O I 5127
                                      f
                                   OIb17
                  Operacióil:      1 3 (f<b>)
T

574   MICROCTJNTROLADOR PIClbFX4.DESARROI.1.O DE PROYCC-I'OS                                     d Ri-Mi




Flags afectados: Ninguno                                                                                             Ejemplo:
                 1         1
Código de OP: 01 Olbh ] bmTrtt~                   1                                                                          A
Descihipcion: Pone a uno el bit iiumero 'h' del rcgisíro ' f .                                                               F
                               bsf FlagReg,7                        ; l i (FlagReg,7)                                        V
Antes Instniccion;             (FlagReg) = b'0 10001 11 '.
Después Instnrcci6n:           (FlagReg) = ti' 11OOO 111 '.                                                          Antes instr
                                                                                                                     Despuks ir
                                                          Test de bit de f y salta si es cero

Sintaxis:        btfsc f,b                                                                                           cal1
Operandos:       O 5 f 5 127
                 O<b<7                                                                                               Sintaxis:
Operación:       Salta si (f<b>) = O                                                                                 Operandos
Flags afectados: Nin                                                                                                 Qcración
Cbdiga de OP : * f ]
                  m 'm
Descripción: Si el bit nimero b del registro f es cero la instrucciun cliie sigue a ésta sc
                 ignora y se trata como un "nop". En cste caso, y s81o en este caso, la                              FLags afect
                 instrucción h$rc precisa dos ciclos para ejeciitarsc.                                               COdigo de
                                                                                                                     Descripciii

         Aqui btfsc            Flag,]           ; Si el bit 1 del registro Flag es cero salta.
         Falso goto            ProcesoX         ; Ha sido uno.                                                       Ejemplo:
         Verdad                ...               ; Ha sido cetci.                                                    Antes instr
                                                 ...                                                                 Despuks in
Antes instmcción:              (PC) = Dirección de 
"Aqui".
Despues instrucci6n:           Si el bit Flag 
<1> = O P C ) = Dirección de 

                                                                            "Verdad".
                               Si el bit Flag 
<í> 1 (PC) = Dirección de "Falso".
                                                   =
                                                                                                                     clrf
                                                          Test de bit de f y salta si es uno                         Sintaxis:



Operandos:           O 5 f 5 127                                                                                     Flags afect
                     OSb57                                                                                           Codigo de
Operación:           Salta si (f<b>) = 1                                (Sil Te3l.J; Skip I f Si.)                   Descripció~
Flags afectados: Ninguno
                                     1
Código de OP : [ 0 1 1 1 l hb bfff 1 ffff             1                                                          l

Descripcióii: Si el bit niimero b del registro f es imo la instnicción quc sigue a esta se
                 iginra y se trata como un "nop". En esrc caso, y sdlo en este caso, la                              Antes instr
                 instniccibn Iitfss precisa dos ciclos para ejecutarse.                                              Despiih in

                                                                                                             I
2   IJ..,I,   ,S:   RA-M*                                         APMDICE B: REPERTORIO DE INSTKLIC'L'IONES 575


                          Ejemplo:
                                        Aqui     btfss    Flag,l          ; Si el bit 1 del registro "Flag" es uno salta.
                                        Falso    goto     ProcesoX        ;Ha sido cero.
                                        Verdad            ...             ; Ha sido uno.

                          Antes instrucción:              (PC) = Djreccibn de "Aqui".
                          Después ins~cción:              Si el bit Flag <1> = O, (PC) Dirección de "Falso".
                                                                                         =
 es cero                                                  Si el bit Flag < I > = 1, (PC) = Direcci6n de "Verdad".

                          cal1                                                                 Llamada a Subrutina

                          Sintaxis:       cal1 k
                          Openndos:       O 5 k 5 2047
                          Opcraciun;      (PC'}+I TOS     +                                    (Crr//Subroictine)
                                          k i (PC~lO:O>),
!ue a ésta se                             (PLLATli<4:3>)i (PC< 1>)  12:1
:ste caso. la             Flap afectados: Nin uno
                          Cbdigo de OP : b ] ~ d d < w
                          Dcscripcihri: Salvaguarda la direcciiín de vuelta en la Pila y despiiés llama a la
                                          siibrutina situada cn la dirección cargada ea el PC. Tarda dos ciclos
salta.                                    máquina cn ejecutarse.
                          Ejemplo:                 Aqui cal1       Alli
                          Antes instnicción:              (PC)= Dirección de "Aqui".
                          Después instrucción:            (PC) = Direccibn de "Alli".
                                                          (TOS) = Dirección de "Aqui" + 1 .

                          C        M                                                                              Borra f

 es uno                   Siiitaxis:             clrf f
                          Operandos:             O 5 f 1 137
                          Opcraciiin:                 +
                                                 OOh (0                                                             (CiearJ
                                           I+Z
                          Flags afectados: Z
                          CMigodeOP: ~ O ] U M I I R
                                             D                  1    lmfl
                          Descripción: Se borra el contenido del registro 'f y el flag Z se activa poniéndose a
                                        1".      LG




ie a ésta se              Ejemplo:                        clrf FlagReg                      ;O     (FlagReg).
;te caso, la 	            Antes inctnicción:              (FlagReg) = L?   y Z = ¿?
                          Después instmcciCin:            (FlagReg) = 0x00 y 2 = 1.
-
      576   MICROCONTROLADOR PIC 16F84. DEShRKOLLO DE PROYECTOS                             v ~.-h4~




      C ~ W                                                           Borra el registró W


      Sintaxis:        clnv
      Operandos:       Ninguno
      Operación:       O h (W)
                        O      +                                                      (Cllear W)
                           1+z
                     Z
      Flags afe~tados:
                       1         1
      Código de OP : 00 O001 1 Oxxx 1 x x u        1
      Descripción:   El registro de trabajo W se carga con OOh. El flag Z se pone a " 1".
      Ejemplo:                       clnv               ;0   + (w)
      Antes instrucción:             (W)=¿?  y Z=i?
 m

l!
 i    Después insmcción:             (W) 0x00 y Z = l. 

 b                                                                                                          Sintaxis: 

:!
                                                                                                            Operandi
,]
 .i
      ch~dt                                               Borra el Timer del Watchdog
 '1


      Sintaxis:            clrwdt
 I    Operandos:       Ninguno                                                                              Código
'1
      OpcraciGn:       OOh WDT +                                        (C'leur Wmclidog Timer)
                       O 3 WDT prescalei-

                           l+PD
                       - -
      Flags afectados: TO , PD
                       1
      CiidigodeOP: 00 ~ 0 0 0 0 ( 0 1 1 0 ~ 0 1 0 0 ~
      Descripción: Se borra el Tirner del Watchdog (WDT). Los bits        5y         del rcgistro
                      de estado se ponen a " I ".
                                                                                                            Sintaxis:
                                     (Timer WDT) = ,?                                                       Operandc
      Después instnicciiin:          (Timer WDT) = 0x00
                                                                                                            Operaciiii
                                               5
                                     bit de estado = 1
                                                                                                            Flags afe<
                                     bit de estado  =1                                                      Codigo di
                                                                                                            Descripci
                                                                           Complementa f


                                                                                                            Ejemplo:
      Operandos:           O 5 f 5 1 t7
                           d 6 [0,1]
      Operación:           (7+ (destino)
                             )                                                   (Cumplt.rnent$
nW         Flags afectados: Z

           Descripciiin:   Hace el complemento del contenido del registro 'f bit a bit. El r.esultado
                           se almacena eii cl registro 'f si d=l y cn cl registro W si dlO, en este           

                           casci 'f no varía.
twi. 113   Ejemplo:                 comf Regl ,O                     : (Real 1 CW)
                                                                               3
           Antes instnicción:       (Regl) = b'00010011',(W) ¿'?
                                                               =        -
           Después instmciiún:      (Reg 1) = b'00010011', (W) = hvl 101 1
                                                                   1          6   3   (invertido unos y
                                    ceros') Y Z = O.




           Sintax 1s:      decf f
           Operandos:      tl<f5127
                           d~ 10,11
           Operacibn:      (f- 1l + (destino)
           Flaes afeciados: Z


                           almaccna en f si d=l y en W si d=O, eti este caso 'f no varía.
           Ejemplo:                 decf Contador, 1       ; (Contador) - 1       + (Contador).
           Antes irtstniccibn;      (Contador) = 0x0 1 y Z = i?
           Después instniccióii:    (Contador) = 0x00 y Z = 1.




           Sintaxis:       dccfsz f,d                                                                         I
           Operandos:      0 5 f 5127
                              E [O911
           Operación:              +
                           (f) - 1 (destino); salta si el resultado es "0".                    L'3iiji if0)
                                                                                  (Decrc!mcnt,f;




ita f


           Ejemplo:
                           almacena en 'f si d-1 y en W si ti*, en estc caso, 'f no varia. Si e1
                           resultado del decrcinento es cero se ignora la siguieritc instrucción y eti
                           ese caso la instnicci8n ticric uu dwaciiin de dos ciclos.
                                                           t                                                  1
                                                                                                              t

                                    Aqui        decfsz    Contador, 1
578   MlCROCONTROLADOR PIC 16384. DESARROLLO DE PROYECTOS                           i_"   m-MA




Antes instruccián:         (PC) Dirección de "Aqui". 

                              =
                                                                                                  incfsz       1
Despds instnicciiin:       (Contador) = (Contador) - I y además:
                                       

                                                                                                 Sintaxis:
                           - Si (Contador) = O, (PC) Dirección de "EsCero".
                                                    =
                                                                                                 Operandos:
                                         +
                           - Si (Contador) O,(PC) = Direcci6n & "Aqui" + 1.
                                                                                                 Operación:
g0t0                                                           Salto incondicional               Flap afcctadc
                                                                                                 C:ódigu de OP
                                                                                                 Descripcihn:
Sintaxis: 	      goto k
Operandos:          k
                 O I 5 2047
Operación:       k+(PC<lO:O>                                      (Unconditional Branchj
                 (PCLATH<4:3>)+ ( P C 4 2: 11>)
Flags afectados: Ninguno                                                                         Ejemplo:
                1      1       1
Código de OP: 10 1kkk kkkk kkkk 
    1
Descripción: Salto incondicional. Carga bits O al 10 de la constante 'k' 
m cl(PC) y los 

                 bits 3 y 4 del registro PCLATH en los 11 y 12 del PC. Esta instrucción 

                 se ejecuta en dos ciclos máquina. 

Ejemplo:                   goto Principal 	                ; Principal   + (PC)                  Después ins
Antes instnrcciim:         (PC) ¿?
                               =
Después insbuccibn:        (PC) Direcciiin apuntada por la etiqueta "Pri~~cipai".
                               =


incf                                                                      lncrernenta f

Sintaxis: 	
Operandos:
                 incf f
                 O 5 f 5 127 	
                                                                                                 4
                                                                                                 iorfw
                                                                                                 Sintaxis:
                                                                                                 Opcrandos:
                 d~ CO,ll
Operacibn:       (f) +l+   (destino)                                          (lnerernentj       Operación:
                                                                                                 Flags afectado:
Flags afectados: Z 	
                 1
CbdigodeOP: 00 1101OIdfW IPfff                1                                                  Código de OP
Descripción:     El contenido del registro 'f se incrementa en una unidad, si d=l el             Descripción:
                 resultado se almacena en ' f , si d=O el resultado se alrnaccna en W, en
                 este caso el resultado de 'f no vana. 	                                         Ejemplo:
Ejemplo1 :           incf Contador, 1     ; (Contador) + l          + (Contador}.                Antes instmcci
                                                                                                 Después instni
Antes 	
      instrucción:   (Contador) = OxFF y Z = ¿?
Despds instniccio~~: (Contador) = 0x00 y Z = 1.
R 4 hlA
                       
                                       APFNDIC'L   B RFPFK 1 OKIO DE INSTRL1CCI(IUES 570


                 ¡~C~SZ                                lncrementa f y salta si el resultado es O                        1
                 Sintaxis:        incfsz f;d
                 Operaiidos.      O I5 1 27
                                      f
                                  d E [0,1]
                 Operación:                                                         I,'
                                  {f'i~1~(destino);siiltasiclrcsultadocsO. (Jn~.remmtt Skip ipjtl)


                 Deccripcioii:    Incrementa cl contenido del registro ' f en una uniclüd. El rcsiiliado se
                                  almacena cii 'f si d-1 y en W si d=O, en cstc caso 'f no varía. Si el
                                  resultado del incrcinento es ccro se ignora la siguiente jns(riicciÓn y, cn
                                  ese caso, la inslrucción ticne una duración de dcis ciclos miquitia.
                 Ejemplo:                                                                                          I
                                          Aqui        incfsz Contador, 1                                           I!
 el (PCJ y los                                        goto   Bucle
a instruccibn                             Continua             ....
                                                               ..,.                                                I
                 Antes instrucción:       (PC)= Dirección de "Aqui".
                                          (Contador) = !Contador) + 1 y además:
                 Dcspués instmccjon:
                                                                            -
                                          - Si Contador = O (2561, (PC) Dirección de "Continua".
                                          - Si Contador # O,      (PC) = Direccion de "Aquí"+l .


                 ¡ O ~ W                                                     OR entre W y el filteralk

                 Sintaxis:        iorlw k
                 Operandos:       O If 5 255
                                     

                 Operaciiin:      (W)CiK(k)+(Mr)
                 Flagsaolctíuios: Z
                 Código dc O P : p f l m k k k m
id, si d-l el    Descripción: Efcctua la opcraciiin lógica OR entrc c l contenido dcl registro W y cl
:na cn W, en                      literal 'k'. El resultado se almaceila cil ZI registro W.
                 Ejemplo: 
                iorlw b'00110101'. :(W)ORb'00110101'+(W)
                 Antes jnsrnicciiin:
                       
                   (W) = b't0011010' y Z-¿?
                 Después instniccion:      (W) = b'10111111' y Z = 0.
T




58U   MICROCONTRCILADOR PIC 16F84. DESARROLLO DE PROY EC'JOS
                                                       
                               h.m-MA




                                                                        OR entre W y f                   !   Ejemplo:
                                                                                                             Antes ins
                                                                                                             Despues I
Sintaxis:        iorwf f,d
Operandos:       C) 5f l 127                                                                             I
                 d E [O,11
Operación:       (W) OR (f) 3 (destulo)
                                
                                    (Inclusive OR W withj
                                                                                      

Flags afectados: Z                                                                                           Siniaxis:
                 1
CódigodeOP: 00 IOIOllldftT l f t f f         1                                                               Operandc
Dcscripcion:     Efectka la operación lógica OK entre el contenido del rcgstro W y el                        Operacioi
                 ccititztiido del registro 'f. Almacena el resultado en 'f si d=l y en W si
                 d=O.                                                                                    i
                                                                                                         I
                                                                                                             Flags afet
                                                                                                             Código di
                             iorwf Resdtado,O        ; (W) OR (Resultado) (W)+                               Descripci
Antes instrucción:           (Resuhado)=b'00010011', (W)=b'10010001' y Z = ¿ ?                               Ejemplo:
Después instrucción:         (Resultado) = b'00010011' , (W) = b'100 10011' y Z = 0.
                                                                                                         i   Antes insi
                                                                                                             Después i
                                                                     Mover literal a W

Sintaxis:       riiovlw k
Operandos:      O 5 f 5755
Operación:      k    +
                     ( W)                                                (Move Liferal fo W)
                                                                                                             Sintaxis:
                                                                                                             Operando
Flags afectados:Nn u o
                     i g n                                                                                   Operaciór
                 1       1
Código dc OP : 1 1 0 0 u 1 kkkk 1 kkkk       1                                                               Flags afec
Descripcibn:    El registro W se carga con el valor de 8 bits del literal'k'.                                Ciidigo dt
                             movluj Ox5A                     ;SAh+IW)                                        Uescripcic

Despuks instrucción:         (W) = OxSA                                                                      Ejemplo:

                                                                                 Mover f                     retfie
                                                                                                     I
                                                                                                             Sintaxis:
Operandos:       O 5 f 5 127                                                                                 Operando.

Operación:
                 d f [O,ll
                     +
                 (f) (destino)
                                                                                                 i           Operacion

Flags afectados: Z                                                                                           Flags afec
                 1
Codigo de OP : 00 1 1000 1 dfff 1 fKf ]                                                                      Ciidigo de
Descripción:     El contenido del registro 'f se carga eii el registro destino dependiendo                   Dcscnpcii
                 del valor de 'd'. Si d=U el destino es el registro W, si d=l el destino es el
                 propio registro 'f.Esta jnstniccion permite verificar dicho registro, ya
                 que el flag Z queda afectado.
                                                                                                 i
                                                                                                 1
.r? RA-MA                                       APENDITF R : REPERTORIC) DE INSTRrlCCIciNLS 581



ntre W y f 	        Ejemplo:                     niovf PORTA, O           ;PORTA)     +W
                    Antes 	insbuccibn:           (PORTA) = Ox 1A,         (W)=¿? y Z = L ?
                    Después instrucción:         (PORTA) = Ox 1A,        (W)=OxlA y Z = 0


                    m0wf                                                                         Mover W a f

                    Sititaxis:       ~riowf f'
                    Operatidos:      O 5 f 5 1.27
                    Operación:       (W)     +
                                             (f)                                                    (Move W ro,f]
                    Flags afectados: Nin no
                    Código de OP :   *~~fl
                    Descripcióil:    Mueve el contenido del registro W al regisrro 'f. 

                    Ejemplo:                     movwf PORTB                ;       m) i ORm)
                                                                                     ' (P
                    Antes instrucción:           (PORTB)=¿? y (W)=Ox.CF.
                    Despuks instruccion:         (PORTB) = Ox4F y (W) = Ox4F.
literal a W
                    noP                                                                       No Operación

                    Sintaxis:        tioli
e Literal [o        Operandos:       Niriguno
                    Operacióti:      No operar                                              (;%'o ~ ) ~ ~ ~ ~ u f i u ~ )
                                                                                                0
                    Flags afectados: Nin uno
                    rhdipo de OP :
                    Drscripción:
                                    r o 0 1 ~ m
                                     No realiza operación alguna. Consume un ciclo de instrucción sin hacer
                                     nada.
                    Ejemplo:         noP

    Mover f         retFie                                                      Retorno de Interrupción

                    Sintaxis:        retfie
                    Operandcis:      Ninguno
                    Clpcracion:     TOS 3 (PC)
                                         +
                                     I CiIE
                    Flags afectados: Ningiria
                                     

                    Código 
 OP : r o o 0000 1 0000 1 1M) I
                            de                                  1
3 dependiendo       Descripcion: Carga el PC con el valor que se encuentra en la parte aha de la pila.
i destinu es el
1                                   asegurando así la vuelta de la intermpcibn. Potie a 1 el bit GIE con el firi
io registro, ya 	                   de autorizar de iiuzvo que se tengan en ciienta las interrupciones. Tarda
                                    dos ciclos máquina.
Ejemplo:                    retfie             ; Retorna de la inteinpcion.
Antes instniccion:          (pC)=i4? y GIE=O
Después instnicción:        (PC)= (TOS) y GIE = 1
                                                                                                   Sintaxis:
                                                                                                   Operandos:
retlw                                                 Retorno con un Mera1en W
                                                                                                   Operacion:
Sintaxis:        rctlw
Opcrandos:       I) 5 k   2 255
                          

Opecición:      k
   + (W)                                                                         F l a ~ afec
                                                                                                           s
                TOS 
3 (PC)                                                                        Código de
Flags afeciados: Nin ino                                                                           Descripciiin:
Cbciigo dc o p :$1                 1  1
                        0 lxx LLI<J< kkkk
Descripción:     Carga el registro W con el literal 'k' y después carga el PC ctiri el valor
                             -                                         -


                 que se cncuetitra en la parte superior de la pila, efechiando ¿)si rctorno
                                                                                  uri
                 de subrutiiis. Tarda dos ciclos inlqiiina.                                        Ejemplo:
                                                                                                   Antes instru
Ejemplo:                    cal1          Tabla    ; W contiene el valor de offset de tabla        Después ins
                            ....   ....
                 Tabla                              ;Comienza la tabla
                            addd          PCL,I     ; !PC) = (PC) + (W)
                            retlw         k0
                            rctlw         kl                                                   i   Sintaxis:
                            retlw         k2
                                                                                                   Operandos:
                            retlw         kn        ; Fin   

                                                            de tabla

Antes instnicciiin:         (W)= 0x02
Después instntcci6n:        (W) = Toma el valor de k2.
                                                                                                   Flags afectad
                                                                                                   Código de 0 1
return                                                          Retorno de subrutina
                                                                                                   Descripción:

Siritaxis:       rcturn
Optraiidos:      Ninbwno
Operación:       TOS 3 (PC)                                                                        Ejemplo:
                                                                                               1

Flags aikctados: Nin .uno                                                                          Antes insfmc
                                                                                                   Despuis isr
Código dc OP : ~                           0                         0                     ~             ~ nt
Descripcibn: Carga el PC con el valor que se enciitiiitra en la parte supcrior de la pila.
                 efectuando risi un retorno de subrutina. Tarda dos ciclos miquiria.
Ejemplo:                    retum                   ; Retorna de la subnitina.
Antes instrucción:          (PC)= L'?
Despues instniccibn:        (PC) = (TOS)
rlf                                                                              Rota a la izquierda con el Carry

                Sintaxis:           rlf f,d
                Openindos:              f
                                    O I5 127
                                    d € [O,11
                Operacibn:                       7       6       5       4       3       2       1       0

                                                                                                                 (Rotate Lrfi ftlir augh C,'arry)
                                                                                                                                      -
                                                                     Registro f                              1
                Flags ayectados; C
                CódigndeOP: 00  1        I I I D ~ ] ~ ~ 1
                                                     (ffff
                DescripciGn: Rowión de un bit a la izquierda del conteiiidt) del registro 'f pasando
                                 por el bit de acarreo C. Si d-l el resultado sc almacena en 'tl, si d-0 el
:on 
cl valor                    resultado se almacma en W.
 i un retonio
                Ejemplo:                   rlf Reg 1
                                                   ,O
                Antes instrucci6n:         (Reg1)-b'lltO0110', W = i ? y C = 0 .
jet de tabla    Después instniccibn:       (Regl) = b 1110 01 lo', (W) = b' 1100 1100' y C = 1.
                                                     '

                rrf                                                                                  Rota a la derecha con el Carry

                Sintaxis:           rrf f,d
                Operandos:          O I f 5127
                                    d~ [O,lI
                Operación:                   7       6       5       4       3       2       1       0

                                                                                                                 (RorureKightf rhrough C h q )
                                                                                                                                

                                                                 Registro f

                Flags afectarlos: C
ibrutina        CódigodeOP: r60 1 1 0 0 d f f f I f f f f                            1
                Descripcion: Rotación dc un bit a la derecha del contenido del registro ' f pasando prir
                                  el bit dc acarreo C. Si d=l el resultado se almacci~aeti 'f, si d=O cl
                                  resultado se alriiacena cn W.
                Ejemplo:                   rrí Reg1,O
                Antes insmcción:           (Regl)=b'11100110', ( W ) = i ? y C = 0 .
                Despdsinstniccj6n:         (Regl)=b'l1100110',(W)=b'01Il0011'yC=0.
r de la pila,
 na.
p
    584 	 MICKOCONTKOLADOK PIC l hF84. DESARROLLO DE PKOYECI OS                               E H,'i.L1,2    mi? Rn-btt




    deep                                    Pasa a Standby o modo de bajo consumo                            subwf                 1
    Sintaxis:           slccp                                                                               Sintaxis:
    Operandos:          Ni ngutio                                                                           Operandos:
    Operación:               +
                        OOh WDT
                         +
                        O W DT prcscalcr
                        l+rO
                        O+      PB                                                                          Código de OP :
                    - -
                                                                                                            Descripción:
    k'lags afcctados: TO , PD
                    1
    CódigodeOP: 00 100001011010011                   1                                                                       en
    Descripción: 	 Pone cl circuito en modo Sleep (bajo consumo) con parada dcl oscilador
                      y Timer O. (Ver capitiilo 16 para inás detalles). Se puede salir de este              Ejemplo 1:
                      estado por:                                                                           Antes instnicciim:
                             Activacion del pin /MCLR para provocar un reset                                Después instrucciii
                             Desbordamiento del Watchdog si quedó operativo en el modo                      Ejemplo 2:
                            rcposo.
                            Gcncración de una interrupción que no sea TMRO, ya quc Csta sc
                            desactiva con la instrucción xlcep.



                                                                                                                                 4
                                                                                                            Ejemplo 3:
    Ejemplo: 	          sleep                       ; Pasa a "standby" o modo de bajo consumo.              Antes imtsucciiin:
                                                                                                            Después instnicció
    S U ~ ~ W                                                           Resta el literal k a W
                                                                                                            swapf                  1
    Sintaxis:        sublw k
    Operandos:       OIkI255                                                                                Sintaxis:        sw
    Operación:       k - (W) (W)    +                            (Subtract W,fi.omLztc=mI)                  Operandos:       O5
    Flags afectados: C, DC, Z                                                                                                dE
                    1           1
    COdigo de OP : 11 1lOx kkkk kkkk    1      1     1                                                      Operación:       (f <
    Descripción:     Kcsta por el mitodo de complemento a 2 al literal 'k' el contenido del                                  (f<
                     registro W. Almacena el resultado e n W.                                               Flags afectados: Nir
                                                                                                                             

    Ejemplo 1:                      sublw 0x03              ; 03h - (W) (W)                                 Código de OP : 

    Antes instrucción:              (W)=OxOI, C = ¿ ? y Z = L ?                                             Descripción: Lo
    Después instrucción:            (W) = 0x02, C = 1 (el resultado es positivo) y Z = 0.                                    de
    Ejemplo 2:                      sublw 0x02            ;02h-(W) +(W)
                                                                                                                             w,
    Antes instnicci6n:              (W>=Ox02, C=;? y 
 Z = i ?                                              Ejemplo1:
    Desput s instrucción:           (W) = 0x00, 
C = 1 y Z = 1 (el resultado es cero).                      Antes instrucción:
                                                                                                            Después instnicción
    Ejemplo 3:                      sublw 0x02              ; 02h-(W)    +  CW)
    Antes instrucción:              (W}= 0x03,(+3 en decimal}, C = i? y Z = L .9 -
    Después instnicción:            (W) = OxFF, (-1 en decimal), C = O (resultado negativo) y Z = 0.
S U ~ W ~                                                  Resta el registro f a W

               Sintaxis:       subwt' f,d
               Operandos:      O I f 5 127
                                d~ [O,lI
               Operacicin:                 +
                                (f'~- (W) (dcstinti)                                 (Su brracr WfrcimJ




                                                                                                            t
               Flags afectados: C, DC, Z
                               1
               CbdigodeOP: 00 )00101dfff lffff             /
               Descripción:     Resia por el método de complen~entoa 2 el conteriido del registro 'f
                                merios el contenido del registro W. Almacena el resultado en W si d=O y
                                en 'f si d=l.
iscilador
* de este      Ejemplo 1:                 subwlf Regl,l         ;(Re@]) (W) j (Regl)
                                                                       -
               Antes instrucción:         (Regl)=0x03, (W)=Ox02, e=¿?) Z =¿? y




                                                                                                            'I
               Despues instrucción:       (Reg 1)= 0x01 (W) = 0x02, C = 1 (posjtivo) y Z = 0.
                                                       ,
               Ejemplo 2:                 subwf 
 Reggl, l        ;(Re@)- (W) 3 (Regl)
               Antes instrucción: 
       (Regl) = 0x02, IW)= 0x02, C = i? y Z = i?
               Después inshccion:         (Regl ) = 0x00, (W) = 0x02, C = 1 y Z = 1 (resultado c m ) .
               Ejemplo 3: 
               subwj Regl, l            ; @egl)- (W) + m%[)
               Antes instniccjbn:
                     
                    (Regl) = 0x0 1, (+1 decimaI), (W} = 0x02,C = ¿? y Z = i?
               Despuhs insmiccih:         (Reg 1) = OxFF, (-1 decimal), (W) =0x022,C = O (neg.)y 2 = 0. 

                                                                                    



               swapf                                                    lntercambia nibbles de f

               Siritaxis:          swapf f,d
1   Literal)   Operandos:          O 5 f í127
                               d~ [O,]]
               Operacion:      (f <3 .U>)  (d 1 : ,
                                               74)                                   (&y' h'ibbles inJ
:nido del                      (f <7:4>) 3 (d <3:0>)


               Dcscripci6ri:   Los cuatro bits de m& peso del registra 'f se inter-cambian con los 4 bits



               Ejemplo 1:
                               de menos peso del mismo registro. Si d=O el resultado se almacena en
                               W, si d21 el resultadn se almacena en ' f .
                                          swapf   Regl,O
                                                                                                            I
                                                                                                            ,1
586   MICRCII'ONTROLADOR P1 l hF84. UESARROI.LO DL PROYESTOS
                          1:                                                           :<HA F.IA




X O ~ ~ W                                       OR-Exclusiva del literal k con W

Sintaxis:        lrorlw k 

Operandos:       O 5 k 5 355
                       

Operacióti:      (W)XORk+(Wj                                   {Erclusive OR Litt7rul
                                                                                    with W)
Flags afectados: Z
                 1      1
Código de OP.: 1 1 1010)-kkkkm
Descripción:     Realiza la función OR-Exclusiva cntre el contenido del registro W y la
                 constante 'k' dc 8 bits. El resultado fe alniacena en W.
Ejemplo:                    xodw b'10101111' ; (W) XOR b'10101111'              + (W)
Antes instrucción:
Después instnicció~i:       (W)-
                            (W)= b'10110101' y Z = i ?
                                 b'00011010' y Z = 0


x0rWf                                      OR-Exclusiva de W con el registro f

Sintaxis:
-                xorw f f,d
Operandos:           f
                 O Ii 177
                 d~ [O,lI
Operación:       ( W) XOR (f)   +
                              (destino)
Flaes afectados: Z
   "
CódigodeOP: 111 )0110diTf
Descripción:
                                     w,
                 Rediza la fiincibn OR-Exclusiva entre el contenido del registro W y cl
                 contenido del registro 'f. A h c e n a el ccsultado en 't' si d=l y en U' si 

                 d=O.
Ejemplo:                    xorwf Reg,1           ; (W) XOR (Reg)  (Reg) +
Antes instmcción:           (Reg)= b'lOlOII11'. (W)=b'lOllOlOL' y Z = i ?
Después instniccion:        (Reg) = b'000110IO', (W) b'lO110101' y Z = 0.
                                                     =
M-U




al k con W




                   CONSTANTES Y OPERADORES
I registro f



                                             movIw       D'l09'
                                             movlw       d'109'


:gistro W y el
;1=1 y e n W si                              movlw       h'6D'




                         B'<cantidad>'       movlw       B'01101101'




                                             DT "Estudia DPE"


                  Tabla C-/Formato de 1~1.yconstunfe.~
588   MICROCCiN'rROLADUR PIC lbF84 I)EShRROI.I.O DE PROYECTOS                         ': N ,-M,


       La tabla C-1 representa la forma dc csprciticar el sistcina de nuriieracibn o ctidigoc
affaniini~flcos,para cl cnsaniblador MPASM, con iin ejct~~plo caso. Hay que tener cn
                                                                 por
cuenta:
          Las constantes hexadeciinalcs que corniencen por iina letra (A-F) deben ir
          precedidas de un cero para que no sean confundidas con urin etiqueta. Ejemplo:
          naovliv OFAh.
      i   Las constantes pucdzti ser opcionalinrnte ~irecedidas un sigrio "+" (valores
                                                               por
          positivos) o "-" (valores negativos). Si no sc antepone nada se asunie quc el
          valor es positivo.
          Cuando los operandos soii caractercs ASCI 1, debcn estar cricerrados ci1ti.e
          apóstrofes o comillas simples. Ejcmplo: moimlw 'G '.

        Para facilitar la tarea de programación el cnsamblador MPASM permite utilizar
múltiples opemdores aritméticos detallados en la ayuda del MPLAB y cn 1 guía 3
 "IWASAI. USER 'S GUIDE que sc puede obtener gratuitrimetitz cil la pagina Web dcl
                              "


fabricante www.inicrochip.cotn. En la tabla C-7 se detallan los principales:



                                                                                                           La:
                                                                                                    qiie soti u
                                                                                                    resulte m !

                                                                                                         En
                                                                                                    ensamblai
                                                                                                    "WASiZI
                                                                                                    www.mic




          Tabla C-2 Príncipule'i. oprradot+rs
                                            uribrpiéfiros del ensurnhladi-ir MPASM
3 codigos
:tcncr e ti

dchci~ir
Ejemplo:

' (valores
ie que el




te utilizar    PRINCIPALES DIRECTIVAS DEL
i   la p í a
    Wcb del          ENSAMBLADOR MPASM
i
                                                             o RA-WA




                                                             Sintaxis:      1



                                                             propósito
                                                             finaliza c


                                                             Si no se
                                                             variable




                                                              Ejemplo:          1
                                                                       CBL
                                                                       noni
                                                                       d
                                                                       INT

                                                                       En
                                                              cs asignar
                                                              lista qued
                                                              utilizacion




                 TabluU- I Direriiva~ ensara blador MPASAI
                                    del

A continuación se expone un rcsumen dc las principales.
1
a, IL4-MA                        APENOICE D: PRIN(:IPALiiS UIREC'TIVAS DEL ENSAMBLADCIR MPASM 591



CBLOCK                                                       Define un bloque de constantes

Silitalis:              C'RLOCK 
[cciiprr]
                        <lab~B[:~
                                incremcnt~][,<label>[:<incremen~]1
                        ENDC

Descripción:                                                              (Dejine a Block o Cora~tan~s)
                                                                                           f

       Esta directiva se explica en cl capitulo 9. Dcfine una lista de constantes. A cada
~lahel.d> le asigna i valor inmediatamente superior que a la antcrior < i b d > . El
          sc             m
propósito de csta directiva cs asignar direcciones n muchas etiquetas. Li
                                                                        ; lista de etiqiietas
finaliza cuando sc encuentra la directivo ENDC. 


                 indica el 
valor de almique para el primer nombre del bloque de etiquetas.
Si no se asigna en la expresion, la primem variable recibirá un valor superior al de la
variablc fitial del CBLOCK anterior. Si el primer CBLOCK en el archivo fiiente no tiene
ningún <cl?rpr> los valorcs asignados empiczan con el cero.
                                                         


           Si < i t i c . r ~ w ~ ~ u P
                                      cspccifica. entonces a
                                   se 
                        la prcixima .;ldbcb se le asigna el valor
de   L   int.remt.rif> supcrior a la atitenor <Iubel>.

                                   notnbres en
            Pucdcn darse ini~ltiples                  iina   línea, separada por las coti-ias.

Ejemplo:

            C B m K 0x20                             ; A la primen iariable se le a s i p el valor 20
            nombre-1 , nombre­
                             2                       ;nombre-2, se le asigna el valor 2 1.
            nombre-3, nombre-4                       ;nombre-4 se le asigna el valor 23.
            ENDC

       En la mayoría dc las aplicaciotics cl propbsito d t las directivas CHLOCK y ENDC
cs asignar direcciones (genemlrnente de rriemoria RAM de datos) a muchas etiquetas. La
lista qucdsi enmarcada entre las directivas CBLOCK y ENDC. Un ejemplo típico de
utiliracihn:
             C B m K OxOC        ; Las variables se posicionan a partir de csta posición de RAM.
             Cen-                , La variable Centenas ocupa la posiciiin OxOC & RAM.
             Decenas             , La variable Decenas ocupa la posición hOD de W.
             Unidades            . La variable Unidades ocupa la posición OxOE & RAM.
             ENDC
592   M1CRCiCONTRDLAI)DR ?1C16FM. DESARRC)LLtl DE PROYECTOS                                 IVRA-MA




                                             Define la palabra de configuracibn

Sintaxis:        --CONFIG <expr>

Descripción:                                            (Ser Pror-e.~,sor            Birsj
                                                                       Coi~/igrt~.#íi~irl

       Directiva para la deiinicibn de los bit de la palabra de cuiifigwacion del
rnicrocontrolador con el valor descrito cn <~vpt.>.

Ejemplo:



      Esta directiva indica la configuracjiin elegida para cl proceso dc grabacióti d c l
microcontrolador. En este caso:
        No hay protección de código CCP-OFF).
        N o se habilita c1 Watchdog CWU 1'-OFt ).
        Se habilita el reset mediant? Powcr-Up Timer CPWRTE-ON).
        Se utiliza el oscilador por cristal de cuarzo.

       Es importante resaltar que      -CONFIG7' se inicia coii dos subrayados (guiones
bajos), no con irno (este error es muy kecuentc en los diseñadores noveles).


DE                                                    Define datos en la EEPROM

Sintaxis:        [<label>] DE <expr>[,<expr>,... ,<expr>]



       Reserva palabras de memoria de 8 bjts cn J meriiciria EFPROM de datos. Cada
                                                  a
expresión reserva un valor de 8 bits. Cada carácter de una exprcsión se guarda en una                       E
posicion separa&.                                                                                     método I

                                                                                                      Ejempli
                                                                                                      #DESME
         ORG     Wl00                    ; Corresponde a ta dirección O de la zora EEPROM
                                         :de datos.
         DE 
    ''Programa EEPROM-M. Versibn 2.5. 1 5-08-2003'' ,kO
                                                                                                      Ejempli
                                                                                                      #DEFINE
                                                                                                      # D r n
IDICE D. PRINC~PALESDIRECTIVAS DEL Eh'SAMBLAüOK hlP.4SM 593



                        Como en este caso el origen de la directiva está en la dirección 210011. que
                coincide con el inicio de la EEPROM de usuario, se obtiene el resultado que se i~~uestra
                en la figura D-1, que comspoi~de la veiitana de IA
                                                 con               memoria EEPROM dc usuiujo.
                                                                                                                                                                              1
                               INCLCTCE         -FliFaiA.Iix                  ; bzf:#>#,-~mm:>v 1
                                                                                            ml                   r - 2 : ~ -l , > ‘


                               LEL'J,:V         O::ll,.
                                   :vt=,'J?:
                               BEID<


                               qpr,             ii~:lda                       .   COL,   eipoiirl.,   A   1,   , i l I e,-,.          n   J..   1- rr.r.h E F J I D n
                                                                              . rle m l i t o s .
                                                  Ft,i:ania   PBFRUM 0 4 . Version 2.5. 15-08-2003" 
O x C I i
                                                                                                    ,




                1
                1   DO@@      50    71 6F 6 1 7 2             "1   6D 61   20 4 5 45 50 52                4F 4D 5 F              Programa               EEPROK          /Vd




                           Figura D-
 Memoria EEPR(2iZ.I de U . S U J ~ ~c ~I ~ J . T ~ u & , T
                                    I                                    C            de la directiva DE
3s   (guiones

                #DEFINE                                               Define una etiqueta de sustitución de texto

EPROM
                Sintaxis:                 #DEFINE <nam& [c.string>]

                Descripción:                                                                                     (Dc$ne a Text Sir li,~titir Loliell
                                                                                                                                          l¿on

                     Esta directiva define una cadcna de substituci8n de texto. Doridequiera que
                <numt'> sc cnciientre en el etis:~rnbl;idor sustituirá por <stritag>.
                                                          se
latos. Cada
rda en una           Esta directiva eiiiiila el A N S I 'C ' estándar como #deJne. Definir símbolos con este
                método no esti disponible para ser iisado por el MPLAB.
                          


                Ejemplo 1:

                #DEFINE LED                PORTI39                                   ; El LED sc conecta en esta linea.
                                                                                               

'ROM                                      ...
                        bsf               LED                                        ; Enciende el LED.

                Ejemplo 2: 

                #DEFIN E 
    Banco0                      bcf STATUS,WO                  ;Acceso al Banco O.

                #DEFNE        B m o1                      bsf STATUSJ1PO                 ; Acceso al Baiico 1.
594   MICRVL'ONTROLAOOR PIC 1hF84.DESARROLLO DE PRC)'EC?OS                                 m   I<~-MA




         Banco0
         bcf    LED                           ; Configura esta línea como salida
         Banco1
         bsf    LED                           ; Enciende el diodo LED                                    Sintr

                                                                                                         Dpsc
                                                                                   Define tabla

Sin taxis:       [<labe]>] DT <expr> [, <expr>, . .. ..<eqir>]

                                                                                   (Dqfim Tubku)

      Esta dircctiba genera duraritz la fase cit. ensamblado tantas instnicciories rr,thi4
como caracteres u octetos la acompañen. Se explica cn ciipihilo 1 l .



       DT "mensaje". 0x1 ,.15
                        0

       Esta directiva genera los códigos de operación de Iris siguientes insirucciones:
         rctlw
         retlw
         retlw
                 Ox6D
                 0x65
                  Ox6E
                           : ('m' en ASCII)
                          ;('e' en ASCII)
                          ;('n' en ASClI)
                                                                                                         1
                                                                                                         Sint




         rctlw     173
                  0;      : ('S' en ASCII)                                                               para
         wtlw     0x61     ; ('a' en ASCII)
         retlw    0x6A     ; (:i' en ASCTT)
         rctln    0x65    ; ('e' en ASCII)
         retlw    0x10
         retlw    OxOF    ;(1 5 en decimal)


                                           Empieza bloque alternativo de un IF                           Sinta


Sintaxis:        ELSE

Descripcibn:                                        (Brgiri Alternotive A . ~ s e m b ~ fo IFI
                                                                                    Block

      Usada junto con la directiva 1F para proporcionar un camiiio alternativo de
ensamblado si a1 evaluar la ciitidición es falsa. ELSE puede usarse deritro de un bloque de
programa » en una 
inacrti.

                 Ver directiva 
iF.
END                                                    Fin de bloque de programa

                 Sintaxis:        EN D

                 Descripción:                                                                     B1oc.k)
                                                                                        (End PYOLTU~I
!fine tabla
                        Esta dircctiva indica el final del programa y es obligatoria. Si se detecta el fin di:
                 fichero y no se ha encontrado la directiva END sc producc error. Todas las líneas
                 posteriores a la línea en la que se encuentra esta directiva se ignoran y no se ensamblan.

                 Ejemplo:
                         Inicio   bsf      STATUS,RPO       ; Comienza el programa ejecutabie
                                           ... ...
                                  END                       ;Fin del programa



                 ENDC                                             Fin de un bloque de constantes

                 Sintaxis:        EN DC

                 Descripcihn:                                                           {Eiirl C'OIM'ILIIIIBIoc-k)

                        ENDC sc cscribc al firial de una lista de constantes CBLOCK. Debe escribirse                 1

                                                                                                                     1
                 para indicar el fin de la lisla.

                 Ejemplo:         klii-rii-la dii+ectivnCBLOCK.


                 ENDlF                          Fin de un bloque de ensamblado condicional

                 Sintaxis: 
      ENDlF

                 Descripción: 
                                         {End Condicinnd Assembly Block)

                       Esta ciircctiva niarca c1 cxtrcmo de un bloque condicional de ensamblado. ENDIF
                 puede usrine dsritrci de ~itibloque de programa o en una macro. 

                                          

ilternativo de   Ejemplo: 
       hlirar la directiva LF.
: un bloque dc
5%   MICR0CC)NTROLADOR PIC 16F84. DESARROLLO DE PRCW EC'iOS                                  v IRA-MA




                                               Fin de la definición de una macro                        Ejemplo:


Sintaxis:        ENDM

Descripcihn:                                                        (Etlci'a   Macro Dejiriition)

      Tcrmina tina defiición del macro coinenzada con la directiva MACKO. Las
inacros se explican en el capitulo 16.

                 Mirar la directiva MACKO.


                                  Define una constante para el ensamblador                              Sintaxis:  1
Sintaxis:        <label> EQU <expr>

Descripción:                                                 (l3gfine ciii A.~.teria Ciinstanr)
                                                                                   blw

      Esta dircctiva pemiite asigna el valor de        a ain identificadcii ~ I u b e / > .Su
valor puedc ser el resultado de una expresiijn compuesta por otros identificadores tan
crimplcja como sc desee.

       Generalmente, el identificador es un nombre que dcscribe el valor de niaticra más                       La
             para el proganiador. Sucle utilizarse para definir cotistantes y dircccioiies de
significatirva                                                                                          de la 1ogi
                                                                                                        cero se i
memoria. Asi, es más fácil recordar "ValorCarga" que recordar el vaIor 147 o, en el caso
                                                                                                        cxprcsib
dc una dirección tle niemoria, PORTA quc 0x05.
                                                                                                        falsa fals

                                  ; Asigna e1 valor nmerico de 147 a la etiqueta "ValorCarga".
                                                                                                        Ejemplo
                                                                                                                d
                                                          Emite un mensaje de error

Sintaxis:        ERROR "c-text-string>"

Descripción:                                                        (Issue apl Error Afe,s.sage)        Ejemplo

        Esta directiva genera un mensaje dc emir idintjco A cualquier error dcl                                En
ensamblador MPASM. Si el psuceso de ensamblado ejecuta esta directiva aparcct: la                       memoria
cliííica pantalla de error. El texto dcl mensaje debe ir eiitrecornitlado y puedc tcner hasta
80 caracteres.
1



         C M-.Mi               ,RA-~IA                         APENDICE D: PRTNCIPAI,ESDIREC:TIVASDEL ENS!L~ULAUORMPASM 597


  rnacro                        Ejemplo:
                                            C'hequeoError    MACRO Argumento1
                                                     IF Argumento1 % SS                 :Si el argumentoestá fuera de rango
                                                             ERROR "emir-c hrckhg-O l el argumento está fuera de rango"
                                                     ENDIF
efinrlion)                                           EN DM

CRO. Liis                   1          Otro ejemplci se describe en la directiva 1F.


                                IF                                     Comienza un bloque de código condicional

iblador                         Sintaxis:            IF <expr>
                                                     ... ....
                                                     ENDIF

kn,~fa~rfl
                        I       Descripción:                                     (Begin Conditionally Assemhled C'oJe Blvck)

'uhr~l,. Su                           C'umienzo dc 
cjecucihn de un bloque condicional dc cnsarnblado. Si .;t:tpr;- es
-irlores tan                    verdadera el 
ciidigu ii~inediatoal iF sc msariiblara. En caso contrario, tas itistnicciories
                                siguientes sc saltoii hasta encontrar una directiva ELSE 0 una directiva ENDIF.

anc.r;t t i i i s                      La evaliiación de una expresión que sea cero se coi-isidcradesde el punto de vista
:cioncc de                      dc la lógica falsa. La evaluaci8n de una exprcsjon que resulte cualquier valor distinto de
M c1 caso
  1                 i           cero se considera como verdadera. La directiva IF cipcra con el valor lógico dc una
                                expresión: una expresiiin verdadera ( h e ) garantiza devolver un valor distinto de cero, y
                                ralsa @se) cl valor cero.
                                Ejemplo 1:
p".
                                            JF       Verjinn= 1 00               ;Comprueba la versión actual
                                                     rnovlw  hOA
? error                                              rnovwf     io-l
                                            ELSE
                                                     rnovlw     0x01
                                                     movwf      io-l
                                            ENDF

                                Ejemplo 2:
:rror del                                  Eri e1 siguiente ejemplo si la etiqueta "FinTahla" se localiza en una dirección di:
parece [a                       tiicmona de programa mayor de OxFF el encambiador emitiri un mensaje dc error.
,ner hasta
                                            ......
                                            FinTabla
                                             IF (FinTabla> OxFF)
                                                      ERROR "iCLilD.4DO!: La tabla ha superado el tam;iiru de la pigina & los"
                                                      h4ESSG "primeros 256 byks de memoria ROM. NO funcioiiarb correctamente."
                                            ENDF
598
         ---
               MlCROCCiNI~ROLACiOK lbF81. DESAMOLLO DE PROY FCTOS
                                  PIC                                                                     $2 R A - ~ I A




         INCLUDE                                       Incluye ficheros fuentes adicionales                                I

         Sintaxis:        MCLUDE <<include-filv>               o
                          INCLTDE "<i nc lude-tile>"

         Descripción:                                                   (lncludt. ridditionul Soutce Filc.)

               El archivo especificado se lee como código fuente. El efectci es igi~al si el texto
                                                                                     que
         entero del archiko ínclude se pusiera cn el lugar donde se ha escrito la direciva
         INCLUDE. Sc perniitcn seis rlivdes dc anidamicnto.

                El <inclzrJeJile> puede escribirse cntre comillas (" ") o entre los simbolris de
         "mayor que" y, "menor que"          >). Si se especifica totalmente el camino del ficheru
         includc solo sc buscara en ese canino. Si no se indica camino el orden dc la búsqueda es:
         el directorio activo actual, en segundo lugar 21 directorio del archivo fiiente y por último
         cn el directorio ejecutable de MPASM. Sc explica eii el cripitiilo 10.
11

by       Ejemplo:
1;                INCLUDE <P16F84A.iNO                  ; Define el archivo donde estan definídos todos
                                                        ; los regisiros &l PIC 16FWA.
                  INCLLDE "P16FY4A.INC'"                ; Tambih se puede defmir de esta fomia.
                  INCLLDE "c:sysisysdefi.inc"          ; Defie "sydefs" con su kaywtoria.
                  INCLUDE <regs.h>                      :Dafme "rcgs.h"sin trayectoria.


         LIS                                                                    Opciones de listado

 , ,
 4 ,
         Sintaxis:        LIST [ ~ l i s t o p t i o n ~ , [<listuption>]
                                                       ...,
 I

 ,   >
         Descripción:                                                                      (Lisding ilpliuns)
 /
 m
     '
     i          La directiva LlST tiene efecto sobrc al proccso de ensamblado y sobre el formato                                    MES%
         del fichero listable de salida scgiin una larga lista de opciones que se detallan en el
         manual "MFASM L'SER 'S GUJDE" y en la ayuda del MPASM. De todas la más                                                     Sintaxis:
         importante es la que indica el procesador utilizado scgúti detalla el siguiente cieniplo.
 I
 I       Ejemplo:
                                                                                                                               I    Descripcihi
                                                                                                                               1
 i
 f
 i              LIST P-P16F81A                          ; El PIC16FMA cdmo procesador utilizado.                               It            Ect;
                                                                                                                               i    finalizar el
 4
                                                                                                                                    caractcrcs.



 y
                                                                                                                               1
                                                                                                                               !
 1                                                                                                                             1
I~A-M,~                 APENDIC.~ PRINCIPALES I)IRECTTVAS DEI- ENSAMRI AUOR MP.4SM
                                                           L)



adicionales               MACRO                                             Declara la definición de Macro

                          Sintaxis:       <labe12 MACRO [<arg>, ..., <arg>]



                                   Una inacro define iin cuiijunto dc instniccioncs a las que se les asigna un
al que si el texto        nombre. Posteriormente, el programa fiietite del uswRo puede incluir el nombre de una
:rito la dimiva           rnacro y to&s las instnicciones quc la coinponm quedan insertadas en el momento de
                          realizar cl ensamblado formando pa~te pruprna. Sc explica zti detalle eii el capitulo
                                                                del
                          16.
os sirnbolos dc           Ejemplo:
i n o del fichero
: la biisqiieda es:             Una estructura rnacro siiiede ser la sigwentc:
nte y por ultimo
                                  NombreMm         MACRO
                                                   Instniccibn- 1
                                                   insenicci61i-2




                                 Dotide "Nombrehíacro" indica el nornbrc de la inacro quc posteriormente se
                          cmpleará cn el programa fiientc para incluir todas las instnicQcines que estén definidas
                          bajo cste noinhrc. Las directivas MACRO y ENDM forman el cucrpo dentro del ciial
S   de listado            c s ~ incluidas todas las instniccioncs deseadas.
                                 h

                                 C'adri vez que se eniplea "NoinbrehIacro" cn el propania fuente, irnplicii que se
                          insertcn tiidas las instruccion~ conlleve dicho nombre en el programa
                                                          que


;obre el forniato         MESSG                                     Crea mensajes definidos por el usuario
: detallan en el
e todas la mas
 e ejeniplo.
                      l   Sintaxis:       MES SCi "<rnessage-tcxu"



do.                                                    crear mensajes dcfmidos por el usuariii que aparcccn al
                                  Esta directiva pm~iite
                          finaiizür cl proceso dc ensamblado y eri el fichero listablc *.list. Puede tener hasta 80
bU0     MICROCONTKOLADCiR PIC 16384. DESARRIALO DE PRO' LC'TCiS                         E RA-MA




      Ejemplo:
               MmsajeMacro      MCRO
               MESSG " mssgmwro-001 llamada sin el argumento "
               ENDM

                 Hay iitrcis ejemplos descritos en la directiva 1F.


      ORG                                     Origen de las instrucciones del programa

      Sintaxis:           [<label';.] ORG <expr>

      Descripción:                                                              (Set Prog-um Originj

            El origen del programa 'comienza la dirección indicada en la ít:rpr> de la
      Jimctiva. Si se especitica una <labelb se Ic da el viilor dc la <tt~pr>. no hay ningún
                                                                             Si
      ORG cspecifcadu L gencracion del c6digo comienza en la dircccion cero.
                         a

      Ejemplo 1 :
;j
4 1              ORG      O                         ; Dirección de comienzo del programa
                                                                                - -
                 goto     Inicio
                 ORG      4                         ; Vector de interrupción.
                 goTo     SevicioIntcmi~ion

      Ejemplo 2:
      ht-1       ORG      h20                       ; Vectrir SO va aquí.
      lnt-2      ORG      In'ltOx10                 ; Vecmr 30 va a@.
rograma




                                        REGISTROS ESPECIALES
expr> de la
o hay ningl~n

                                 BANCO O        BANCO t
                                                INOF      80h
                                              OPTION      81h
                                                                -   E
                       -    ..                  PCL       82h       2
                                                                    YI

                       --    .
                                   STATUS     STATUS      83h -     8
                                                                    5
                       04h           FSR        FSR       84h
                                   PORTA       TRISA      85h
                                                                    3
                                               TRlSB      86h
                                                 --       B7h       'a
                                                                     E
                                              EECONI      BBh       '",
                                              €€CON2      89h
                                                                    Cij
                                              PCLATH      8Ah
                                              INTCON      8Bh
                       OCh
                                             MAPEADO
                                               EN
                                             BANCO O




                                     NO IMPLEMENTADO
                                       FISICAMENTE.
                                    (SE LEEN COMO "O").




                F i g i t u E-I Memorzu R4 M de datos del PIC16F84
6U2   hiICROCONTROLADClR PlC 16F84.DESARROLLO DE PROYECTOS                '8;   ICA MA




                                                                                                 Rl
                                                                                          disp~nib
                                                                                         mznioria
                                                                                         con cl re;




                                                                                                (T
                                                                                         aplicada
                                                                                         microcor
                                                                                         alimcntai

                                                                                         PCL
                                               ticr csl-rito con los

                                                                                         PIC I 6FX8
                                                                                         corrcspot;
                                                                                         RAh4 O21
                                                                                         escritos c
                                                                                         rcgistro P
                                                                                         la alimeni




                Tabla E-l Rcgi..~h.os SFR. (Speciaibitnclinn Rcgisters)
                                   del
O h Banco O, 80h Banco 1
                                                                                              O

                                   Registro para el direccionamiento indirecto de datos. Éste no es un registro


4
ui   rcgistro tisico)       disponible Eisicamcntc. Utiliza el contenido del FSR para seleccionar indirectamente la
                            memoria de datos o RAM del usuario; la instrucción determinará lo que se debe hacer
                            con cl rcgistro seiíalado. El direccionamiento indirecto se explica en el capítulo 16.


                                                                                                                O1h Banco O

                                   (Timer O). Tempori7adorlcontador de 8 bits. Se incrementar con una señal externa
                            aplicada al pin KA4IlOCKi o de acucrdo a una señal interna proveniente dcl reloj del
                            microcontrtilador. Se explica ampliamente en capitulas 15 y 18. Al conectar la
                            alimentación su conten ido es desconocido, (TMRO) = b'xxxxxxxx'.

                            PCL                                                              02h Banco O, 82h Banco 1

                                   (Progrcdm Counter Low byte). Byte bajo del contador de programa, figura E-3. El
                            PIC16F84 dispone de un contador de programa de 13 bits. Sus bits de menor peso
                            corrcspondcn a los 8 bits del rcgistro PCL, implementado en la posición de memoria
                            RAM 02h (y duplicado en la posición 82h del Bancol} por lo que pueden ser leidos o
un registro fisico)         escritos directamente. Los cinco bits de mayor peso del PC corresponden con los del
                            rcgistro PCII que no pueden ser leídos ni escritos directamente (figura E-2). Al conectar
-                           la alimentación se inicializa a (PCL) = b'00000000' y (PCH) = b'00000'



F
i
 l  lineiic del Pucrtri A                              ,
                                                                    PCH
                                                                             8 
7



                                                                   5 7 PCiAT; <4:0>
                                                                                              PCt




                                                                                              'k    AL"
                                                                                                            o



                                                                                                    resultado
                                                                                    PCLATH


                                    Figura E2 ComposiciOn d ~PC en instrucciones con PCL como destino
                                                              l
                                                                PCH                          PCL
                                                           12 11 10          8      7                   o


                                                           2
                                                               K   PCLATH 4 : 3 >


                                                                                    PCLATH


                                       f i q r u E-3 Compu,~iciÓn PC en ímtmcciones "cal1" y "goto
                                                                del                                                "
-
              -
    604       M I I ' R I Y ~ O Y 'HOLAUOR PIClbFR4
                                   I                  DEShRKOLLO DE PROYECTO$.               --
                                                                                               RA-MA




    STATUS                                                               03h Banco O, 83h Banco 1

           El registro de estado o STATUS indica el estado de la Última operación aritmética o
    lógica realizada, la causa de reset y los bits de seleccibn de banco para la memoria cit.
    datos. A los bits del registro de estado se les suele denominar tlags o bandera. Al
                                                                                                             FSR          1
I   conectar la alimentación su contenido es (STATUS) = b'0001 lsxx'.
                                                                                                                    Scli:
                                                                                                             INDF se
                                                                                                             direcciona
                                                                                                             contenido 1
                                       Tabla E-2 Regisrro de esdudo n STATUS

                 C 

                   (Cany bitJ. Flag de acarreo en cl        octavo bit, En instrucciones de suma 

                 aritméticas se 
actila cuando se presenla acarreo desde el bit m i s significativo del 

                  resultado, lo que indica 
que el resultado ha desbordado la capacidad del registro 

                  sobre el que trabaja, es decir. el resultado de la 
operacibn ha superado el valor         escribirse
                  11111 1 1 1 (25Sio),que es el maxinlo valor que se puede representar con 8 

                             :
                             .                                                                  bits.
                  En el capítulo 8 se explica en 
dctalle su funcionamiento:                                 Ranco 1.
                   o C = O. En la suma significa que no ha habido acarreo y en la resta 
quc e1              alimentacic
                       resultado ha sido negativo. 

                   o 
C =: 1. En la suma sjgtiifica que ha habido acarreo y cn la resta q i ~ z 
 cl
                       resultado ha sido positivo. 

                 DC (Digit Cany). Flag dc acarreo en el 4" bit de nienos peso. En 
operaciones
                 aritméticas se activa cuando hay un acarreo entre 
el bit 3 y 4. es decir, cuando 
                Puei
                 hay acarreo entre los 
nibbles de menor y de mayor peso.                                    escribirse c
                 Z (zero). Flag de cero. Se activa a "1" cumdu e1 resultado dc una uperacion                 (entrada o
                 aritmética o IOgica es cero.                                                                Banco 1.
                  o Z = O. El resultado de la ultima operación ha sido tlistiiitu de cero.                   interrupcio
                  o Z = l . El resultado de la última operacion ha sido cero.                                entrada.
          +      /PD (Power Doii'n). Flag de bajo cuiisuiiio. Es un bit de siilo lectura, nci puede 

                 ser escrito por 
 iisiiario. Sirve para detectar cl modo de bajo consunirl.
                                 el
                  o /PD = O. Al ejecutar la instrucción slcep y entrar en reposo.
                  o 
/PD = 1. Tras conectar la atimentación VD,, o al ejecutar 
      clvwdf.
                 m 0 (Timar Out). Flag indicador de fin 
temporizacibn del Watchdog. Es iin htt 

                 de sólo lectura, no puede ser escrito por 
ct usuario. Se a c t j ~ a "O" cuando 
cl
                                                                                       en
                 circuito de vigilancia Watclidog 
   finalizii la teniporizacion. Sirve para detectar si

                 una condición de reset fue producida por el 
Wuichdog Tlmer.
                  o 
ITO = O. Al desbordar el temporizador del Watchdcig.
                  o 
 ITO = 1. Tras conectar VD, (funcionamiento noitiial) o al ejctiitar las 

                      instrucciones clrwdt o sleep.
                                      
          

                 RPO (Regist~i-   Bmik Select bit). Selección del banco para 
cl direccionamiento                  (EE,
                 directo. Señala el 
batico de memoria de datos seleccionado.                                que accede
                  o R P O = O. Selecciona el Banco O.                                                        (EEADR)
                  o RP I l. Selecciona el Banco 1.
Banco 1                    W1 (Register Bunk Select bit). No utilizado en el PlC 16F84.
                           1RP1.No utilizado en el PIC 16F84.
                                                                                                                    'm
Iaritmética o 

 memoria de 

>anderas. Al       FSR                                                     04h Banco O, 84h Banco i




                                                                                                                     I
                          Se lector de registros para direccionarniento indirecto. En asociación con el registro
                   INDF sc utiliza para seleccionar indirectamente los otros registros disponibles. El
1     Bit O   1    direcciunamiento indirecto se explica en capitulo 16. Al conectar la alimentación su
                   contenido es desconocido, (FSR) = b'xxxxxxxx'.                                                    I
                                                                                                                     I

les  de suma       PORTA                                                                     O5h Banco O
lificativo del 

1 del registro                                                      RAO a RA4). E1 puerto A puede leerse o
                          Puerto de entrada/salida de 5 bits (pines 

xdo el valor       escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido
u con 8 bits.      (entrada o salida) de sus pines se llama TRISA y esta localizado en la dirección 85h del
                   Banco 1. Su pin RA41TOCKi también puede servir de entrada al Timer O. Al conectar la
                                a                                                                                  i. 1



                                                                                                                   1
    resta que el   alirnentaciiin ueda confi~urado  como e&da.

resta que el
                   PORTB                                                                     06h Banco O
operaciones
ccir, cuando              Puerto dc cntrada/salida de 8 bils @ines REO a RB7). El puerto B puede leerse o
                   escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido
                   (entrada o salida) de sus pincs sc llama TRiSB y csta localizado en la dirección 886 del
                   Banco 1. Algunos de sus pines tienen funciones alternas en la generación de
                   intempciones (ver capitulo 17). Al conectar la alimentación queda configurado como
                   entrada.
ra, no piiede
o.
                   EEDATA                                                                    08h Banco O
fr.
ig. Es un bit             (EEPROM Data Hegister). Contiene los bytes que se van a escribir o que se han
Y' cuando cl       leido de la EEPROM de datos. Al conectar la alirnentacion su contenido es desconocido,
a detectar si      (EEDATA) = b'xxxxxxxx'.


ejecutar las       EEADR                                                                     09h Banco O

                         (EEPROM Address Register). Contiene la direccion de la EEPROM de datos a la
                   que acceder para leer o escribir. Al conectar la alimentación su contenido es desconocido,
                   (EEADR) = b'xxxxxxxx'.
606       hf1CRUCONTKi)LAWR PIC hFF6. DESAHKOLLO DE YROI'FL'TDS                          %
                                                                                          -:   I C h$.
                                                                                                   ~




PCLATH                                                                        o A Banco 0
                                                                                  ~

       (Pc Latch Hágh). Registro qiie permite acceder de toma indirecta s la parte alla
del contador de progamas en algunas instrucciories, la1 coma se iiescrihc en la figura E-
3. Al concctar la aliinentacibn se resctea (PCLATH) b'---U001)O'.


INTCON                                                      OBh Banca O. 8Bh Banco 1

       (fntc~.rupisCdtiriwl Regkrer). Registro p r el coiitrol de las intcmpciones. Es el
                                                 aa
encargado dcl manejo de las inter-pciones. í'onticiie los R bits que se rriucstran en la
tabla E-2. de T s cuales unos acmn corno flags señafadoresdel estado de la iiitemipcion
               o
y otros como bit de permiso o auturizacicin p a n que se pueda prodiicir la intcrrupciun. Al
conectar la alimentación su conteiiidu es (TNTCON) = b'00Ci00110.u'.




                                                                           INTCOfi
                     Tublu E-3 Registro de c'otiluol dt'la.<init.n.uyr1ioiws

              RBIF (RBport changt' Irifc.r*ruyt  Flag). Flag de estacla de 1;1 inremiipción RBI .
              Indica yuc se ha producido una interriipcibn por carnbiu dc estado de
              cualquiera dc las líneas RR4 3 RB7.
               o RBlF= O. Ninguna de las entradas RR7 a R134 ha cambiado de estarln
                          -
               o RBlF 1 . Cualquiera de las lineas RB7 a RBI del Puerto B ha cambiado.
                   (Debe borrarse por software).
              INTF (Externa/ Ifitewupr Flag hl!). Flag de estado de la interrupción cxteina
              INT. Indica que sc Iia ~iroducido iiitcrrupcibn a travks del pin RBO,"INT.
                                                uiia
               o IhTF = O. No hay iiitei-rulición externa por el piri RDOilNT.
                o INTF = 1. Ha ocurrido uiia iiiterni~icibnexterna p r la Iinea RHUi'lIJT.
                   (Debe borrarsc p o r suftwarc).
      c       TOIF {Th.fRO Overflort* It;lci.mpt FJng Iiir). Flag dc cstado dr la interriipcirjn
              prodiicida por cl TMRO. Indica qlie se ha prodlicido lina interrupr'irjti por
              desbordamiento del Tiiner O, es decir, que ha pasado de b ' l 11 1 1 11 1 ' (FFh) a
              h'00000000' (00h).
               o TOlF = 0.E1 TMRO no se ha desbordado
               o TOlF = 1. El TMRO se ha desbordado. (Debe bcirrarsc por suthvarc).
              RBlE (RB Pord Changc lnteruupl Enahlci. Habilitacioil dc la interrupcivn
              RBI. b'iag que autoriza la intempcian por cambio de estado di: Ins Ijneas
          .   RBTR R4 del Puerto B.
                   RBLE = 0.Interrupcih RBI deshabililada.
               o RBIE = l . Intcmpci6n RBI habilitads.
r'IL$.MA                                                APÉNDICE E: REGISTROS ESPEC1.4LES 607



                            INTE (Externa1 1 Enablt~ bitl. Habit itación de la interrupciiin externa INT.
                                               W
                                               .
                            Flag que autoriza la intempcihn externa a través del pin RBOIINT.
                              o INTE = O. Interi-upciiin N T deshabilitada.
parte alta                    o 
INTE = 1 . Intempcion INT habilitada.
figura E-    -              TOl E (TMRO J Y I I ~ ~ I ' UEnahle hitj. Habilitación de la interrupción TOI. Flag
                                                          P~
                            que autoriza la interrupción por desbordamiento del Tirtier O.
                              ri TOIB = O. Intempcion TOI 
deshabilitada.
                              u TOI E 
= 1. Interrupción TOI habilitada.
inco 1
                            EEIE (EEPROM Write Complete Intt7rrupr Enabk). Habilitación de la
                            iriterrupcion EEI. Flag que autoriza la intcmpcion por escritura completada de
                            u11 byte en la EEPROM dc datos del PlC (el flag EEIF se encuentra en e l
                            registro EECON 1).
                              o EEIE = O. Internipción EEI deshabilitada.
                              o EEIE = 1. Internipción EEI habilitada. 

                            GIE (Global Intermp~Enrrli/~>c.). de habilitacion global del 
permiso de
                                                                   Flag
                            intempciiin. Se borra aiitoriiaticatrietitc cuando se reconoce una interrupción
                            para cvitar que se prodiizca ninguna otra mientras se está atendiendo a la
                            primera. Al retornar de la intcrrupcihn con una instrucción re@e, el bit GIE se
                            vuelve a activar poniéndose a "1 ".
                              o GIE = O. No autoriza interrupción de niilgun tipo.
                              o GIE = l . Autoriza cualquier tipo de interrupcihn. Se pone a "1"
iiin RBI.                          aiitumaricamctitc con la instruccion resJit7.
itadu dc

ado.             OPTiON                                                                     81h Banco 1
mbiadu.
                        Registro de configuración i-iiiiltiple, aunque su misión principal es gobernar el
 externa         comportamiento del TMRO. Algunos microcotitroladores PIC tienen una ~nsmccion
[N?'.            denomina& también option, por ello. el fabt.icatite Mi~~rochip      recomienda darle otro
                 iiombrz a cstc registro. Así en el ficliero de definición de etiquetas P16F84A.INC' se le
                 non-ibra ccittio OPTION-REG. Al concctar la alimentación todos sus bits se ponen a "1",
                 (OPTION-REG)= b'llllI111'.
-ri!pción
iiripor 

(FFti) a 




                                                Tohku E-3 Registro OPTIONREG

                            PS2:PSO (Prescaler Rafe Select bits). Bits para seleccionar los valores del
                            Prescaler o rango con el quc actúa el divisor de frecuencia, segiin la tabla E-5.
PSA (Prescaler Assignment hitj. Asignacioti del divisor de frecuencia. El


                                                                                             E
       Prescaler es compartido entre el ThlRO y el WDT: su asignación es
       mutuamente excluyente ya que solamente a uno de ellos se puede aplicar el             Bit 7
       divisor de frecuencia a la vez.
        o PSA = O. El divisor de frrcueticia se asigna al TMRO.
         o PSA = 1. El divisor de frecuencia se asigna al Watchdog.
        TOSE (TMROSnitrr-eEdge se lec^ bit). Selecciona flanco de la seña! al TMRO.           m
         o TOSE = O . TMRO se incrementa en cad;i tlaiico ascendente de la señal
             aplicada al pin RA41TOCKI.
         o TOSE = 1. TMRO se incrementa en cada flanco descendente de la scñal
             aplicada al pin RA41TOCiU.
        TOCS (TMRO    Clock Souvce S~lt7t.f Selecciona la fuente de señal del TMRO.
                                         bii).

         o  TOCS = 1. Pulsos intrd~icidos traves del pin RAWTOC'M tTMRO como
                                         a
            contador).
       INTEDG (Inrrrrupf Edge Selecr bit). Sclector de flarico de L interrupcibn
                                                                       a
       rNT.
        o INTEDG = O. Interrupción por flanco descendente del pin RBOIINT.
        o INTEDG = L . Interrupción por flanco ascendente del pin RBOIINT.
       IRBPU, (Rmislor Purt B Pul/-Up Enclblc bit). Habilitación de las rcsjstencias de
       hll-Up del Puerto B.
        o IRBPU = O. Habilita las resistencias de Pull-Up del Puerto R .
        o /RBPU = 1. Deshabilita las resistencias de Pull-Up del Puerlo B.




      Registro de configuración de las líneas del Puerto A. Es el registro de control para
el Puerto A. Un "O" en el bit correspondiente al pin lo configura como salidii. mientras
que un "1" lo hacc como entrada. A! igual quc cl Puerto A, solo disponc de 5 bits. Al
conectar la alimentación todos sus bits se potien a " 1",(TRISA) = b'--- 1 1 1 1 1 '.
:' RA-MA       r RA-MA                                                 A P ~ N D I CE: KEGIS'IROS ESPECIALES 609



                                                                                                 86h Banco 1

                          Rcgistro de configmcion de las líneas del Ptierto B. Es el registro Jc control para
                    cl Puerto A. Uii "O" en el bit corrcspondietite al pin lo configura como salida, mientras
                    quc un "1" Ici ha-c corno entrada. Al conectar la alirnentaciiiri todos sus bits se ponen a
                    "l".(TRISB)-b'11111111'.

                    EECONI                                                                       88h Banco í

                           (EEPROM L'o~rh.01   Register 1). Registro para cl coiitrol de la rnemr~riaEEPROM
                    de datos. Al conectar la dimcntación su contenido es (EECONI ) = b'--4~001)'.
uencia. El
nación es
aplicar c l     '



                                  Tahlu E-6 Rt.gisiro de ronlrol de la EEPROM de dubox IWCON
NRO.
e la señal                    RD (Read Controi Bit). Bit de control dc lectura cn la EEPRIIM. Al ponerlo en
                              "1" se inicia la lectiira de un byte en la EEPROM de datos. Estc bit se limpia (se 

le la señal
                              pone a 
"0")por h~rdware      autoditicamente a[ finali7ar la Iechira de L posición 

                                                                                                        a
                              EEPROM. 

                               o RD = O. No inicia la lectura de la EEPROM o la misma ha terminado.
1 TMRO.
5adiir).
                                     RD
                               o 
 = 1 . Inicia la lectura de la EEPROM. Se borra por tiardware.
4RO cutriu                    WR tWritc1 Control Bid). Bit dc coilti-o1 de escritura eri la EEPROM. Al 
prinerlo
                              en "1" se inicia 
uwi escritura dc uri byte en la EEPROM de datos. Este bit se 

                              limpia (se pone 
en "0") por hardwñre autciinaticaniente una vez Ea escritura de la
                              EEPROM tia terminado. 

                               u 
 WR = O . No inicia la escritura de la EEPROM o la misma ha terminado.
                                                                                                                        1' ¤
                               o WR = l. Inicia la escritura de la EEPROM. Se borra por hai-dware.
                              WREN (EEPKOM WrifeEnuble bir). Permiso de escritura en la EEPROM.
                               o WREN = O. Prohíbc la iiscrjtiira de la EEPROLl
                               o WREN = l . Permite la escritura de la EEPROM.
                              WRERR (EEPHOM Writt3 Error FIug Bit). Flag de cnor en la escritura. Se
                              posiciona a "1 " cuando la operación de escritura temiria prernaturamcnte dehido 

                              a
ciialquier condiciiin de rcsct. .
                               o WRERR = O. La operación de escritura se ha completado correctamente.
                               o WRERR = l . La operacibn dc escritura ha terminado prematurariientz.
                              EElF (EEPROM Wrile Op~ratiunInlernyf Flag BIEJ. Flag dc cstado dc
                              iiitzrrupciijn por finalizaciiisi de escritura en EEPROM. Señala el final con 
éxito
                              de la 
aperacion de escritura de un byte en la EEPROM.
61U                   PICl hF84 DLSARROLLU DE PROYEC'I'US
      hliCRKON~CR0LADOK                                                               I,R~-MA




         o EEIF = O . La operación de escritura de la EEPROM no ha terminado o no
              comenzó.
         o EEIF = 1. La operación de escritura de la EEPROM ha terminado. Debe
              borrarse por software.
         Bits 5, 6 y 7 (Unimplcmentcd). No implemcntados fisicatnente. Sc leen "O".


                                                                          89h Banco 1
       {EEPROM C'untrol Register 2). Este registro no est5 implemeníadci fisicamente,
por lo que es imposible leerlo (si se intenta leer, todos siis bits se leen ccinio ceros). Se
emplca como dispositivo de seguridad durante el proceso de escritura de la EEPROM,
para evitar las interfercncias en el largo intervalo de tiempo que prcciva su desarrollo.


REGISTRO DE CONFIGURACIÓN
      El PIClBF84 dispotie de una palabra de configuracion dc 14 bits que se escribe
durante el proceso de grabación del microcontrolador y que no se puede modificar
dwantc la ejecución de un programa. Dichos bits ocupan la posición reservada de
         de
men~oria programa 2007h.




               Tabla E- 7 Regisbu de coi$girroción (ConfigwrationWorrl)

        FOSC<1 :O> (Flag Oscilntor Selecdioral. Selecciiiri del tipo de oscilador:
           o FOSC - 00. Oscilndor de bajo consunio LP (32 kH7 - 200 kHz)
           o FOSC=01.Osciladorestind;lrXT( 1110kHz-4MHz)
           o FOSC = 10. Oscilador de alta velocidad HS ( 4 MHz - 20 MHz)
           o FOSC = 1 1. Oscilador cle bajo coste RC.
        WDTE (Wutclrltug EnaAle). Bit de habilitación dcl Il'atchdog.
                                                                                                VPP
           u WDTE = O. Watchdog deshabilitado.                                                  D
           o WDTE = 1. Watchdog habilitado.
        PWRTE cPori'rr-up Timer Encrhlcl. Activaciiin del temporizador Power- Up.
           o PWRTE = 9. Temporizador Poww- Up deshabilitado.
           o PWRTE= 1.TernporizadorPci~u~r-Uphahilit;ido.
        CP ~C'ode~ot~~~dionbit~BitdeprotecciÓndeciidigo.
           o CP = O. Toda la memoria de programa cstá protegida contra lecmas
              indeseables.
-ainente,
ros). Sc
PROM,
lo.
                                                                          GRABADOR T20-SE

escribe
odi ficar
latia de




                                                                                 1K5
                                                               Data 1 0
                                                                     1                 DTh




                          --                                                    TxD    TxD


                  -1
                  .-
                   -
                   .      Zocaro PIC tA Pines                                     R4
                                                               'dPP               Ik
                                                                 A

            VPP

            D

                                                  TxD
                                                  D
                                                                                             CCK

                                                                                             4


                   2-lo      PIC 28   Ptnas             -L
                                                         -     &
                                                               -            -    -       -

                                                Fi-quraF- l E~qia~nzu
                                                                   elt'ritico
Cara de componentes                                      Cara de pistas

                         Figura F-2 Placa de Circuito Im11w.so
                                                                                   quc u
    LlSTADO DE COMPONENTES:




                                                                      A-:.
    D3,DJ    1N414Y                                               .<.
                                                             - - - :
                                                              : -- - - -
                                                                             a->
                                                                              -2
    D5       Zénerde 5Vl %W 1                       <- >+
                                                      m
                                                            . .; 1
                                                            +:
                                                             .*.  :

    D6       Zenerde 8V2 L/zW 1           y&:%/
                                             :
    JI       Zocalo 8 pines    4

    J2       Zócalo 18 pines i
    53       Zócalo 28 pines 1
    P1       Conector DB9 hembra   1
    Ql,Q2    BC547 ' I
    43       BC557 s.
    R1        100Z   1
I   R2        IOk
                                                     
                                                  F g r u F-3 Grabador TEtO-SE
                                                   iir
ASCII es el acrhniinci tic . 4 r m ~ r l l ' r l t l Stund~rrdCede for Iraformadion Jnb~rchange
(Código Normalizado Arnet.iclirio liara el Intercambio de Información). E1 código ASCIl
cs un sistcrna de rcprcsentación utilizado en los sistemas digitales (incluido ordenadores)
que utiliza un esquema de codificacion que asigna valores numéricos a las letras,
níiriieros. signos de puntuación y a otros caracteres. Al normalizar los valores utilizados
para dichos caracteres se logra que, en sistemas dipitales, microcontroladores,
ordenadores y programas inforrnáticos intercambien infomaci8n.

       Dado su origen en el sistema binario, el código ASCIl cstá coinpiiesto por 256
valores quc cstan divididos a la mitad en el conjunto est;indaiízado y el conjunto
extetidido de L 28 valores cada uno.
   4     Cbdiga ASCII estiindar. E conjunto ASCII bkico, o estandar. utiliza 7 bits
                                      1
         para cada codigo, lo que da como resultado 1211 cbdigos de c m c t e r c s desde O
         hasta 127 (OOh hasta 7Fh hexadecimal). Son los niismcis eri todos los sistemas
         operativo., y lenguajes de programación. Norn~dtnentc estos códigos se
         representan con 8 bits, poniendo el octavo bit o MSB a cero.
         Cúdigo ASCll extwdido. So11 10s caracteres del 128 hasta el 255 (8Oh al FFh
         hexadecimal) y no hay uii aciierdn respecto a ellos. Se asignan a conjuntas de
         caracteres que varían según los fabricantes y programadores de software. Estos
         códigos no son intercaiiihinbles entre los diferentes programas y sistemas
         digitalcs como los caracteres ASCII estándar.

       En el conjunto de caracieccs ASC'II cstandar se diferencian dos grupos:
         Códigos de control. Los prirneros 32 valores (del O al 31) están asignados a los
         cbdigos de cotitrol de coniunicaciotics y de impresora (caracteres no imprimibles,               1
014   Xi II'R( X7C)KI'ROI.AIIOK P-C: I I,t $4. DESAKKOLI.0 CIE PROYFC'TOS           CI K<-L~A




         como rctroccso, retortiu dt: ciuru y tabulacion) empleados para controlar la toma
         en qiiz la intbnnacibn es ti-ansfcrida dcsde uii ordeiiadcir a otro n desde iui
         ordenador a una iinpresora.
         C6digos alfanuméricos. Los 96 ciidigos rcstaiites (del 32 al (27)siir] cariictercs
         ASCIl nonnalcs, se asignan a letras rnayúscuIas y minus~ulas alfabeto latino,
                                                                      del
:wdc tcrcs
:to Iniirici,
is que se


                                                                                        APÉNDICE H 




                                            DIRECCIONES DE 1IVTER.NET


                    EDITORIAL Ka-Ma: ~ww.ra-ma.e?o www.ra-ma.com

                    FABRJCANTES Y DISTRIBUIDORES

                     wwn .~iiicrochip.com                 Microchrp    Technolr~gy n       fabricante de
                     microcontroladores PIC.
                     w~w,dalsem
                     -                 I .com Dal/us S c i n i c o r ~ d - M fabricante de componentes
                                                                                   ,
                     elec~bnicos      utilizados zti el libro.
                     www.semiconductorc.philips.co~ Philifa Semic,ond~~cfor,~,               fabricante de
                     componentes utilizados en el Iihro.
                     u w w . national.co~Nutinnd Semiconíiuctor.
                     ww w . fairchildserni.com Fairchild S e n i i c o n d ~ c ~ ~ ~ r .
                     h ~ : / / s h a i ~ - ~ ~ ~ o rShiirp o ~
                                                    I d . c Corpomfion.
                     ~ c w wfutiiba-rc.corn Futabu, fabricante servomotores.
                               .
                     w w , v ishay.coni I/ishay Semrcondu~,tors,fabricanle del L'N Y70 y otros
                     componentes electrónicos.
                e    www.optekinc.com 0p1t.k Tcehnnloky, fabricante de sensorzs ópticos y otros.
                     ~ww.ist>coin.co~n        Iscicom Cuqin,ients, fabricante de opt~acopl~idorcs.
                     wwu.robot-electronicl;.co.uk Devunlech L.td,componentes para inicrorobótica.
                i    www.h~oi?.com Hi-Twh So@c~re, ~ii'opietariosde los derechos sobre cl
                     compilador PICC'.
                     ~ww.ccsinfo.comCCLYTrzc~,propie~~osdeIcoinpiladorPCW.
                     w ww.melabs.com                                   Liibs, propietarios del ccimpi lador
                                                  iZ~íit~roEngitreer~rlg
                     PICBasic Pro.
6 16       MlCROCONTROLADOR PIC l hF84. DESARROLLO DE PROYECTUS                      D R A-hIA



       i      www.sanitron.es Distribuidor de microcontroladorcs PIC. También vende todo
              tipo de componentes electrbnicos.
       i      ww.mode1i1nport.com Distribuidor de servomotores para España. Ticnc iina
              útil relación dc ticndas que venden productos de modelismo.
              www.idm.homepa~e.ciklne~ic.htm        Programadores JDM.
              www-ic-prog.com S o h a r e IC-Prog.




      Las paginas Web de la secciiin anterior también tienen buenos foros sobrc
microcontroladores PIC. Otros foros:




             AUTORES DE ESTE LIBRO                                                                ?
                                                                                                 S oluc
                                                                                                 Progr




              www.ccitii~inidadele~u~ni~~s.~~n~información útil sobre temas de
                                                         Mucha
              electriitiica.
       i      I~~:!:!pirrci-itial.redestb.es:!c'dstiIIoM h inforrnacion Útil.
       a      it~u:.piclist.com Ciiti niiiclia itifoniiación sobre microcontroladorcs PIC y
              múltiples cnlaczs (cri ing t is).
vende todo

. Tiene una




                                                                                          APÉNDTCE I
                                                                                                                 l!




                                                    CONTENIDO DEL CD-ROM 

foros sobrc

                      El CD-ROM que se incluye en la presente publicaciiin contiene todos los
:S             programas necesarios para realizar los proyectos desarrollados en este texto. Hay además
               otros ficheros de ayuda o complementatins.

                     Las diversos subdirectonos o ficheros que contiene son:                                 1




                                 Contiene el archivo MPLAR v.6.40.EXE que es programa de
                                 instllacibn de MPLAB IDE vmibn 6.40.0.0 y algutiui archivos en
                  MPIAB lDE
                                 formato PDF con información sobre el ensainblador MPASM, MPLAB
                                 y otros.

                    -1           Los prdgramas resueltos de todos los ejercicios y proyectos.
                  S olursicnes
                     

                   Progiamas

                                 Ficheros para rl 1C-Prog que es el software de grabación de
                                 rnicrocontroladorzs desarmllado por Bonny Gijzen y recomendado en el
                   IC-Prog       libro.

                                 Ficherua para la realización de la placa de circuito impreso dcl grabador
                                 TE'IO-SE.
e irmas de        TE 20-5
                        E


                                 información ticiiico sobre los componentes utilizados en el libra.
:iirss PIC y         PDF
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao

Más contenido relacionado

PDF
Manual de PLC Micrologix 1400.pdf
PDF
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
PPT
Transformada Zeta
PPTX
Sección 3.2 Propiedades de la transformada Z de señales discretas
PDF
Manual de uso ha120 px ha16x ha16spx ha16px ha18spx ha18px ha20px ha260...
ODP
Clase 5 - Diseño de controladores por LGR
PDF
Teoria de operacion fly back
Manual de PLC Micrologix 1400.pdf
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
Transformada Zeta
Sección 3.2 Propiedades de la transformada Z de señales discretas
Manual de uso ha120 px ha16x ha16spx ha16px ha18spx ha18px ha20px ha260...
Clase 5 - Diseño de controladores por LGR
Teoria de operacion fly back

La actualidad más candente (20)

PDF
Documentación Complementaria_Manual Maquina-rx-hitrax-operator
PDF
PERKINS 100 SERIES 103-10 DIESEL ENGINE Service Repair Manual
PPT
Diagramas de bode funccomplejas
PDF
Cicloconvertidores trifásicos con modulación de ancho de pulso
PPTX
Módulos ccp pic 16f887
PDF
Circuitos eléctricos 7ma Edición James W. Nilsson.pdf
PDF
Rs 422-rs-485-e book-graphics-embedded
PDF
Pspice fuentes dependientes
PPTX
10. Dispositivos Programables Logicos.pptx
PDF
Manual de Telecomunicaciones Ingenieria Electronica
PDF
Electrónica: Electrónica aplicada. CF Instalaciones de telecomunicaciones por...
PDF
Control digital: Control digital MATLAB.pdf
PPTX
Memorias en circuitos digitales
PPT
Microcontroladores
PPT
Clase07 sistemas de segundo orden
DOCX
Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech
PDF
Microcontroladores ver2.0
PDF
Optimización económica de cables eléctricos
PDF
PROYECTOS CON PIC 16F84
PDF
Resumen potencia
Documentación Complementaria_Manual Maquina-rx-hitrax-operator
PERKINS 100 SERIES 103-10 DIESEL ENGINE Service Repair Manual
Diagramas de bode funccomplejas
Cicloconvertidores trifásicos con modulación de ancho de pulso
Módulos ccp pic 16f887
Circuitos eléctricos 7ma Edición James W. Nilsson.pdf
Rs 422-rs-485-e book-graphics-embedded
Pspice fuentes dependientes
10. Dispositivos Programables Logicos.pptx
Manual de Telecomunicaciones Ingenieria Electronica
Electrónica: Electrónica aplicada. CF Instalaciones de telecomunicaciones por...
Control digital: Control digital MATLAB.pdf
Memorias en circuitos digitales
Microcontroladores
Clase07 sistemas de segundo orden
Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech
Microcontroladores ver2.0
Optimización económica de cables eléctricos
PROYECTOS CON PIC 16F84
Resumen potencia
Publicidad

Destacado (7)

PDF
Microcontroladores pic diseño practico de aplicaciones
PDF
Microcontroladores
PDF
Curso de programacion en c++ para microcontroladores pic 16 f87xx
PPTX
Microcontroladores
PDF
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
PDF
Curso de-mcu-proteus
PDF
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Microcontroladores
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Curso de-mcu-proteus
Microcontroladores pic (josé mª angulo usategui, ignacio angulo martínez)
Publicidad

Similar a Microcontrolador pic16 f84, desarrollo de proyectos ao (20)

PDF
Microcontrolador 16f84 X
PDF
Sistema Basado en Hardware Reconfigurable para el Filtrado de Contenidos en P...
PDF
Microcontrolador PIC16F84 Desarrollo de Proyectos.pdf
PDF
Microcontrolador 16f84(1)
PDF
Manual LyX: Con "L" de LaTeX
PDF
Arduino user manual_es
PDF
Arduino user manual_es
PDF
Arduino Manual de Usuario
PDF
Physthones 0 1
PDF
Guía del profesor oficial de LEGO WeDo
PDF
Lego education we do teacher's guide (wedo)
PDF
Lego education we do guia del profesor
PDF
Introduccion a la programacion en c prev
PDF
Curso logica digital unam
PDF
Manual excitador-vaca
PDF
Gulp 0.11
PDF
Dentro nucleo linux
PDF
Manual de programacion_con_robots_para_la_escuela
PDF
Manual de programacion_con_robots_para_la_escuela
PDF
Penduloinvertido
Microcontrolador 16f84 X
Sistema Basado en Hardware Reconfigurable para el Filtrado de Contenidos en P...
Microcontrolador PIC16F84 Desarrollo de Proyectos.pdf
Microcontrolador 16f84(1)
Manual LyX: Con "L" de LaTeX
Arduino user manual_es
Arduino user manual_es
Arduino Manual de Usuario
Physthones 0 1
Guía del profesor oficial de LEGO WeDo
Lego education we do teacher's guide (wedo)
Lego education we do guia del profesor
Introduccion a la programacion en c prev
Curso logica digital unam
Manual excitador-vaca
Gulp 0.11
Dentro nucleo linux
Manual de programacion_con_robots_para_la_escuela
Manual de programacion_con_robots_para_la_escuela
Penduloinvertido

Último (20)

PDF
Ficha de Atencion a Padres de Familia IE Ccesa007.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PDF
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
PDF
KOF-2022-espanol-mar-27-11-36 coke.pdf tv
PDF
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
DOCX
Fisiopatologia bdjdbd resumen de cierta parte
PDF
Telos 127 Generacion Al fa Beta - fundaciontelefonica
PDF
KOF-2022-espanol-mar-27-11-36 coke.pdf jsja
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
DOCX
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
DOCX
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - TERCER GRADO.docx
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PDF
Aprendizaje Emocionante - Begoña Ibarrola SM2 Ccesa007.pdf
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Manual del Gobierno Escolar -MINEDUC.pdf
PPTX
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
PDF
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
Ficha de Atencion a Padres de Familia IE Ccesa007.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
Las Matematicas y el Pensamiento Cientifico SE3 Ccesa007.pdf
KOF-2022-espanol-mar-27-11-36 coke.pdf tv
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
Fisiopatologia bdjdbd resumen de cierta parte
Telos 127 Generacion Al fa Beta - fundaciontelefonica
KOF-2022-espanol-mar-27-11-36 coke.pdf jsja
Modelo Educativo SUB 2023versión final.pdf
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - CUARTO GRADO.docx
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
TEXTO DE TRABAJO DE EDUCACION RELIGIOSA - TERCER GRADO.docx
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
Aprendizaje Emocionante - Begoña Ibarrola SM2 Ccesa007.pdf
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Manual del Gobierno Escolar -MINEDUC.pdf
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf

Microcontrolador pic16 f84, desarrollo de proyectos ao

  • 3. Microcontrolador PICI 6F84 Desarrollo de proyectos
  • 4. 1 1 h Microcontrolador PICI 6F84 Desarrollo de proyectos Enrique Palacios Municio Fernando Remiro Dominguez Lucas J. Lopez Perez Alfaomega 4+ )Ra-Ma'
  • 5. Microcontrolador PIC lbFB4. Desarrollo de proyectos Q Enriquc Palacios Muiiicici. Feraando Kemi ro Dominguez y Lucas J . L6pez Pérez ISBN 84-7897-600-0, edicidn original publicada por RA-MA Editorial, reservxicis 0 RA-MA Editorial MADRID. Erpaiía. Derc~hos MARCAS COMERCIALES: RA-MA ha intentado a largo de este libro distinguir las marcas registradas de los términos descriptivos, sigiiiendo el esiilu de mayusculas que utiliza el Fabricanre, sin introci6n de infringir la marca y sólo en beneficio del propietariode la misma. Primera edición: Aliaoiiiega Grupo Editar, Mkxico. agosto 2003 8 2004 ALFAOhlEGA GRUPO EDITOR, S.A. de C.V. Pithgoras 1139, Cul. Del Valle, 03 100 México, D.F. Miembro de Id Camara Nacional de In Ind~striaEditorial Mexicana Registiw No. 23 17 ISBN 970-15-1033-X Derechos reservados. Esta obra es ptopied.d intelectual de su autor y 10s derechas de publicacicin en lengua española han sido legalmente transferidus a editor. Prohibida su l repri~ducción parcial o total por cualquier medio sin permiso por escrito del propietario de los derechus dzl copyright. NOTA IMPORTANTE - - - La inforniacirrn cnnten ida en esta oliri tienc un i'iii ex~lu~ivamente diddctico y. por lo tanto, no esti previsto sil aprovcchamirnio 3 nivtl profcsirinai ti in- dustrial. Las indicaciones técnicas y programas incluidos. han cidn elahnra- dos COI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas de control. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no será jurídicamon- te responsabte por: errores u nmi<ioner; dairos y perjuicios quc se pudieran atribuir al uso de la información comprendida en este libro, ni por la utiliza- ci6n indebida que pudiera dársele. Edición autorizda para venra e n Mkxici<i y todo el continente americano - Impreso en Mdrico PrintM in M e ~ k o
  • 6. A mi m yer. Maribrl, por- sic a p q n o ,c.ari,ioy paciencia. rk .4 mi,v hijos. C'i-istN ra Enrique. mi rnaymfi~cnir liltiyrias 1'slrtis/;rcciones. A n l i PUIJI-CS. Eririque y Sagr~rriu, rc.c.ujiociniieritu a su sacrificio. ~ cbti Enrique . mir pudre.^, hgo y demús ppersoncls it~~port~irirta v i h . 1 ~k rni Lucas A mis dos mujeres, Natalia con la que decidí compurrir mi.? dius *c ,A~icinicii me que uir7gi.u cudu diu J J . ~ narici y que a sus tre.y oños no deju de quewr rlj~tltf~irrne que a escribir y progrumor microcon~oladores per.i/L:r.icos. y Fernando
  • 9. Capitulo 1: MICROCONTROLADOR PIC16FS4.......................................... 1.1 Micrricontrolarlures PIC ................................................................................... 1.2 Alimentación de un PIC16F84 ..................................................................... 1.3 Puertos de entraddsalida .................................................................................. 1.4 Oscilador ........................................................................................................... 1.4.1 Oscilador XT ..................................................................................... 1.4.2 Oscjlador RC ..................................................................................... . . 1.4.3 Osciladores HS y LP ......................... ............................................. 1.4.4 Utilizando una señal de reloj externa ................................................ 1 . 5 Reset .................................................................................................................. 1.6 Montaje del entrenador..................................................................................... capitulo 2: PERTFÉFUCOS BASICOS ......................................................... 2.1 Diodo LED........................................................................................................ 2.2 Interruptores y pulsadores ..................... . .................................................... 2.3 Entradas &@talescon optoacopladores........................................................... . . 2.4 Display de siete segmentos ......................................................................... 2.5 Controlando cargas a 230 V ............................................................................. 2.5.1 Conml con relé ................................................................................. 2.5 .2 Control con re14 miniatura en cápsula DIL ....................................... 2.5.3 Control mediante fototriac ..................... . ......................................... 2.5.4 Conml de potencia con tnac .............................................................. 2.6 Zumbador..........................................................................................................
  • 13. 9.3 Saltos en funcidn de un registro................... .... ............ ............................... ,.,.. . "decfsz f,d" . ..... ............... ....................... .............. ........... 9.3.1 I ~ h c c i o n r 9.3.2 Instrucción "incfsz f,d"............................................ ....... ....... ..... ....... ., 9.4 Cotnparacion de registros.. . ................... .. ...... ......... ....... .. .............. ... .. ... .. . . .. .. .. . 9.4.1 Comprobar que un registro vale O .................................... . ......,......,. 9.4.2 Comprobar igualdad enlre dos regismos.................. ..... .... ......... . .... ... . 9.4.3 Comprobar que un registro es mayor o menor que otro.................... 9.4.4 Programa ejemplo..... ..... .................... ............ ...- . ....... ....... .... ..... .. . .. ... .. 9.5 Lazos o bucles........................ ........................... ...................,.,.,.., ..................... . 9.5.1 Lazo de repeticihn infinita......... ...................... .......... .. ....... .... .. ... ... 9.5.2 Lazo con condición de testeo.......... ................................. ................... 9.5.3 Lazo que se repite un numero conocido de veces.............................. 9.6 Programacion y algoritmo.. ............... ......... . ..,....... ..... .. . .. ,.. .. . .. ... ....... ... .. .. .. .. .. 9.7 Diagrama de flujo ..... ..... ..... .. .. . .. .. ... ... ... .............. -................. ..... ........... . . . 9.8 Más directivas importantes .............................. ........................... ..................... 9.8.1 CBLOCK y ENDC............................ .... . ............................. .............. 9.8.2 #DEFINE ..................................... .. ..................................................... 9.9 Conversionde binarionatural aBCD................................. .. .......................... .............. .............. . .......,.. 9.10 Salto indexado ......... ........................... ..................... 9.1 1 Salto indexado dcscontrolado ........................ ..... . .................................... 9.12 Prácticas de labamtorio .................................................................................. Capitulo 10: SUBRUTTN.4S................ .......... ............................... ..................... 10.1 Subrutinas ...................... . .. ......................... ........................... ..................... 1 0.2 Subrutinas anidadas.... ...... ......... ..... ............... ................. .. ..... ... .. ......... ..... ... .. . 10.3 La pila ..................... . ............... ..................................................................... 10.4 Tnstnicciones "call" y "retuni".......... ... ................. .. . ....... .. . .. ............. .. . .. .. .. .. .. 10.5 Ejemplo de utilización de las subrutinas........... ........................................... 10.6 Ventajas de las subrutinac ..................................... ........................................ 10.7 Lbreria de subrutinas........... ................. ...................... .. .... ....... ......... .. .. .. ..... 10.8 Directiva "INCLUDE"........... ..... ....,.. ........ ... .... ....... ... ....... .......... ....... ... .. .. ... . 10.9 Simulación de subnitinas en MPLAEI . .......... ....... ....... ................... ..... .., .... ... ., 10.10 Programacion estructurada........................... .. .q,.,.............,,, ...qq.....,,,-..........,q, 1O .11 Practicas de laboratorjo ................ ..... . ........ ..... .. .............. .......... .. . .. ... . ... .. . .. Capitulo 11: MANEJO DE TABLAS ..................................................... 1 1 . 1 Tablas de datos en memoria de programa ..................................................... -' 11.1.1 Insmccion retlw ............................................................................ 11 73 1 1 -1.2 Directiva "DT' .......... ...................... ... ..,.,... .., ..... .......,., ,.,....-....... ..... . 1 1.2 M i s directivas................................................................................................. 11.2.1 MESSG .......................................................... . ................................... 11.2.2 ERROR .............................................................................................. 11.2.3 [FyENDF........................................................................................
  • 14. XIV MICRW0NTRC)tADC)R PIC'IbFB4. DCSiiR ROLLO DE PROYECTOS w nA-hW - $ 1 1.3 Gobierno de un display de 7 segmentos .................................................... 162 1 1.3 Practicas de laboratorio .................................................................................. Capítulo 12: SUBRUTINAS DE RETARDO ................................................ 12.1 Ciclo miquina ............................................................................................... 169 i 12.2 Medir tiempos con WLAB .................................. .................................. 171 I 12.3 . Instniccion 'hop".......................................................................................... I 17 1 1 12.4 Retardos mediante lazo simple ..................................................................... 172 12.5 Retardos mediante lazos anidados............................................................... 174 12.6 Librería con subnitinas de retardos.............................................................. 176 I 12.7 Rebotes m los pulsadores ......................... . . ................................................ 18 1 1 12.8 Practicas de laboratorio.................................................................................. 184 1 Capitulo 13: LCD ................................................................................................ 187 C 13.1 Visualizador LCD........................................................................................... 187 1 13.2 Patillaje ............................................................................................................ 188 1 13.3 DDRAM ......................................................................................................... 189 1 13.4 Caracteres definidos en la CGROM ............................................................ 191 1 13.5 Modos de funcionamiento........................ ................................................. 19 1 .. 1 13.6 Comandos de control ................................................................................. 192 1 13.7 Conexión de LCD mediante 4 bits .............................................................. 1 3.8 Librería de subnitinas .................................................................................... 194 C 13.9 Visualizacibn de caracteres .......................................................................... 201 1' 13.10 Visualizacj6n de valores numéricos .............................................................. 202 1 13.1 1 Conexibn de LCD mediante 8 bits ................................................................ ?O3 1 13.12 Visualización de mensajes fijos ..................................................................... 204 1' 13.13 Visualización de mensa-iesen mo~iniiento ................................................... 208 13.14 Prkticas de laboratorio ......................................................................... 209 1' Capítulo 14: EEPROM DE DATOS .................................................................. 213 1' 14.1 Memoria EEPROM de datm ......................................................................... 213 1' 14.2 Registro EECON 1....................................................................................... 215 1 ' 14.3 Librería de subrutinas..................................................................................... 216 1' 14.4 Lectura de la EEPROM de datos ................................................................... 2 17 1' 14.5 Escritura en la EEPROM de datos.............................................................. 217 1' 14.6 Directiva "DE" ................... . . ..................................................................... 218 14.7 Ventana "EEPROM" en el MPLAB .......................................................... 218 C 14.8 Programa ejemplo........................................................................................... . . 14.9 Bloquear un circuito ....................................................................................... 22 1 1I 14.10 Prácticas de laboratorio.................................................................................. 227- 1I 11 1I 11
  • 23. iía estructura de La teoria desarrollada va siempre dirigida a hacer las prácticas, siendo 13 m entender los imprescindible para la realimción de los proyectos de dificultad crecieiite que trabajan sobre circuit~s reales. : software y del Esperamos que la lectura de este libro le resulte seilcilla y sobre todo que cumpla M conocimiento la finalihd para la que esta cscriio, que con los pocos niedicis técnicos de los qiie se siicic itilizar porque es dispuner en casa. sea cap= de desarrollar proyecuis tiiicroprobmables dc una forma autodidacta. C'ualqiiier aficionado, estildiantc o ingzriiero, con ayuda de este libro, debe ser capaz de empezar a utili7ar el PICl hF84 inmediatamente en sus propios proyectas y lgramable; y el diseiios. en detalle cómo ente. Nuestro agradeciiniento a las iiibricantes Micruchip Tt'clinology inc, Phidip Sem~conducror~ Dullu,c Smiconductors, así como a la erliprcsa Sagiiron por su y la enseñ;uiza de constante esfuerzo en ayudar a los usuarios en la uiilizacion de sus producios. rnpartú nuestras 317 realizadas por Querertios finalmcntc agadecer a todos 10s compañeros y alumnos. la ayuda an de un teclado, prestada, sugercticias y participación en el desarrollo de esta obra: Carmen Ghtticz, Julio uello funcionara. Redondo, Jesús Sanz, Javier Tempradu, G e m a Gil, Jiian M. Morales, Jcid M. n la tecla r?in y Escobosa, Atia &irnora. Nuria Tririjatw, José A. Sanz, Alejandro Pico, Loli Moreno. S alumnos ieniair Sergiu González-Nicolás, Javicr G m ia-Caro, Diego A. Cbrdoba, Alfonso Martíii, "'maleta" era el Eduardo F. Garcia Folgar. Ángel Toledo y Fmando Blanco. rcicesador eri siis LOS AUTORES s este mundo dc sdz el esquema a tid do al sistema gas. Entrc otras, 1 p e1 misnio y r comprender. No itorios, sino que m Y por Ultimo, :4 mismo el que ar que lo que ha S -; años de IS aqui descritas. ipción. También rse junto con un -es, a complejcs
  • 24. CAPITULO 1 MICROCONTROLADOR PIClóFS4 1 . MICROCONTROLADORES PIC Un microcontrolador es un circuito integrado programable que contiene todos los componentes necesarios para contrc~lar el funcionamiento de una tarea determinada, como el control de m a lavadora, un teclado de ordenador, una impresora, un sistema de alaril~a,ctc. Para ésto, el rnicrocontrolador utiliza muy pocos componentes asociados. Un sistema con rnicrocontrolador debe disponer de una memoria donde se almacena el programa que gobierna el funcionamiento del mismo que. ima vez programado y configurado, siilo sirve para realizar la tarea asignada. La utilizacion de un rnicrocontroladoren un circuito reduce notablemente el tamatlo y número de componentes y, en consecuencia, disminuye el niimero de averías y el volumen y el peso de los eqiiipos, entre otras ventajas. El microcontrolador es uno de los inventos más notables del siglo XX. En el mercado hay y a n cantidad de ellos, con multitud de posibilidades y caracteristicas. Cada tipo de microconmlador sirve para una serie de casos y es el diseñador del sistema quien debe decidir cual es el micrwuntrolador más id6neo para cada uso. En lm últimos ~ í í u han tenido un gran auge los microcmtroladores PTC fabricados s por Microchip Technology Inc. Los P IC (Peripheral Inteqace Conmllerj son una familia de microcorrtroldores que ha tenido gran acepíación y desasrollo en los Últimos afím gracias a que sus buenas c mterísticas, bajo precio, reducido consumo, pequeRo tamailo. gran calidad, fiabilidad y abundancia de infomiacih, lo convierten en muy fácil, ciimodo
  • 38. 130 V (bombillas. Es indispcnsablc coilcclar un diodo cn paralclo con la bobina dcl rc16, tal como ipropiados donde muestra la tigurü 2-6. coino protecciOn frente ¿ilos picos de fuerza coiitraeiectromotriz ica. producidos por la carga inductiva de la bobina eri el inomento de la coniniitaciiin. Iéctrica dc 230V. Para controlar uri cicrto núincro dc rclCs a partir dcl niismo ~nicrocontrolador, sc provocar lesiones piiede tititizar un circuito integrado especializado tal coiilo el U LN2003, figura 2-7. Este aje y revisarlo chip dispone de siete circuitos inversores rediizados internamente con circuitos las conexiones o I)arlingtori, quc aguaiitan una tcnsión inaxii~iadc 50 V y pucdcn alimentar cargas de is eléctricas, sin hasta 500 mA, incorpora tainbiCn los indispcnsablcs diodos dc protcccion. iar dispositivos a ir de transistores 1 CARGA GND w7 l--N DIODE COMMON Figura 2- 7 Driver ULN2003 La figura 2-8 describe el esquema tipico de conexión, donde el ULN2003 alimenta las bobinas de siete reles. I I 5.. 5 o ULN2003 o O > 17 6 RBOIIMT 7 RBI UA2 RB2 - RA3 W4TTDCKI RB3 RB4 10 11 R55 12 RB6 IN7 OUT7 rq RB7 13 8 GND COM. g to a la base del BOBINAS :ontactos, puedc - :lectricamentc la de los contactos oportar más de 5 F i p r u 2-8 Circuito ttr'yico de gobierno de varios reI&scon ULN2003
  • 39. - 16 MICROCOWROLAWR PIC 1 hFR4 T)LSARROLLO DE I'KUY CCTOS -' R 4-MA - I RA-M) í 2.5.2 Control con relé miniatura en cápsula DIL de la Para cargas de hasta 10 W es riiejor utilizar reles de láminas encapsulndos en DIL, alta f que necesitan una menor inta~sidridde activacibn, aunquc sus contactos no perniitzii dar 11 activar cargas grandes. La f i p r a 2-9 muestra un ejemplo de apjicacitin donde s61o es necesario un tratisistur para gobernar et reli. Normalmentt estos relés llcvan incorporados dentro de la cipsula el diodo de protección, como se ~iuede apreciar en la fototr figura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito. 5v ALlMENTAClON CARGA 'l - - - CARGA R1 u1 10k BC547 CARGA hiiAxiMA (500 mA. 1bW) Figui F i p r u 2-9 Gobierno de p~qrtriln~ cargas u trai.L.rd~ un rd&de láminas en cu~)sulu DIL hará i 2.5.3 Control mediante fototriac ~ U Z .1i la te En el circuito de I:i figura 2-10 los contactos del relé son siistitiiidos por un prácti fciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz. el ti rí es ne El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace cona; mediante w o p t ~ ~ o p l a d o r i MOC3041, qiic es iiii circuito integ~dc) incluye iin LED que que controla al fototriac. Este dispositivo esti rspccialmente diseñado para usarse coino interface tic sistemas 1Ógic0s con equipos que tienen que alimentarse coi1 los 230 V de la apag: red clectiiila. Sus carac tensti cas mas significativas son: conil Incorpora un pequeño y eConíirriicoencapsulado DIP 6 . corrii Su tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre la red eléctrica y el microcontrolador. Es capaz de proporcionar hasta 1 O0 niA, que le permitiría alimentar garar directamente pequeilas cargas de hasta 20 W. Su fototriac interno permite el control de la casi totalidad de los grandes tiiacs, lo que no seria posible si se iitilizara un fototransistor ordinario. de la cjrcu Cuenta con un detector de paso por cero inlenlo, lo que permite economizar de rt un número iio despreciable de componentes externos. c ircu El cc
  • 42. ~ciamínima Para conseguir cstas potencias, el triar: debe ir montado sobre un buen radiador de rna es dc calor, de forma que el semiconductor cc refigere adecuadamente. A la llora de poner el ;mdo en el radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarse al . Por tanto. temiinal T2. por lo que se dcbe aislar cuidado(;aincntc el triac de! radiador rncdiante una lamina de mica y un separador dc plishco para el tornillo. I '- 2.6 ZUMBADOR ic, donde la En muchos proyectos es necesario indicar mediante tina sefial audible la ocurrencia r a! de un de un evento. Para ello normalmente se utiliza un zurnbsidor piezoeléctrico miniatura ;u vez, esta corno cl de la figura 2-12. rolar cargas Un zumbador miniatura funciona con tensiones comprendidas entrc 3 y 16 V y su consumo no supera los FO mA, por 10 que puede ser alimentado directamente por la salida de un microcontrolador, tal como s indica cn la figiim 2-13. e SUM&ADOR EMITE SONIDO CON SALIDA A NIVEL B A l O tc entrc en olnac para ZUMBADOR EMITE SONIDO CON SALIDA A NIVEL ALTO 137 (8 A) 822 'uctivas ei Fisura 2-13 Conexihn de irn aimbador ininiafirt-a a un microconfroJador
  • 44. 22 fICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS ~RA-M En microcontr: múltiples v tienda de ci por sí mism 1 - Ordenador Personal Grabador E> Programador (TEPO-SE o compatible JDM) Fjxlrra 3-1 Coyf;guraci¿inpar[/p b o r micrmot iri-orudorps con medios redz4cilr'os 3 2 GRABADORES . El grabador o programador es el equipo físico dondc se procede a p h a r la memoria del rnicrocantrolador con l% instnicciones del prapma de control. Tiene un a zkalo libre sobre el quc se inserta el circuito integrado a grabas, el cual debe orientarse uadarnente siguiendo la señal de la capsula del chip. Hay multitud d.c grabad ores :rciaEes en mercado que se pueden adquirir en cualquier tienda de clec trbnica. e1 Microchip o k c e el gmbador PICSTART PLUS, de muy ficit utilización y ihzada fiabilidad respaldada por el fabricante (fipra3-2). En las quc apenas r miicho rncnu muy iiitcrcsai que estos g~ purtAtiles soh
  • 45. En ltiternct pueden localizarse múltiples grabadores de bajo c o n para microcontroladores PIC. Uno de 10s más populares es el denominado JDM y sus iniiltiples versiones mejoradas, tal como el TEJO-SE que se puede adquirir en cualquier tienda de electriinica por un precio muy asequible (figura 3-3). Si 1 ntarlo por si mismo, cn c1 apkndjce F se proporciona información para el1 - . 1 -- amador Iible JDM) El programador JDM y a l s n a s de sus version¢s la Wcb 2- e grabar la diseñrtdor Jens Dyekjm, w . i d r n . h o m ~ a ~ c . d k / n e w ~ i c . :rol. Tiene un zbc orientarse fe grabadores -ir(inica. ES EXTERNA AL CfRCUtTO 3-4 de cornpnfildeJBM bO.cico cor Fig~rcr Esqzt~rna 110pl1~1dor Eir las figums 3-4 y 3-5 se describen dos versiones básicas de este pmprnador qite apenas reqiiicrc cornponcntes. Evidentemente P fiabilidad de este programador es a mucho menor qiic In dcl PICSTART PLUS. pero su facilidad de construcciiin lo hace mriy intcrcsantc para miiltiplcs aplicaciones. Auiiqiic hay quc hacer tina obsen~acicin es v que estos p.abadores tan hrisicos no funcionan cor~ectamenteen algunos ordcnnc pottfitjlcs scihre todo. Ademb, iina conexión incorrecta puede dañar cl ordenador.
  • 46. 1 24 MICROCONTROLAWR PICI 6W. DF5AR ROLLO DE PROYECTOS m~4-WA - r' M-h~ l D1 TU n7 lWi4 funcionamiel u i i g cstc fl7r de jq)mg.si:~ En 15 x la iiltima ver: I L y y- E 5 - ayudar a todc ~K profundo dc DB s m programa ¡ .C - - 3.4 G R 1.fiE.I L . t C Avriromri lio Fimrvn -, -, YYYL,CI.*" M b ni.nhn/Lr i r n h. L.I.C.C.", l l r l rnnind;hlo IT) fiA hr;r;rn IUY.I,I&, YUil.U,l c;i? n1;montn~Mnoviornrr -.Lr "I...IL..<UL.V.. L"I.I I " Y l l . .l.<. ,.U Una ( ' "i n ~ " ' " " -.. - ' r"P."""""q Al ""-'."' nian rhin' pn pl nrnummndnr hnv n i r ~ r r i n r n r c ~ r ""' mp " que todos los pines o desrirrciilar e patilla$ del disposiiivo esttn rectos y de que entren t~ien el 2,,,,,.q l r i ,,n , , en iXr U, ,, , niin +L tm m r L - tb a sólo O C ~ S mucho cuidado porqlie estos pines se doblan y :se rompen con extrema facilidad. """- í'iinndn CP r"". '" --""- ""- ""."'-' ".. "- r~nli7-nf'"...-"-""'-'rmrnummnrinnrr rc nrnnc&nhl~iitili7nr iin 7iirnln r ~ r i i ~ n t ~ c '-..'"-"..-" L '*'-"" material: ixiliar entre el micmcontrolador y el zócalo del proprnador, de tal modo qiie sea los nes del 7ócalo auxiliar los que sufran Ii frecuentes insercioncs y no los pines del rs spositivo. Otra alternativa, es reernplaz~r el z k F o del programador por un zócalo de em dc inserción nula Z F (Zgfo Jnserfion Forre), aunque ticnc cl inconveniente de su evado precio [figura 3-G). P'ig74ru -,-, ' * Unc Figura 3 coi El IC-Pr~g es uno ac ios s o h a r e más populares para la grabación de microcontrnladores FIC. Permite la prpgmrnaciOn de miichos dispositivos y esti probado * Un con numerosos programadores. entre ellos todos los compatibles con JDM. Es de libre elect distrihucián y en la pigiiin Wch ~ w v . i c - ~ r o ~ csc m o piicdc descargar y recoger toda la o frct infamación de uso. Com Una vez descargndo, la jnstalaciirn de estc software es muy sencilla. basta con Web - .. - - y . - . . . . , " firh~rriirnrriu 7in v wrniir rl n m r ~ r i i m i ~ n t-..... ~n Winrlnwc Fctp qrnmnrirnir PI . .-*T. - p . - + . - - - Y--.-.." ,.'-"--..".-"'Y iiqii~l-". .. .-..-Y ..*.* --.,-- J - n obra d~ivo consta del ficliero ieprog.e.re, qiie contiene todo el código necesario para su
  • 47. hncionamiento, con versiones para cualquier s i s t m a oprativo Windows. En caso de utilkar este software con Windows XP, 2000 o NT, es necesario descargar e! archivo icprog..yde F misma Web y situarlo en la misma cavela, junto con el icpvog.a. a En las próximas piginas v rxpondfin las conocimientos básicos pñra trabajar con la última versión, al cierre de la cdición de este libro, JC-Prog 1.OSC, con la pretensi~n dc ayudar a todos aquéllos que se enfrentan por primera vez a este s o h a r e . Pasa un anilisis profundo de todas sus posibilidades se rcmite a la documentación tknica, ya que el propio prograina IC-Pro2 tiene un buen sistema dc ayida qiie permite un rápido anrendizaie. 3.4 GRA 5~ CON MEDIOS REDUCIDO Una de las grandes ventajas de T s micmntmladores PIC es que pcrrniten o xlos los pines o amar: el proceso de p h a c i h n con muy poco gasto. Para aqitéllos qiie desarrollan rollar , I4ay que tener S610 ocasionallmente proyectos ; basados en micmontroladores, es suficiente Iidad. utilinIr el procedimjenro de in con medios reducidos que se indica a contil~uación.S e ~ i n esquemr el gma 3-1, este pmediiniento utiFiw el siguiente ili7ar un zkrtlo material: 3d0 que sea los o los pines del jr un zócaIo de nveniente de su Figuro 3- 7 conectar elprogru~r~uurirrrcrvv., de los puelios Cuurcy u r ~ u COMI o CUML Un ordenador personal. m Un cable de conexión entre ordenador y pmgmmador del tipo serie DB9 para puerto COM (figura 3-7). Este cable se puede adquirir en tiendas especializadas o bien fabricarlo mediante dos conectores DR9 (hembra y macho) y cable, preferiblemente plano, concxionando los pines con el mismo nUmero en cada extremo, es decir el: terminal 1 de un conector con el terminal I del otro. 2 con 2, b.c.v,.w,4n dc 3 con 3, etc. y cstli probado Un programador TE20-SE, ds adquisicihn en cualqiiier tienda de )M. Es dc libre electrónica. En apíindicc F y e m-ROM que acornpafiiia a este libro se rccogcr toda la ofmen planos para su construcci,,,. * Como sottWm se utiliza el IC-l%g 1.0:iC, que 1 bajarse librrmente di la ~uede cilla. basta con Web www.ic-rmn.com. y que 4e incluye: en el C D-ROM que acornpaiía a 4sta , Windows. Este obra, p c i a s a Iri generosidad de Bonny Gijzen, su autor. :esario pan su
  • 79. que sólo !a línea I del puerto y la ~ctum distinta a in de ser de esta ieración de una W 7 : W . Tcdas ir, conectada a la mgramaaas para y r a 5-9 muestra variación dc una la ultima sefial le las señales de o TNTCON. ienfación LENGUAJE MÁQUINA máxima I I I ~11and0 está ~ El Único lenguaje que entienden los rnicr~ontroladoreses el formado par Ios ceros :ia dcl chip, esta ! unos dd sistema binario. Cualquier instrucción qiie deba ser cj~cutadapor 61 : luede exceder de rnicrocontrolador debe estar expresada en binario. A este lenguaje se le denomina lenguaje rnhquina, por ser el que comprende el microcontrnlado~Los códigos de este leripiia,je que fonnari Ins iristnicciones se llaman c6dijys máquina. Así por ejemplo. cuaiido el microcontrolador PlC láF84 lee cl chdigo mricluina " '1 11 11000 1 1 10 1 W, esti recibiendo la instmccion: ".rrrmn58 al regi,v/ro de trabajo W y g-uurda e/ resi~lratfo en Pin esk mismo regi~tro W". RB7,R84 :J;? - c T, +-y r . .t 't- Cualquier otro lenguaje que se utilice debe ser tndticido a unos y ceros para que el rnicrocontrolador pueda procesarlo. Dicha codificaciOn binaria resulta incdrnoda para traba-jar, por lo que muchas veces se utiliza la codificación hexadecimal para facilitar la interpretación de los códigos miquina y no saturar las pantallas (ni los cerebros) de unos y ceros, Asi por ejemplo, en el capitujo 3 se pracedio a grabar los microcontroladom
  • 80. 5H M1C'ROCC)NTROLADOR P C AF84. DESAñROL LO DF. PROYECTOS 11 3 RA-m utilizando el pi-ugmrna IC-Prog, que trabaja cn lenguaje máquina, pero utilizando la codificacion hexadeciinal, tal cotrio se aprecia en el cjemplo de la figiira 6- l. 6.2 LENGUAJE ENSAMBLADOR El lenguaje máquina cs difícil de utilizar por el horiihre ya que se aleja de su fonna natural de expresarse, por esto se irtiliza el lenguaje ensamblador, que es la forma de zitprwar las instrucciones de una f m a más natural al hombre y quc, siti embargo, es muy cercana al microcontrolador porque cada una c k sus instmcciones se corresponde con otra en ciidigo máquina que e1 microcontroladcir es capaz de interpretar. El leti-=aje cnsarnblador utiliza nembnicos que son grupos de canctzrcs alfaniiméricos que siinbolizan las órdenes ci tareas a realizar con cada instruccjón. Los nemonicos se corresponden con las iiiiciales dcl nombre de la insuuccion en inglés, de fom~aque "recuerdan" la operaciori quc realiza la instrucci8n, lo que facilita su mertiorizacion. Así. por ejemplo: para oriictiar al rnicrocoritrolndor PIClóF84: "sumu 58 al rrxistro rh? lt!rriliujo W y gear7i-du el resultado en este m i . ~ m ~ registro W", en leiigiajc cnsarnblador sería "addw d'5'58'"quc es mucho m i s amable qiic cl"1111100011l010" del lenguaje máquü-ia. Resumiendo con un ejemplo: Instrucción: "Srriirri W 58 ul r-e,yisiim d~ ~t-ublljo y r~~~.ulíudo ~ ~ C I Y el ~ U I en SIL' ~ni.~tno registro ". Elisamblador: uddw d'5H '. Máquina: 1 1 1 1 10 00 11 1 O 1O (expresado en binanol. 3 E3 A (expresado eii hexadccimal). 6.3 PROGRAMA ENSAMSLADOR El programa ensamblador es un software que se encarga de traducir los nemonicos y símbolos alfanumkricos del prcgrama escrito en ensamblaclor por el usuario a código máquina, para qiic piieda ser interpretado y ejecutado por el mjcrocontrolador. E1 programa escrito en lcnguaje ensamblador recibe la denominación de código fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo hizntc debe ser traducido a código riiiquina, de lo cual se encarga el programa ensamblador. La mayoría de los ensambladores proporcionan a su salida un fichcro que sucle tener la extensión *.hex. Este fichero puede ser grabado en la memoria de p r o p m a mediante la utilización de un grabador de microccintroladores.
  • 88. hli MIC'KcX'ONTROLADORPTC I GF84. DESARXCJLLO DE PROYECTOS E RA-M h 6-2 Repertorio de ipisfrucciones del PIC16 F84 Tatill~ Las instrucciones se recogen e n L tabla 6-2 y detallan cn su totalidad en el a apéndice B. En este capitulo se estudiimin 111s instrucciones inás scnrillas. 6.9 INSTRUCCIONES DE CARGA Las instrucciones de transferencias de datos son típicas de todos los procesadores y su misión es transferir el contenido un registro fuerite (f! a iiti registro destino (d) o bien cargar el destino con utia constante. En los microcoilrroladritrs PIC todos los datos residen en posiciones de la triemoria de datos y en el registro de trabajo W. 6.9 En la explicacion de estas instrucciones se ernplea muchas veces una nomenclahita especial muy sirriplc basada en parintesis y flechas. Con los paréntesis se destaca que se del 1 trata del "contenido" de las posiciones de iiienioria y la flecha la Jircccibn d e lad re@ transferencia de los datos. Algunos cjcmplos: resul ( W ) 3 (PORTB): Significa "el conr~niLio registro W se truns$ere u1 del w Ante puerto B.'. (2Bh) 3 (W): Significa "el contenido la pwíció~? dr 2Bk de M M de m h t o s se bransjere al registro ri'c. traht-rjo Hp'. Et ia 2Bh i (W): Significa "e/ regt~trode tti-ub(?jose c~irgacon el dato Ante ZRIi". (Notar la auscncia de parkntesis). w Hay cinco instruccioiies de carga propiamente dichas: 6.9, 6.9.1 clrw regis (Cleur W). El contenido del registro W se borrri (se cargsi con b'00000000') y cl flag Z sc activa a " I ". Esta instrucción también se podria cotisiderar como aritmética. Ejw Ante -1
  • 89. fi R A M A Ejeir ctw Antc (W) = Z = l.'? - . Ninglino 1 Despues instrucc~on: ( N r )= ~ l x f l f ty L = l . . Ninguno 1 Ninguno Ninmin~ 1 (Clemfl. El contenido de1 regrstro ' f se b m (se carga con b'000000007 y el flag o Z se adiva a uno. Esta instmccibntambién se d n a considerar como aritmética. mo. PD Ninguno m,rnD 1 Qerr Antc npcr 6.9.3 movlw k .I total idai (Mnve Literal to W). El re3ist-m W se carga con el valor de los 8 bits de la constanic'k'. Ningiin flag del registro de estado es atkctado. .i3 I I I Ubb30 lestino (d) o bien ' todos los datos C'. 6.9.4 movf f,d (Movej.El contenido del registro 'f se carga en el registm destino dependiendo ' una nomenclatura se destaca que se del valor de 'd'. Si 'd' = O el destino es el regstro W, s Vd* I el destino es el propio i = direcciót '..-iuni IBA & h!AM de registro 'f. El f l a ~ del registro S T A T U S - ~ U ~ ~ ~Z se activa a "1" si el resulitado de la . . Eiemn 10 F : Ante Dcspuks instn Z - i es ccrcE. n movt PORXd, 0 p R'A) = Ox 1Ik O1 . (POR?'A) = 0x11 A, afectado: : (PORTAI (W) = i', (W) = o: + 1w) I r w 11 & 2em i. i - > ' r p con el dato Aiizei Dcsp el resultaido de Ia 1 (Move W lo 1 . )Carga el contenido del registro W al registro 'f. Nirigún flag, del registro de estado es afectado. I Qmplo: Antes inshcc ión: Despuks iinstniccihn: rnovwf PORTB (PORTR) = i,? (PORTB) = 0x4 : (W) -9 (PORm I
  • 113. y seleccionar Orrprtt ro File y salvar cl fichero de la forma ya conocida en el entorno 'indows. h i t o general de1 :contenido de la 5TbTL5 PCL . . -. . 3 de estado Aunque no es una ventana de visualizaci6n propiamente dicha, la linea de estado proporciona infomciiin muy iitil sobre la situacibn actual del microcontrolador. Se ubica 1 m la pane inf&or de la pantalla y ofrece infomnacion en todo momento del estado de Ia ------- simular1n.i ..."."O ., Es especialmente útil la infamación sobre el contenido del contador de progama. del registro de trabajo W.También indica el valor de las flags de STATUS. Si la letra está I m rnaqúsculas indica que ese flag vale "1 " y, si es miniicc~alas "O". Asi en el ejemplo vale I de la flgtn 7-13, Z =O, DC =1 y C=E. ---+ WFAQ?u .. -- :~~~JTARTa ; l ~ S . . -. - ; ....... - - ~ W m P 7 a h 3 - . w :- . 2 duros . ...... --+--- L . Fipcrn 7-iJ , A ~ ,wc- G , ~ L ~ Lcon la infamación del PC, W yJrapP~ SIn , ~ ~ I~) del hre simb6licci que de usiiario. 7,6 SIMULACI~N BASICA T m el proceso dc ensamblado sc p d e a la simiilacibn del programa, Mientras w ejecuta la simutacibn del programa es interesante visualizar el contenido de las tc supervisar los ventanas explicadas antes y comprobar el efecto m cada una de ellas. iso concreto. Para wdro de dililogo Es conveniente antes dc nada, comprobar que está cargado correctamente el ee pulsando sobre IPLAB SIM, tal como se explicb en L figura 7-4. a Los cinco comandos m& importantes p m la simulaci6n se localizan dentro del rla m posteriores menú Debbuger y se muestran en la f_ 7-24. i m I I 1 .' ,
  • 114. 92 MICROCONTROLADOR PIC IóFR4. DE'RROLLO DE PROYECTOS c A-MA m Rfrn. Modo de ejecucibn continua. Ejecuta el programa constantemente. Las ventanas abiertas en el paso anterior no se actualizan hasta que no se produce una parada. Es la fama m i s rápida de simular el programa, pero no se "vi como evoluciona la memoria ni los distintos registros. En este modo se i seleccionando Beliijgger > R ~ t n pulsando la tecla F9, tambitn al pulsar S o el icono correspondiente de la barra de herramientas (flecha azul). Animate (o teclas ctrMF9). Modo de ejecucihn animada. Ejecuta el programa de forma continua pero actualizando todas las ventanas cada vez que se ejecuta una instrucción. Es m& Eenro que el modo "Run" pero permite ver como van cambiando los registros. Tal vez sea d modo de ejecución más util y rccomendablc. Se entn en este modo seleccionando D s h i r ~ ~ >r e Aninia también al pulsar sobre el icono correspondiente de la barra de herramic (doble flecha azul). * Hah Paro. Para la ejeciicibn del programa y actirajixa todas las ventanas. Se > consigue seleccionando D~hti~gger Run o pulsando la tecla E5. Tambidn se entra en cstc modo al activar el icono correspondiente de la bam herramientas (dos barras verticales azules). Sfep Inro. Ejecuci6n paso a paso. Eiccuta una soJa instnicciCin del progama cada vez actiializando los valores dc las ventanas. Es la forma mis lcnta de simuIaciiin pero se compnieba fáci 1mente como van evolucionando todos los registros y memorias, siendo muy facil dstectar los posibles errores. En este modo se entra seleccionando Debugger > Srep Info o piilsando la tecla F7. Tnmbjézi pulsando sobre el icono correspondiente de la barra de herramientas. * Resef. Equivale a un reset por activación del pin MCLR. En este modo sc Pan1 entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. También si se aemho tic pulsa sobre el icwo correspondiente de la barra de herramientas. Seleccionn donde Iia i
  • 153. i la figura9-4 que t~ t . . . - Esta dir fine una ( :to. Dondle quiera Ique <nome> icuentre, e mblador : Ejemplo I : A continuación se :]Ni?LED PORTB s conecta i: cstn Iine e n ... bsf LED BLOCK (Dflne n :D~P id bc tl Ranw O, lnes (genmlmentc ~DFF icof bs : n .o: Rznm 1 . m; i1 -DFF D P( : El LER sc conccia 3 marcada entre las ; ACCCW al Banco 1. ; Confrgum csla línea como salida. ; hcccw : Banco O. i1 : Encicndi: diodo L el Esta directiva emula #DEFINE del ANSI C standard. Los simbolos definidos con este mCtodo no están disponibles Dara ser usados mr el MPLAB. anterior ejemplo). 15. Si este valor no 9.9 CONVERS ARIO NATURAL A BCD cuwrior al: de la si a lo largo del La conversión de un numero expresado en binario natural a formato hcu es una ion de variables, d e las opcracianes más utilizadas en los progamas con microcontrolador y que merece ser !; analizada en detalle. Por eiemplo el valor 124 expresado en binario n a t m 1 seria . I 01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidades definida qudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta .4. Un coni~crsihn. programa ejemplo que lo irnplernenta. seria el descrito a continuaci9n y que s,e pttede comprobar sobre el circuito de Iri figura 9-6. ***si nienzo los valores . Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrl e n m psicioncs a a RAM 4de datos. :dcmem~irins ilamadas Ccntcna~. Docenas y L'nirladcs A d m i s a l tiiial 1las unidades estaráti en el ., -1 h e ,--m -A ; nihhl c bajo del repsmi W y las dcccnas cn cl nlbhlc alto. En Ins didas LEDs canectados al o de calida se visuaii7arán ! s dmenas y la* L a ; El m valor que p :niuni :El procediniientr2 utilizado 1 " :ejempln quc trai; A. l*.s, ., .-
  • 154. MICROCO~OLAWR PIC16F84.DESARROLLO DE PROYECTOS OWMA {Decenas) movlw subwf NO, I H Incremcn S). btfi~; NO, m! NO. . .. . . hcrt cenas). Foto NO,mi NO. lncmcnta (Uc cenas). NO. resi NO. Incremonta (aecenas). NO,mi NO.Incremnta (Decmia~). NO, m NQ. Incrementa (Decenas). NO. ma lo c NO. Incrt:menta (Dc cmiaii). NO. reSra 10 NO. Incrtmenta (Decenas). NO, Festa 10 NO. lncrt:mcn ta (Decenas). NO,resr f n hln lnm..-. + I r % * r * n n r l . .M - ,*v.iii~ibiiibiira (r,c bCil02,J. NO. m t Si. @ecenari)=O, y aldemb incrementa (Cenfew ) NO, resta 10 NO.Inemnenta (Decenas) sí, se te 'Numero". r- 1l UDE <PI( CSLGLAIB(UL :u zona ac memona ac usuano comicnz.. ... . . i . . Centenas ; dirrccii h a R h M de datos. Decer)y a ; Pmició Unida ; Pmici8 ENüí Numero EQU ORG ;El pmg inicio bsf STAT ;Accesob al Banco 1 clrf TRlSE : l s liniz del F erio R se contigam wmo sdicta. a u bcf STAT :Acceso al Banco I1. b mua n pr clrf Centenas :Carga 10s qismr;con el res1~ltado inici: "BCD-lncr clrf Decenas ; En principio (Cenitenaspo y i[Dcce:enas)= movlw Numero moru : Se carga el n m binano a convertir. ú m Bm-Restui 10 1 movh ; Alahu les va restaindo 10en c . . subwt : pa-da. (WJ==(Untdades)-lo. ?, i ( W ) Vi! ,. . < menor de 1 BCD
  • 156. RAO ABOff N f R41 RB1 RA2 RB2 : Lns salidai se o h t i i RA3 R53 : RR5 (SI;' i, m (53: 4 RMOCKI RR4 R85 RB6 ; ZONA D'E DATOS Fignrn 9-6 Circttito paro compmhar el programa RCD_Ol.mm novlw P iioluri 3 1cf S EI salto indexado es una tknica que pemiite resolver problemas que puedan ser aovf- P representado mediante tina tabla de verdad, En el PICI 6F84 se basa en la utilización de la ndlw h instniccihn addyf PCI,,F, de este modo, la direccihn del saIto se consigue sumando a[ ddwf P contador de programa (PCL) un valor de desplazamiento almacenado en el regiswo de trabajo W. oto C oto C' oto C En el salto indexado, la dirección del salto se co~sigue sumando a un registro base (el PCL) un valor de desplazamiento alrnrlcenado en un registro índice que es el registro de trabajo W.A cste valor de dcsplazamiento se le denomina también qfl~et. ejecutar la Al instmccihn cw PCL,F el registro base TCL) debe estar cargado w n la p r i ~ m r d direccion de Fa tabla, apuntado de esta manera al origen de ba t . >!o C nnO ovlw h' En el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado ..- IlCl i4 hardware utilizado s d el esquema de la figura 9-7. .mt ovlw h'l ,tn h. id : tmp11 :matar un: tabla dc Ii verdad m a : i iancja dc te ovlw h'l ;Por qjtmpto, la Iabla seri de 3 enmb s tal como I itn A' 1717
  • 157. C ' M ~ U L O SALTOS 9: 135 o o 1 1 a o 1 o o I;(cd*I-6nl). o 1 o 1 1 o o o 1 i;(-hz). o r i 1 o o 1 1 1 I;@orSi@&tf). 1 O O ] 1 O O O O O;wgumidn4). 1 O 1 1 O O O i 1 l;(CdgumcibnS)- 1 1 O [ O 1 0 1 1 l;(Conftguracibnó). 1 1 1 1 i 1 i 1 1 l;(Wguraciún7). ;im enbndw C, B. A se mectai.mia las llneas del puerto A: RA2 C , M (B) y RAU {A). () 1 ;Lassalidasse~enenelpuertnB: ;RBS(S5),lU34 (M), 3 (S3).RB2 (521, M (Sl) RBO (SO). M 1 y ;ZONADEDATOS * * * S H * * * l * % ' * * * * W ' * * * * S I * * * * * * * * * * * * 5 * 1 I I * L * I * * * * * * * * * * * * * * * h * * * * U * * * * * CONFIG CP-OFF & -ri'DT-QFF & -PWRTEEON & XT-OSC EST P=16F84A INCLüDE 4'16F84A.lNG ;ZONADEC~D~GOS**'*******************Q"'*L******~****#********S:*****~***++*********** ORG O ; El pmgrama conireriza en h direaibn 0. bsf STATWSH'O ; Acceso d Banco l . clrf TMSB : Las heas del hiato B se c o n f i p m u como saiida. movlw blOOO1 1 111' :Las 5 líneas det Puerto A se configuran como eukada. mowf TRISA bcf STATUS,RPO ;Acceso al Banco O. s que puedan ser movf PORTA,W ;Leo el valor de las variables de e n e . i utilizxiiin de la andlw b'00000t1i' ;Se queda c los a c bits de enaada. m e ;igue sumando al ; Salta a la configuracibn &macla. en el registro de goto Conf1~0iiO gota Configuracion 1 goto Co~guracion2 un registro base goto Corhgumcicin3 que es el registro goto Conñguraciod ;fr. Al ejecutar la goto ConfiguracionS I con la primera goto Cdguraciaaó goto Configmcion7 rnovlw b'0000101Ot ; Confipuracibn O. Ito indexado. El goto Activasalida ; configuracibn l. '.CL*******I* movlw b'OO1OOO1li :Cun-ih 2, movb b'0000111~' ; C 0 n ñ ~ i S 3. o gota ActívaSaW Cdgumíon4
  • 158. 136 MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS F RA - MA mvIw El reg 8 0 un reg C ~ i d mvlw Los bi Conf~iioti6 puede mwh PC LA soto Cwfigmcion7 mvlw ActivaSalida mw Yf ;V i d i z a por el pueFto de salida En las soluciones de los ejercicios facilitadas en el CD-ROM que acompaña a este libro, se describe otra forma de implemmitacibn más eficaz mediante el p r o v a indexado-O1 B.acai. El PCLl bits son transfe tiznen por dcsti Cuando ! instnicciiin .ad es así, cl salto e que el registro prueba de un sa ; P r o w a para cor ;Se debe comproba 9 ; ZONA DE DATO INCLUO LIST ;ZONA DE C ~ D I paru comprnhur ios programas de tabla de ivrdac3 Figura 9-7 Cit.~liliio ORG Inicio goto c h 9.1 1 SALTO INDEXADO DESCONTROLADO Como ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programa ORG Principal y que direccionan la memoria de código estan guardados en dos registros específicos niovlw (figura 9-8): addwf
  • 195. i RA-VA ¿ CAP~TULO SUBRL'ITNAS DE RETARDO 12: 173 ;ta iiistniccion tarda cnstal de cuarzo de Carga contador R..ContA can Carga contador R-ContB con valor inicial "K" valor inicial "M" Carga contador R-ConlA con valor inicial "K* Pequerio tiempo de espera urrido Decrementa R-CoiitA :S resulta necesario ;intervalospueden simple de algunas A). ESTRUCTURA DE UNA SUBRUTINA DE RETARDO CON UN LAZO SIMPLE. :0nseguir el retardo Oecrementa R-ContB rucción es conocido :I registro R-Corrr.4, ibtenw el tiempo de ijerite fragmento de B). ESTRUCTURA DE UNA SUBRUTINA DE la figura 12-4(A) se RETARDO CON DOS LAZOS ANIDADOS máquina. Figura 12-4 Esfruchci-ade Iw sub~4tjna~ r~~tnrdo d(9 d valor de "6". Es fácil deducir que el valor de constante "K" con el que se ha cargado la ~iiicialmente contador R-ContA vendrá dado por la sigiiientc ecuación, donde el tiempo el :cm (al saltar). viene expresado en ps: ; miquina. Ziempo=5+4K K= <=249).
  • 196. EJEMPLO: Calcular el valor de la constante K, para obtener una subrutina de retardo de 500 ps con la estructura de de la figura 12-qA). 1 ; apaga durante Soluci6n: Aplicando la ecuación se obtiene: ;ZONA DE DA Tiempo - 5 - 500 - 5 K=- - = 123,7 4 4 Así pues se elige K=123, obteniSndcise un tiempo de retardo real de: Tiempo=5+4K=5+4+123=497ps El ajuste fino para Ios 500 ps exactos se consegurta añadietido 3 instrucciones nop #DEFINE LED ( al principio de la subrutina de retardo. ;ZONA DE C O ORG 12.5 RETARDOS MEDIANTE LAZOS ANlDADOS inicio bsf hcf Para lo genecic18nde retardos de niayor duración deber1 ulilizarse lazos aiiidados, bff poniendo un lm dc retardo dcntrv cli: otro. La forma de liacerlo se explica en Ins Principal subrutinas "Retardo-200ms" y "Retardo-1 00ms" del siguiente programa ejcinplo, donde bsf a partir de la csmictura de 1 ms conseguido en la sccciiin anterior se obtienen rctardos cal1 mayores mediante la redlización de lazos anidados, figura 12-4(B). Este programa es una d aplicacion de un LED intenriitcnte para cl circiiito de la figura 12-5. i~til bcf caii catl gom D1 RBO R1 Figura 17-5 Internaitenle
  • 338. W i 318 MlCKIX:OKTROLAWR PIS lriF84, DESARRULW DE PROYWTLiS c~ 4 . ~ 4 O RA-MA 20.9 PROGRAMA EJEMPLO Escribir por el teclado de un ordenador y que esta infomacibn se -¡sualice en la pantalla del módulo LCD de un sistema con microcontrolador es un ejemplo inmediato de las aplicaciones que la conexión entrc microcontrolador y puerto RS232 cle un ordcnddor puede ofrecer. Para cl cvmcto fiincionamiento del siguiente programa ejemplo hay que cutnplir los tres requisitos fundamentales de este tipo de comunicaciones: Hardware: Se ejecuta sobre el circuito di: la figura 20-13, no se ha de olvidar conectarlci al pumo COM 1 o COhl2 dcl ordenador a través del cable RS232. Un programa de coniunicaciones quc se debe abrir en el ordenador, como el evper-Tertninalu otro siini lar. Programa de control del rnicrocontrolador que se debe ejecutar en el rriiccocontrolador. Un programa de control grabado en el rnicrocontrolador podría scr el siguiente cjcinplii suficientemente documentado: ;En el m&lo LCD se visualizan los caracteres que se escriban en el teclado del ordenador ;y se mnsmiten a h v e s de su puerto serie. E s &?tos v o l v e a ser enviados por el m ; microcontrolador a1 ordenador, por lo que tambikn se visualizxia en su moiútor. ;Se utilizani un programa de comunicaciunespara que el ordenador pueda enviar datos ;a través de ru puerto serie, como el HyperTminal de Windows o alguno similar. ; Concluyendo, lo que re escriba cn el teclado del ordenador aparecer6 en la pantalla de' Figura ; ; mduto LCD y cn el monitor del HyperTemind. 7 :~~NADE~AT~S**********5*5******C*C*****Qdii**OiPiP*****CC******~~*~****L************** Una aplicacii hacia el ordenador. RS232-MEN.MC, 1 "RS232-M( cl microcon "RS232 LU del ordenad ORG O In1c10 cl a1 LCD_Lnicializa ;Ini~dLCUyIaslúiwiaiquese .+~**L**L.*%***4**.* J 1 RS232-lnicializa :van a utiIizar en la c m w i w i h c m e puzrto l I ? Ptincipd ; Serie ñS232. j mbrutinaa di RS232-LeeDato ;Esperamibirunmhctm. a; - tmds del 1 mwwf GtmdaLMo ;Guarda el daui mibi&. d WD-Cmter ;Lo v i s u d k
  • 457. 1,. 440 MICROCC1NTKCIL:IDOR PICIGFSJ. DESARROLLO DE PROYECTOS E m-MA NCLUDE <RE;TARDoS.INO MCLUDE <BZNBCD. [ O N I MCLUI)E -UD-4BIT.iYO I INCLUDE <LCD-MENS.iNC> END ~: Para probar este circuito se puede utilizar la tensiiin variable que se obtiene del 1, divisor de tensión formado por R7 y R8. Este voltimetro puede medir una tensión entre O y 2,5 V. Para conseguir otros i 11 valores de escalas Iiabria que añadirle a la entrada circuitos atenuadores y amplificadores. Sr anima al lector a desarrollarlo como proyecto.
  • 470. 454 MCROCONTROLADOR PIC 16FW. DESARRULI.0 DE PROYECTOS O M.MA 52 MODO - - SALIDA MOC3041 A6 77m d1 REO 230 V- 53 CARGA 1500W DS1820 (V~sto debalo) por Figura 28-8 Esq ucmd de un termostafo digira)dr' precisihn , i*b8**i*C********+**i*******S*+C+SDSi82U 'T-osm,irsm********************* ; hgrama & conml p un tmómeim y termostato digital. U t d k el censor de temperatura m ; DSl82O que transmite la inform~lcion serie a t n v k s de un tiw de ima sola lhea según un via :protocolo del fibricwtr:de semiconductorm WaHas Semiwnduciors. ; El ajuste de la te111peratura a l que conmuta el termostato se logra mediante dos puisadores: a :ZONA DE c ~ D ;"MODO" e "iNCREMEWAR",que se conectan a pines del Puerto B y cuyo funciondento ce basa eii ; intmnqxión p cambio mla línea del Puerta B. ORG gota ;Se maneja de la siguiente I'nrms: ORG ; - En estado de reposo funciona sbto c a n o tennhemi. Aparece la tmpmrura rn pantalla de1 niMulu LCB. La salida del termostato está apagada guiu Y ; - Pulsa "MODO" y se ajusta h tmpmtura deseada m&te el p u l d m "INCREMENTAR'' Mensajes ; - Vuelve B pulsar 'MODO". se activa el temw>stato.Si la temperatura n a d a es menor que , rrddwf Itt d m d a mcimde la carga, que puede ser un caiefactm. Si la bemperatura medida es Mewijchibliciwic nuiyor que la M a h , apaga la carga. DT "ES. ; - Si se vuelve a pulsar "MODO", apaga la carga y pesa a funcionar FL como t e r r n h m . 6o
  • 471. ,SI RA- MA 28: (:AP~K~LO B US DE l . r N ~ L~NE.A 455 - A-M A ;Así pues, en el circuito se distinguen ms m d o s de funcionamientoque se identifican ;mediante tres flag: ; A) Modo 'TemiostatotoOFF",donde funciona como termbniew normal sin temiostato. Se reconwe por e1 flag FTemostato-OFF. ;B) Mado "TennosMo-Ajuste", donde se ajusta la temperatura deseada cuando funcione coma termostato. Se reconoce por el flag F-Termostato-Ajuste. ; C) Modo "Tmmtatc-ON", donde funciona como temrórnetro niirrnal con tmrnosraw.Se reconoce por el flag F-Temiostato-ON. ; El progama consigue que esti activdo uno solo de los flags antenores. :Al apagar el sistema debe conservar el valor de la temperatura deseada en e1 termostato ; para la priixíma vez que se encienda. CONFIG -0-OFF & -WDT-OFF & _PWRTE-ON & -_XT-OSC LIST P= 16F84A MCLUDE XP I GF84A.iNC> ; Guarda 10s incrementos cada 50 m . s ;Guarda 10s flags para establmer los ; m&s de trabaja ; Corresponde a la dirección O da la zona ; EEPROM de datos. Aqui se va a guardar e1 J3 CARGA : la temperatura deseada. En principio24 "C. i5W'N #DEFIN E SalidaTemostato PORTl3,I : Cargd controlada por el termostato. #DEFINE Zumbador PORTJ3,2 ; Aqui se conecta el zumbador. #DEFINE MvdoPulsador PORTB,7 ; Los pulsadms se conectan a estos #DEFINE Incmenta~pulsador PORTB,6 ; pines del puwo B. #DEFINE F-Termostato-ON FlapMdos.2 ; FIags utilimdos cn el ajuste de la @DEFINEF-Temio~tato~Aji~te FlagsMdos, 1 ; temperahira del temiostato. #DEFINE: F-Termostato-OFF FlagsModos,O TMROCargaSOms EQU -d'195' ;P m conseguir intemipción cada 50 m. cargas eQU df4O' ; k e r i d a 2s = 40 x 50ms = 2000ms.
  • 472. 7 456 MCKOCONTROLADUR PIC16F84. DESARROI-LO DE PROYECTOS %K ~ M A CR4.W MensajeTemmtato-ON c h DT "Termostato: ",OxOB call Mt~l~ajeTermnstato~Ajuste illoy DT "Tenqm. deseada",QiiBO mv M e n s ~ w m t i m mov DT ' ",OxOO T ;EjlpmuaLCD:'mC " ;La seccidn "P ;Nogepitede~ Prmcipal %oto - Pregara mbdulo LCD. - Configura entradas y salidas - Visualiza monsaje publicitario 1 i - "DSI 820-Inicializa", comienza inicial de funcionamiento. - Inicializa todos los registros. - Recupera la última temperatura deseada del termostato. - Habilita las tnterrupciones. Espera las intemipciones. Figura 28-9 Dit7grntna deflujo principal del temostafodigif nl Inicio d U=DU=D~iza i d STA'EUSW mwhu bW111' ;Aeacalerde255~d~Oyhab~3ita m 0 4 rnN-REG ;~kadc~I~delaifatoB bsf lddomwm ;s%cúdñpmacomaataada bsf L- bcf WTcm#W ;S e ~ c o m o ~ . bcf zuulhbx Bef STAWSJUW caii LCDCD~l ; S e ~ i t & a l ~ i & h ~ ~ mwlw Mensajehrblicie d i LCD-Mensaje Fipru 2 C& DS1azo-~nicia~iza ;~omieripla~0nwónde1term6metroyporie cal1 ModDTemomt~~OFF ; &te n a d a de f u n e i d m . ;S u& "Ser movlw TMRDL€arga50ms ; Carga el TMRO en comp1emento a 2. 9 mwwf m 0 ; a t qa h m ca i e a d w Carga2s ;Y elregistronryo~t~wntadlos2s. movwf RegistroSOms servicio^
  • 473. á' RA-hL4 - CAPITL~LUBUS DE ~ 18: N LjNEA 457 A c h , Lee h pica611QxOOde m a m i EEPROM de datos ~ cdl EEPRW-LeeDsto ;donde se guarda k t e m p e r a t u r a e d e h61m-m m o d - T ;v e z q w 9 e ~ . movh b'lOIU1W ; Activa inmmp5bn del -0 (m), m b i o de por movwf DT U TC N ;ln dd Puerto B (R3B)y l general (GIE) iw a ; L a 6 a x i & ~ e s m a n w ~ t o . w o ~ ~ ~ . ; No se puede poner en modo de bajo c o ~ w porque la inimumi6n "deep7' ~ o ddene el Timer O. ml p a gato Priocipl Q"Serviciolnterrupcion" pasado 50 ms? II I I "Termomsim" Lee terrnbmetro y actualiza el termoslalo. ¿Han interrumpido las pulsadores? - 11 "CarnbiarModo":cambia el mDdo 1 L-.-. '(NO 1 de funcionamiento. ¿E& puisaso "INCREMENTAWJ "IncrementarTempOeseada": Ajusta la ternpsralura deseada. J Limpia flags de reconocimiento de las interrupciones. Retorno de la intempcion Figura 28- 10 Diagramu d'rqfliqo la subrutina de atención a de intewlkpciones
  • 474. 458 MICROCONTROLAWR PlC 16F84. DES4RROLLO DE PROY E C M S 2 R4-w t RA-~,4 btfsc INTCON ,TUF ; Si es una interrupcion producida por el Timer O call Tennometro ;lee el termómetm y actualiza termostato. I btfss NCON,RB[F ; Si es una intemipcion RBI lee los pulsadores. ;Esta subrutina lee y pob Fin[nternipcion ;debido a la peticiba btfcs M d o P u lsador ; &stá presionado el.pulsador de "AJUSTE"? ; temporizaciinide 2 a¡l CambiarMdo ; Sí. Ajusta la temperatura deseada en el termostato. btfss IncrementarPulsador;¿Pulsado "INCREMENTAR"? ;TarnbiCn actúa so& cal1 IncrcmcntarTempDcseada ;Si, pasa a incrementar la temperatura deseada. Fininterrupcion Termomebu bcf MTCON,RBF ; Limpia los flngs de remnocimiento. movlw ' bcf iNTCON,TOIF m 0 4 ' ret fie decfsz , goto 1 movlw 4 mowf 1 cau 1 Prepara para que se produzca la call 1 próxima interrupción dentro de 50 ms cal¡ - d i 1 m "DS1820-Inicializa": Coniienza la conversion para la siguiente "Termostato" Visualiza la temp - NO "ModoTermostato-ON". se desea ajustar apaga la carga. 'Temper. c - SI"ModoTemostato-ON", compara la temperatura medida con la deseada y actua en coiisecuencia activando o apagando la carga I I I1 " ~ i s u a ~ ieii el forniato za~ II 3 Return Figura 28- 11 Diagrama de flujo de la subrutina Te~mometro
  • 475. Q RA-MA c . ~ P ~ W L O BUS DE UNA L 28: ~ 459 A - S&mth "T-om-" --- --------. ! * i ;Esta subnitina lee y visualiza el tennbmeko cada 2 segundos aproximadamente. Se ejecuta I! :debido a la peticih de interrupción dei Tmer O, c& 50 m.Para wnseguir una m ; temporizacibnde 2 S, habrá que repetir 40 veces el lazo de S0 ms (40~5(hrrY=7000ms=2s). ; Tarnbih actiia sobre la salida dei termostato posicimbndofaadecuadamente. Termmietro movlw , movwf ; Recarga el TMRO. decfsz ; Decrcinenta el cmt~dor. goto :No lian pasado 2 segundos, por canto sale movliv : Repow este contador nuevamente. monvt' cal l ; Lee la temperablra. cau ;Comienza conversiónpara la siguiente 1ectm. cal1 . Actha sobre el termostab. cal1 ; Como e s n subniha se caribe ri continuación return ; se ahorra e s t a dos instniccionrs y a m h ; tarnbien espacio en la pila. 0 "Visualiza" en formato: se desea aiustar en formato: "~em~er. deseada" 25OC " I Visualiza la temperalura medida y la deseada en formato: 1 'Termostato: 25OC" 24.5% " Figura 28-12 Diagrama de$ujo de l subrutina I~'isimliza a
  • 476. ; V i s u a ü z a d t ~ e a ~ f ~ p o s i b l e s : ' ; A) Con el kmos@ hacth-ado, m& "Temmkto-OFP. Pm ejernpb: ' ~ , ~ P pmua W)d " '' 24.5% " (Segunda u). - ; "VisdizaTermom ~enlaprimcra~se~zaunmemjepub-lic~ayenIa i 9 $ SegUadsttneahoemparaturaaedrBa~tual. ; B) Ajuste &1 termostato, modo Tmmebfa-A&e". PM e j 4 o : - ;En laprimeraha * 'Trroper.~"~~~ ;temperaturam&b " 25% "(k@náalinea). 9 Dondemlasc~~vidizala~attíraqire~dcseaa~. ;Enldas: - ; C) Con e l &va&, modo ' T m m - O WPor ejenrpQo: Tcmroststo: m" , wntm un#) i I * I I' 23.5% "f-dalmea). 7 - 1 ; ~enlaprimemlinease~la~~qiiesedfsa VidizaTemonm caH movlw call VisuaiizeT~tur movlw d btf~ gm ' T e m m - w movhv ' cal1 1 i t i ; Enmdax T& (e) - temprr#ra ajustada en Imi suhutha bmmmtar. t I Visuai~Term~atato~Ajuste i , cdl LCDLineal ;Se sihia al principio di l primera ha a ! mvk MensajeTemstato-Ajuste ; Visualiza men6s.e en la primera hm. call LCD-Mensaje movlw -6 ; Se coloca para centtarvisudhcih m ia cal1 LCD-PosicionLinea2 ; segunda Uaen. VWT- . . - . . .-, . 1. . M.- T w W . , . . , -. .; . . .-.. - . , ..
  • 477. ; Se s i h al principio de h primera ha.
  • 478. 162 M J C R C ~ C O h T R O L ~PtC 16FM. R DESARROLLO DE PRCiYEC'TOS O R 4-MA decisiones sobre h salida. - @S 1820_S&io), registro cori el aig1-10 de la t - medida. Si es cero b tmpmm es mtr y todos sw bits son "1 ",es negativa ii a ;Salida - Su funcionamiento: 9 - Estando apgada, si la temperatura medida k i e n d e por debajo de la temperatura deseada la salida se activará. I - Estando encendida, si la t m m medida supera la dcseada la salida ce apagará. - Si las temperahiras medidas y deswida son iguales se qu& en estado anterior,tanto si está encendida w m o si má apagada. - M temperatura negativas la salida se debe aictivar siempre. Temostam btfss FTemostato~ON ; Si el t m o ~ t no está activado salta a o goto Apagacarga ; apagar la carga. Msc DS 1 82OLTemperaturaSipo.7 ; Con bmperatum negativas pasa a activar goto EnciendeCarga ;la carga. btfvv SalidaTmvstato ;Comprueba el estado actual de h salida para gotd SalidaEstabaApagada ; actuar en cnnsecuencia. Sal idaEstaMctivada ; Pava a coinprcibar si tiene que apagar la carga. rnovf DS 1 8 20-Temperatura. W subwf TeniperdrurdDeseadn,W : (W)=(TemperaturtiDcslada)-(DS I820-Tanpe~tura). bik STATUS,C ; ~(Teniperahml3escada)QDS 1820_Ternperanira)? goto FinTmostato :Si, por tanto, lo deja encendido y sale. cal1 Pitido ; Pitido cada vez que conmuta la carga. ApagrtCarga bcf SalidaTcrtiiostato ; Apaga la salida y sale. goto FinTwmostato SalidaEutabaApagada ; Pam a comprobar si tiene qiie encender la carga rnovf TmperatmDesctul&W subwf DS 1820-TempcraturqW : w)=(DS 182O-Teinpera~)1Tempm~eseariii). btfsc STATUS,C ;¿@S 182~Teinpcraturar(TemperaturaDeseada)? gota FinTermostato ;Si,la deja apagada y sale. Enciendecarga cal1 Pitido ;Pitido c& vez que activa la carga. bsf SalidaTcmostato FinTemostato Retum Subm- "Camb;arM&" v "M&Tm ustatri -O F P ; Subrutina dc atención a la intcmipcion pducida por e pulsador "MODO" que canibia el. m 1 & :Así pues, el 1 ;de funcionamiento.Cada vcz que pulsa pasa por los modos "Tennostato_Ajusie","Temio~tato~ON, ; Euncionarnie ; "Termostatc-OFF"y vuelta repetir. ; - (FlagsMd ; - (F!apMod ;El ajusic de la temperatura deseada en el termostato se logra mediante dos pulsadores: "MODO" ;- (Flags&ld ;e "1NCREMENTARU o n d a s a pines del Puerto B. c ; Pueden dan ; Al principio aparecmá s61o el tcrmbmetro y el termostato estará desactivado:modo ; - Qu ; "Termoritato-0Wt (fl ; Para comprender el fwicionamie;ito de esta subnitina, hay que saber que el registro FlagsModos ; contiene 3 f l a p que permiten diferem.iar cada uno de las modos de funcharniento: ; - * 'Ti P
  • 479. B R A-MA c . ~ P ~ 28 L ~ DE UNA LMEA463 U BCrS I "PitidoCorto"en el zumbador. - S I esta en "ModoTerrnostato-OFF" pasa a "ModoTermostato-Ajuste". - Si es& en "MadoTermostato~Ajucte" paca a "ModoTermostato-ON". - Pasa a "ModoTemostato-OFF". ll "LCD-Borra": Borra la pantalla. "Visualiza": Segun el formato de cada modo. 11 1 - Espera deje de pulsar. l c3 Return ; A) Modo "TermostatqOFF", donde funciona como tmnúrnetra normal sin termostato. Se reconoce por el flag F-Temosiato-OFF, que es el bit O del ~ g i s f t n FlagsMhs. ; B) Modo " T ~ r m o s t a t ~ A je'', ~donde sc ajusta la ternperahira dewda cuando funcione u t como termostato. Se reconoce por el flag F-Tmostam-Ajuste, que es el bit 1 del registro FlagsMdou. ; C) Modo "TemostatqON, &nd< tiuiciona como termómetro normal y, a d e d , como termostato. Se m o n m por rl tliie F-Termostato-ON, quc es el bit 2 del registro FlagsModos. > ; Así pues, el contenido del regism (Flas~Md<i~) identifica los siguientes modos de ON", j :Funcionamiento: ;- (FIsgsModos)=b'0000000l'. Esta en el modo "Terntosratci-CjFF". ;- (FlagsModos)=b'O~lOi. Esth en el modo "Tennostato-Ajute". ; - ~FlagsMdos)=b'00a00100'.F A en el modo "Tcmotitato-ONU. I 1 ; Pueden darse dos casos: ; - Que pulse "AJUSTE" e& en el modo m , alto, "Termostato-ON", & N (FlagsMdos)=b'00000 100'. En este caso debe pasar al modo inicial "Termostato-OFF" poniendo (FlagsMdos)=b'0000000 1'. -- Que pulse "AJUSTE" estado ya en cualquiera de los otros dos mollos, m cuyo caso &be
  • 480. Jh4 MICROCONTROLACKIR PIC 16F84. DESAIZROLLODE PROYECTOS ejemplo, si antes esata e5 m& "Teimasq,OFF",( F l a g ~ U d m ) = b ' m I pmud a ', ( F i a g s M o d w ) = b ' ~ 1 que idedifica al m& "Temocta~i~psUste". O' d haf&-2(hns btfsc M- & ;Si es m rebote, sale fuera goto FinCambiarMh cal1 PitiMom ; Cada vez que pulsa se oye un pitido. btfs PPT~ostatotoON ;DeectasidmeliUtinrom&. goio Modosiguiente ; Si no. pasa al modo siguide. Modo'Tert-r~ostato~OFF dl Pitido ; Pitido cada vez que c n m la carga. om bcf SaiiditTemost~io ;Apaga la carga. rnovlw b'0000a001' : ActuaIiza e1 registro FlagsModos psmdo al movwf FlagsMh ;modo inicial "Temiostato-OFF". gow Borrapantaita ;Desplaza un " 1" a la izquierda del registro ; FlagsModos p m ajustar secuenciatmente ;cada urio de Ios modos de fiutcionamienio. cail LCD--Borra ;Borra la pantaik anteríor. FinCambiarModo cdl Visualiza btfss ModoPuisador ; Ahora etipera a que deje & pulsar. goto FinCambiarModo INCI END ; pr-al su d o r en caso que desaparaca la dhentacih Este n 28-6. que res TmperamaMinima EQW .?O TeinperaWaxima EQU .36 pulsadores, i estará trabaj; Incremen~Taop~ necesidad de 4 Retardo2hs ;Espera a que se estabilim nj~elcs tensión. de btfsc i n c r e m e n & M r ; si es un rebote d e fuera. goto Finlncrementar b & FTem~tatD~Ajuste : Si no est6en mDdo "Termostib-Ajuste" sale goto FinIncrementar c d PitidoCofto incf Temperammhmdaf ; I m t a el valor de h tempmba deseada. movlw Temperatumhhh ;¿Hallegado a h temperatura maxima de ajuste?. subwf Tarpm~eada,W ;IW)= ( T e m p m W a d a ) -Tmpmatar&kim b& STATUS,C ; ¿(T-eadaPTemperaW-7 goto V i s u a l ~ c r e m e n bNo, pasa r vimdhrIo. : movlw TempemmMinima ;S, eatmces inicializa e regism. í l movwf T~~
  • 481. PJ M-MA I c RA-VA Visual-ito caU Vkualim CM~TIJLO28: RliS DE UNA L ~ F A465 : Visualiza mienmiespm a que dqe cnU Retad-200ms ; de puisar. btfss Inmmntddaador; M i m a p n m n e z c ~ pulsado, g* IncremenierTempea$8 ; incmmta el dlgiio. cfrw ; Saiva tl valor de la tempemmra deseada e la n mw v f EEADR ;posición 0% de la EEPROM de daros. Se consewa mf v Ternperatm&w&,W ; aimqiie se apague la dimentacibn. call EEPROM-Em'beDm Fidnmmentar rm e Pitidohgo bsf Zumbador c d Retardo_SOOms Pitido bsf Zumbador call Retardo-200ms PitidoCorto bJf Zumbador caU ReW020ms bcf Zumbador renim LNCLUDE <BUS- 1 LlN.INCí, ; Subnitinac de control del bus de 1 Ihea. WCLUDE <DSk820.INCr ; Subrutinas de control del termómetro digatl. INCLUDE <RETARDOS.INC> INCLVDE <Brn-BCD.rNC> JNCLUaE SC7D_4BlT2INC> INCLCTDE <LCl-MENS.TNC> INCLüDE <EEPROM.ZND END Estc mismo programa puede servir p m un termomctro digiial coino el de la figura i i 1 28-6, que resulta ser el mismo esqucma del termostato, del cual se haii eliminado todos los ,, piilsadores, zunlbador e interface con la carga de 230 V. Eii consecuencia, el programa , ! estará trabajando siempre en el modo "Termostato+OFF" como simple termómetro, sin necesidad de alterar nada del programa del termostato.
  • 482. CAPITULO 29 MOTORES DE CORRIENTE CONTJNUA Et cotiíicirniento dc los sistemas control de motores dc comerits continua C.C. (i) DC) dt: pequeña potcncin es fundamcntnl par:i cualquier aficionadri y ut: quiera rralizar proyectos con ~~iicruc(intr~c~ladorcs, qiie Ic dedicamos este capiiulo. por lo El primer problema a considerar es la formri de alimentar el motor. ya q i i t la corriente mrixitna quc puede proporcionar cualquier linea de salida de un PICI 6FX4A cstá limitada a 35 mA como rtii-xinio. Esta corriente cs demasiado pobrc para alimentar un motor DC ciirectarnente. Por ello, se hace necesario la utilización de trarisistorcs que pueden ir coiitigurados en difei-eiites disposiciones,siendo la más utilizada e1 Puente en H (figura 79- 1 ). VCC- 5 0 I & - Figura 29- 1 Puente en H con trc~lisistore.~
  • 483. 46% MICROCONTROLAWR PIC i6F84. DESA RROLLC) DE PROYECTOS ~RA-MA 29.1 PUENTE EN H Es conocido que el sentido de giro de un motor de corriente continua depende de la polaridad que se aplica a sus terminales, en consecuencia para cambiar el gro es necesario intercambiar los terminales del motor o bien cambiar la polaridad de la alimentación. - - Figura 29-1 Fitncionarnicnru con 11 a nivel alto e l2 a ani~vl bajo vcc- 5v L293R y el enc allo Figura 29-3 Fu~cionnmienfo 11 a ~tiilel r 12 cr nivel b4do con La forma más sencilla de conirolar un motor de corriente continua de baja potencia, en velocidad y sentido de gro, es mediante la comiiutación electrónica de unos circuitos realizados básicamente con transistores que reciben el nottibre de Puente en H, como se describe en la figura 29- 1.
  • 484. 7 RA-M< 2 C A P ~ T U79: MOTORES DE CORRENTE CWNTITMUA 469 XI Este circuito está f o m d o por cuatro transistores que trabajati en conmutacioit y se coniportan como interruptores controlados por la señal que les llega a las entradas 11 e 12. :nde de la Su funcionamiento es el siguiente: I giro es iad de la Cuando se activa la entrada 11 a nivel alto y la entrada 12 a nivel bajo los transistores 43 y 4 (NPN y PNP) entran en saturación simultáneamente, 2 mientras que Q1 y Q4 están en corte por ser de signo contrario (PNP y NPN respectivamente). Eri estas condiciones el motor gira en un sentido, por ejemplo en el contrario a las agujas del reloj (figura 29-2 ). Cuando se invierten las señales de entrada, es decir 11 a nivel bajo e 12 a nivel alto, los transistores que se satiiran son Q I y Q4, micntm que los que entran en estado de corte son 4 2 y 4 3 . Esto hace que el motor gire en sentido conkario (figura 29-3). El problenia de este tipo de circuitos es la caída dc tensión real que hay en los transistores y que habrá que compensarla con L tensión de alimentación. Para evitar estos ? problemas se puede utilizar circuito integrado como el LM193B. 29.2 DRIVER L293B El L293B es i driver de 4 canales cap:= de proporcionar una corriente de salida m de hasta 1 A por carial. Cada canal es controlado por scñales de entrada conipatibles TTL y cada pareja de canales dispone de una señal de habilitación que desconecta las salidas de los mismos. La figura 29-4 describe cada una de las patillas de las que dispone el L293B y el encapsulado de 16 pines. CHIP ENABLE 1 INPUT ' i OUTPUTI GND GND OUTPUT2 INPUT 2 vs Ja de baja ica de unos Fipm 29-4 Pufiljl del Driver L2938 luc iente en H,
  • 485. 470 MlCROCONTROLADOR PIC IhF84. DESARROLLO DE PROYECTOS O RA-ht4 Dispone de una patilla para la alimentacibn de las cargas que se están controlando 29.3 GfF (Vs) de manera que dicha alinientacibn es indepcndjentedc la 16gica de control. La figu La fiyum 29-5 representa el diagrama dt. bloques del L293B. La seiial de coritrol cotitinua que g EN1 activa o desactiva la pai.qa de canalcs formada por los di-i.zrs 1 y 2. La señal EN2 El mo controla Ia pareja dc drivers 3 y 4. Las salirlas OUTn se asocian con las corresporidicntt.~ detien INn. La tabla de dicha figura detalla cl funcionainieritoparri cada uno de los drivers. El mo +VSS dciien H L - = Nivel alto Nivel bajo" O Z = Alta impedancia "1" VS Figurrr 29-5 Biirgrma de bloqir P.S del L293 8 y tahlu de funcionumiento k La tabla 29- 1 informa sobre los ttiáximos valores admisibles. Fier La Tabla Tensicin de entmda Tensidn de habilitación Tabla 29- 1 Rnngo.s absolutos del driver L293B Tabi También se fabrica el modelo L793D, cuya principal diferencia respecto del L293B es que proporciona una comente mixirna de 600 1 1 ~ 4 . Es iiidispi motores tal coi Veamos seguidameiite algunas formas de coticctar los motorcs de corriente contraelectromo continua a este driver. conmutücián. 1.
  • 486. 6: RA-M,+ CAP~TULO MOTORES DE CORRIENTE CONTTNUA 471 79. 29.3 GIRO EN UN ÚNICO SENTIDO La figura 29-6 mucstra el modo de funcionamiento de dos motores de corrieiite :c(>~~trol continua que giran en im Uriico sentido, suponiendo que lri Vinh = 5 V : ñal EN2 m El motor M 1 sc pone en marcha a1 poner 3 niwl bajo la cntnda de control A y se ~ndientes detiene con uii nivel alto de entrada. :s. El nintor hI2 se pone eri marcha al poner a nivel alto la etikada dc control B y qe deticnc con un nivel bajo de entrada. F i p r a 2 9-6 Cunei ion de dos mofvre.rDC. MI activo por "O" y M2 por "1 " La Tiibla 29-2 mucstra el modo dc iuncionamicnru del circuito. Tuhia 29-2 Modo de,func.ionumit!n~o r.ir.c-zríto de lu$gira 29-6 (I(/I ?ecto del Es indisperisable conecta los diodos D 1 y D2 en paralelo con los devanados de los tnotorcs tal como muestra la figura, como protección ficnte 3 los picos de fuerza corriente contraelectromotnz producidos por la carga itiductiva de la bobina en el momento dc la conmutación.
  • 487. 472 ~ C R O C O ~ O LPIC1t6F8-4.DESARROLLO DE PROlTCTOS ~ t ORA-MA 29.4 GIRO EN LOS DOS SENTlDOS El circuito de la figura 29-7 pemiite controlar el doble sentido de giro del motor: Cuando la entrada C estíi a nivel bajo y la D a nivel alto, el motor gira en un sentido. Cambiando la entrada C a nivel atto y la D a nivel bajo se cambia el sentido de giro del motor al contrario. Figura 29-7 Circuito dr controlparu el doble giro de uli motor de C.C. Los diodos de protección se pueden cotiectar segun se muestra en la figura 29-8. Para ( MotorDC-01 .a marcha del mo La posición de depende de la motor los giro! en la figura 29- Figura 29-8 Conexión de diodos de protección d circuito de 1aJ;guro29-7 La Tabla 29-3 muestra el modo de funcionamiento del circuito.
  • 488. ORA-M4 CAPÍT~ZO29: MOTORES DE CORRIENTE CXIhTWUA 173 del motor: or gira en un . el sentido de i. I ',S, dc.1 Tobh 29-3 Modo de~firncionnmiepriv cirrui io d~ Iu.fip4r'rr 29- 7 $ - 29.5 CONEXIÓN DE MOTOR C.C. Y PICl6F84 LI figwa 79-9 iiiueslra una conzxih tipica de un motor de corriente continua a rin microcontrolador PIC16F84A a traves de un dnver L293 B. La tensión aplicada al pin Vs es la de alir~ientacihn motor, en este ejemplo se utiliza un motor de 12 V. del 1 Figuru 29-9 Con PO/ de motores c.c con el dnver L2933 y el P1CI 6FMA :li b I Para comprobar su funcionamiento se puede cargar el progrania McltornC-Ol .asm, que controla el bivcr dcl motor. La l inea RAO curilrula la puesta en ' marcha de1 motor, si RAO es"O" el niotor se pone en marcha y si RAO es "1" si: detiene, La posición del interruptor conectado a RA4 controla el sentido de giro que por supuesto , depende de Ia polaridad de conexidti del motor. si se intercambian los terminales del I motor los giros serrin en sentido contrario. El organigrama de este programa se muestra en h figura 29- 10. rra 29-7 i
  • 489. 474 MICRCK'ONTROLADOR PlC l hFñ4 DES .ARRULLO DE PROYECTOS "MotorDC-0 1 .asrnm Configura lineas de Entrada y Salida. Gira a la DERECHA: Motor PARADO: RB4=1, R B I = l , RBO=D Fi_qum 29-I O Orgunigrt-rniodel pruguma MotorDC-0 1. m m ;Programa de control para un motor & comente continua en funcionmienio y sentido de ; gim. Con R A e O . el motor se pone en niarcha y <u sentido de giro dependerá del valor ;que tenga RA4. CONFIG -CP-OFF & -WDT-OFF & -PWRTE-ON & -XT-OSC LIST P=16F84A WCLUDE <PIbFMA.iNO #DEFINE EntredaMarcha PORTA,O ; Ititemrpionde pmsh en marcha. #DEFINE Entmddhtido PORTA,4 ; Intemiptor de sentido de giro. ; Z O N A D E C ~ D ] ~+ S* L * * L " * * W * * * * * * V * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * I b La ~CXIS frecuencia con variando el ci sumjnistra al rr ; Configura las Iineas & enkda. hf Entradakitido clrf PORTE3 : L a h a s del Puerto B conñguradas como salida. bcf STATUSRPO ; Con esta cornbinacibnse detiene el motm. ;Comprueba el estado del Uitmqtm de funcionamiento. alimentacihi di
  • 490. ,ou-VA C A P ~ W L O MOTORES DE CORRIENTE CO N T I N U A 475 29: goto ActivaSSda movlw b'm0100iO' ; Girti en un sentido. btfic Ent~~daFentido ; Cornpnieba el sentido Ge giro deseado. movhv bfOOOI0001' ;Gira en el otro satrido. Activ&lida movwf PORTB goto Plimipal 29.6 CONTROL DE VELOCIDAD La velocjdad de un motor de corriente continua depende del valor medio de la tensi6n aplicada en sus extremos. El sistema más uti1i;tado para controlar la velocidad de un motor DC' de pequeña potencia es mediante la modulacion por aricho de pulso P WhI (Pulse Widdi~ Modulufion) de una señal cuadrada TTL, como muestra la figura 29-1 1. Bajo el control PWM. el motor gira a una velocidad determinada por la media del nivcl de la señal cuadrada. O% (Motor parado) -- 100% (Velocidad rnAxirna) Figura 27- 11 Control velocidad de un nutur c.c. mediante PIIffid La tensión continua mcdia presentada al inotor se controla manteniendo la frecuencia constarite, y variando el tiempo que la señal permanece en alto, es decir. variando el ciclo de trabajo (duty cycM. Así, si el ciclo de trabajo cs del 50?.1ó se suministra al motor una tensión media del 5098, con un ciclo de trabajo del 20% sólo una quinta parte de la tensibn t t h i m a es suminjstrada a la carga. Cambiar de un ciclo de trabajo de1 50% a otro del 20% conllevarii una disminucion de la velocidad del motor. La regulacian PWM proporciona iin eficaz método mediante la utilizacion de una simple señal digital de control. Si se utiliza una señal de estas carrictaisticas para atacar In entrada EN1 del montaje de la figura 29-9 se consigue que el valor medio de la seíial de alimentación del motor varie, de tal manera qiie cuanto más tiempo cstC la linea RB4 a
  • 491. 476 MICROCONTROLADOR PIC IúF84. DESARROLLO DE PROY ELTOS Q RA-MA U RA-M4 nivel alto más deprisa girará el motor. Ldgicamente si la duración del impulso a nivel bajo es muy grande el motor se parará. 'MatorüC-a2.asm" .*#*~*****d Configura llneas de entrada y salida de anchura^ Motor Parado: RB4=0. RBI=O, RBO=O (RA3:RAO)-r (Ciclos-ON) ID - (RA3 RAD) + (Ciclos-OFF) Motor en ON: R84= 1, R 8 i =l. = O WO ;ZONA DE I -C LIS Retardo de 100 ps INC CBI (Ctclos-ON) - 1 + (CiclosON) Cici Cicl Gua EM Maximenwr Motor en OFF: RB4=0, RBI=O, RBO=O ;ZONA DE C OR( inicio Retardo de 100 ps I d mov mw - (Ciclos-OFF) 1 4 (Ciclo-FF) ckf Wpal mOY aKh ¿l m bth m' Figura 29- 12 Organigrama del pr-opnnia AhtorDC-02. arm srPbh
  • 492. liso a nivel El programa MotorDC-02.asm es un ejemplo de gobierno de la velocid-id de iin motor de C.C. mediante control PWM. Su funcionamiento se explica en los comeiitarios y en su diagrama de flujo de la figura 29-1 2. .**+VV*+*+**C*88*************IMOtor~ M,-****Y*W***V***********..*..****.. 9 ; Programa de regulación & velocidad & un motor de corrientecontinua mediante Ia modhciiin ; de anchura de pulso (PN'M). la línea de salida se genera una onda cuadrada de kmewia Por ;wnstmte a 1O0 Hz @ocio de 1 ms) y ciclo de trabo d a b l e desde 0% a X W h , 0 dqmdicndii ;de1 dar de la entrsda del Puerto A. Es decir, el tiempo m aito varia entre O ms (0%) y 10 ; ms (1 00%) de a c u d o con la siguiente tabla: (Ciclm-Or) (Ciclos-UFF) Entrada DC (YO) SEMiPWODO ALTO SEMIPERIODO BAJO -CONFIG -CP-OFF 8: --FF & _PWRTE-ON & -XT-OSC LIST P=I FiF84A INCLUDE e l bF84A.INO MaximaEnaada EQU -10 ORG Inicio bsf STATUS,RW movlw b'00001111' ;RA3:RAOcano mmdas. mw r n A v f M TiUSB ;Las iáieas del 0 se-aonfigtuanwmo didas. , . M STATUS,WO Prhcipal mMrf d w m * btfsc
  • 493. 478 MICROCONTROLADOR PIC 1 hF84. DESARROLLO DE PROYECMS rEi R A M A btfsc STATUS,Z gow m-IDDPoiCietito btfss STATUSC ; ,i,C=l?, i(W) positivo?, L(PORTA%=~ 07 goto IX:-CeroPaCim ;Ha resultado (PORTA> 10) movwf Ciclos-OFF ; ~O-(PORTA)--~~~C~S-OW). movf GuardaEnwada,W movwf Ciclos-ON ;Carga RA3:RAO en (Ciclos-ON). Motor-ON moviw btOM)lOO10' ; Habilita l s drivers y un sentido de g h . o movd PORTB caU Retardo-lms decfsi Ciclos_ON,F ; Si (Ciclos-ON)=O salta a Motor-OFF. gota Moto-0N-t-2 Motor-OFF clrf PORT3 ; Inhabilita los drivers. Motor parado. cau ~ o 0 l m s decfsz Ciclos-OFF,F ;Si (Ciclos-OFF)=O salta a Principal. @m MotorLOFF+l g* Fin DC-CemPotCiento clrf PORTB ; Inhabilita los dnvers. Motor p&. gota Fin K-1M)PorCiento movlw b'0001001Ot ; BabiIita los drivers y un sentido de giro. movwf PORTB Fin goto Pnncipd La generación de la onda cuadrada PWM tambien se puede realizar mediante interrupciones por desbordamiento del Timer O, tal como sc cxplico cn un cjcrcicio del capitulo 18. El siguiente programa es un ejetnplo de ello. :Programa de mntroI de velocihd de im iiiotor dc crirricntc coiitinw mediante la modulacihn ;de wchim de pulw (PWM) similar al M~iiorD-O?.asmdonde el control de tiempos se realiza ; mediante iniempcionrs por dwhrdaniirnto del Tiincr O. :El sentido de giro del motor se decide en fuiicion del valor dc la lina RA4. ; El control de las lineas de salida se realizi+ mediante direcciunamiento por bit con ; l s iimiccionrs "bsf' y "bcf'. a CBLOCK O W x CicloTrabajo ; Ciclo de habajo d e d .
  • 494. b Rn-MA CAP~TULO MOTORES DE CORRIEKTE C:CNlT?JUh 29: 474 GuardaEntrada Tirnd-ContadorA ; Contdor auxiliar. ENIX TMRO-Cqa EQU 4745' ; Valor obtenido expcrimentahente con la ventana ; Stopwatch para un tiempo de 1 ms. MaxirnaEnrrada EQU .10 #DEFINE SalidaSmtidoO PORTB,O ; Salidas determinan el sentido de giro. #DEFiNE SalidaSemidol PORTl3,l #DEFINE %lidaMarcRa WRTB,4 ;Salida de puesta <ti m a r c l o paro del motor. ~ #DEFlNE EntradaSentido PÜK'i'A,4 ; Interru~br sentido de gim. de ;~ONAWEC~~D]GOS**~***V+LC*****S***~****IC*U~**U~~~C~******V******~VV**~********~***~ ORG 0 goto iii nco ORG .4 goto TimerOrOlntemipcion Iaicic! bsf STATUS,RPO bcf SdidaMamha ;Estas 1Inea.s se configuran como dida. hf SalidaSmtidoO bcf SalidaSentidol movlw b'00011111' ;Aierto A confiprado como eneada. movwf PORTA movlw b'0000000I' , ThlRO cun p~iscaler 4. de movwf OFTIONLREG bcf STATüS,RFQ nediante bcf SalidaMarcha ; Al yiriiicipio el motor parado. cicio del Principal btfsc !%baddenti& ;Comprueba el sentidu & giro deseado. goto OtroSentido bsf SalidaSentidoO ; Gira en un sentidó. hcf Salid9Stntidoi goto TesteaVebcidad Otrosentido bcf SalidaSrniido0 ;Gira eii el sentido opuesto. bsf SalidaSwtidn! Trsteavclocidad movf PORTA,Mf ;h e el puerto de entrada andlw b'00UOllll' movw f GuarciaEntrda :Guarda e1 v~lor. btfsc STATUS,Z goto DC_CeroPorCiento sublw MaximaEutmda :(W)- IO-(PORTA ) btfsc STATUSL goto E - 1 OOPoKiento & STATUS-C :iC=l'?, positivo?, ¿(FORTA)<=IO? goto DC-CeroPorCiento ; H resultado PORTA> 1 0. a movf GuardaEntrada.W mmwf CiclaTraba~a moviw b'1 10000iJ 0
  • 495. 480 MICROCONTROLADOR PIC 16F84.DESARROLLO DE PRUY LCTUS O M-MA mm-f - N ; A u t h inferrupcibnTOT y la -1 (GIE). goto Fin DC-CeroPurCiento bcf SalidaMarcba : Pwe l salida siempre en bajo. a goto MiabilitaInternrpciun m-1OOPorCiento bsf SaLdaMArcha ;Pone La salida siempre en alto. lnhabilitalntemrpcion clrf INTCON ;W i t a iiitffnrpcionm. Fin goto hincipal Subnitina " T k e d Intemipcicm" - -- -- u - - - - - - - - - - - - - -- - - - - -- - - -- - - -- - - ; Mantiene la &da en alto un tiempo i g d a 1 ms x (CicloTrabajo) ; y en bajo iui tiempo igual a 1 m6 x (10-CicloTrabjo). CBLKK --W M-STATUS ENDC TimerO-intempcion 1 mw G d - W o f ;Guarda los valcm de ttnian W y STATUS en el No es ra mapf STATiJS,W ; Programa P* &. conseguir un rr movwE Guarda-STATUS de iin proyecto. bcf STArnS,RW ;Garantiza que trabaja ai el Banco O. movlw TMRO-Carga movwf T M R O decfsz Thd-CmtadorAS ; h m m t a el contador. gota Fin_TimerO-iniemipcion kfs Salid&mha ; Testea d anterior estado de la salida Los m01 gm EstabaAlto dispositivos COI EstabaBajo papel de una ir bsf S h W h a :Estaba bajo y lo pasa a alto. m& CicloTrabajo,W ;Repone el contador nwammte crin el tiempo en disqiieteras de mwwf Tiind-ContadorA ; alto. obsenra que en goto Fin-TimerOerOIn~pcion por el eje del m EstabaAlto SalidaMarcb ;Bt&ad~ylopabrijo. Los mot movf CicloTrribajo,W ; Repwe e1 c m t a h nuevmnite con el tiempo sublw .lO ; en bajo. comente contin TUnaO-ContadmA mwwf hacerlo continu Fin_TmerOerOh~ion rnicrocoiimladc swapf M-STATUS,W ; Restaurs regidros W y STATUS. dentro de una movwf STATUS control de pos swapf Guarda-WF swspf C ~ - W , W revoluciones pc bcf mc0NJwIF y carsa mecánii bcf INTCON,TOiF por niétodos ser Fetfie Un motc devanados. El i Cada pulso pro
  • 496. c APÍTULO 30 MOTORES PASO A PASO No es raro qiie un aficionado a la electrónica desguace una vieja impresora para conseguir un motor paso a paso y poder realizar alguna tarea de posicionamiento dentro trabajar con estos utiles motores. de un proyecto. En este capitulo se explica coi~io 30.1 MOTORES PASO A PASO (PAP) Los motores paso a paso o PAP (Stepper ,Ilotorj son muy utilizados en los dispositivos controlados por sistemas digitales. Por ejemplo los mecanismos que arrastran papel de una impresora, [os que mueven cl brazo de un rvbot o los que hacen gii-m las disqueteriis de un ordcnador dependen de motores PAP para su funcionamiento. Se observa que en estas situaciones se requiere un conml pr~ciso la trayectoria a seguir de por el eje dcl motor Los rliotores PAP proporcionan iitu considerable ventaja sobre los motores de corriente continua o DC. El eje de un niotor PAP gira a intervalos reguiares en lugar de hacerlo continuamente, como ocurre con los motores de continua. Bajo el control de un rnicrocontrolador, los mvtures PAP puden ser usados para pasicionarnientos precisos dentro de una amplia gama de aplicaciones, incluyendo robótica, autornatización y control de posicionanuentu. La velocidad de un motor de DC viene expresada en revoluciones por minuto (yni) y es función de la tensicin aplicada, corriente por el motor y carga mecánica del mismo. Un posicionamiento preciso de un motor DC no es posible e . . por mhodos sencillos. j; j Uri motor PAP gira en h i c i ó n de una secuencia de pulsos aplicados a sus i devanados. El eje del motor gira un determinado ángulo por cada impulso de entrada. Cada pulso provoca la rotacion del mtor ciel motor en un increttiento de ánguio preciso, ,/& I E
  • 497. 482 MICROCDNTROLAWR PIC 16F84. DESARROLLO DE PROYECTOS O RA-MA denominado paso, de ahi el nombre de motor "paso a paso". El resultado de este inovúniento, fijo y repetible, es un posicionamiento preciso y fiable. Los incrementos de pasos de la rotación del rotor se traducen en un alto grado de control de posici~namiento. Los incrementos de rotación o pasos se miden en grados y es cl paramemo fundamental de iin motor PM. Tarnbien se piicdc cspresar en números de pasos por rcvolucion de 360 grados. Un motor paso a paso puede girar un número exacto de grados en ambos sentidos. Los motores PAP se comercializan dentro dc una gran variedad de grados de rotación por paso, desde 0,72"a 22.5". correspondientes a 500 y 16 pasos por revolución, respectivamente (efectivamente, 360°;0,72" = 500 y 360°/22,5"= 16). El motor PAP más comerc~alimdo el de 7,5" por paso o 48 pasos por revolución. es El principal problema que presentan los motores PAP es su limitada poteiicia. Sin embargo, este problema esti siendo resuclto por los iiuevos diseños, con los que se ha logrado potencias superiores a 1 CV. En este capitulo se va a explicar como realizar el control de niotores P.4P mediante un microcontrolador PIC16F84, pero antcs liay que examinar sus pnticipios de funcionamiento. 30.2 PRINCIPIO DE FUNCIONAMIENTO Aún basados en el mismo fcnhmeno que el principio dc funcionamiento de los motores de corriente continila, los niotores paso a paso son mis sencilos, si cabe, que cualquier otro tipo dc motor eléctrico. La figura 30-1 ilustra el modo dc funciunarnicrito de un motor PAP. Supotiernos que las bobinas L 1 como L2 poseen un núcleo de hicrro dulce capaz de iniaiitarsc cuando dichas bobinas scan rccotridas por una corricntc cl6cttica, esto es el denoil-iinado estatur. Por otra parte, el imán M puede girar libremente sobre el eje dc sujeción central, este es cl rotor. Inicialmente, sin aplicar ninguna corrieilte a las bobinas (que también recibe11 el nombre de fases) y con el imári M cn im:i posiciiin cualquierao cl i d n liermanecerá en Lnviríienc rcposo si no se somete a una fuerza tihteiria. la situaci6n de inwriimos de n Si se hacc circular comenie por ambas fases, como se muestra en la figiiia 30- I (a), grados y se hab se crcaran dos polos magnéticos NORTE en la parte interna, bajo cuya influencia el imán grados. M se desplazah hasta L posiciún indicada en dicha figura. a Si se m Si invertimos la polaridad de la corriente que circula por la bobina L 1 se obten& corrientes son 2 la situación magnética indicada cn la figura 30-1(b) y el imán M se vera desplazado hasta cada pulso aplic
  • 498. lo de este la nueva posición de equilibrio. Es decir, ha girado 90 grados en seiitido contrario a las menios de a p j a s de1 reloj. iarniento. parámetro pasos por I de grados kmdos de rvoliiribn, :P.4P mas tencia. Sin yuc se ha I I (a) Paso 1 1 1 (b) Paso 2 ' mediante icipios de nto dc los cabe, que ;iipclincmos rse c L I : ~ ~ O lo estator. 1, Aie es c.1 reciben el mecerá en lnvirticndo ahora la polaridlid de la corriente que atraviesa la bobina L2, sc llcga a la situación de la fik~1t.a30-1 (c) habiendo girado el imán M otros 90 grados. Si invertiiiim de nuevo cl sentido dc la corriente en la bobina Ll el iman M girara otros 90 m 30-](a), grados y sc. habra abienido una revolucidn completa de dicho imán en cuatro pasos de 90 :a el imán i grados. Si se mantiene la secuencia de cxcilacion expuesta para L1 y L2 y dichas
  • 499. 484 MICR0CONTROLALK)RP1C 16F84.DESARROLLO DE PROYECTOS o M-MA Analizando lo expuesto podeiiios decir que un motor paso a paso es un dispositivo electromecánico que convierte impulsos elecbicos en un movimiento rotacional constante y finito dependiendo de las características propias del motor. El modelo de motor paso a paso que hemos analizado?recibe el nombre de bipolar ya que para obtener la secueticia completa, se requiew disponer de corrientes de dos ~iolaridades,presentando tal circunstancia un inconveniente importante a la hora de diseñar el circuito que controle cl riiotor. 30.3 MOTORES PAP BIPOLARES En este tipo de motores las bobinas del eshtur se conectan formando dos grupos, tal y como se muestra en la figura 30-2. Mobr paso a paso biwlar F i p m 30-2 Circuito de Control de uri niolor bipolur De este motor salzri cuatro hilos conectados al circuito de control, que realiza la función de cuatro intemptores electrbnicos dobles que pemitm variar la polaridad de la alimentacion de las bobinas. Con la activacion y desactivacion adecuada de dichos interruptores dobles, se puede obtener las secuencias correctas para que el ttiotor gire en un sentido o en otro. Estos transistores carifigurados como pi~enteen H pueden ser sristititidos par el driver L293B taj como se estudió en el capitulo aiiterior, la conexión de un motor P bipolar y el driver L293B se muestra en la figura 30- 13. En la figura 30-3, M puede analizarse como debe ser la secuencia de excitación para que el motor gire en un sentido. Tiene dos modos de funcionamiento: Full Step y HoVStep.
  • 500. t,RA-MA O RA-MA CAP~TULO30: MOTORES PASO A PASO 435 i dispositivo 30.3.1 Motor PAP bipolar en modo Full Step ial constante En el modo Full Stcp el rotor del motor PAP avanza un paso par cada piilso de excitación. s de bipolar mtes de dos 1 + - la hora de Reloj 1 1 1 Terminal 1' 1 1 I ' I ! l l l h I 1 l 1 l I 1 l l 4 1 l l - t dos grupos, 1 L 1 1 - Terminal 1' I I I I I I u 1 1 1 1 t - I I 1 I u 1 I I I I I I I I Terminal 2 N I N 1 1 +-S t Figunr 30-3 Secuencia d~ In señal de excirucion del motor PAP bipolar La tabla 30-1 muestra las secuencia para generar los rrwvimientos eii sentido horario CW (Clnckwise) y antihorasio CCW (Counf~rc.lor;hui~e)un motor bipolar. Los de términos "horario" y "antihorario" se deben rclatjvizar ya que dependen del punto de mira del obseivador y de la posicion del motor, por tanto, solo se deben tomar como una forma de indicar que gira en un sentido o en el coritrario. que realiza la slaridad de la la de dichos motor gire en i pueden ser Tublu 30-1 Sec.iic,ncia de ccopih-ol de un motor PAP hb~ulurpara modo Full Step iconexibn de a figura 30-3, :or gire en un 30.3.2 Motor PAP bipolar en modo HaH Step En el modo cle medio paso (Harf Sfep) el rotor avanza medio paso por cada pulso
  • 501. JMb M I C R O C O h T R U W R PIC !6FW DESARROLLO Ut PROYbCTOS DR%.%I~ disminuye el avance angulw (la nlitad qiie en e! modo de pasa completol. Para conseguir tal cometido, el modo de excitación consiste en hacerlo alternativamenk sobre dos bobinas y sobre ima sida de fllas, según se rnucstra en la tabla 30-2 para airibus seritiiicis de giro. Según la fibwra 70-1 al excitar dos bobina consccutivas del esvalor sitnuitaneamente. el rotor se alinea con la bisectriz de ambos campos magndticos. Cuando desaparece la excitación de una de ellas, extjnguiendose el cminipo magnitico inducido por dicha bobina, el rotnr queda bajo la acción del h i c o Campo cxisteilte, daildu lugar a un desplazai~iientuinitad. En este c control del sent tabla 3 4 para i n 30.4 MOTORES PAP UNIPOLARES Una forma de paliar cl inconveniente que supone la necesidad de dos polaridades de la corriente para generar la secuencia del motor, si este dispone de una toma media cntre las bobinas, es realizar el montaje que se representa en la figum 30-4. Se obtiene uti motor PAP unipolar de cuatro fases (o bobinas), donde la corriente circuIa por las bobinas en un h i c o sentido. 1 En los incitores PAP unipolares, tíidas las bobinas del estator están conectadas I formando cuatro grupos. Estos, a su vez, se conectan dos a dos y se montan sobre dos estalores diferentes, tal como se aprecia en la figura 30-4. Del motor paso a paso saIen I ' dos grupos de tres cables, uno de los cuales es c o m h a dos bobinados. Los scjs tetminales que parten del motor se conectan al circuito de control, el cual, se comporia corno cuatro conmutadores electronicos que al ser activados o desactivados producen la alimentación dz los cuatro grupos de bobinas. Generando una secuencia adecuada de I funcionamicilto de los transistores que trabajan como interruptores, se pueden producir all los de un paso en el número y sentido deseado. Su priiicip inicialmente se al
  • 502. h" ~ n - t . ~ CM~TULO 30: hiO'CORES PASO A PASO 487 O RA-MA conseguir sobre dos 1 sentidos s 1 estator : Dispositivo de control agneticos. I y de potencia magnético !de. dando En este caso la tabla de la secuencia que debe introducirse en las bobinas para el control del sentido de giro es la mostrada en la tabla 30-3 para modo FUI/Step y en la tabla 3-4 para modo HalfStep. FULL STEP Tubla 30-3 Secuencia de control de un molar PAP Un@olarparumudo Fzrll S t q ~ &rkiades ima media obtiene un ila por las coiiechdac sobre dos paso salen .. Los seis i compcitta ~rducenta lecuada dc Tublu 30-4 Secuencia de conrrn/ de toi motor PAP Unipolar para modo Half Step :n prodiicir Su principio de funcionamiento se representa gráficamente en la figura 30-5. Si inicialmente se aplica la corrizntc: a las bobinas L I y L3 cerrando los interruptores S1 y
  • 503. 4$8 MLCRM30NTROLADOR PIC'l hFM. DESARROLLO DE PROYECTOS O RA-m S3, se generarán dos polos NORTE que atraerán al polo SUR del jni;úi M hasta encontrar la posición de equilibrio entre arnbos como puede vcrse en la figura ?O-5(a). Si se abre posteriotmente cl uitemiptor S1 y se cierra S2, por la nueva dislrjbucion de polos magnéticos, M evoluciona hasta la situación reprtsentada en la figura 30-5(b) 30.5 CON E modelo 1 mayor atractivo 1 I I anguiarts. Una fomu el número rle bbbi ~ 1 y a p8rdiheis muy Hmh &ore p m 1 nricles8 de l bc u micropsles mgnl mpktieea con n motora c hmh h i.ssurpii& s ~ t d i ~ a Figura 30-5 Princhipio hhrjsico de un motor. unipolur de cuatrofasw Sigmendo la secuencia representada en In figuras 30-5(c) y 30-5(d) de ta misma forma se obtienen avances del rotor dc 90 grados habiendo consepiida, como cn el motor bipolar de dos fases, hacer que el rotor ai7ancepasos dc 90 grados por la acción de Icis impulsos eléctricos de excitación de cada una & las bobinas. El movirnicnto obtenido ha sido eii sentido coiitrario al de las agujas del reloj. Ahora bien, si las secuencias de excitación se generan en orden inverso, el rotor girará en sentido contrario. Podemos dcducu que el sentido de giro en los motores paso a paso ss reversible en función de la secuencia de excitacibn y, por tanto, se piiede hacer avanzar u retroceder al motor un número determinado de pasos según las necesidades. La función de los intemptores sera ejecutada por los transistores NPN de la figura 3 0 4 que se incluyen dentro del driver L293B estudiado en el capitulo anterior, la conexión de iin motor PAP unipolar y el driver L293B se muestra en la figura 30-14.
  • 504. ORA-MA CAP~TUM MOTQMS PASO A PASO 489 30: ;ta encontrar 1 INTERNA DE UN MOTOR PAP 30.5 CONSTITUCI~N I ). Si se abre jn de polos ! E modelo de motor paso a paso tsnidisdo, salvo pw su valor didhctico, no ofrece l mayor atractivo desde el punto de vista pdctico debido a la amplitud da sus avances angulares. ESTATOR L J ROTOR (Mbvll) Um fama de conseguir metores BAP de gam n mdueido esnsiste m amentw & el nilanero c bobiaee del erihtor, pero ello llevada a un aumento del coste y del volumen b y a gddirla~m y eonddaablea en el rendimiento $el motor; por lo que no a i vi~biblo, Hri~ta&ora pwa eon~eguirla salucidn rds i d h a M r e e m ai 18 rneemi%arcibn loi Be nuclm~de lae bobinrie y el mtsr en foma de hendidura O d i ~ n h e d n d o ~ eMI , mjoropoloa m@tico~, tmtgfi come diente8 y @i~ablaeienQ ~ l W i o n e 8 equilibrio 1 m dc mapdtiee~ m avmeer~mgulms muohe mmoia. Be bita f o m e piiblo conaegulr c m metome de h t de 500 pasos e inelmo m h , En k figura 30-6 se m u e m de f o m ua raaumih eeta dhpodoibn g m un motor BAP do 22,S0, fases de la iiiisma o en el motor acciiin de los D obtenido ha ;ecuencias dc riii. Podemos funciiin de la - al motor un N de la figura o anterior, la
  • 505. 4W iíiCROCONTRQLAI)OR PIC E hFR4. DESARROLLO DE PROYECTOS G M-MA En las fotografias dc las figuras 30-7 y 30-8 piieclen apreciarse un estator y un rotor centrales, mientl de un motor bipolar de 48 pasos desguazado. en el interior cst: 30.7 Desde cl 1 de algunas de las Par dini dinhmica perder pi estator ) velocidaa generadni t i 30-8 Esfator del motor paro a paso Fip~ra moror po 30.6 PIISPOSICIÓN DE LAS BOBINAS ] bri La existencia de varios bobiirndos en el cstator de los motores paso a paso da lugar a varias f m a s de agrupar dichos bobinados para quc sean alimentados adecuadamente. 1- +vcc +vm Par de m dgimen d (a) Muraa Blpolar (b) Mator uniplar 6 Mlos (c) M o r Umpdar 5 hlhs Id) M&nr Unlpdar 8 hilas mayor qiri posicibn e Figura 30-9 D i . ~ p u ~ ~ i d~ k bobinar de motorm paso a pn.70 NSn c ~ m Númemd En el caso de IOS motore5 ;laso a paso unipolares se pueden encontrar con cinm pam real iz seis u ocho ~ m i a a l e s que aderntis de los bobinados Iiay otros terminales qui ya compondcn con las tornas intermedias de las bobinas, los cuales se conecta1 directamente a positivo de la fuente dc alimentación para su correcto funcionamiento. La figuras 30-9@), 30-9(c) y 30-9(d) describen como están conectados internamente lo donde NP teminalec de estos tipvs de motores. krecuenci Úmerci d Hay qiie tener en c:ieiita q d e los [notores PAP uriipolares de seis u ocho hilos, lecuadarr pueden hacerse funcionar como rnotom paso rr p s o bipolares si no se utili7m las tomas
  • 506. ! iLX RA-MA n R4-h4A ~ A P h l 30: AiOTORES PASO A PASO 49 1 0 cir y un rotor l! centrales, mientras que las de cinco hilas no podrán usarse jamás mmo bipolares porque en el interior están conectados los dos cables centrales. 30.7 PARÁMETRO DE LOS MOTORES PAP Desde el punto de vista mecánico y eléctrico es conveniente conocer el significado características y parametros que definen un motor PAP: dc algunas de las ~iiincipales Par dinámico de trabajo (Workifig Torque). Depende de sus caracteristicas dinámicas y es el momento máximo que el motor es capaz de desarrollar sin perder paso, es decir, sin dejar de responder a algún impulso de excitacibn del estator y dependiendo de la carga. Hay que tener en cuenta que cuando la velocidad de giro del motor aumenta, se produce un aumenta de la f.c.e.m.en 61 generada y, por tanto, una disminucion de la corriente absorbida por los bobinados del estator. Como consecuencia de todo eHo, disminuye el par motor. Ángulo de paso (Step Atrgle J . Se define como el avance angular producido en e1 motor por cada impulso de excitación. Se mide en grados, siendo el número de pasos estándar más empleados los mostrados en La tabla 30-5. ' , Tablri 30-5 Atigu10.v íIe paso mas comirnes rn los motorrs P.4 P Par de mantenimiento(Holding Toque.).Es el par requerido para desviar, en de regin~cn excitrición, un paso el rotor cuando la posición anterior es estable. Es mayor que el par dinámico y actúa como fimo para mantener el roior en una posición esbble dada. Número de pasos por vuelta. Es I;i cantidad de pasos que ha de efectuar el rotor pam realizar una revolución completa. Evidentemente su ecuación es: a donde NP es el número de pasos y a e l arigulo de paso. Frecuencia de paso máximo (,Wavimtarn pull-in/out). Se define como el máximo número de pasos por segundo que puede ejecutar el motor funcionando adecuadamente.
  • 507. i 492 MICROCONTROLADOR PIC 16FS4. DESARROLLO DE PROYECTOS B m-MA O RA-MA 30.8 CONTROL DE LOS MOTORES PASO A PASO de resistencit #.. 1 hilos que m i Para realizar el control de los motores paso a paso es necesario, como hemos visto, de ohrmos. E N , generar una secuencia determinada de impulsos. Además, estos impulsos deben ser dos a la parej I:I 1,. capaces de enrsegar la corriente necesaria para que las bobinas del motor se exciten. La figura 30- 10 muestra el diagrama de bloques general de un sistema de conml para un motor PAP, de Mee6nlw Mando Control Potencla Figura 30-10 Diagrama de bloques de un sistema de conlrol para motorpaso apaso Vamos a centrarnos en el control de los motores paso a paso utilizando el microcontrolador PIC 16F84A,Como el microcontralador no es capaz de generar la corriente suficiente para excitar las bobinas del motor PAP utilizaremos los drivers A-B (1-1') O I contenidos en el integrado L293B (figuras30- 13 y 30-14) sentido antih I de la bobina EJEMPLO: E c h i t o de conhl que gobiema un motor PAF de 7,5O por pam, l pmiucc ei s m c a de I 1 prsoi motor s una frecuencia de 200 ~ z ¿suintos grados , gira? si se desprecia la inercia y los ronmientos mechicos, ¿cuánto tiempo tarda en 1 I realizar dicho movimiento?. 1 Soluclbn: Como el motor gira 7 , 5 O por pulso, d t& de aplicar los 11 pulsos, el eje del motor habrá girado: 7,5 x 11 82,5". I31 priodo & la señal es de 5 ms,por 1 I tanto, el motor tardad SS ms en realizar este movimiento. I 30.9 IDENTIFICACI~NDE UN MOTOR PAP ! I Para Iti rcalizaeibn de los ejercicios que vamos ri plantear, se van a utilizar dos motores paso a paso, uno bipolar y otra unipolwr, recuperiidos de miquinas de desguace, ! como discos duros, impresoms o similar. 1 La primera dificultad eei la ideatificacidn dc las bobinas internas con tras teminales 1I del motor, Es eenvmimte tener en cuenta cl niliiiem de hilos que diripone el motor PAP, i i para intentar identificar su estructura i m a con alguno de las modetm desrritoi en I i 1 Se mide cwlquiem dis figura 30-9, Oenertilrnente se deduce por el color de los cribler pero, en cmo de d h , es ¡ I bobinas y los (: central se niide 1 medida de 150 convaniante mdir le resietencia de la bobina con un ohmem, Asi, por ejemplo, plrm un 1 mitad correspo nicitrir hipolar qiie tiene cuatro hilm debe utilizame uii polimetro en posirihn de medida I 2' y 3'- 4'. l
  • 508. O k4-M.4 CAPITULO 30. MOTORES PASO A PASO a93 II de resistencias para detectar las dos bobi independientes. Para ello, hay que buscar dos hilos que midan iin valor cualquiera que no sea infinito, generalmente mas pocas decenas 10hemos visto, de ohmos. Estos dos hilos pertenecen a los terminales de una de las bobinas y los otras isos deben ser dos a la pareja opuesta. se exciten. La :oneol para un nas *pasoa paso Figirm 30-1 1 Motor puso n poso de 4 hi1o.c utilizando el En este caso no es importante coriocer el devanado que corresponde con la bobuia de generar la A-B (1 -1 ') o a la C-D (2-29, ni identificar siis terminales, porque una vez conectados los 10s los driver9 cables al circuito de control si el motor gira en sentido horario y queremos que gire en sentido antihorario, solo tendremos que cambiar las conexiones de la bobina A-B por los de la bobina C-D. :7 , 5 O por paso, ,ls &b @O8 Para los motorcs de 6 hilos si queremos identificarlos con los del motor dc la impo tarda en figura 3 0-4, procedcrernos de la siguiente manera: U 10s11 @OB, a de 5 m, por n a utilizar dos as de despace, F'igrra 30-12 Fofo de ula tiItorrivpaso uyuso de 6 hilos n los terminales : el motor PAB, Se mide con el ohmetro para buscar los tres hilos que entre si rnidan un valor dcsct.itos cn la cualquiera distinto de infinito. Estos tres hilos pertenecerán a uno de los juegos de bobinas y los otros tres pcrtetiecerán al otro juego de bobinas. Pim averiguar el terminal central se mide la resistencia entre dos cables, ubtsriiendo para nuestro caso concreto la medida de 150 S1, midiendo los otros dos resulta 300 SZ, por lo tanto, el que tiene el valor mitad corresponde con la toma central de la bobina, numerados en la tigura 304 con 1'-
  • 509. 0 M-M CAP~TUKJ MOTORESPASO A PASO 493 30: 1 de resistencias para detectar las dos bobinas independientes. Para ello, hay que buscar dos hilos que midan un valor cualquiera que no sea infinito, generalmenteunas p a s decenas irnos visto, de ohmios. Estos dos hitos pertenecen a los terminales de una de las bobinas y los otros deben ser dos a la pareja opuesta. exciten.La m1 para 1 so apaso Figura 30-1 1 ~Uotorpaso paso de 4 hilos a tilimdo el generar la En este caso no es importante conocer el devanado que corresponde con la bobina los dnven A-B (1-1 ') o a F C-D (2-27, ni identificar sus tminnles, porque una vez conectados 10s a cables al circuito de control si el motor gira en sentida horario y queremos que gire en sentido antihorario, s61o tendremos quc cambiar las conexiones de la bobina A-B por los 5 " r pitso, de la bobina C-D. ntos prados po tarda cn Para los motores de 6 hilos si queremos identificarlos con los del motor de la f i p 30-4, procederemos de la simiente manera: IS 11 aulsos, or utilizar dos Ic desguace, Figtra 30-12 Fato de zrn motor paso a p a ~ ode t hilos í s tminalcs motor PAP, Se mide con el olimetm para buscar los tres hilos que cntrc si midan un valor ssi-itor; en IR cualquiera distinto de infinita. Estos tres hilos pertenecerán a uno de los juegos de bobinas y los otros tres pertenecerán al otro juego de bobinas. Para averiguar el terminal central se mide la resistencia entre dos cables, obteniendo para nuestro caso concreto la de dudn, CR medida de t 50 R, midiendo los o- dos resulta 300 Q, por lo tanto, el que tiene el valor plo, pnni iin mitad corresponde con la toma central de !a bobina, numerados en la figura 3 0 4 con 1'- 1 ric ntcdictn 2- y 3'- 4'.
  • 510. 494 MlCROCOiriTaDLAüOR PIC16F84.DESARROLLO DE PRO Y ECTOS O R.-MI Para identificar cual de los hilos corresponde a las bobinas 1, 2, 3 o 4, procedemos de la siguiente forma, tendremos que alimentar el motor, el valor de la tensión de alimentación normalmente suele ir indicado por una etiqueta o serigrafiaclo en la carcasa. activar las e En caso contmrio, deberemos de tener cn cuenta que la mayoria de los motores paso a las bobi paso están consb~iidospara trabajar a 4, 5 , 6 , 12 y 24 voltios. Probamos con 5 V, por precaución, conectando esta alimentación a la patilla central de Ias dos bobinas. ejeniplo se u Seguidamente se toma uno de los dos hilos, se numera con cl número 1 y se conecta a masa y el otro hilo del mismo juego de bobinas se nurnmrá 2011 el número 2 y se deja sin Las ~ i conectar. A continuación tomamos uio de las terminales del otro jucgo de bobinas y se dichos pines conecta a masa, si el motor gira un paso en sentido horario se numera el terminal con el cerrados, res l número 3 y el otro terminal con el 4. Si por el contrario lo hace en sentido contrario a las del motor sej agujas del reloj se numera con 4 y el último tmnina con el número 3. i 1 Una vez identificados 10s terminales del motor bipoiar y del unipolar. cn los siguientes epigrafes veremos los circuitos que vamos a montar para cada uno de ellos. El moi ! bipdar. En e I 30.10 CONEXIÓN MOTOR PAP BIPOLAR Y PICI 6F84 alimentación 1 terminales 3 El montaje que vamos a realizar para el motor bipolar se muestsa cn la figura 30- centrales de 1 ! 13, en el que se ha realizado la conexión del motor PAP a través de los drivers de1 en este ejern~ Figura 30-13 Cottcxihn del motor P,4P bipolur u PICl6F84.A y driver L2 93 B
  • 511. 4, procedemos Las ljncas RBO, RR1, M 2 y RB3 serán las encargadas de genemr la secuencia de la tension de rictivaci@~.ii motor paso a paso, mientras que KB4 y RB5 se ponen siempre a "1" para del o en la carcasa. activar las entradas de habilitación de los drivers. Las salidas de los drivers se conectan a motores paso a las bobinas del motor para conseguir la corriente suficiente que permita su s con 5 V, por funcionamiento. La tensidn aplicada al pin Vs es la de alimentación del motor, eii este ; dos bobinas. ejemplo se utiliza un motor de 12 V. y se conecta a i2 y sc deja sin Las lineas RA5:RAOse han concctado a unos interruptores que pueden entregar a le bobinas y se dichos pines un nivel alto "1" o un nivel bajo "O",dependiendo de que estén abiertos o tenninal con e1 cerrados, respectivamente. Esto perrnitira controlar las condiciones de funcionamiento i contrario a las del motor según el estado dc cstos intcrruptorcs. 30.11 CONEXIÓNMOTOR PAP UNIPOLAR Y PIC16F84 diipolar, en los lo de ellos. El montaje se muesm en la figura 30-14 y es muy similar al del motor paco a paso bipolar. En este caso se ha conectado la toma intermedia de los bobinados a la tension de alimtrntación, e1 terminal 1 y 2 a las salidas de un par de drivers del L293B y los terminales 3 y 4 a las salidas del otro par de drivers. La tension aplicada a la tomas en la figura 30- centrales de los devanados del motor debe ser igual a su tensión nominal dc alimentación. los dnvers del en este ejemplo se utiliza un motor de 12 V. MOTOR PAP UNIPOLAR Figura 30-14 Conexih del motor PA P urlipolur a PICI 6F84A y driver L293B
  • 512. 496 MICROCONi'ROLADOR PIC lbFB4.DESARROLLO DE PROYECTOS 30.72 CONTROL DE MOTOR PAP EN MODO FULL STEP Utilizan& cualquiera de los montajes de las figuras 30-13 6 30-14, vamos a analizar el programa MotorPAP_Ol .asm, que es un programa que hace g r r el motor ia siempre que este cerrado el interruptor conectado a la linea R A O y dependiendo del m estado & la linea RA4 girará en un sentido o en el contrario. El programa para los dos hido tipos de motores es el mismo y su organigrama es el que se muestra en la figura 30-1 5 . w beE w ; M Pdiscipltf L.. - w. '.' - gBOO micmcontrolador. ctñ -1:- G &. ,. - .* .. :#M - .&- - m- a- * . * :.-::-* ,: , , . -. : ...--:.. . al- . -- Figtra 30-15 Organigrama del programa MotorPriP-01.asm
  • 513. Q RAMA CAPITULO 30: MOTORES PASO A PASO 497 ,STEP #DEFiNEEni&&khci PORTA,O ; htemptor de p t ben marcha. us #DEFiNü ~ s n d d o PORTA,4 ; Inkmpbr & sentido de giro. -14, vamos a ;~A~&I~**W.**~~******~*****~L*WWW~~~~~**++****O*+***~****-** $rar el motor mdiendo del ORG o- - - los dos i para Inicio . W STAWS&W m 30-15. bef l%m&Mmb ;Ema hms se crmfipm cona0 entrada. bef. M- FWITB, ;Las l b &l hiena B configurada8 como salidas. bcf SAWSJtM - - .:, m. , .. . - - .- ;--en marcka? ;s. -, drf: - 'PURTE ; N , p r el motor, poniendo rt cero la líaea o aa -'..sw:.,;:Fm .& ; #e Wlitzzidn &::; .-a- . . .:,- - " . . . . .. - . - ; Cgqmcba el sertiido de giro deseado. , - - : d --. ;Gimen unmtido. ,* :. -*:/ - ,. - - --: i w%mi& @ ~ 0 0 ~ 0 . . . , .. :-.,. .- ri , parado . .
  • 514. 498 MICROC'I )NTROLADOR PiC 16FL14. DESARKOL[.O DE PRI )YFCTOS c RA-MA movwf PORTB cail Retardo-lOms ;Temporkción antes del siguiente paso. NCLUDE m A R D O S . M C > Este control también se podía haber realizado mediante tablas de datos, de forma similar a los juegos de luces plaiiteados y res~~cltos el capitulo 12. Se anima al lector a eri inodificar &te y los próximos ejercicios resolviéndolos mediante el procedimiento descrito en el ejercicio Retardo-08 .asrn. 30.13 REALIZACI~N E SECUENCIAS DE MOVIMIENTOS D Eri muchos proyectos es necesario realizar una secucncia dc moviinientos con los motores PAP. A continiiacihn se muestra un ejemplo que tambjQ nos p u d e servir para conlpmbar correcto funcionamiento. Si no se conoce el nutnero de pasos que tiene nuestro motor ahora puede ser un buen momento para saberlo. Así, si se hace la kinpc.irización Iriayor llamando por ejemplo a la subrutina Retardo-5Oms en lugar de Retardo-IOms, denm de la silbnitina "ActivaSaljda", podenios contar fkilmente cuántos pasos necesita para dar una vuelta completa. El motor unipolar que hemos utilizado nosotros necesita 48, por lo que cada impulso de excitaciiin recorre 7,5", que corresponde a urio de los valores comerciales recogidos en la Tabla 30-5. El progranla MotorPAP-02.asm Iiacc que el motor ejecute wia iuelta completa en el ángulo de paso del motor o, lo que es igual, el número de pasos a recorrer para que el eje del motor ejccute una vuelta completa. 8Ob : Suhtina "Gire GiroIiqukh ; El motor PAP realiza una vuelta en sentido y dos en saitido c o n m o ufizaodo el modo Full Step. movlv call KtoYlu call CONFIG -CP-OF'F t -WDTTOFF & -PWRTE_ON & -XT-OSC mmlv LIST P=16FS4A call N C W E 816F84A.INC> movh cal1 CBLOCK OxOC m Cich ; Se denementarli cada ciclo de 4 pasos. Vue1tasHdo ; slhltina"Gk VwhasAnatihorario ENüC Girokmha movlv NumeroCjclos EQU -12 ;Un ciclo & 4 p o s son 30 gradas p m un PAP I
  • 515. O RA-M: Q RA-MA CAPI I'YI.CI 10: MOTORES PA S O A PASO 499 ; de 75' en modo Half-Slcp. Por tanto para ;m p l c t a r una vuelta de 3W.se requieren 12 ; ciclas de 4 paso, cada uno. ;ZONADEC~DIGOS***********+~~~*****Q~~~~*****QQ"*********X*#************V** ORG O inicio os, de forma bsf STATüS,WO na al lector a clrf WRTB ; Las lineas del Puerto B configuradas coniu salidas. bcf STATUS3PO -ocedimiento Principal movlw 0x02 ; Dos vueltas en sentido horario. movwf VueltasHorarío OtraVueltakr&a mvlw Numdiclos m 0 4 Ciclos :ritos con los OtmCicloMha cal1 GiroDerecha .e servir para , kfsz Ciclos,F goto ~ ~ 1 0 ~ decfsz VueltasIIorario,F puede ser un goto OmVueltaDaeCha lamando por movlw OxOl la subrutina mwwf Vue1tasAntihomrio ; UM vuelta en sentido antihorririo. ir una vuelta OtraVueltalzqurerda ; AL wt una soh vueltano haria falta el contador. lo quc cada movlw NumeroCiElos ; Pero se deja para que el lectot pueda k e r iq a comerciales movwf Cco ils ; pniebas que crea oportunas canibiando l carga a OtmCicloiqtiierda ; (VueltaAntiliorario}. cal1 Girohquierda decfsz CiclosF completa ~ri goto OtroCicloIzquierda :ne en cuenta d& VueltasAnti~o,F !r para que el goto CbVueMzquierda goto Principal GiroIzqirierda movlw ; Wmer paso. catI movlw ; Segundo paso. ira11 movh ; Tercer paso. cal1 mvlw ; Cuarto y iiltimo pmS.0 cd retum ; Primer paso pam el giro hacia la daecha. i PAP
  • 516. l 5W MCROCOhTROLADOR PIC16FM. DESARROLLO DE PROYECTOS F RA-MA i Aaivasalids m w WRT3 v f caü ;Tempimibn antes del siguien& paso. rmm 30.14 CONTROL DE MOTOR PAP EN MODO HALF STEP Una de las posibilidades que tienen 10s motores paso a paso es la de utilizarlos en cl modo medio paso u HurStep. En esre caso hay que utilizar una secuencia de 8 estados, como la que se muesba en las Tablas 30-7 y 30-4, corno puede coinprobarse en el programa MotorPm3.asm, el proceso de progmacion es el rnisino. Como ejemplo de aplicacibn se va a repetir el progma de la sección anterior pero en modo Hcilf Step. I ;El motor PAP r d i m una w l í a en m&do y dos en sentrdo conbajo u t i h d o medios ;~(nmdoWalfStep)paraobtcneraias~isiBa ;ZQ~ADEDA~****h+***I*******+***.L***V********~*****+****UW************************ EQU .i2 ;Uncichde8~son30griidwparamPAP ; dt 73" m m& w - S t e p . Par tanto para I ; co@etar una vuelta de 3W,se quieri:n 12 ; ciclog de 8 pagos c& uno. . ~ N A D ~ C ~ D ~ C ~ ~ S ~ * L ~ * * * * ~ + ~ Q * * * * ~ * * ~ ~ L Y ~ * I * * U U ~ * * * * ~ V * + * + ~ * ORG O kucio - bd STATüS,RW
  • 517. O RA-MA e M-MA C ~ P ~ T U L O MOTORES PASO A PASO 50 1 30: STEP tilizarlos en e 8 estados, b m e en el no ejemplo 'alfStep. ;Frimsrpo. ;Se& paso. ; Tercu paso, ; Gurirto p o . iQuia~g~eo* ; soxw p o . ; -PO. ;mwyrilthnopa
  • 518. r 502 MICROCON't'ROLADCiR P1ClhF84 DESARROLLO DC PROYFLTOS 3 KA-m l 2,RA-MA movlw b 0 1 1 1000' '0 ; Sepimdo paso. CBLa cal ActivaSalida VeloeY movlw b'00i 11010' ;Tercer paso. EMX cal1 ActivaSalida movlw U001 100 10' ; Ciiarto paso. #DEFINE Entra¿ cal1 ActimSaIida mor~lw WíMI 10110' topas^. ; ZONA DE C ~ call .4ctivaSalida movlw b'00110 100' ;Sexto paso. ORG call ActivaSaf ida movlw b'0011010lt ; Skptimo paso. cal1 - Activasalida movlw rnovlw b'00 1 1000 1' ; &cavo y ultimo p w . movwf cail ActivaSa1ida movf andlw mowf PORTB cal! Retardo-jOms :Temporizaciiin antes del siguiente p o s . m M lNCLUDE <RETARWS.iNO L 30.15 CONTROL DE VELOCIDAD La velociilad del motor queda determinad21 por la frecuencia a la qiie se ejecutan PamMotvr los pasos de la secuciicia y la direccihn de giro depende del sentido en qiiz se aplique dicha secueiicia. Esto proporciona un excelente coii~alde velocidad y posiciijn sin rcalimentacion. ; Sdnititte "Seiwx: E 1 programa MotrirPAP-04.asni describe un procedimiento para controlar la :hlkrando los valc velocidad. E1 hardware utilizado será el de las figuras 30-13 6 30-14. La lectura de las SeIeccionaVeIocidE cuatro lineas bajas del Puerto A determina el tiempo de retardo qiie hay entre la addwf aplicacion de una nueva combinacion a los devanados del motor. Cuanto mayor sea este rctardo m& dcspacio girara el niotor. : Subrutina "Girola :Programa de c o n n l de velocidadde un motor PAP. La velocidad del motor esta4 g&m& ; por el valor de las cuatro líneas bajas del Puerto A. El sentido de giro de motor se decide ;en funcibn del valor de la Iinea RA4. movlw movlw CONFIG -CP-OFF & -_wDT-OFF & -PWRTE-ON & -XTXTOSC movlu- ~ S T P=IóFS.IA [NCLUDE -+16F84A,i?VO retum
  • 519. #DEFmE E n W a i t i d o PORTA4 ; Interruptor de sentido de giro. I ! ORG Inicio : 1 b~f STATUS inoviw b*WM11111' ; El Rierto A se conñgura m w entrada. ! 1 movwf PORTA 4 CM WRT5 ; L8S l i n w del mierto B m 6 g u r a d a s corrm salidas. bcf STATüS,RPO 1 bipai movf PORTA, W ; Lee el puerto de entrada andiw b I O I 1 I I' YO O ; Se queda con los cuatro biis bajm. btfx STATUS.7. P&otur ; Si es cero se mantiene pwado. cal SelmcionaVelocidad ; Pasa a seleccimar ei factm el que se va movwf VeIocidxd ;a multiplicar el ixtafiki pakhn. ms c EntradaSmtida ; Comprueba el sentido de giro &seado. &Oto AA*& di Girohecha gafo A-Izquierda call goto ejecutan ParaMotor c irf PORTB ; Para ci rnutor, piniendo a cero la linea de :apliquc ' Fin goto Pnncipai ;habiliwción. ición sin ; Alterando los valores de esta tabla se pueden conseguir diferentes retardos. trolar la ra de las Velocidad Seieix~ona entre la addwf PCL,F sea este DT 0,675', dr6S', d'G0', i1'55',d'5íY, 64T, b40' d17ú', DT 837,d'30t.d'25'. dt20',d'15', dlOf,d'5' GiroIzquierda m o v : ~ HMJIOIOI' ; primer F. cdl ActivaSaiida el ;Lo envía a la salida donde esth cone~hdo motor P,4P. movhv b'00110110' ; Sogundo paso. cd1 AchvaSalida movhv blOO1llO1O' ; T e r w paso. call Ac~vrtSalida niovlw b l W1 1 1001' ;Cuarto v ÚItimo vaso
  • 520. 7 504 MICROCONTROLADOR PIC 16F84.DESARROLIB DE PROYECTOS ;SulaP1IisiQhDasha"- d 1 Actimwdri , -kv- ~001~11014 ActiyaSW ,- , . - . mlw buXf1lOIIOt~: - 4 Aotiddidn . Paca la servomotort~, c (figura 31-1). PO odl ~ ~ l m a dfz ms Cmadnr,F de rtiodelismu a tirnbn dc uii barc 3 . SERVi Un servomc ruedas: deritadas qu una pequeña tiirjet; figura 31-2 inuesk
  • 521. Para la renlizacibn de rnicrorobotq experimentales es frecuente utilizar semornotores, que son pequedos dispositivos utili7ados tradicionalmente en radicxonwol (figura 3 1 -1 ). Pnpulamcnte reciben d nonlbre de "servos"y suelen usarse para el control de modelismo a distancia, actuando cobre el acelerador de un motor de cornbuaihn, en el timón dc un barco o de un avión, en el control de direccián de un coche, etc. Su pequeño tamaño, bajo consumo, adcmás de una buena robustez y notable precisión, los hacen ideales para !a constnicción de los microrobots. 31. SERVOMOXORES PARA MICRORO'B~TICA l Un m o m o t o r esih crinsiirnido por un pequeno motor de corriente continua, unas niedac dentadas que trabajan corno reductoras, 10 que le da una potencia comiderablc, y una pcquefia tarjcta de circuito impreso can la electrónica necesaria para su control. La fipra 31-2 muestra el despiece dc un sewo
  • 522. 5íkÍ MICIROMNTROLiZWR PIC16F84.DESARROLLO DE PROYECTOS QR ~ M A en Torrejon dr donde exponc supuesto, taml I n t mct, siemp Ln tcnsir voltios, El con! una scfial cua Moh~lnrion). L p n e a el eie dcl eje del motor ( 1 una retroalimen m o esiándar constante y 11 proporcional a la carga. Otro servo compatible w el anterior y muy utilizado es el n -a auracia 1 Futaba S3083, www.fiitaba-rc-com. f i ~ t 3 14.Cada a el ancho dcf pu Si el lector tiene dificultades para comprar estos s m o s en su proveedor habitual de mecanicamctite r! 1: componentes eIectr6nicos puede adquirirlos en tiendas de modelismo donde vendan smvomotor utili;~ IT II~ matcnal para radiocontrol de aviones, coches, barcos, etc. TambiCn pucdc entnr en es&nentre 0.3 y ,!f I ww.itl.rnodejirnport.com,que es la pagina Web de Mdel Import S.A, empresa con sede rns indicaría la PG
  • 523. u M-MA (:AP~TLJLO1: SERVOMOTORES DE RADIOCONTROL 507 3 en Tomejon de Ardoz (Madrid), distribuidora oficial para España de los servos Futaba, donde expone una completa relacion de tiendas ordenadas por comunidades. Y, por supuesto, también puede adquirirlos en alguna de las múltiples tiendas que hay en Internet, siempre comprobando que trabaja con las necesarias garantías. 31.2 FUNCIONAMIENTO DEL SERVOMOTOR La tensión de alimentacián de los servos suele estar comprendida entre los 4 y 8 voltios. El control de un servo S limih a indicar en qué posición se debe situar, mediante 7 una seiial cuadrada TTL mgdulada en anchura de impulsos PWM (Pube Width Mudulationj. La duracion del nivcl alto dc la señal indica la posición donde queremos poner el ejc del motor. El potenciómetro que el servomotor tiene unido solidariamente al eje del motor (ver figura 31-3) indica al cixuito electrónico de control interno mediante una retroalimentación,si éste ha llegado a la posicion deseada. i1 servomotor Extremo tzqtierda 3 rns 3 - t 20 ms - b - - 900 r 1,2 rns - Posición Central - A 20 ms - 1 BOD - 2,lme Extremo Dereda servo estándar Figura 31-4 Tren de imp wlso.s pava control de un servo de radiocontrol Futubu S3003 d constante y ~tilizadoes el La dwaciiin de los impulsos indica el ángulo de giro del motor, como muestra la figura 3 1-4. Cada servomotor tiene sus márgenes de operación, que se corresponden con el ancho del pulso máximo y mínimo que el servo cntiendc y que, en principio, ior habitual de mecánicamente no puede sobrepasar. Estos valores varían dependiendo del modelo de donde vendan servomotor utilizado. Para el servomotor Futaba S3003 los valores de la señal a nivel alto iede entrar en están entre 0,3 y 2,1 ms, que dejarían al motor en ambos extremos de giro. El valor 1,2 Jresa con sede ms indicaría la posición central, mientras que otros valores de anchura del pulso lo dejan
  • 524. 508 MICROCONTROLADOR PIClbF84. DESARROLLO DE PROYFCTOS A RA-MA en posiciones intermedias que son proporcionales a la anchura de los iinpulsos. Si se sobrepasan tos limites de movimiento del servo, éste coinmzará vibrar o a einitir un zumbido, denunciando un cambio en la anchura del pulso. El periodo entre pulso y pulso no es critico. Sc suelen emplear valores cntrc: 10 ms y 30 ms, aunque lo habitual es utilizar 20 ms, que implica una frecuencia dc 50 Hz. Si el intervalo entre pulso y pulso es inferior al mínimo puede interferir con la iemporizaciiin interna del servo causando un zumbido a vibración del brazo de salida. Si es mayor que el máximo, entonces el servo donnido entre pulsos provocando que se mueva a pequefíos intervalos. Es importante destacar qiie para que un scm'o se mdntenga en la misma posicibn, es necesario enviarle continuamente un pulso de una anchura constante. De este modo si existe alguna fuerza que le obligue a abandonar esta posiciiin intentari resistirse. Si se deja de enviar pulsos, o el ititervalo entre pulsos es mayor del máximo pcmitido, entonces el sernomotor perderá fuerza y dejará de intentar mantener su posiciiin, de triodo que cualquier fuerza externa podría desplazarlo. 31.3 TERMINALES Un servoniotor es básicamente un motor elkctrico que sblo sc piiede rnover cn un arigulo de aproximadamente 180 grados (tio dan wcltas complet cbmo los motores de comente continua). Los sen~omotores disponen de tres terminales: Positivodealimentaci6nunidoalcabledr:coIorrojo. Masa o negativo, que casi siempre es rin cablc de color negro. + Señal por dotide se aplica la entmda de impulsos y cuyo cablc surle ser dc color blanco, amarillo o naranja. La Tabla 31-1 inuestra una relación Jc fabricantes de servoniotorcs, con la descripción de cada uno de los tcrmiriales destacándose en n e p l l a los fabricantes Futaba y Hitec que son los más importantes. Los ten alimentación í microcontrolnd las dos fuentes se construye ur utilizar dos fui energía a los presupuesto piu El siguie ejemplo, el eje i Tabla 3 1-1 Ident$caciÓn de los terminales tic I0.f servos, st'gzin rJiversosf~h~.icantes as
  • 525. npulsos. Si se En la figura 31-5 piedcn identificarse los concctrires de algunos de estos o a einitir u11 fabricantes. es cntre 10 m s le 50 Hz. Si el tcmpori7aion i. Si es rnayor nvocando que isnia posición, c este modo si esistirse. Si se mo permitido. icibn, dc modo Red (*) 11ack ar Wkila *Brown f.) Qrrngr (Slgnil) ind I-) Ihc ari e niovcr en un i'rrwso s l Futdba. , Ios motores de de Figwru 31-5 Conecforcsy cubkes us'udo,spor aPrgunosfubricun~es semornolores :le scr de color 31.4 CONEXI~NDE U N SERVOMOTOR A UN PlC16F84 En la figura 3 1-6 se muestra iin ejemplo de conexión de un scrvomotor Futaba otores, con la S3003 a uii microcontro1ador PIC 1 6FS4A. ricantes Futaha Los tcrminatcs de alimrritacibii del senwmotor se conectan a u n a fuente de alimeritaciári a 5V que puede ser Ia misma que se utilice para alimentar al rnicrocontrolador. En caso de utilizar dos fuentes distintas debemos conectar las masas dc las dos fueiites de alüiientación, pasa que tengan la misma tsnsion de referencia. Cuando se construye un mecanismo o un rnicrorobot con servamotores, es siempre recomendable utilizar dos fueritcs dc cnergía distirios, una para la "electrónica" y la otra para dar energia a los servomotores. pero desgraciadamente no siempre hay espacio ni presupuesto para ello. El siguiente programa aq-iidarj a comprender la técnica de pmgramaciiin. En este m ejemplo, el eje del servomotor girar6 dc O a 1 80" y de 180 a 0"indefinidamente. fabricantes
  • 526. Inicio Pl'wipl Figz~m 1-6 Cone~.ibn PfCI 6F84.4 parn contrtr/ de1 servomotor 3 del . I ~ * * i r * * * * * r ( i + * t * * * * ñ * * * ~ * ~ * i I * * * * ~ t S e r Y a .S+ + I * * * * * + 1 5 * 8 * * * 0 * * 0 * * * * * * I + * * * * C * * # L O] - 9 - ; P r o p de conbol riel posicionamiento de m servornotor Futaba S3003.Controla el @do ; mediantc una d a 1 cuadmda FWM de 20 111sde perimh quz se aplica a su Iinea de cnnml. ; El gngulo es gobernado por el tiempo en alto de la seAal cuadrada desde O" (para 0,3 ms ;de tiempo en alto). hasta 180" (para un tiempo en alto de 2,l m). ; En este progmma el servomotor s posiciona en 09 90". 1 80",vuelve a W y repite el cicio. e ; Permanece en cadaposiciiin &te 1 s. E1 funcionamientose explica en la siguiente tabla, ; donde se ha tomado como tiempa p t d n 100 ps (O,]ms) conseguidiis medrante interrupciones ; Subnrtina 'Ti ;por desb0rdamit:nto del Timer O. ;Mantiene la a Titnipu Ah l Timipo 3ajo Anguio ; a lWpx(2C FactorAlto O,1.FactorAllo O,](200-FxiorAlto) (Grdm) -- +- .m - M- *- -- . m-------+--------. ----- CBI 3 O,! ms 19.7 rns o" Gw 9 12 1 ; , m~ 18.8m~ qO0 21 2,l ms 17,9ms 180" Tim 12 1J ms 18,8 ms 9P ENI L ;ZONADEDAMS * * * * * V * * C * * * * * * * * * * e * * * * * * C I * * * b * V -CONFtG -CP-OF'F & -WDT-OFF Br -FWRTi-ON & -XT-OSC LIST P16F84A LBLOCK OxOC Contador FaccwAlm ; Factor por el que se vaa multipiicar e1 tiempo ENDC ; patrbn de 100 p.s para obtener el tiempo en atto.
  • 527. RA-MA cR~-L~A CAPITULO 3 1: SFR VOMOTORES DE RADIOCONTROL 5 1 I TMRO-Carga EQU 49' '0 ; Vator obtenido experirnmtaimentecon la ventana ; Stopwatcb para un tiempo de 100 s. #DEFINE Saiidn PORTB,O ; Lfnea del W Odonde se conecta el servornotar. B ORG O gota Inicio ORG .4 gob TUnerO_Inknupcion Inicio bsf STATUS,RW bcf Salida ; Esta línea se cmfigwaw m salida. movlw blOOOO1OOO' ; TMRO sin prescder. movwf OPTION-REG bcf STATLrS,RW movIw bt1O10000(r movwf NCON ; Autoriza intemipibn TOI y la general (GiE). clrf Contador Principal movf Contador,W andlw b'OOOOOO1li caü SeleccionaFxtorAlto monvf FactorAlto cai t Retardo1 s incf Coutador,F gob Pciticipd SeleccionaFactmAlto M f w =S* DT d'l2*, 1 '. d112' dT3', d'2 ; Tabla para el s e ~ l Futaba S3003 ; Msnrime ts salida en alto un tiempo igual alODps x (FlictorAlto) y en bajo un tiempo igual Anguio ;a 1@s x (2WFactorAlbo). El @o& de la stAal cuadrada lo rnantrene en 20 ms. (Grados) --e - - @' 90" 180" ; Contador auxiliat. 90" Tirad-htmpcion 'I mowif Guarda-W ; Guarda las valores de tenian W y STATüS en el h I swapf STATUS,W ;P - * . PP @ [' m o d Ouarda-STATUS bcf STATUS,RPO rnovlw TMRO-Cqa movwf decfsz TMRO TimerOerOContadorA,F ; Garantizaque trabaja en el Banco O. ; Decremerita ei cwtadar. 'i', l Il' , lempo goto Fin_TierOrOhtempcion 1 en alto. btfsc SW a ; Testea el mtaior esiado de la salida
  • 528. 5 12 MICROC'OKTROLADORPIC 16F84. UE5ARRVLLO DE PROYEC i 3 i S O~ 4 - M A g m EstabaAlto EstabaBajo bsf Saiida ;Estaba bajo y lo paM a aito mf v FactwAlto,W ; Repone el cunhdor n u m e n t e m el tiempo en mowf T M - C m ~ A ; alto. goto Fm-T~merD~Intemrpcion Estabdlto I ;A paitir de una bd Salida ; Estaha alto y lo pasa a bajo. movf FmAltn.W ; m n e e contador nuevamcnrc con el t i m ~ p o l ,200 sbw ul ; en bajo. movwf T m d - C ~ ~ r A ; E periodo sera de 100ps.2W21iOOOps=2Oims. 1 Fin4TimdemInteqxion M-STATUS,W ; Restaura registros W y STATUS. movwf swapf mf --w,w bcf bcf re& STATUS Gw&-W,F iNTCON,RBF LNTCON,TOIF ~1 ENDC A la hora de claborar el progranla de control, hay que tener eri cuenta que las especificaciones de estos servomotores dc pequeño cnctc no suclcn ser muy eclrkhs. De heclio si cambia wi servo por otro de la misma marca y modelo no es raro que tenga que reajustar el centrado e incluso los reconidos. Luegi* ttio debe extraiiarsc si necesitara reajustar ligeramente las constantes de cstos programas, para su caso particular. En el siguiente programa ejemplo el ai-igulo del senJumotor í*s ~onbolxhpor el valor de entrada fijado por los interruptores conectados al Puerto A con una resolución de 10". Asi sj la entrada vale O se posiciona en O". si vale [ en lo0: si vale 2 en 20"; ..., y si ORG vale 18 e111SO . 0 Boto ORG soto lii nco 9 bsf iPrograma de ~untml l h posicionamiento de uri servomotor Futaba S3003. Conirola el k l o ;m d m t e mMíal cuabtodaJ M de 20 m de p i d o que se aplica a su línea de control. W ' s bcf ; El hgulo es gokmda por el tiempo en alto da h seiíal cuadrada desde O" @ara 0,3ms ;de tiempo en alto) hasta 180" @mu n tiempo en alto de 2,1 ms) ; l e& pro- 3 la lineas del Pueao A conbrolanel ingulo de posicionamiento con una ;mlwiún de 1 aegh los val- P a siguiente tabla, tornando conm que se indican en l ;tiempo patr6n 1M) ps {0,1 ms) mseguidos median& interrupciones por desbordamiento del ;Timer O. ;.Enaada F~ A i t o Tiempo AIto Tiempo Bajo An@O ; RA4:RAO (31-htda) 0,lxFactorAlio O,lx(2OC-FactorAito) (S -} ' ---m- - * - .- - - e -. - -+------*- --------+----<------- -+-----+ ;0 3 0,3 my 19.7 ms 0" ; 1 4 0,4ms 19,6ms 1 P ; 2 5 O,5 m6 19.5 ms 70"
  • 529. 7 ? , . ~ U - V4 ,3 w-vA CA~~TL'LO S~.'IIVTJMOTOKESDF.R,UIO(:O'I'TROL 31: 513 ; 17 20 2,O ms 18,O ms 170" ; 18 2I 2,l ms 1 . ms 79 180" 7 ;A pariir de una entmda superior a 18 d m v ih F i r 4. ;~~ADEDA~)S*********************************v************************t********** - CONFLG -CP-OFF & -WI)T-OFF & - PWRTE-ON & -XT-OSC LIST P-16F84A INCLUDE 'P16F84A.INO CBLOCK OxOC FactorAlto ; FactOr por el que se va a multiplicarel tiempo ENDC ; patriin de 100 pc para obtener el tiempo eii alto. TMRO-Cnrga EQU 490' ; Valor obtenido eqerimentalmcntc w la ventana n ; Smwatcli para un ticinp de 100 ps. :L próxima conshnte hay que variarla se@ el tipo de Servomotor utilizado a que las AltoCeroGrados EQU d'3W ;Tiempo en ;lita para O". Para el Futriba S3003.300 p. :tas. De TiernpoPatron EQU 6 1#' iga quc cesitara FactwMinmio EQU AlroCeroüddTizmpoPatron #DEFINE Salida ;Línea dcl Puerto B donde se conecta el servomotm. -ipor el ición de ..., y si ORG O goto inicio ORG .4 Pro Timero-Intempcim Inicio bsf STArnS,RPO bcf Salida ; Esta línea se coafigura comu snlida. movlw b'OOO1lllli ;haoA configurado como entrada. it mwwf PORTA . . movh b'00001D0(1' :TMRO sin prescaler. movwf OPRON-REG bcf STATUS,ñPO mwlw M 0 Carga movwf MO- ; Carga el Timer O. movhv btl0100000' movwf W C O N ; Autoriza inhmpcióa TOI y la general (GIE). Rincipai PORTA,W ; Lee el puerto de entrnda andhv b'000Illll' ; Se quede con lm bits d i d o s . d w Factorhimo ;Para conseguir el timp mínimo correspiindientt:a O". mowvf FíictorAlto ;Valor eniregado a la subtutina de
  • 530. 513 hIICROCONTR(3LADOR PICI bFg4. DESARROLLC DE PROYECTCX O RA-WA / pm Pruicipai ;atención a la intcmrpcibn. ; Mantim la aabda en alto m tiempo igual a 1 0 0 ~ x (FactorAlto) y en bajo un tiempo igual s ;a 1 0 0 ~ x (2WFactorAlto).El periodo de la s&l adrada lo mantiene en 20 m. s :Contadorauxiliar. TirnerOerOIntemipcion movwf m - W ;Guarda los valores de tenfanW y STATUS en el swapf STATtlS,W ; p m p m a principal movwf Gwd-STATUS bcf . STATIIS&PO ; G;uantiZa que W j a en el Bancg O. rnovlw TMRO-Carga movwf m 0 decfsz ThnerO-ContadorAJ? ; Derrerncntmi el contador. goto Fin_TimcrO_Intmpcion btfsc Salida ; Testm el anterior estado de la salid& gotD E s w t o EsWajo bsf Salida ; Estaba bajo y lo pasa a alto. rnovf FactorAlto,W ; Repone el ccmtadoinuevamente con el riaapo en rnovwf TimeiO-ContdorA ; dto. goto F~TimerOerOintemrpcion EmbaAlto bLf Salida ;Estabaaltoy lopasaabajo. movf FactorAlto,W ; Repone el con- nuevammte c m el tiempo sublw .200 ; en bajo. momf TirnerQ-ContadorA ; El periodo será de 100fis-2W20000pa=2hs. F u i T UnaI)-íntampcion swapf Gd-STATUS,W ;Restaura registros W y STATUS. movwf STATUS swapf Gia-wJ swapf Guarda W,W bd INTCD~,RBIF bcf N K O N ,TOIF mfie
  • 531. 7 - A-MA C~QPITULO 32 SENSORES PARA MICROROBÓTICA 32.1 SENSORES PARA MICROROB~TICA El presente capitulo es iiiia basc de datos o guía de referencia sobre algunos seiisorcs y de cómo conectarlos al inicrocontrolador para realizar aplicacicines especialmente dirigidas a 10s niicrorobots yero adaptable a muchos proyectos industriales. Los sensores que se van a estudiar son: LDR, detector piisivo de luz. Sc utiliza para detectar ausencia o presencia de luz. CNY70, serisor cjptico reflexivo por infrarrojo con salida a transistor. Diferencia colores blailco y negro. OPB7031415, sensor óptico reflexivo por infrarrojo. H21A1, sznsor óptico de barrera. lndicado para medir velocidad de mi~tores. GP2Dxx, sensores uifrarrojos para medición de distancia. 1S471F, censor detector de proximidad de obsthculos por infratrojos. B~tmper, i a l de carrera mechico para detección de obstáculos f SRFM, sensnr de obstaculus y medidor de distancias por ultrasonido. Pero antes es iiecesario conocer ima forma de acoridicionar sedalcs no dipitales mediante inversores Trigger Schmitt. 32.2 INVERSOR TRIGGER SCHMlTT 40106 Algunos sensores no proporcionan sefiales digitales puras y es necesario conformar dicha seiial antes de aplicarla al microcontrolador,como en cl ejemplo que sc muestrrt en la figura 32- 1.
  • 532. KA.kl. vi * Figiir.u 32- 1 .L)ñ~r/c:s ~tirrcrcitr .~ulir tic un ciwu ifo Trigger Srhrnit f ric y lrt I Jiia Ioi~i::~ rcllla 1.l~: cutifr,ri-narutio seha1 e 1 digital es mediante puertas Trigger 3c.i 1 Schmitt, ccitno Iris qiic ticnc cl circuito iiitegrado 401 06. Este dispositivo contiene 6 El in>crsorcs J.ri:;;cr Sr!iiiiiii cncrips~iladi>s scgúii se inilict?en la figiira 3 2-2. funcional: una mane añadir el ( Estos disposili*os ticneii Lina c;iracteristica de transferencia como la que se muestra en la 1Tgii1~ 32-3. Fn csta cuma se aprccia que si la tensibn de entrada aumenta desde O V Tal hasta un nivel ,ilio la traiicicicín se prtiducc siguiendo b curva A y conmuta para el valor V I' . dcnoininnrlo amhral superior. Por cI contrano, si la entrada esti a un nivel alto y E st disininuyc Iiiistü 01'., tranciciiiii sc prodiice sigiirendo 13 curva B cuando se alcanza el II con señait dcnoniiiiadci taoibr:il ieihrioi V ,-. I,o.; valores de y de V , - para el caso del 40106 32- 1 se m i depeiidcri de la tc.r~~~iiiiiiilinieritnciiin y piicdcn tomar Icis valores de la t-bla 32-1, dc digital. Ci vuelve a ti Eli !; ciirva d,: i:;!ti~f~rc:i~ia dcl iiivcrsor Schrnitt cs iniportante observar que la consideni tmiisiciori dc salid:: dc iito - 3 Brijri cs distinta que la dc Unjo -+ Alto. A estc fenbmeno se 40 106, la ; Ic coni3i'c coino Xliaii'esis.
  • 533. - RA-MA 1 FIguru 32-3 Curva de truisv/;~i.c~~?r'ina ini)ojntir. Triggcr ,S~,hrnift r.lo r 117 Trigger ntiene 6 El inversor Tnggcr Srhmitt, y todos. Icis disposiii~os cor, ~ q i r : iipo ric funciominicnto, utiliza el sirnholo de la figiiia 32-3 pai:i iridici~iq i i c pucdcii rcspciririci dc una manera fiable ante striales q i i e cambi:iii con Icrititud. Ilsta s~rt-il~oI~gi;i x i cii sc h añadir el dibujo de la pifica de histcresis en la ciitr:id;i corrvsprindici~l~. :muestra esde O V Tabla 32- 1 I "rrinresclk t y 1 T ~ I A W o1 40 1/16 (tr)~Ii>.~ il:,r{:i. T k )r i ~:o/tio.s) i el valor )el alto y Estos circuitos son de ~ a utilid;id cuando sc clrscn c(:nii-{il:ii. 1111 r*it-L-iiito i ~ digiVal lcanza el con señales que no lo so11o señales digitalcs coil una srii:il dc i-iii di: ,iriniar;ln. En 1;i íiglir;i el 40106 32- 1 se muestra como actúa un circuito no invcrcoi- lfenlc a iitia s;:i-i;tl rliic ri;i cs ~ iii-aiiicritc i .l. digital. Cuando la señal V I alcanza 21 valor V., ' I;i sal¡da V,, h n c c i i l : ~:I ~ i iiiil:cI al11 y rir! i i vuelve a tomar un nivel bajo hasta que 1;i ciiirada n o Ilcgilc n ', l:,~ la tigul-i~ 1 sc 11;i 32- a que la considerado un no inversor para una mis, ficil cxplicricicin. I'nia iin iiivcr;c>i. ~ o t i i ocl 5meno se 40 106, la señal de salida hubiera cstado invertida reYIiEicici dc 1;i t i ~ , i i i n
  • 534. 5 IX U I C R o C O U T R O W R PIC I6F84. DPSARROLLQ DE QROYECrOS 8MM - A - CR A M A En conclusión, un dispositivo Trigger Schmitt produce transiciones de calida limpias y rápidas, aunque la entrada no 10 sea. rnimonkolador P C I6F84A posee Ia Et T línea RA4 con entrada Trigger Scmitt (figura 5-7) que se puede utilizar para este fin sin ~eoecidad intercalar un 40 106. de I R7 32.3 LDR 337 Las resistencias dependientes de la luz, LDR aight Dependertr Rcsistor) o fotmistencias, son dispositivos que varían su rmisíencia en funci6n de la luz que incide sobre su supwficie. Cuanto mayor ssea la intensidad luminosa que incide sobre ella menor será la resistencia entre extremos de la misma. Para su fabricacibn se utilizan materiales fotosensibIes.Su a w n fisicn y sUnbologia mLr.~ común se muestra cn la figum 32-4. . 8 .. .- L , , - . :S-. .: .. . - LDR LDR i + ; .- : . .. - .. - - , F o m fisica Shbofo eléctrico más común de 3 LDR n I * .CL YUL Ie mcurwc 32-4 LDR Figz~ro ; del miiduilii LCD vc :b sa 99 at Su valor nominal se especifica sin que incida la luz externa. Así, por ejemplo, una LDR de valor nominal 50 m, como la de la figura, tendri dicho valor si se tapa de :ZONA D'EDATOS manera que no incida la luz sobre su superficie, si se la acerca a una bombilla de 60 W puede bajar hasta unos 30 a. Las principales aplicaciones de estos componentes son cnntroles de iluminación, control de circuitos con selb,en a l m q , etc. La forma más sencd1a de conectar estos sensores de luz a un rnicrocontmladores mlizando un divisor de tensión con la LDR y un potmi0metm, que permite ?jurzar e l I DRG O nivel de luz a detectar, A la salida'del divisor de tensión se le coloca una puerta Trigger i Inicia Schmitt para conformar la señal, tambikn puede hacerse m una entrada de a t e tip como 1 la RA4 del PICláF84A tal mucstaa la figura 32-5. I El p r o p m Senso-DR-Ol.acm menta el número de veces que es c o d o un haz de luz que incide sobre la LDR.
  • 535. t M-MA CAPITI~U) 32: SENSORES PAR.4 MI~ROROBOTICA 519 ies de salida 84A posee la -a este fin sin t Resistor) o uz que incide lreella menor an materiales ura 32-4. - Incide luz sobre LUR --> Entrada RA4= ' O - Corla ha2 de luz cobre LDR --> Entrada RA4="1' (Flanm Aspendenle) -Vuetue a Incldir luz sobro LDR -> Enirada RA4= "0" (Flanai Descendente) Figuru 32-5 Cvn~xion una LDR a la mlruda Trigger Srhniirr RA4 de un P1CI 6F84A de LDR 9 ; Una LDR ae i e la entrada Trigger Schrnia RA.t/TOCKI aplicando impulsos d Timw O Eada a ;vez que se os cure^ al intmpnetse ua-i objeto la W de htz y la LDR En la pantalla ;del d u l o LCD se visualiza e1 númao de veces que se hkmmpeel haz & luz en dos dlgiios ;( a *o). h 99 ejemplo, una si se tapa de billa de 60 W :iluminación, controlador cs mite ajustar el puerta Tngger ORG O inicio :ste tipo con10 4 1 LCD-inicializa bsf STATUS,RPO ; AoocsodSanm l. rnovlw b'00101W ; TMRO mino contador por flan00 scendenre de es cortado un mowf OPTION-REG ;R A W K 1 . . Prescaier asi& d Watchdog. bf E STATLiSJWO ; Acceso al Banco O . ctf TMaO ; lnicializa contador. ; La seccih "PrincipP es de mantmhiento. So10 se dedica a visualizar el Timer 0, cuya
  • 536. ;cuenh sc increinenta coii bs flancos ascendente prucedente de Iri cntmda Triggcr Schriiitt ;C d la LDR : RA4iTOCKI donde se ba conectado la LDR. Principal. cal1 LCD-Lineal ; Se pone al principio de la lhm 1. ;ZONA DE DA niovf TMR0.W ; k e l T u n e r O. cal! Bm-a-BCD ; Se debe visualiznr en BCD. cal1 1,CD-Byte : Visudiza, apagando las dxenss en c a ~ o q~ie de sean 0. goto hiricipal Este programa solo pertnite contrir dc forma corrccta hasta 99. Se deja al lector su mejora para ~iridcr aumentar la cuenta y utilizarlo. por ejemplo, en la coinputüción de los ob,jcios que están en una cinta trarisportadora, pcrscitias quc pasan por uria puerta. etc. Estc niisrno programa se l~iiede utilizar para otros censores que sc dcscrihcn mas adelante, por qjcmplo para cotitar el iiiutierci dc objctos que pasan por delante dc iin sensor dc Inicio iiltrasonidos. bf s bif bcf El circuilu de la figiiia 32-6 jiiilto con cl prograina Sorisor .ILDR_-fll.asmconstituye kf otra aplicacihri típica. Se trata de un interruptor crepiiscular, que cs un circuito para bcf cricender una Iimpara cuando llega la noche y apagarla con los prirncros raycis del sol. PrUicipd btfss Boto EacierideLw caii btfss soto REO bsf Y RE1.E e 4 - % caU btk g* bcf Fin cal1 goto INcLLrn END +***I**bC*ir4*$******,***i******L4* ScnSoI LDR- - ~*****Lm*****~**********C******I*~*Y* Este tipo I 1 ; Programa de un interruptor crepuscuIat:una b p a r a se inatendrh encendida mientras wa LED, y un recep ; de noche. Uria LDR detectarh la luz arnbicnte (sin que le Heme la l z de la Ihpm quc u ;pretende conu.olar) y estad conectada a la 8ntrada Ttigger Scbrnirt RA4. define el tipo ya :
  • 537. ; Cuando la LDR detecte osmidad el sistema activará ima kmpara: ; - LDR ihuninada 3 Enb& P C = "0" -A Lhpmapagada. I ; - L D R a i o ~ ~ ~ i d a d EneadaPIC="l" ALbmpani-ida. -> #DEFRIE LmpmPORTB,I ; Lhm donde se conecta la calida. i al lector su #DEFINE LDR PORTA,4 ;E - n Trigger Schmi~ PIC don& del se conecta ; b LDR. lacion de los :ZQNADEC~D~~S**********+*I***********I****~****I****~******~******W******** :rtri. etc. Este idelante, por ORG 11 serisor de hiciti bsf ; Acceso al Bataco 1. bsf bcf ni constittiye bcf ;A - al Bmco O. :ircuito para bcf ;En principio I h p a r a upapda. s del sil. Principal btfs9 LDR ; J?ntrada=l?, &DR en &?. gow ApaWpara ;No,LDR i ! i m h d a por el sol.Apga la Idmpm. Encid- cal1 Retad- 20s ;Espffaesietimppmnbu~Ioaat&$ btfss W R : &nmda=l?, ¿LDR sigue en oscuridad? Fin ;No,sale fuera. baf Lampara ;SI, mciendc la lamparrt goto Fn i APasaLampara cal1 Retado-20s ; Espera este tiempo p m conñrmar la luz de1 mi. Mfsc LDR ; ¿EnW=O?, iLDR sigtic ihiiaimda por ~ U del sol? Z Fm ;No.sale hem. bcf LamP ; si, a w Igmpara. p Fin cal1 ~ 0 ~ 2 0 s ; Permaneceenelesardo~n~~lmtriosestetiemp~. soto Principal INCLWDE 4U5TARDOS.MC> END 32.4 FOTOSENSORES ACTIVOS Este tipo de sensores consta de un emisor de luz, que nonnahente es un diodo LED, y un receptor. que suele ser un fotodiodo o un fototransistor,la situacirjn de ambos define el tipo ya sea reflexión o por barrera como se estudiará a continuacicín.
  • 538. 522 PICl h%M. MICROCO~OLAWR DESARROLLO DE PROYECTOS 0 RA-VA Sti aplicacjbn. entre om, suele ser la detecciiin de la prcscncja de objetos, medida de distancias inuy cortas, lectura de cisdigos de barras, etc. En microrob6tica suelc :para dcitectar una marca o seguir una línea (normalmente negra sobre fondo vcc: .. Los problemas mis comunes que suelen darse con este tipo de sensorcs son que la reflexión depende las características del material y del color;en principio los colores mis Al claros reflejan el haz de luz infranoja m i s que l s oscuros. La luz ambiente es una o 2;: importante fuente de mido a tener en cuenta. Sensor optico CNY7Q es un sensor optico reflexivo con salida a transistor (figura 32-7) Vishqk. TeIej~nken Semlcondttctors (www.vishay.cum). Tiene una constmcciOn compacta donde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto por medio del empleo de la rcff e x i h del haz de luz idmmoja IR (Infraredl sobre el objeto. La tongjtud de onda de habajo es 950 # m. El emisor es un diodo LED infrarr~~ioel detector consiste en zin fototmnsistor. La y distancia del objeto reflectante dcbe estar entre los 5 y 10 mm de distancia. La corriente directa del diodo Ir= 50 m4 y la intensidad del colector es de IC= 50 inA. El circuitr Utiliza un arnplrfi ha canectado cr potcnciólrnctro qui Vista desde arriba Aspeicto y pati1Iaje Diagrama interno . ipr-a32- 7 Sensor cipiico relferivocon salida n fransisfni. Fi CW70 ara conectar estos dispositivos hay que polariz;rrlos, ésa es la fiinci~nde I q n resistencias del circuito de la fipura 32-8, donde se mt!esiran las dos posibles formas de conexión. según se quiera la salida alto para color blanca o negra. El invmor Trigger Schmitt 40106 se intcrcata pam corifomras las tensiones a valora lógicos. Hay que tener en cuenta que los valores de msiciiin de la puerta son VTt = 2.9 V y V = 1,9 V para una tensión de alimenlacion de 5V y no podemos variarlos. ; f
  • 539. P RA-MA CAPITULO32: SENSDRFS P,WA MICROROB~JTICA 523 is, m e d i h Funcionamiento del Circuito (A): rica suele bre fonclo - Detecta Negro -> Transistor en Cone -. - Detecta Blanco --r Transistor Salurado - - r E n h d a al inversor "U --> Entrada al VC "1" Entrada a) inversor "1" -r Entrada al VG'O" VCC=SV vcc=5v son que la dores más ite es una 32-7) riene una la misma flesion del ia.10 cs 950 insistor. La .a corriente - Detacta Negro --r Trans151or Corte --> Entrada al inversor "O" --> Entrada al pC "1" en Figflru 3.2-8 Cirtrritu tr;tlzcosde conexiupr del CM70 El circuito de la figiira 32-9 permite ajustar la tensión de disparo del CNY70. Utiliza un amplificador oper~cional, trabaja como comparador de tensiiin, al que se le que ha conectado en la rtitnda no inversora cl sensor y a la entrada inversora iin potencibmetro que traja como un divisor de tensión. VCC'W 1'70 ción de las S formas de tensiones a erta son VT ariarloS. Fi<yura32-9 Conexibn del CNY70 u truvés de un c w i ~ ~ a r ~ r l o r
  • 540. 524 MICROCOWROLAWR P1C lbFR4. DPSARROLLO 'I PROY E m S IE '13 un-M Su funcionamiento es el siguiente: si la tensión en la entrada no inversora es mayor que la tensiOn presente en la entrada inversom, Irt salida del amplicador operacional toma el valor '"1" y si, por el contrario, la tensibn en la no inversom es menor qiie la existente cn la entrada invasora, la salida toma un nivcl "O'. Es recomendable que la resistencia variable del circuito sea un potenciómetro rnultiwelta, ya que dc csta forma es más sencillo el ajuste. h senaores OPB703, OPB704 y QPB705 de E empresa Optek Technolom c a (www.op~ekinc,coni) son tarnbidn del t i p reflexivo y utilizan como emisor un diodo LED emisor de infiarrojos y como receptor un fototransistor (fipia 32-10). En este tarso est5n montados sobre unas lentes convegentes alqiadx en la carcasa n e p y la forma del sensmpermite que el haz refleje en una superficie más concreta que el (247'70. De los tres modelos aqui tratados, el OPR703 no dispone de lente?el OPB704 tiene una lente azul de polisdfuro y OPB705 pemiite un desp~azamiento la lente para e! de corregir el Q ~ P En estos dispositivos la lente de plisulfuro elimina g n n parte de las ~ . interfmncias producidas por la luz ambiente. Superficie Reflexiva / Para cc y los OP703 circuito con siiperficic blz hará que en enfrenta a un; LCD aparcct n;lpl-lci y patillaje Patil t as y cabezal Figura 32-1O Sensores Opiicos rgflaivos O P703/4/5 La distancia del objeto reffectante debe estar e n k los 4 mm y 10 mm de distancia, L comente directa mhirna del diodo lF = 40 mA y la intensidad del colector máxima es a de Tc = 30 d. Los circuitos de aplicación sedn 10s que se han mostrado en las figuras 32-8 y 32-9 pero habrá que modificar las resistencias de p l a r h c i b n tcniendo en cuenta la corriente máxima que soportan estos dispositivos.
  • 541. c RA-MA c~rinrto 32: SFNSOWS PAKA M K R O R O B ~ T I C A 525 - 2s mayor I es mas chnologv un diodo este caso Tamia del Funcionamienlo. GZ . Blanco ->Transistor Sauraao .--Enbada inversor " 0 --> RA3; '1' 1 - - 22P - Negro --Transistor en C m e --, Enmda invsrsor "1" --> M = - D . 704 tiene ente para rte de las 32.4.3 Ejemplo de aplicacion Para corriprobar el funcionamiento de los dispusjtivos que tiernos analizado CNY70 y los OP703104105 se puede cargar el programa Sensor-CNY70-01 .asm y montar el circuito con el sensnr de la figura 32-1 l . Cuando cl sensor se enciimtra frente a una superficie blanca el h a z infrarrojo refle-ja y en la entrada RA3 aparece un nivel alto que hará que en el LCD visualice el rnensajc "Color BLANCO". Si el haz inhrrojo sc enfrenta a una superficie de color negro o tio encuentra superficie, el haz no refleja y en el LCD aparece el mensaje "Color NEGRO". ;E i ba L.CD se visualiza el color "Blanco" o "Negro" que e& detectando el sensor CNY70, a l ml ; se& b configuración del esquema corrrspiindimie. Si: - ; Color B h c o -->transistor sahuado 3 abada al inversor"O" --bRA3 = "1 ". - ; Color Negro -> transistor en corte 2 enhda al inversor "1 " -aKA3 = "0". distancia, náxima es 7-8 y 32-9 3 corriente ; Líneas donde se conecra d sensor.
  • 542. 526 MICRWONTROLADOR PIC 1 hF&l. DESARROLLO DF PROYECTOS O M-M.4 ; Z Q ~ ~ A D E C ~ D *~ *~ ~ * vS w * * * * * * * * * * * ~ * * ~ ~ * * * v ~ * * + b * * * ~ * * ~ * * ~ ~ * * u ~ ~ * * * ~ * * m e * * * ~ * * * m m + ~ * ~ * O + ORG O 4 1 LCD-hiciaiiza movlw MensajeCiilor call LCDMemaje bsf STATVS,rn ;Linea del senwr se configura corno entrada. hf STATCiS.RPO call LCD-Lind movlw MensajeNegro ; En principio considera que es negro. btk Sensor ; Lae el sensor. rnovlw MmajeBlanco ; No,es blanco. cal1 LCDMensajc ; Visualira el msultado. goto Principal DT " BLANCO". 0x00 DT " Negra ",0x00 WCLmE <RETARDOS.IND WCLUDE Sc&4Brr.ENcii. INCLUDE a - m s . I N 0 32.4.4 Sensor óptico de barrera H21AI El representante más populw de este tipo de sensores es el H2 1 A 1 (figura 32- 12) cl haz infrarrt fabricado entre otros por Isocom Componetirs (www.isocorn.com) y Faiwhild Semiconductors (www.fairchildsemin~j. Estos sensores también tienen como emisor un diodo de infrmojos y Como que pasan po receptor un fototransistor. En este caso el etnisor y el rcceptor estjti enhitados a una luz eii la unid distancia de 3 mrn y entre ellos existe un espacio para que un objeto pueda introducirse y romper la barrera iri frarroja. 32.5 SE El circiiito de aplicacibn para este tipo dispositivos es similar al de la figura 32-8. 1 Los 1F Los valores de )as resistencias de polarización deben limitar la conientc por el diodo alta sensibilii emisor IF a 60 mA y por el colector del transistor a una comente lc no siiperior a 20 mA. C:orporntion El fabricante facilita los valores de pmeba indicados eri la tabla 32-2. muestran cn 1
  • 543. v BF M A ORA-MA -. -- CAP~TL;LO 32. SENSORES PARn M I C R O R O ~ J ~ C A 727 Aspecto y patillaje Posición del emisor y del rcccptar en el dispositivo Fi,qura 31-12 Sensor Upfico de hmera H2 IAJ Para comprobar el funcionamiento de estos sc :picden utilizar muchos de los programas propuestos en temas anteriores sustituyendo pr por el cimito con el sensor hptico. Por e-icmpl las pro_mrnas rn~in-i.asrn, l . ' , 1n-nt-02.asm o Semor-LDR-Ol .asm, que prcsentarin en un LCD e1 n h e r o dc veces que se interrumpe el ha;? infrarrojo del senwr. Una aplicación típica dc estos censores es medir la velocidad de un motor. Para ello se acopla a eje del motor un cncodcr, quc es una Eimitia circular con una serie de ranuras 1 3 y comu que pasan por el centro del m o r y cortan el haz de luz, el número de artes del haz de dos a una luz en la unidad de tiempo sed proporcionar a !a velucidad dcl motor. 3ducirse y 32.5 SENSORES INFRARROJOS GP2DXX Los IR Sharp GP2DXX son una familia de sensotec de infrarrojos compactos de alta sensibilidad para IR deteccibn y medida de distancia. En la página Web dc Sharp Corporarion &np://sham-wor1d.m) encontramos algunos dc los modelos que se muestran en la tabla 32-3.
  • 544. 524 MICROCOWRCIL4DOR PIC 16F84.DESARROLLO DE PROY PCTOS c . R4 .w distancia o la mudo de func transmite a trí contrario, no lectura que se obstáculo el h punto de refle? ndiendo de l distancia. a Seguida Tabla 32-3 Sen,cor4es l serie GP.2D.u de a El objeto esa cerca, el triangulo as pequeAo y el Bngulo B gran& El objeto esa lejos, el bi@qulo alargado y el es hnwlo es pequefío Figirra 32- 13 Concepto de medida por trimgiiducion El senso micmontroIad 1 32.5.1 Principio de funcionamiento la entrada de ci dto no ha dcite Estos dispositivos emplean el método de triangulación, utilizando un pequeño alcance al que z Sensor Detector de Posición lineal (m, Sensitive Detector) para determina la Position
  • 545. BRR-m CAP~WLO SENSORES PARA MICROROB~TICA3 32: S distancia o la presencia de los objetos deniro de su campa de visión. Rhsicamente su modo de funcionamiento consiste en la emisión de un pulso de luz infrarroja, quc sc transmite a través de su campo de v s 6 4que se refleja contra un abjcto o que, p r el ii1 contrario, no 2 hace. Si no ennientra ninpiin obstáculo el haz de luz no refleja y en la 0 lectura que se hace indica que no hay ningún obstáculo. En el caso de encontrar un o'bstaculo el haz de luz infrarroja se refleja creando un trihngulo formado por el emisor, el punto de refl exiiin (obstáculo) y el detector. La información de Ia distancia se extrae midiendo el ángulo recibido. Si el angufo es grande, entonces el objeto estA cerca, el iriángulo es pequeiío y ancho. Si el ángulo es pequeño, quiere decir que el objeto está lejos, el triángulo es largo y delgado. En ta f j p 32- 13 podemos ver una representación de estos conceptos. Seguidamente describiremos el m 4 0 de manejo de algunos de estos dispositivos. El Sharp GP2DOS es un sensor capaz de medir distancias por i n h j o s e indica mediante una salida lbgica(O ó 1) si hay algún objeto dentro de un alcance preahblecido (figura 32-14), El rango se ajusta entre 10 y 80 cm con la ayuda de una resistencia variable que incluye el propio dispositivo, que es ficil de regular. Patendornmo --- pai a ajuste de distancia El sensor uiia sblo una línea de entrada y otra de salida para comunicarse con el tt7 niimontroladot. Su utilización es tan sencilla como mandar un impulso a nivel bajo en la entrada de control (Vi), esperar en* 28 y 56 rns y leer el estado de V,, si esta a nivel alto no ha detectado obskiculo, si está a nivel bajo ha detectado un obstáculo dentro del alcance al que se ha ajustado.
  • 546. 530 MICROCONTROLAWR PlC16FM. DESARROLM DE PñOY E- 6 RA-MA 32 " qP2P15 ' El Sharp GP2D15 es un sensor medidor de distancias por infmojos que indica mediante una salida digjtal si hay un objeto a menos de 24+3 cm (figura 32-15). La detcccibn se hace de forma continua, esto significa que no es necesario ningtin tipo de circuito de control ni temporización externo. Basta con aplicar tensihn para que la medida este disponibte cada 50 ms. El sensor utiliza una Unica línea de: salida para comunicarse con el micmntmlador. De características similares a este dispositivo, Sharp ha sacado recientemente al mercado el GP2YOD21 YK. vcc GND vo ktas de tcn GP2DJ l El SI infram,ja n negro esta c El S h r p G P 2 v l ~ un sensor que mae distancias por inrmrrojos. El dispositivo es indica mediante una salida annlhgica la distancia medida al objeto sobrc el que refleja el haz de luz. Za tensibn de salida varía de foma no lineal cuando se detecta un objeto en una distancia entre 10 y 80 cm, ital y como se aprecia en la curva de la figura 32-16. LA salida eski disponible de foma continua y ni valor es actualizado cada 32 ms. Normalmente se conecta esta salida a la entmda de un convertidor analhgico digital, el por cual convierte la distancia en un número binario que es utifi~ado el micmontrolador. ia salida tambikn puede ser usada directamente m un circuito analbgico. El sensor utiliza sólo una h e a dc salida para comunicarse con el mimontroladot. Su margen de medida Este esde 10a80cm. un p m p l paso banda. D caracterÍsticas similares a e este dispositivo, Sharp ha sacado recientemente al mercado el GP2YOA2 1YK.
  • 547. Figura 32-16 Función de fiansferencirs del GP2D12 32.6 RECEPTOR PARA CONTROL REMOTO SFHSI .10 32.6.1 Descripción El SFHS110 es un receptor de TR (infi-are4 utilizado para detectar un haz de luz irdiarroja moduIada en sistemas de telemando {figura 32-17). Su encapsulado en eoior negro estA disehado con un filtro de corte para la luz del día. VCC J -- .- - -GND * 1 - holadiir. Figura 32- 17 Vida y patillaje del SFHSI 1 O p o r utiliza &&medida Este circuito integrado incluye un fotodiodo sensible al haz infrarrojo de 940 nm, un preamplificador, un control de ganancia automático, un demodulador y varios filtros paso banda, como puede apreciarse en el diagrama de bloques de la figura 32-18. Se comercializan distintos modelos de este sensor dependiendo de la hcuencia de 'la portadora a utilizar, como puede comprobarse en la tabla 32-4.
  • 548. 532 MICROCOM'ROLADOR PIC' l nF84. DESARROLLO DE PROYECTOS t. HA-MA 32.6.2 Cit La fg i detecta una h Auiomdtico de Ganaricia - paso banda 4Demdulador El c i r c ~ un ciclo de tra otra initad a n Figura 32-18 Diagruuiri de3bloques del circuito SFH5 I I O circuito integ ajusta la frecc realizar cl ajus i TubZu 32-4 Frt~mencia porfadora de los djstlntns nzodelos dtl setrsure.7 de o Vcc=+SV vcc=5V O SFH 5517 -XX Microconfmlador de infrarrojos n GND señal a iina ( Darlington BE (") R1 y C l cdlo son necesarias para eliminar las periubaciones de la fuente de alimentacibn 32.7 SE1 Figuru 32-1 tJ Circuito receptor de haz inftnvrojo moúulario E1 iS47 que es capaz ( I
  • 549. L, RA-uA .' CAPITULO 32: SENSORES PARA MICR~ROBPTITA 5.1) 32.6.2 Circuito detector vcc La figura 32-19 iiiuestra c l circiiito de aplicacihn que proponemos. Cuando se detecta una haz de luz infrtirruja modulada a la frecuencia del sensor, pone un nivel bajo en la patilla V,, en ausencia del haz modulado la salida es un nivel alto. Salida 32.6.3 Circuito emisor GND El circuito emisor debe de ser capaz de generar uiin olida cuadrada a scr posible con un ciclo dc trabajo del 50%, es decir, la mitad del periodo In sena1 e t w a tiivel bajo y la sL h otra mitad a nivel alto. El circuito propuesto es un multivibrador astable realizado con un circuito integrado 5 5 de uso muy corriente (figura 32-201. El potencibmetro cori el que se ajusta la fi.ecusricia del multivibrador es recomendable qiie sea multivuelta, para poder realizar cl ajuste cle La frecuencia de manera mis cómoda. ! - THR CV 5 - - 1 ~7 DIS -3 Q TR ' K U 2N2222 - q 15K 4K7 R3 47 R2 DI VCC=5V - 3 - 0 1 INT T w 1 C2 . . Emisor lnfrarmjo TIO UF Figzcr-rr 32-20 Cir~-l I O I ~ t3rnisorde haz infrarrojo modulado 36-40 kH.2 Si se disiniiiuye el valor dc la resistencia R3 hasta hacer pasar por un diodo emisor de infi-arrojos SFH 45 10/SFH 45 15 iina corriente de 500 mA, se puede llegar a recibir la GND serial a una distancia de 30 m. El transistor 2N2222 se puede sustituir por un par Darlington BD135 y BC547 utilizado en otros esquemas (por cjcmplo cn cl32-6). 32.7 SENSOR DE PROXIMIDAD IS471F El IS47 1F fabricado por Sharp Corpoiatioir es iin detector de ubst&ulos infrarrojo que es capaz dc dctcctar cuando se refleja sobre uii objeto el haz que emite un fotodiodo
  • 550. 534 MICROC'ONTROI. m R PlC 16FX4 DF.SARROT.1I ) DE PRí-)Y ECITOS O* RA-MA emisur dc infrarrojos que se le conecta tal y como se muestra en el circuito di: la figura 32- 23. salida se nbti o vcc a GND vo 0 @ GLout Estos dispwitivos son inmunes a las perturbaciones de luces externas debido al sistema de modulación de luz quc llevan incorporado. El prvpio circuito incluye el &ver de ~111150~ shcronismo, como puede verse cn el diagrama de bloques de la figura 32-22. y El circuito detector y emisur tiene un amplio margeri dc tensión de alimentación que va desde 4,5a 16V. En este conectar uti con 32.8 BUN Los detei uno o vanos mecánicos com control de nive robatica convcn Los buml comutador qui meta1 qiic hace que dispone de longitudes de la Figitrcl32-22 Dingrum~i hkuqires del 1.9471F [le
  • 551. El circuito prácticn de aplicación que proponemos es el de la figura 32-23, con c l que se pueden delectar objetos situados a una distmcia máxima de 70 mm siii quc haya contacto fisico con los mismos, la distancia puede disniinuir dependiendo del color del objeto sobre el que reflecta el tiaz iiiírarrojo. Cuando se aliriienta el circuito a SV, en la patilla de salida (V,) aparece un nive1 alto con una tcnsiiin de 5V si no hay ningi~n objeto próximo. Si se coloca un objcto eri el radio de acción del dispositivo, en la patilla de salida se obtienen O V y por lo tanto un nivcl bajo. C..... :bid0 al 1S471F :l driver 3 32-22. . que va Fiswra 32-23 Circuito hasico de ~~plicación IS4 71F rfd En este circuito para estabilizar la teilsibn de alimcntrición es recomeiidable concctar un condensador de iiltt-o20.33pF. cntre Vcc y GND cerca de1 dispositivo. 32.8 BUMPERS Los detectores de obstáculos mecánicos son unos dispositivos que abrcn o c i e m i uno o varios circuitos elictticos. En el mercado existen innumerables detectores mecáriicos como pueden ser pulsadores, interruptores: sensores dc presión, boyas para controI de iiivel de agua, etc. Nosotros tratareriios de los finales de carrera que en la robótica convencional y micicirobótica reciben el nombre de bumpers {figura 3-23). Los burnpers como puede verse en el diagrama de su represcntaciiin eléctrica. es un conmutador que cambia de posición al realizar la presiiin necesaria sobre la lámina de metal que liacc de brazo de una palanca de primer orden que a su vez activa u11pulsador que dispone de un miielle de recuperacih. Se comercializan burnpcrs con diferentes
  • 552. S36 MiCROCOmOLArXIR P1Cl bFS4. DESARROLLO DE PROYECTOS O RAMA Los urtrason i ci pero dc fsecuencia humanas. Los dctcc: mediante un dispos, O - algUn ob-jeto. ri tni Activado (A) tiempo quc tardan 6 objete sobre el que P Final de carrera Representación de un final de carrera EL S1 Figura 32-24 Final de carrera de tipo Bumpq Ltd ( w ~ ~ . T o ~ [w.sul>en AI activar el brazo de la palanca, el temhal común C realiza un contacto elktrico se encuerim con el t m i n a l activado A. Cuando no se activa la palanca el terminal C estñ en contacto su bajo consumo y g r con e1 t m i n a l dc reposo R. 32-26, En temas anteriores se ha utilizado siempre sistemas a n t h b o t e softwaTe para los pulsadores. Un sistema antirrebote hardware se muestra en la fgum 32-25, se mta de un flip flop M que presenta en las salida Ql y Q2 unas seiiales complementarias. En el estado de reposo la salida Q E tiene un nivel alto y la salida 4 2 un nivel bajo y al activar e! final de canera la salida Q pasará a tener un nivel bajo mi-? 1 que la salida 4 2 pasad a nive1 alto. Este sensor fui hacer la medicibn. S I anchura del piilso de 1 El scnsor SR1 emitidos viajan a la z Figirro 32-25 Conrxión delfinal de carreraa trm& $E un circuito antimebofe reflejado y captado íil incorporado cs emitir
  • 553. 32.9 DETECTOR POR ULTRASONIDO SRFO4 Loi; ultrasonidos son vibraciones del aire de la mislila naturaleza que el sonido, pena de frecuencia superior a l s 20 H-k por lo que no son audibles por los m o humanos. Los detectores de obszacuIos por ultrasonidos emiten pulsos de ultrasonido mediantc un dispositivo transmisor, cuando las ondas ultrascinicas se reflejara sobre algún objeto, a tmvés de una cápsula sensible se captan los pulsos reflejados. El tiempo que tardan en volvcr los piilsos reflejados es proporcional a la distancia del objeto sobre el que se reflejan. EL SW04 es un módulo de sensom por ultrasmidos, desrtrro!lado por Deiwrrrech Lrd (~w.mbot-electronics.co~uk) comerciali;rsido en Espaiia por Intpluc S.L y ( w w w . s u ~ m o h o t i c a . ~ ~ ) ,es capaz de detectar objetos y calcular la distancia a la que que i eléctrico se encuentra cn un rango de 3 a 3 M cm. De muy pequciío tamaño, el SRF04 destaca por 1 contacto s bajo consiirno y gran precisión. Su aspecto fisico y conexiones se muestran en la figum u 32-26. e para los Canexlones del rata de un SRFW ias. En el activar e 1 2 pasad a t .5llrnanlsd4n ?N - Z Salldn Eca - 3 E111rada Disparo Aspecto fisico Cencxiones y vista postcriol Este sensor hncinnn por ultrasonidos y contiene toda la electrónica encargada de hacer la medicion, Su uso es tan sencillo como enviar el pulso dc arranque y medir la anchura del pulso de retorno tal como se muestra en la figura 32-27. El sensor SW04 fiinciona emitiendo impulsos de uftrasonidos, Los impulsos emitidos viajan a la velocidad del sonido hasta alcanzar un objeto. entonces el sonido es reflejado y captado de nuevo por el receptor de ultrasonidos. Lo que hace cl controlador incorporado es emitir una ráfaga de impulsos, a continuacibn empieza a contar d tiempo
  • 554. 538 MlCRKONTltOLADOR PIC 1 hFM, DESARROLLO DE PROY ELTOS un-MA 3-- -- -- --- --- =" - - - - -. ---- t --' aiie tarda en lle~arel eco. Ente .i e m m se traduce en un nulso de eco de michura - - - - - - --- - J;.-,.-+~I n* proporcional a la distancia a la que se encueiitra el objeto. Pulso de Disparo 10 uS Mínimo Entrada Pulso ds Disparo '1 11 U Impulsos ultra<anicos I IPermita un retardo de 10 mS desde el final l 1 Rafaga sónica del Pul- o de Eco y el COmlEriZG del Pulso de ! II ----- 01 d~crla cancni u. u-, Disparo [/ I U Nota E l P u l s o ds Eco d - u > NC Iidr Z E Pulsu de Salida de Eco - - - Figura 32-2 7 Diagramar de iiempos del SRFO4, (c¿~rfe~..iLi ica.com) de www.srtp~rrohof La relación entre la distancia medida y el ancho del pulso se muestra en la tigura 32-28. Por cada centímetro de distancia la anchura del pulso se incrementa en 60 p, siendo el rango de medida ihlida entre 180 11s y 18 m, correspondientes a 3 y 300 cni respectivama te. 1 i .************** 3 4 5 6 - - - - - - - *- 258 259 300 DISTANCIA (cm) 1 ------.- .L ; Para el control I ; lhea RA3 que ; sensor se ponga r ; uitemrpciones po ;S e g u i d a m a se I ANCHURA ;centirnms. 0,lO 0,18 0,24 030 0.36 17.68 17.94 18,00 36.110tPULS0 ( m s ) I IF' MlNiMo I I l- ..,- ,. _nniurn n~ ." -- --A ...--.-,i n a q ~~n MAXlMO I I .. , D- , A-A- I V I L-Ua bGl L . IU W . - , L. ; En este programa Figura 32-28 Relación entre la distaticio »tedida y la unchuua de pulso i : ZONA DE DATi I Una aplicación típica puede ser un medidor de distancias, como el de la figura 32- -r n M 29, donde en el display se visualiza la distancia desde el censor a un objeto. I LIST I iNCLUI El programa Sen~or~Ultrasonido~O1.asm, piiede utilizarse para comprobar d C8UIC funcionamiento del sensor. La técnica de programación consiste en mandar un impulso a I Distancii nivel alto de disparo con una duración minirna de 10 ps al pin 3 del SRFO4 (entrada ENDC
  • 555. Rh-MA : anchura disparo). Después se lee el pulso que sale por la patilla de ECO pin 2 y se mide su longitud. que es prcipiircional al eco recibido. retardo de le sl 6nal e Eca y el le1 Pulso de . ila figura en 60 ps, y 300 cm .*kli**O*iT~U**L***O#*******i**,**SeIISM - uaoniJo - +*****~"+C*~***,VU**I**~ ; Programa para un medidor & dismclas hasta un objeta utilizarido L.erisoíporuhmonido SRF04. ;Para el control del semar en primer iugar se genera un pulso de 10 us a mvei alto por la : línea que se conecta a Ia entrada de di~paro m mSeguidamente se espera a que m el del s . ; aensor se ponga un nive1alto en la salida ECO que se conecta a la liea RA4 y se utilizan Ips ; interrupciones por desbordamiento &I Timcr O para medir el tiempo que está en alto el pulso. ; Segudmente se v i d i z a en el módulo LCD el valor de Ia distancia hasta al okqeto e x p r d m ; centimfms. ;Por cada mú& de distancia al objeto el SRF04 aumenta 60 ps la anchura del pulso. tr u ; En este programa la distancia minina es 3 ctn y la mixima 250 cm. CBLOCK OxOC Distancia m i
  • 556. 540 hIICRKONTROLAWR PIC 1 hF84. UESARROLI.0 DE PRO'rT.C'TUS #DEFINE Diqm PORTA,3 ; Disparo para iniciar la medida. #DEFINE Eco PORTA4 ; Pulso cuya anchura hay que medir. MinimaDis!ancia EQU .3 MaxbDistaacia EQU ,250 TMROCarga~crm EQU 4'27' ; Valor obtenido experimenttilmente con la ;ventana Stopwatch para una interrupción del ; Timer O cuda M) p. Si no mide correctzmciitt pir las tolemcias de los componentes M d ; que hacer un a j e fúio de este vator, comprobándolo wbre Ias condiciones reales. ORG O goto Inicio ORG 4 goto Serviciointemipcim M-jeDistaracia DT " Distancia: ",OxOO MensajeCentimetro DT " cm", 0x00 ; V i s W la d hfmsajjeDisranciaMenor I ;visualizmrrm DT 'mist. MENOR de:", 0x00 ;Ycuandom McnsajeDistanciaMayor DT "fist.MAYOR de:", 0x00 ;Si la distancis 4 1 LCD-Inicializa bsf STATWS,RPO kf Disparo moy bsf Eoo subu mwlw b ' m ' ; Prescaler de 2 para el TMRO. bth movwf OPTION REG bcf STATL'S~PO ~ D :úticializa línea de disparo en bajo. sub1 btfsr clrf Dic(arrcia ; Iniciztli el registro. ! m bsf Disparo ; Comierw el guiso de disparo. cal1 Reiardc-70micros ;Duraciún de1 pulso. DisrauciaMayt bcf Dispara ; Final del pulso de disparo. mov m=x~Eool mov btfss Eco ; Si E C M , espera el flanw be subida de h &al mov @tu ESpera-Ec0-l ; de salida del censor. movlw TMROOCargadOmicros ; Ya se ha producido el flanco de subida m M W O ; Carga el Timer O. rnoviw b'10100000' ;Auton~a iriterrupcibndel TMRO (TOIE). mv movwf MCON mov mOY ; E s p flanco de bajada de la s d a i de la salida gota Espera-Eco-O ; del S W . Ds~caib ilniFai clrf NCON ;Se ha pducido d h c o de bajada. Prohlbe intemp. m cdl VisuaIiza ; Visualiza la distancia. VisurilizaDim
  • 557. call Reíardo-2s ; Espera un tiempo huta la pr6xima medid& Fin gota Principal - Subrutina"S&cioIntmppioa" - ------. - - ; Se ejecutadebido a l peticibn de interrupción del Timer O cada 60 ps que 8s el mCmento a del ; & la anchura de pulso por centímetrode distanciamedido. La variable "Distancia"contiene el ; valor de la distancia espresada en centímetros. ServicioIntmpcion movlw TMRO-Carga60micros ; Cwga el Timero. movwf TMRO movlw . i ; Se utiliza insmicciim "addwf",en lugar de "incf' &lwf Distancia,F ; para posicionar flag de Carry. mvlw MaximaDisimcia ; En c m de desbordamiento carga su máximo valor. btfk STATüS,C movwf Distancia bc f MTCON,TOF rdie ; Visualiza la distancia expresada en centimetros. Se t i x e de manera que niandohaya que ; visiialitar un nírmero mayor de 99 las dwenas siempre se vimialicen aunque sean cero. ; Y cuando sea menor de 99 Iasdecenas no se v i d i c e n si es =o. ; Si la distancia eu menor de 3 cm o tnayor de 250 cm apmcc un mensaje de emir. Visualita can ; Borra la pantrilla antsrior. movlw ; Va a comprobar si es menor del mInimo 8drnisblc. subwf :TW)+istancia)-Minimaatancia btfss ; ;C=l?, ¿(W)positivo?. i@istancia)rMinimaDi~ia? goto ; No ha resultado menw. y salta al mensaje de error. movf : Va a comprobar si es mayor del máximo sdmisible. sriblw ; (W)rMaximaDistancia-(Distaricia) btfs ; ¿CeO", ¿(W) negativo?, &laximaDistancia~istancia)? goto ;No,la medida de la distancia entra dentro del rango. MaximaDistancia ; La distancia es rnayw que el &o movwf Distancia movlw MensajeDistanciaMayor goto VisusiizdXstancia DistanciaMenor niov1w MinimaDistmcia ; L distancia a del ir~enor minimo fisble. mowf Distancia movlw MensajeDiutanciaMenor ~iisual~Dis~c~~ DistanciaFiable movlw VisuatizaDisimcia
  • 558. 542 MICR(K0NTROLADOR PlC16F84. UESARKOLI .U DE PROYEflOS 0 KA-MA ! ', caIl LCD-Mmje rnovlw .S : Centre la metida de la distancia m la segunda llnea cal1 LCDLPosicionL~ ;& la pantalla. movf DistancikW 4 1 Bi'Na-BCD : im pasa a BCD. mvf BCD-Centem~W ; Primero lai centenas. btfss STATi JS,Z ; Si mc r no vislializa las centenas. ea gota VisdmCentenas mcst-f DistanciqW ;Vuelve a recuperar este valor. d i BIN-a-BCD : Liopass aBCD. d i LCD-Byte ; Visualiza las decenasy unidades. gota Visuali~a-cm VisdizaCentmas cail LCD .NitibIe ;Viwalim las centenas. movf Distancia,W ; Vuelve a reci~perar vaior. este d cal1 BIN-a-BCD LCi-ByteCornpleto ; Lo pasa a BCD. ;Visualiza las detenas r a q u e sea cero) y : unidades. ¡ C movlw MensajeCentim- csll LCD-Mumaje rem INCLUDE <REtARM)S.INU I La mb INCLUDE <LCI3-4BR.lNO INCLUDE -=T.CT)-MENS.IND eleckbnica. H Un sensor con mejor resolución es el SRFO8. Se trata dc un niedidor de distancias por ultrasonidos para robots con conexion I2C. Tiene un alcance de 6 m y un consumo de Para ul 35 mA activo y de sólo 3mA en reposo. Gracias a su bus 12C se pueden conectar Imta 1h sobre una a unidades con s8lo dos líneas de entrnda y salida, permitiendu montar un completo sonar cxperimental, perimetral en cualquier robot Únicamente con dos pjnes libres, Como valor dadido, conocimientos incorpora iin scnsor fotoeléctrico que indica el nivel de iluminación a traves tamhikn del ‘-trasto", el le bus IZC. Su precio es aproxiinadamenteel.doble que el del SRFW. como hito lir 33.1 INT niveles, cada rnicrombot. E: a Nivel único capac
  • 559. segunda l h CONSTRUCCIÓN DE UN MICROROBOT La robótica es una de las aplicaciones m s apasionantes de la electranica. Hasta á hace poco tiempo había que ser todo un experto para poder adentrarse en esa rama de la electrónica. Hoy en día, gracias al imparable avance de la microelectrónica, tio es dificil construir un microrobot, denoniinado también microbot, qiie es un pequeño robot de investigacibn que nonnalrnente se controla con un microcontrolador y que esd diseñado 3r de distancias para realizar tareas concretas. un consiuno de Para un solido aprendizaje, sc van a desarrollar las explicaciones de este capitulo lnectar h a ? a 1 6 sobre una aplicación real. Vamos a detallar la conssucción de un microrobot :ompleto sonar experimental, a partir del cual, el lector pueda desarrollar toda sus habilidades manuales y valor añadido, conocimientos de mecánica y electrónica. A este micromhot experimental le llamaren~os es también del "Trasto", el lector puede introducir todas l i s mejoras que sea capaz de idear, poniendo como Unico limite su imaginacion (y presupuesto). Al plantear la constniccion de un microbot es interesante conocer la clasificación que hace la empresa Microbotica, una de las pionera? en este campo en Espaiia. Esta clasificación esta basada en la Torre de Bot o TorreBot (figura 33-11, que tiene seis niveles, cada uno de los cuales diferencia un paso en el diseño y construcción del microrobot. Estos niveles son: Nivel físico. Comprende la estructura física, las unidades motoras, y las etapas de potencia. Es posible encontrar desde sistemas sumamente sencillos basados en un único motor hasta estructuras sumamente complejas que buscan emular las capacidades mecánicas de algunos insectos. -A
  • 560. 534 MICROCOW.I1'ROLA~CiR 1hF84 DESARROLLO DF. PKUYE(:TílS PIC <, IL-MA 4% KA-.UA -- Nivel de reaccihn. Está formado por cl ccinjunto de scnscrrrs y los sistema? Nive básicos para su manejo. Estos sensurcs cubren un amplio margei dc I con11 posibilidades, así podenios encontrar desde simples bumpcrs (finales de carrera), cono hasta microcaii~arasdigitales con sistcitias de rcconociiniento. Un microbot que coop haya superado cn cuanto a su coilstnicriiin tanto cl nivel fisicn como el de PnPU reaccibn, se denomina microbot reactivo. Estas unidades trabajan cuiiipl iendo la premisa, "acci6n-reaccioii". En estc caso los sensores son los propios En estc contr»ladoresde las iinidadcs irlotoras, sin ningún tipo de control intermedio. Nivel 6 Nivel 5 un motor p Nivel de Inklgencia Nivel 4 mcrcatlo. Nivel 3 1I ~ i v e~ l s l c o l 1 Nivel 1 son los que S revoluciones apropiados p Nivel de control. Iricluye los circuitos d s básicos quc i'elacionan las salidas de los sensoriis Con las restantes unidades. Partiendo de una simple lógica digital y llegando hasta potentes microcoritroladorrs buscan dotar al rnicrobot de la capacidad para procesiu L infonnaciói~ a ribtenida por los serisorcs asi coino actuar de una manera controlada sobre las uiiidndcs motoras. ~n los 1 Nivel de inteligencia. Abarca la $ir1ificaci6n a largo pluo. En csie nivel se o la posibilida introducen los cibjetivcis dcl microbot qrie tienen relativa indepei-idenciri de los redirctorcs. qu 1 sensores. Este es cl nivel más alto dc iiiteligcncia quc puede alcanzar un inicrobot microbot cnn l corno una utiidad iridividuat. de algunos dc I Nivel de comunidad. Se trata de la puesta en hiicionatniento de más de un microbot dentro de iiti tnismo entorno de forma ximultliiea y sin que ninguno dc I ellos tenga conocimientos explicitoq dc la existencia de otros eii su mismo En mic entornci. A estos rccintos sc los dtmomina granjas. Los centros de invcstigacibn radiociititrol. 1 utilizan 1 s granjas conio entomiis de observación de los microbot. Dichos - . estudiado en e establecimientos pucden contar con sistemas sufisticados quc permitan a u 1 1 operario monitorilx el coinpcirtarniento dc la comiinidad asi como alterar las Estos S condiciones externas dcl sistema (agregar obstáculos, cambiar la terriperatiira. constmcción 1 etc.) trasladar cibjei mutti tud dc a(
  • 561. histemas Nivel de cooperación. Comprende los sistemas doildz a partir dc iiii nivel cle 3rgc:cn de comunidad se planifican o programati Icis microtiut para quc icngan :carrera), conocimiento Q la ewistcncia de otros, dc inarizra que posean la cqacidad de robot qiie coopera1 para el huzii desarrollo de uria tarea. Deiitro dc este pip estarian los mo el de populares equipo:, de fútbol constitliidcis por rnicrcirubots. ~iliendo la propios En este capítiilo vamos a cunstruir un robot quc 1leg:ira hasta el nivel dc control. dio. 33.2 NIVEL F ~ S ~ C O . MOTORES Dentro dcI nivel fjsico comenzarelnos a hablar de los motores. A 13 hora dc elegir un motor para aplicaciones dc microbiitica, debemos tener en cucnta que cxistcn varios hctorcs como son 13 velocidad, el par, el frenado. la inercia y el niodo de ccintrol. Si lo que queremos es utilizar un motor de cot.iientc coiitinua cxisten varias posibilidades en el mercado. 33.2.1 Motores de corriente continua de pequeña potencia Denti.0 de la gran aricdad de tipos existentes en el mcrcado los tilis economicos son los que sc utilizan en alguncls juguetes. Ticneti el inconveniente dc que su niimero de revoluciones por nimuto es muy clei*adoy sil par cs pequeño, lo quc no los hnctl rnuy apropiados para la ccin5mcciiin de un nitcrubot si no be iitilizan rediictoras adicionales o salidas de un sistema dc regulación electrbnico. . digital y lot de la nio actuar 33.2.2 Motores de corriente continua con reductoras Eri los juguetcs como ,tl(~c.rrno I,cp podemos cncuntrar motores con rccluctoras y i nivel se o la posibilidad dc constniirlus. TarnbiCn podemos encontrar cn cl mercado inotijres con :ia de los rcdiictoies, que adernas de disminuir 1;i lzlocidad le dati más par, lo que permite mo tir e1 microbot microbot con su cstructiira y batería quc pruporcionalmente pcsa muclio. Las fotagi-afias dc algunos dc cstos motores se rnucstran en las figuras de la iabla 33-1. .as de un 33.2.3 Servomotores nguno de u inismo En micrnbótica se suclcn utilizar los n~isnicisservoiiiotorcs que en inodclismo y ~stigacioii radiwontrcil. Sc trata de unos motorcs con iin circuitci electronico. ccinio los que si: Iiail . Dichos estudiado en cl capitulo 3 l. tan a un .Iterar las Estos senuinotores cumlilen las características que los Iiacen ~ ~ S ~ I I L ' para la US ipcratura, coiistrucción dc nuestro microbot, conici un bucn par de salida, potencia suficiente para trasladar objetos o uno hcitcría, baja inercia, capacidad de niovcr 3,5 K g I; cm, incliiyrn
  • 562. s66 MICROCONTROLAWR PIC 1 @M.DESARROLLO DE PROYFCTOS Q m-MA CRA-MA esñuctura plana al ir dentro de una carca- de plástico rectangular m w p d e s para fijar los rornillos. De hecho la opción que hemos elegido para la mstmcci6n de nuestro h s S microbot "Trasto" ha sido utilizar estos servomotores como elementos motnccs. de girar conici como es reqlicr las que estin restricción vic * m w h~icos quo l :.-M -. 2.- Motor reductor dc relaciciri 194: 1 con doble eje Motor con reductor dc relacihn 17:1 can circliito cleclrcc por In tanto, motor de DC c Quitar c1 tornit bi 2,4x6 mm, tensirjn de h b a j o 1,5V-12V doble eje de 44x20 rnm, tensión de trabajo me&? mcton 13-t2Y que es eskiao s a c d a despub. I ...+--. - -L. . Motor rcductor de reiacicíti 23: 1 crin doble eje 4 ~~o~ mludor reIaicj6n 10:1 con doble de Sacar tos CM 4x40 mm,tensibn de mbaio 1,5 V a 12 V eje de d 2x20 mm, tensi6n de trabalo 1,SV- posterior. Al Ii 4,s v circuito clcctrt esti metido a TabFn 33-1 Tipos d~ mororc~ C.C. comevciu~es redtcroras de con hay que extrae7 del potenciam Pata pder utilizarlo en nuestra apIimci0r1,un servomotor debe ser "mcado"p engranajes que quc e cjc dc3 motor pueda girar 30s 360 " ya que normalmente giran entre hasta 180" ó l quc hemos ahie 270". dependiendo de los fabricantes. 1 33.2.4 Madifiicacidn de un servomator En es El ""tmcar" servomotores los hará inservibles para su use en las aplicaciones los de la . t tipicas dc radiocontrol, ya quc se convertirá en un motor de comiente continua con una reducir la ~ifelo caja reductorrt, pero desde luego p m nuestro fin no tiene ningún problema potcncia y par ( Seguidamente se miiestran los psos a seguir p a n convertir los scrvomotores en motores de corriente continua con iina caja reductora. La mayor parte de los servomotorcs son similares, nosotros vamos a modificar el modelo HS300B de la m a , Hitec que es muy similar al Fiitaba S3003. ! 1
  • 563. tes para fijar i de nuestro L serv~mtom oigal m de 3VU ~~pccs . ..- - .- . .. - .. de girar como mucho entre 180" y 27W, -K 3. como es requerido en las apbcaciones para - '~ I í ~ qqueestán riensados inicialmente. Esta restriceitjn lpuesta Fmr unos t o v s : mecánicos que limi tan el gilm a 180"' y un . circuito elscmnico. Si eliminamos las dos . A cosas podeirnos con!segiir el 1giro de 3 60" Y. I 1 por lo tanto, que sc comporte con10 un .- b motor de DL con caja d u c t in. m , - w! Quitar el tcirnillo qii e sujeta el soporte de la P- - - - - rueda tractosa uniaa solidariamente al eje, 1 . que es estriado, F sacarla dccptiks a pr ' "' SI - - - .- - - con doble Sacar los cuatro tomillos de Ia tapa ihjo 1,5V- posterior. Al levantarla, se puede ver un . circuito eIectaónico que en nuestro caso está metido a presjiin, para pdcr quitarlo hay que extraer el EomilEo que sujeta el eje del potencihmetro por 1 partc de los 3 ricado" para - " enmnaies que están en la cara muesta a la iasta 180" ii qlie hemos abierto. 1 l . . . - . En esta figura se aprecian los engranajes m a h -. iplicaciones de la etapa reductora cuya misión CY; ua con una reducir l velocidad del motor y dar mayor a .. potencia y par de arnnqiie al sistema motores en rtc dc los l e la marca
  • 564. -54% MlCROCONTaOLADOR PlCIóF84.DESARROLLO DE PROYECTW RA-MA - Volver a moi [ rniicho cuidado de no pcrder ningina de [ -Y caja reductor cllas. prestar atencion al pequefio eje que no confundirr hay entre las niedas intcrniedias, cn no fomqr ni1 algunos modelos de servornolores es .. Y- - manen niic mtivil. en nuestro caso está fijado a la tapa supeior. carcasa. Con ayuda de unos alicates de nnest 1-0caso piinta plana quitar ahora la tlicrca que eje de ias ru 1- E-- h. 1 sujeta el poinci6rnetro. l- - está t - Proceder a desmontar la placa del circuito At~nriiiar i i i u impreso y e potcncibnietm ayudandose l aconsejable 1 con un destornillador para hacer un poco cables dcl rr de palanca. interior para cl caso dc tira i - al motor para desprenderlo del circuito impreco. Hacer lo mismo mn los cables En todo c la meda dentadc g i ~ cconectan el exterior a la placa del ocurrc muy frec circuito impreso para poder reiitilizarlos. la meda. sc pu Seyidamcntc conectar e rijo al terminal l conveniente inl con el punto roio y el negro al otra. cl separado cri tien tercer cable no sc iitiliza. Pues bic deberemos hacc Ahora eliminar el lirnitadot mecánico, que consiste en una pestal'ia de la rueda dentada. para ello utilizar unos alicates de corte tal y como se muestra en la figura. Para tijñi Usar una lima peqiieña si hay que eliminar prbximo apnrtai algunos restos dc la pestaña. Tener miicho hacerlas nosoM cuidado para no romper la mcda porque el ' scniomotro sc volveria inservible. Si se util han mostrado li carca= rednnd: el tubo dc las in
  • 565. Volver a montar las medas dentadas de la caja reductor% fijándose en In tigira para , no confundirse, y tener mucho cuidado de no fomar ninguno de los en_majes, de manera que no puedan deteriorarse. La tapa superior debed entrar sin forzarla. en nuesm caso hay que tener cuict~do elcon eje de las ruedas superior e infcrior que estA en la propia A- Atornillar nuevamenre 1 tapa inrenor, es n acorasejablc hacer antes un niido en los =Mes del motor y dejar el nudo en el interior para que proteja las soldaduras en el caso de fimr del cable. - Tahln 33-2 Secuencicl paro rransJomas un .rwvomotoi. en mo, En todo este procesa, el momento mis delicado es Ia elitninaciiin de la pestafia de la meda dentada ya que si no se hace con sumo ciiidado la mcda se ptiede partir, caso quc ocurre muy frecuentemente. Si abn con todos Iw avjsos quc se le estarnos dando. r o m v la nida, se pucde intentar pegar con un pegamento de contacto. En cstc punto. es conveniente informar de que estas medas dentadas también se pueden conipmr por separado en tiendas de modeIisrno y radiocontrol. Pues bien, ya tenemos uno de los motorcs preparados pwa niimm mimbot. deberemos hacer lo mismo con el otro para tener la pareja necesaria. 33.2.5 Fijación del motor a la estructura Para fijar cl motor a Ia csmtcttira de nuestro microbot, que describiremos en el priiximo apanado, tan sÓIo tendremos que ~orisegir unas escuadras c m unos taladros, o hacerlas nosotros mismos con un trola de aluminio y la aytida de un tornillo dc banco. Si se utiliza cualquiera de los otros tipos dc motores de comientc continua que se han mostrado la fijación al chasis pucdc ser mis o menos compleja. Si el motor tiene una cascasa redonda, que es lo normal. se puede utilizar una grapa de lac utilizadas para fijar el tubo de las instalaciones cléetricas de supcfieie, tal como se miicstm en la figura 33-2.
  • 566. w 55O MICRDCONTROLADOR PIc'l hFP4. DESARROLLO DE PROYEcrOS Un eje 1 de la empu donde pvdem impreso de P alqada una b: ana Para la cunsiru~xi0nde tlurñirrv microbot piemos utilizar rnucl~os tipos de estructuras, que dependerhn de la fi~nci0n quminos realizar, no es lo mismo diseñar que un rbot bípedo quc ~ i n mstreador a un hexiipdo. 33.3.7 Estr Unas de las estructurac más utibzadas es la de los juegos educacionales de construcci0n tipo Lego, ~Mccano Eifech, intmsantes por su flexibilidad. Para un diseño o un poco mrjs profesional se pprreden utilizar las ntructum de los Fi.~cherTechnik que k o n disefiadas originariamente para aplicaciones técnicas tanto estáticas corno de micas con movimiento (figura 33-3). Para el microbot expt por ejemplo incluso pucdc
  • 567. Un ejempb de estnrctura realizada con un Mecano es el caso del microrobot Pivot- 1 de la empresa Microgsdazs Engineering. En la foto qne se muestra en la Figura 3 3 4 , donde podemos ver cómo sus disefiadares han integrado hábilmente la placa de circuito impreso de mnhE en la estructura mecánica y jiistrtmente debajo de él se encuentra alojada una batm'a de plomo de 12?y 0.8 mA%. tipos de io disefiar 33,3.2 Estructura del rnicrarobot experimental "Trasto" corno de Para el caso de nuestro mlcmbot, que no debe salvar absdciilos y que sed un rnicrobot. expetirnental de bajo coste, d e m o s utilizar una estructura más sencilla, como p r ejemplo un trozo de metacrilato, poliestireno, PVC, placa de circuito impreso o incluso puede servirnos la caja de plástico de i Coinpact Diycs. m 33-5 Estructirra del rnicrohot "Trasto" Figi~ro I
  • 568. Eri nucstro caso vamos H utilizar dos placas de poliestireno blanco dc 180 x 13,5 DIRECCI~ mm, pero piieden utilizarse otras mcdidas. Se utilizan dos placas para poder poner las Ruedas de batctías en el piso inferior y el circuito de control de los motores y scnsores esi el superior (figura 33-5). 33.4 NIVEL F~SICO. RUEDAS 33.4.1 Estructuras segun la colocación de las ruedas Los microbots utilizan Jus tipos de niedas: Ruedas irioiiices o dc traccibn, qiie cstán corizctadas al inoior mediante un cjc y &en ser Capaces de adaptarsr: a Los obstáculos del terreno. Ruedas "locas". que deben ser capaces de rodar y liiwtar sobre si mismas. La ruedas sc piieden colocar según alguna de las estsucturas indicadas cil las figuras 33-6 a 33-9. La configuracion adoptada para iiuestro microrobot experimental ha sido la corrcspondientc a 1;i figiirn 33-7 que permite un control mis sencillo del sistema. E S T R UC TU R A D E COCHE E S T R U C T U R A DE T r a c c i ó n y d i r e c c i b n en NUESTRO MICROBOT Las rue das ruedas moviniisnto li contrario es pc I Rueda Loca F i p i m 33- 6 Es!n4ct~ira c:oclrc tipo Figitm 33- 7 Paru rnict.nhot Truslo Las sol ciptado por la pacias a una : cualquier fem
  • 569. 180 x 13,5 DIRECCI~N DIFERENCIAL ESTRUCTURA DE ?r poner las Ruedas de tracción TRIC1CLO 1 el superior .nte un eje y mas. :adas en las crimental tia Figwra 33-8 Con direccirin difirencid Fipm 33-9 E.striictrrn dp triciclo *1 sistema. 33.4.2 Ruedas "locas" Las ruedas "locas" deben scr capaces de d a r y pivotar sobrc si misrnas con I - movimiento lo tnás suavc posible pam no dificultar la rotación (' - contrario es posible que se bhtoqucc y patine. Fig-um 33- 11) Ruehs "Iocrzr"cwr r mrlm lentos Las soluciones para este tipo de d a s pueden ser muchas. Nosotros hemos optada por las de la figura 33-10. que son niedas que giran libremente sobre su eje gracias a una peqiiciia plataforma con rodamientos,Jaspdcmos cnconimr fácilmente en cualquier ferretería, ademhs hay un _san surtido de ellas en lo referente a mrnañcis, Otra
  • 570. MICROCONTROLAWR PlC 16FR4. DESARROLLO DE PROYECTOS i 5?d r un-VA r opcibn podn'a ser utilizar la bola de un mil-on de desodorante, a la que se le adapta un eje acabado en un terminal pam fijarla a la estnictrim. Er hacen mcivimie; L i einr los
  • 571. R4-!iA t> K4- M A C'APITUIO 33: (:O'IS-~RL~C'C'ION UN MICRUROBVT DE 555 d p t a un eje 33.5 NIVEL F~SICO. MOVILIDAD I i La cstruct~iraque hemos clegido para nuestro iiiici-obot nos pemiitiIá realizar tnovimientos hacia delante, hacia ñtrris, giro a la derecha, a la izquierda y sobre si mismo. N I c un jug~etc 1 en enconw,ir :undaria para I ichci o de uri 1 ! 1 ntcs hay que ruedas, para i iiie de S!ípcr 3ara fijar las 8 , F i ~ ~ k m 12 Mo i~intierrtuhucia delunte Figura 33- 13 Moilir~lit'rito 33- hacia atru.~ En la tigura 33-12 se mucstra como se realiza wi ttiovimiento hacia delante. Se haceti girar los dos motores en la misma dirección hacia delante, esto provoca un - - movimiento rectilíneo, siiponiendo que los dos motores sean exacLm.icnte iguales. La figura 33-13 reliresenta la forma de realizar el mor,irniento hacia atrás. Se hacen girar los dos iiiotores en la misma dirección hacia atrás, esto provoca uii movimiento ~ectilineo,supiitiicndo que los dos motores scm exactaiiziite iguales. - - 1 I Giro a la derecha Giro a la izquierda Figum 33-1J Giro en ,spnti& hora,.io F ~ L U33-15 Giro LJ /U iqzkierd~l ~U Por su parte la figura 33-14 muestra la forma de realizar un moviniiento de giro a
  • 572. 556 h4ICROCOYTROLADORP1C 16F84. DESARROLLO DF PROYECTUS c RA-t.44 La figura 33- 15 indica cbmo realizar un movimieiltn de giro hacia la izqiiimda. Se hace girar el motor izquierda hacia atrA.5 y el motor de la derecha hacia delantc, esto -4 r: D.-hiA provoca un niovimicnto de giro a la izquierda de la estructura. Figura 33- 16 .Movimiento de giro SObre su propio c . j ~ El movimiento de giro completo sobre sii propio eje abarca tina superficie i~iuy grande que no hace la estructum. isuy adecuada para moverse en recintos muy pequeños (figura 33- 16) como podrín scr cl caso dc movi tiiiciilvs e11 pruebas de laberintos. 33.6 NIVEL DE R E A C C I ~ N Como decimos al principio de este capitulo. este nivel esta formado por 10s sistemas electrónicos y sensoriales básicos para su control. Vamos a realizar seguidamente un sistema de control pam construir un microbot reactivo, gobernado por el rnicroconwolador PIC16F84h, qiie sca capaz de seguir una Unea niigr;i sobre un fondo blanco. A este tipo de microbots se los denomina rastreadores y probablemente son los m i s sencillos para introducirse cn e! mundo de la riiicrorobiitica. Para fi adyuicicion e La figura 33-17 muestra el circuito eléctrico donde se aprecia quc los sensores utilizados son infmrrojos reflexivos del tipo CNY70, descritos en el capíhilo anterior. Para 1 Para controlar los niotores utilizmios el driver L293B explicado en el capitulo 79. i ~ üroco~itro c la ventaja d
  • 573. < RA-MA RA-M.4 :quierda. Se elante, esto G@AEN SENTi30 HORARIC. REO = "1" MOTOR RüO = "Y.hlOTORG ñ A EN SENTOO ANTIHORARIO RB1 ="O'. IhHABILITA DRlVER 1 Y 2 M T O R I PARADO RB2 = '1" H481LtTA ORIKR 3 Y P RB3 = Y". MOTOR G R . EN S E N T W HORARIC,. R83 = D".MOTOR W R 4 EN SENT DO AFIllHOPARIO. :rficie miiv y pequeños s. do por los - DETECTA BWNCO --r TRPNSISTOR SATURAD3 d ENTRADA AL INWRSUH W' --> HA = " 1-. - DETECTA NEGRO -> TRAVSISTOR EN CORTE a ENTRADA AL IhVERSDR '" --> RA = "O* 1 a realizar 51 E N RAO t Rkl HAY UN "?'ESTA FUEW M L A C l f l E A Y CON W" DENTRO DE LA LIHEA. do por el : un fondo nte son los Figwu 33-1 i Ca'rclri/ot'I4ciricti del hficrobot "TRASTO " Para tijar los sensores heuios utitiaado una cinta adhcsivn por !S dos caras. de fácil S sensores adquisicibn cn una ferretería. En la Figura 33-18 se aprecia la forma de fijarlos. 3 anterior. I Para poder conformar las señales de los senscires C m 7 0 a la eiitrada del 9. niicrocontrutirdor hemos utilizado puertas inversoras Trigger Schmtt, que ademh, tienen la ventaja de qiie en cl mismo chip 40106 nos encoiitramos con seis inversores. El
  • 574. icionamento y la descripcibn de os dispsitivm se explicaron en el capitulo erior. Como puede apiwcinrscen el circuito dc la figura 33- 1 7: r i e r a 33-10 ryac * Cuando un sensor detecta el fondo blanco, a la entrada de la linca del PORTA al que está conectado F llega un " 1". e indo un sensor está sobre la linca n e-m , a la entrada de Ja línea del PORTA al EII casa está conectado F Ilega un 'V. e que hacer es i i que nresmta cl k 33.7.1 Est Antes di d micmbot, ya S{ fiincion. Dc cst; En pnnci hr;i de diseñar Figura 33-19 Visto laretnl de! rnicrolior Trcritu Primer Al L29I1R le hemos conectado los dos niotures que necesita cl rnicrobot: que el 1 los C i l €1 motor de~echnse encuentn m c c t a d o a los dtivm 1 y 2 que est5n c o mpi nicrocontrolador. cnciieiit
  • 575. . -.< - - - -- -- 7 C ' A P ~ U L 33; CONS 1-KUCC'IOYDE UN MCI1C)KOBC)T 559 ~) - Iln-hl). < ' nd->A -. - itlilili r El motor izquierdri se enciientra cunectado a los d r i v m 3 y 1,qire a su vez están controlados pur las lineas KB2 y Rl33 del micmcontrolador. El modo dt fiiiiciiiiiainiento de lo5 rnotriires se niuestra en 135 tablas 33-3 y 3 3 4 . Tabla 33-3 roitrrol dcl inotvr, de~ttclao Tabh 33-4 Conlrol del m u : izquierdo ~ En caso que 3 montar10 cl motor le gire en sentido contrario. In iinico que ticrie 1 que hacer es inveitii siis cuncxicincs. La iorografía de la figura 33-19 miiestiu el aspecto quc prcscnia el microbot ''Trasto" cebo cl circuito implernentado. 33.7 NWEt DE CONTROL 33.7,l Estrategia a seguir para un rnicrribot rastreadór Antes dc rcalizar cl programa dcbzmos fijar la estrategia que Jebe seguir el inicrobut, ya sea lima qiie se cornportc c o m un robo1 rristreador 0 pala cualquier otra hinciiin De esta riuiierti podren-ios fiar el al~oriimci conixol. de €11 principio parece razonable peitsar en cualqiiiera de las siguierites estrategias a la hora de discfiar-el algor ítnici dc hiii~cioriamiento: Primer .4ignritma. Depcndjcrido de la posición de los sensores podemos hacer que el micrrihcit tome las dccisiunes ~nostradas la f i w a 33-20, En este dibujo en los ~uacirados dc la derrclia e Izquierda indican lectura del s c i w r corresporidic~tte: cs blaiico indica que detecta fondo blanco y si es negro que si encueiipa encima de la lirica nzga.
  • 576. Salida por el borde Permanece sobre la Salida por el borde izquardo. Realizar linea n ra Seguir derecho. Realizar Está fuera de la línea El P girar a la derecha o giro a la derecha hacia d3aite giro a la izquierda a la izquierda continuació cntiende el ( Analizando este algoritmo detenidamente se puede comprobar que no es lo suficientemente bueno. puesto que el seguiiniento de la linea dcpende de la imprecisibn del camino seguirlo por el microbot, es decir, depende de la anchura de la pista. Esto puede ocasicitiar retrasos en el recorrido, cabeceus no dcscndos o incluso que 11egue a perderse. Segundo Algoritmo. En este caso, dependiendo dc la posición donde se ; bianco si encuentra el microbot sobre b Iínea, decidimos seguir urio de los bordes, eri ; - S el sensor I nuestro caso el borde derecho, es decir, la detección de negro-blaiico ; lndependi ; -Sielmi respectivamente por los sensores colocados a la derecha y a la izquierda tal y ; hasta que w como se muestra en la figura 33-21. ; La sedal de los ;inversor 40106 ; Color Blancr + Salida por el borde Permanece sobre la ; (No estienci Salida por el borde EstA fuera de la Iínea izquierdo. Realizar tinea negra Realizar derecho.Seguir hacia girar a la izquierda ; - CoIw Negm giro a la derecha giro a la derecha delante ; (Estiencima Figura 33-2 1 Decisio~res irirrinr seghi el sepndo algoritnru r7 ;ZONA DE DA 0 Robot Raslreador ConfiguracibnPuertos: RA4 RA0 -> Entradas : ZONA DE C ~ ORG Ha salido lnicio por la derecha? por la izquierda' bsf ¿RAO=I? bsf bsf NO clrf bcf Gira a la derecha: Sigue camino recto: Gira a la izquierda. hcipal RB3=1, R02=1 RB3=1. RB2=1 RB1=1, RBO=O RBi-1, RBO=I movlw bcEsi soto Figura 3 3-?2 Diagratnu r i'rflujo dd prugrama del micvnrnhof ru~trmdor movlw b&
  • 577. 1 - - w.4 ~ I A a RA.MA 3 CAP~TLLO < ' C ) ~ ~ S T R U C CD~ N RIICKOROROT 561 37: I f I1N 33.7.2 Programa del rastreador linea El programa quc realiza el s c p n d o algoritino del rastrcador se muestra a iao continuación, es fácil deducir su funcionamiento si hernril; seguido los i-azoriarnientos y se entiende el organigrama de la rigiirri 33-22 - ; Programa de control para el micnibut TRASTO, el cm1 se desplaza siguiendo una lhea negra k la ; marcada ~oii~c blanco a malo & pi.;ta. fondo :Iiiira ;Los sensores iipticuu de reflexibn a y 7 0 están situados en Ia p a delantera inferior del dos U ;mimbot: El sensor de la derecha esti conwbdo ü RAO y el sensor d e la izquierda a M.1. ;El programa adopta la estrategia de seguir la linea por el híirde derecho: ; - Si derecta que esti en el borde d m ~ h osmsor izquierdo sobre negro y derecho sobre : ICse ; blanco sigue en hacia delante. C: en : - Si el sensor de Ia derecha detecia liiiea negra gim hacia la daecha buscando el borde, lanco ; independientementede como estk el sensor de la izquierda. ; - Si el microbot tiene los dos sensores fuera de la Iínra. se le hace girar a la itquierda tal y ; hasta que vuelva a c n c o n ~ I d ~ . s entrddas del micrmontroIador a baves de un ; La sena1 de los sensores CNY70 se aplican a h : ; invavor 40 106 de m a n a tal, que para color: : - Color Blanco --I transistor saturado --> e- n al inversor "O" --> RAx = "1" 3 linea !rda : <Noesti encima de ia Iúiea negra, se ha salido de la pihta) ; - Calor Negro -+i en cortc --> entrada al inverwr "1 " -2 @amistar ; (Esti encima de la linca negra. wta dentro de La pista) - "O. -CONFIG -CPOFF & -WDT-OFF & -PWRTI-ON & - X u S C LIST P= 6FS4A 1 INCLUDE <P16FX4A MC;. #DEFINE SensorDcrecha PORl'&O ; Scnsor optico Dcrccho. #DEFINE C e ~ ~ l ~ u i e r d PORTA, I a ; Sensor bptico Izquierdo. OKG o Inicio bsf STATUS,RFO ; Selecciona Banco 1 de registros. bsf SeusorDerecha : Estas líneas se coiifiguran como entra& bsf SensorIquierda clrf PORTB , Liiu líneas del Puerh B se configuran como salidas. bci' STATUS.RP0 ; SeleccionaBanco O de regish-m. Principal movlw b'OMK!i110' ; P m girar a la derecha. bffis SensorDerccba ; ¿Ha salido por la krecha?, ¿detecta blanco? goto ActivaSalida ;No,el detector derecho c d cncirna de la lima s ; nm gira a la derecha. e movlw b'00000111' : Para girar a la izquierda. btfss Sensorlzqiiierria : ¿Ha saldo también por la izquierda?
  • 578. S AIICROCON I'K0LAI)OR PIC'I 6F84. UESARRCJI .LO DE PROYECTOS G lb MA kovlw b'0000 1 1 1 1' ;No, estaen el bde.derecho. Sigiiz recto. Activasalida Para ci movwf PORTB tipo SFH511( goto Prbcipal figura 32-19, El esquema cc EN¡ 33.7.3 Estrategia a seguir para un robot detector de baliza Nuestro rnicrobot "Trasto" cn este caso debed detcc~ar una señal infi-arroja modulada a 38 kHz que emitc uti circuito como el de la figura 32-20 (capitulo 32) y dirigirse hacia ella. b M1 DERECM M2 IZQUIERDA R1 R* IW loa O 5v r RESEi S : OUT+ tN2 IC 1 T1 PICIBFMA 4011- 1 , - - C 5v 5v 5v 5V 33.7.4 Pro Si se h, SENSOR SENSOR IZQUIEROO fácilmente el p~ DERELUH - - - - ; Programa de oonh ; una sena1 infmrroj F i p r a 33-73 Esquema del i~iict-ubot TTCLTEO lus sensor-es de i~frarrojo,~ con
  • 579. Para conseguirlo añadiremos eil el frontal de nuestro microbut dos sensores del tipo SFH5110-38 montados como detector de sefial infrarmja, se@ se indicaba en la y figura 32-19, y que denominaremos ~ e n s o r ~ e r i c h oScnsorIzquierdo, rcspcctivamcnk. El esquema completo es el que se muestra en la figura 33-23. La estrategia que vamos a seguir es la siguiente. Si los dos sensores detectan la señal de la baliza el rnicrobot dcbcrá desplazarse cn línea recta y por 1 tanto, las dos 0 ruedas deberán de girar en sentido de avance. En caso contiarici se coiii~~izieba sólo el si 1 1 infrarroja ScnsorIzquierdo detecta la sefial infrarroja, en Caso afirmativo el niicrobot dehwá girar a pirulo 32) y la izquierda hasta que el SensorDerecha detecte la señal, por lo yiie la nieda derecha girará c sentido de avance y la izquierda en sentido de retroceso. Por el coiitrario, si m Sensorlzquierdo no detecta el haz infrarrojo modulado se conipnieha si lo hacc el SensorDerecho, en caso afirmativo el robot gira a la derecha. haciendo girar la rueda izquierda en sentido de avance y la derecha en sentido de retroceso, h s a que at Sensorlzquierda detecte la señal infrarroja. Se repite el ciclo de fonna continua. La figura 33-24 aclara los movimientos que seguid cl microbot. Sensorlzquierda senwrlmuierdas n s o r ~ e r s c n a ~ SensorDerpcha e i i r Ikt~gnr Id baliza Figrrn 22-24 Estraregiu u s ~ ~ p~im n 33.7.4 Programa de robot detector de baliza Si se han seguidu los razonamientos del apartado antetior se comprenderá CENSOR IZQUIERDO fácilmente el programa Robot-Bal im-O 1.abm. ; Programa de contml para Micmbot TRASTO el mial detecta una baliza que genera ; una seRal infratmjii moduladaa 38 kHz. rojos
  • 580. ;Los swiswes fipticosSFHSI 10 están situados en fa parte h t a l del microbot ; El saisor de la daecha eh2á cconmrln a RA2 y el &ensor 1 lzquicrda a RA3. de s ; Cuardo el smsor SFHS 110 detecta luz infranoja inodulada, propiirciona un nivel bajo en su ;línea de sdida. ; El progrnma adopta la estrategia sguiente: ; - Si no se detecta la baliza por ningún semiir el niicrnhnt giw ri~mpre la dcrecnn. a ; - Si los dos msores dztectln prtdora el microbot avanza Eacia adelante. ; - Si se detecta porbdora en el m s o r de la izquierda y no en el de ia derecha el ; lmicrobot gira a la izquierda hasta que los dos smsores detecten la baliza. : - S: sc detecta portadora en e [ sensor de la derecha y DO en el de la izq~ierdael ; microbot g~ra la d w h a basa quc 10s dos sensores detecten la baliza. a I ZC)NXVkUA['us ***X***************&***W******C***'U"L'*"'****+**********************+*Q***Q* #DEFINE SzrwrDzrccha POKI'A,Z ; Sensor Derecho. #DEFINE SensorIzquierda PORTA,3 ; Senwr Izquierdo. ORG Inicio bsf ; Selecciona Banco 1 & regisbus. m El sct b6f ;E t s lineas se coniigiran como enlmda. sa bsf c lrf ; Las líneas del Puerto B se configurancomo didas. bcf ; Selecciona Banco O de registros. Principal btfsc SensorDerecha ; i,Ha detectado sekí la h e c h a ? gu o Ver-Izquierda ; No mibe por la derecha. brfsc Senuo~lzquicrda ;Si, Ltarnbitn xid pui la izquierda? &Oto GiroDmcha ;No, solo sella1 por la derecha, gira a del-&a. mavlw bilWOO11 1 1 ' ;Sí, recibe por los dos sensores. Sigue recto. goto AcrivaSalida Ver-Izquierda brfvc ; Por ia derecha no r ~ j k,Y por I izquierda? . s i 1nsti-u gota :Tampoco, ni por la derecha ni por la inquisirla. i LOS da Girohquierda movlw ;Gira a la izquierda. m Dispon got@ m La pila GiroDer~ha Dispr moviw ;Gira a la derecha. deshab AdvaSalida movwf O iwo O O O
  • 581. I j: :I t APENDICE A I CARACTER~STICASTÉCNICAS DEI, 1 PIC16F84A 1. 1 1 i <:*HAC.IKKÍS ~ I C * SDE L* <:wmsc La arquitectura de la CPU es del tipo Haward. i l 1 0I 1I 8 1 El set de irisiiiii;ciriiies rieiic 35 instr-uccioncs de una wla paliibra. 3 Todiis las iiistrucciiincs duran un ciclo máquina, excepto las dc salto que duran dos. salidas. Velocidad de opcracion: o D c 20 MHz, para la frecuencia del reloj de entrada. o DC - 200 ns, para la duncibn del ciclo inaquina. Frcctiericia rnáxitria dc funcior~irnientcide 4 MHz (PIClbF84A-04) 6 20 MHL (PIC L 6FK4A-201. Memoria de príqrama iipn Flash de 1024 pusiciuncs. Menioria RAM dc datos de 68 bytes. Meinoria EEPROM de datos dc 64 byfes. i una Instriiccioncs con longitud dc 14 bits. Los datos ticiien una longinid de 1 bytc (8 bits) Di.;pne de 15 registros de funciones especiales. 1 La pila tiene 8 nivelcs de profundidad. j m Dispot~cde cuatro fuerires de iiiterrupcion, 1 cuales pueden ser habilitadas O deshabilitadasindependientemente por sofrware: s o Extenia por el pin RBOANT. U Por dcsbortlamientu del Timer O . o Por cambio eri las liiieas PORTR <7:4> o Por finalizacion de cscntiira de Iii memoria EEPROM de datos.
  • 582. 1 ENCAPS ULADO DIL-18 Figura A -1 Microcon~o/udor K I 6FMA P CAR~CTER~STICAS LOS PERIFÉRICOS DE Disponz de 13 liricas de entrad$ salida con control individiial de dirccción. Alta capacidad dc corriente por terminal. Proporciona suficiente corriente para gobernar iin LED: o Consume 25 mA por pin cuando csta a nivel bdjo. o Proporciona 20 mii por pin cuando csbi n nivel alto. Dispone de un Tcrnporkador/Contador de S bits(TMRO) con división de frecuencia programable. La memoria Flash d programas admite hasta 1.000 ciclos de borrado y escritura. e La memoria EEPROM de datos admite hasta 1.001).000 de ciclos dc borrado y escriblra. Ciwantiza una retenciiin de datos para la mcmoria EEPROM de datos superior a los 40 años. Se puedc programar en el circuito vía sene mediante dos pines, ICSP (In Circ.uil Serzul Progrunrii?in~) Puwer-On Re.wr (PO N , Po wer- C'p Timer (PWRT), Oscilla~urSturt- Up Titner ) (OSTI CARACTEI Dispone de un temporirador Watchdog {WDT) con su propio oscilador RC para un funcionamiento fiable. Tensii de Priltec.cicin de código dc proparno mcdinntc la activa~irjii un bit de proteccihn. (excep Mudo de bajo consumo SLEEP. Tmcii Tipo dc oscilüdor seleccionable. Tensic /
  • 583. I RI-MA : APENDICI; A: C A R A C T F . R ~ S T I C ~ I S ' T É C ~ ' ~ C ~ S PlclIiFX4A nEL 567 -4RQUITECTURA INTERNA MEMORIA M DATOS MEMORIA DE PROGRAMA CON (SRAMI 1024 POSICIONES (FLASH) OOOhl RESET - RA 1 PCL -. RA3 R.4 ----. -, J DBh, EEDbTA - .. . --- EECONI 181hli e & a u C 09h 1.- EEAOR EECON2 8% 1. riente para DATOS EEPROM -1 /*t.-. 3€n - BUS D E I DATOS CPU j BUS DE INSTRUCCIONES r 1 PILA :ntiua. VSS r--- -- -NIVEL 5 p - , k - " ; " " " ~ ~ l M +FE 1 1 Ey ---N I borrado y MCLR mior a los (ln Circtdi~ Fipnr .4-2 Arquitectura ipr/~<r-ncr PICI 6Fb4 1 (le/ - 0 p Timer CARACTER~ MÁX I MAS ADMISIBLES STICAS ELECITRICAS Tensirjn de cualquier pin respecto de Vss (excepto V,,, MCLR y RA4) ...... ................. .......................... -0.3 V a (VD,+-0. 3 V) Tcnsion en VD, rcspccto dc Vs, ........................................................... -0,3 a +7,5V
  • 584. Tcnsiiin en RA4 rcspectn de Vss ...................................................... -O,> a +X,5V . . . . Potencia de disipaciiin tnkl .................... ....................................... 8 mW Máxirna corriente por c l pin Vss ................................................................. 1 50 mA .. Maxima corriente por el pin VDD ................................. . . . .............. 1 m.4 . Máxima corriente dc salida e i i halo por cualquier pin 1IU............................ 25 mA Mixima corriente de salida zti alto por cualquier pin I/O ............................ 20 i r i A Máxima corrieiite de salida eti bajo por el conjtinto dcl Puerto A. ............. ,.S0 inA Máxima corrienic de sal ida en alto por el conjunto dcl Puerto A ................. 50 rnA Maxima corrietiie dc salida en baio por el conjunto dcl Piiertri 8 .............. 1 50 mA Máxiinn corriente dc salida en alto por cl conjunto dcl Puerto A-.............. 1 00 mA El PIClt instrucciones. E chdigo de o p e instrucciones de la Tabla B-l. La nomen Eii las in O Si I W. o Si i En las in del bit d siempre t Eii las ir literal qu Las 35 in: RISC, que no so1 instrucciones cd Las insti tiempo de i de salto, ( Las inst utilizar ci
  • 585. APENDICE B REPERTORIO DE INSTRUCCIONES El PIC16FR4 csti compuesto por una LPU de tipo RlSC con un jucgo de 35 instruccicincs. En los 14 bits que forman las instnicciones máquina del PTC se incluyen el código de operacibn propiamente h c h u y los o p e d o s , en caso de que haya. Las 35 insmiccionzs de quc consta cste microconlrolador son las que se muestran clasificadas en la Tabla B- t. La ntimenclntiira qiie ritiliziin estas instrucciones cs la si~iicnte: En las instrucciones la letra f representa un registro y d representa el destino: o Si d es "O" el resultado dc la operación se sitúa en el registro de trabajo W. ci Si d es "1" el resultado se sitia en cl misino registro f. Eii las iiismiccic!nzs que manejan bits. b representa en binario la posición (0.7) del bit deseado dentro del byte, C representa el byte o registro. El bit O es sietripre el bit de tnenor peso. En las instrucciunes con literales y de control Ií reprzsenia una constante o literal que según Ios casos puede ser de 8 u 1 1 bits. Las 35 instrucciones del PIC16FX4 cumplen las caracteristicas de un proccsador RiSC, que no sOlo supone tener iui juego de instnicciones reducido sino que, además, sus instrucciona cuniplen las siguientes caracteristicas: Las instrucciones son simples y rápidas. Todas las instnicciones tienen un tiempo de ejecución de un ciclo máqiiina (4 ciclos de reloj) a excepción de las dc salto, que tienen un tiempo de ejecuci6n de 2 ciclos máquina. Las instrucciones son ortogonales. Casi todas las instrucciones pueden utilizar cualquier operai-ido.
  • 586. 570 m MICKOCONTROLADOR PIC16FIW DESARROLLO DE PROY ECl'CiS La longitud de las instrucciones y los datos es constante. Tcidns las D RA-MA instrucciones tienen una longitiid dc 14 bits y los datos una longitud dc 1 byte. T 1f Dirección del registro ( de 0x00 hristu Ox7F) Posición de un bit dentro d l i s t r o dc Y bits Liteial, dato constante o etiqueta que puede ser"0" o " 1 " si d = O, el resultado sc guarda en W, si d resultado de la operación se guarda en el registro f. El valor por dcfccto es ) 1 Bit de Power Down 1 1 [I 1 Opcional - (1 Contenido - 3 Sentido clc la transferencia Campo del bit de un registro I SET DE INTRUCCIONES DEL PlCIóFS4 Instrucciones de CARGA clrf f 00 3 (t) no ooo i I fff t~ z clnv + 00 (W 0000010xxxxxxx z movf f,d + (f) (destino) 00 1000 dm fVf Z movlw k k 3(W) 1 1 OOxx kkkk kkkk Ninguno movwf f + (W) (f) 00 0000 1 ml ~ f f Ninguno 1 Instrucciones dc BIT Pone a O el bit 'b' del rcg, 'f. 01 OObb bfffffff Ponc a 1 el bit 'b' del reg. ' f . 0 O lbb bflT mf 1 Ningiino
  • 587. :. Todas las d de 1 byte. IiU U1 11dtEfW 00001 I dfffffff 00 1010 dmfm I 1 Ilnx k k k k k m 00 0101 dmm 00 1 O 1 dfff ffff 0 11 1000 kkkk kkkk 00 o100 m m del Carry + (destino) $1 Ninguno
  • 588. r 572 addlw hfiCROCONTROLADOR PICI AFM. DESARROLLO DE PROY CCTOS Sintaxis: arldlw k Suma el literal k con w K ~1 A-~IA 7 ! I I c,~ 4 . 4 ~ 4 Ejemplo: Antes im r u Después insl Operandos: O 5 k I 255 Opeiacihn: (W)+ k (W) ~ l a afectados: C, DC, Z p + Código de OP : m r K m Sintaxis: Descripciiin: Suma el contenido del registro W al litcral 'k ' y almaccna el resultado en W. Si se produce acarreo el flag C se pone a "1 ". Operandos: Ejemplo 1: addlw 0x15 ;(W)+Ox157(W) Operación: Antes instrucción: (W)=OxiO, y C = ¿? Flags afectar Después instniccibn; (W) .=0x 10 + 0x1 5 = 0x25 y C = O. Código de O (W)=b'00010000' +b'~O10101'=b'0010 0101' Descripción: i' addwf Suma w con el registro f I : Ejemplo: Siiitaxis: addwf f,d Antes i s nm Operandos: 0565127 Después inst ! d E [Q,11 Operacion: (W)t(t)+(destinol (Add W andb Flags afectados: C, DC, Z bcf Códigodr'OP: [ 00 0114dfff Imf 1 Descripciori: Suma el contenido del registro W al contenido del registro ' y - f almaccna el resultado en W si d = O, y en el registro f si d l. Si se produce acarreo el flag C se pone a " 1". Sintaxis: Operandos: Ejemplo: addwf Registro,O ; (Regisiro)+.(W) + (W) Operación: Antes instniccibn: (W)=O?c17, (Registro)= OxC2, y C =¿? Flags afectad Después instniccion: (W} = OxD9, (Registro) = OxC2, y C = O. Código de O Dcscripcion: andlw w AND Literal k Ejemplo: Antes i s nm - - - I Después insb Sintaxis: Operandos: Operación: andlw k O5k5255 (M:)AND (k) (W) Flags afectados: Z (.&VD Literal wilh ?+y l bsf ~ 1 CódigodeOP: 11 100- Sintaxis: Descripción: Efectúa la operación AND liigica entre el contenido dcl registru W y el Operandos: I literal 'k'. el resultado se almaccna en W.
  • 589. - L', M-h4A APFNDIC'E 0: KEPERTORIO DE INSTRUCCIONES í 7 ? :on W Ejemplo: ruidtw b'01011111' ; (W) AND b'0101111~' + (W). Antes instnicción: W) b'l01000ll' = y z=¿? Después instnicción: 0 = b'00000011' y Z = 0. YUI 10 W) andwf W AND f ultado cn Sintaxis: andwf f,d Operaiidos: O I f 5 127 d E [O,]] Operación: (W) AND (f) (destino) (A ND W withd Flags afectados: Z CÓdigodeOP: 0 0 1 0 1 0l)dffT ffK 1 1 Descripción: Efectúa la operación AND lógica entre el contenido del registro W y cl contcnido del registro 'f y aimxetia el resultado en W si d = O, y en ' f si d = l . Ejemplo: andwf Registro,l ; (W) AND (Registro) 3 (Registro) Antes instruccidn: jW)=b'0010111', (Registro)=b'11000010' y Z = i ? Después instniccion: (W) = blOO1O 11', (Regrstro)= b'00000010' y Z = 0 1 . bcf Borra un bit de f Sintaxis: bcf f,b Operandos: O 5 f < 137 Ci<b57 Operación: O 3 (f <b>} Flags afectados: Nin uno Ciidigo de OP : m m f f f l Descripcióri: Pone a cero el bit i~íimero del registro ' f . 'b' Ejemplo: bcf FlagReg,7 ;O + CFlrigReg,7) Anks instnicción: (FlagReg) = b'11000111'. Después instrucción: (FlagReg) = b'0 100011 1'. bsf Activa un bit de f Sintaxis: bsf f,b Operandos: O I 5127 f OIb17 Operacióil: 1 3 (f<b>)
  • 590. T 574 MICROCTJNTROLADOR PIClbFX4.DESARROI.1.O DE PROYCC-I'OS d Ri-Mi Flags afectados: Ninguno Ejemplo: 1 1 Código de OP: 01 Olbh ] bmTrtt~ 1 A Descihipcion: Pone a uno el bit iiumero 'h' del rcgisíro ' f . F bsf FlagReg,7 ; l i (FlagReg,7) V Antes Instniccion; (FlagReg) = b'0 10001 11 '. Después Instnrcci6n: (FlagReg) = ti' 11OOO 111 '. Antes instr Despuks ir Test de bit de f y salta si es cero Sintaxis: btfsc f,b cal1 Operandos: O 5 f 5 127 O<b<7 Sintaxis: Operación: Salta si (f<b>) = O Operandos Flags afectados: Nin Qcración Cbdiga de OP : * f ] m 'm Descripción: Si el bit nimero b del registro f es cero la instrucciun cliie sigue a ésta sc ignora y se trata como un "nop". En cste caso, y s81o en este caso, la FLags afect instrucción h$rc precisa dos ciclos para ejeciitarsc. COdigo de Descripciii Aqui btfsc Flag,] ; Si el bit 1 del registro Flag es cero salta. Falso goto ProcesoX ; Ha sido uno. Ejemplo: Verdad ... ; Ha sido cetci. Antes instr ... Despuks in Antes instmcción: (PC) = Dirección de "Aqui". Despues instrucci6n: Si el bit Flag <1> = O P C ) = Dirección de "Verdad". Si el bit Flag <í> 1 (PC) = Dirección de "Falso". = clrf Test de bit de f y salta si es uno Sintaxis: Operandos: O 5 f 5 127 Flags afect OSb57 Codigo de Operación: Salta si (f<b>) = 1 (Sil Te3l.J; Skip I f Si.) Descripció~ Flags afectados: Ninguno 1 Código de OP : [ 0 1 1 1 l hb bfff 1 ffff 1 l Descripcióii: Si el bit niimero b del registro f es imo la instnicción quc sigue a esta se iginra y se trata como un "nop". En esrc caso, y sdlo en este caso, la Antes instr instniccibn Iitfss precisa dos ciclos para ejecutarse. Despiih in I
  • 591. 2 IJ..,I, ,S: RA-M* APMDICE B: REPERTORIO DE INSTKLIC'L'IONES 575 Ejemplo: Aqui btfss Flag,l ; Si el bit 1 del registro "Flag" es uno salta. Falso goto ProcesoX ;Ha sido cero. Verdad ... ; Ha sido uno. Antes instrucción: (PC) = Djreccibn de "Aqui". Después ins~cción: Si el bit Flag <1> = O, (PC) Dirección de "Falso". = es cero Si el bit Flag < I > = 1, (PC) = Direcci6n de "Verdad". cal1 Llamada a Subrutina Sintaxis: cal1 k Openndos: O 5 k 5 2047 Opcraciun; (PC'}+I TOS + (Crr//Subroictine) k i (PC~lO:O>), !ue a ésta se (PLLATli<4:3>)i (PC< 1>) 12:1 :ste caso. la Flap afectados: Nin uno Cbdigo de OP : b ] ~ d d < w Dcscripcihri: Salvaguarda la direcciiín de vuelta en la Pila y despiiés llama a la siibrutina situada cn la dirección cargada ea el PC. Tarda dos ciclos salta. máquina cn ejecutarse. Ejemplo: Aqui cal1 Alli Antes instnicción: (PC)= Dirección de "Aqui". Después instrucción: (PC) = Direccibn de "Alli". (TOS) = Dirección de "Aqui" + 1 . C M Borra f es uno Siiitaxis: clrf f Operandos: O 5 f 1 137 Opcraciiin: + OOh (0 (CiearJ I+Z Flags afectados: Z CMigodeOP: ~ O ] U M I I R D 1 lmfl Descripción: Se borra el contenido del registro 'f y el flag Z se activa poniéndose a 1". LG ie a ésta se Ejemplo: clrf FlagReg ;O (FlagReg). ;te caso, la Antes inctnicción: (FlagReg) = L? y Z = ¿? Después instmcciCin: (FlagReg) = 0x00 y 2 = 1.
  • 592. - 576 MICROCONTROLADOR PIC 16F84. DEShRKOLLO DE PROYECTOS v ~.-h4~ C ~ W Borra el registró W Sintaxis: clnv Operandos: Ninguno Operación: O h (W) O + (Cllear W) 1+z Z Flags afe~tados: 1 1 Código de OP : 00 O001 1 Oxxx 1 x x u 1 Descripción: El registro de trabajo W se carga con OOh. El flag Z se pone a " 1". Ejemplo: clnv ;0 + (w) Antes instrucción: (W)=¿? y Z=i? m l! i Después insmcción: (W) 0x00 y Z = l. b Sintaxis: :! Operandi ,] .i ch~dt Borra el Timer del Watchdog '1 Sintaxis: clrwdt I Operandos: Ninguno Código '1 OpcraciGn: OOh WDT + (C'leur Wmclidog Timer) O 3 WDT prescalei- l+PD - - Flags afectados: TO , PD 1 CiidigodeOP: 00 ~ 0 0 0 0 ( 0 1 1 0 ~ 0 1 0 0 ~ Descripción: Se borra el Tirner del Watchdog (WDT). Los bits 5y del rcgistro de estado se ponen a " I ". Sintaxis: (Timer WDT) = ,? Operandc Después instnicciiin: (Timer WDT) = 0x00 Operaciiii 5 bit de estado = 1 Flags afe< bit de estado =1 Codigo di Descripci Complementa f Ejemplo: Operandos: O 5 f 5 1 t7 d 6 [0,1] Operación: (7+ (destino) ) (Cumplt.rnent$
  • 593. nW Flags afectados: Z Descripciiin: Hace el complemento del contenido del registro 'f bit a bit. El r.esultado se almacena eii cl registro 'f si d=l y cn cl registro W si dlO, en este casci 'f no varía. twi. 113 Ejemplo: comf Regl ,O : (Real 1 CW) 3 Antes instnicción: (Regl) = b'00010011',(W) ¿'? = - Después instmciiún: (Reg 1) = b'00010011', (W) = hvl 101 1 1 6 3 (invertido unos y ceros') Y Z = O. Sintax 1s: decf f Operandos: tl<f5127 d~ 10,11 Operacibn: (f- 1l + (destino) Flaes afeciados: Z almaccna en f si d=l y en W si d=O, eti este caso 'f no varía. Ejemplo: decf Contador, 1 ; (Contador) - 1 + (Contador). Antes irtstniccibn; (Contador) = 0x0 1 y Z = i? Después instniccióii: (Contador) = 0x00 y Z = 1. Sintaxis: dccfsz f,d I Operandos: 0 5 f 5127 E [O911 Operación: + (f) - 1 (destino); salta si el resultado es "0". L'3iiji if0) (Decrc!mcnt,f; ita f Ejemplo: almacena en 'f si d-1 y en W si ti*, en estc caso, 'f no varia. Si e1 resultado del decrcinento es cero se ignora la siguieritc instrucción y eti ese caso la instnicci8n ticric uu dwaciiin de dos ciclos. t 1 t Aqui decfsz Contador, 1
  • 594. 578 MlCROCONTROLADOR PIC 16384. DESARROLLO DE PROYECTOS i_" m-MA Antes instruccián: (PC) Dirección de "Aqui". = incfsz 1 Despds instnicciiin: (Contador) = (Contador) - I y además: Sintaxis: - Si (Contador) = O, (PC) Dirección de "EsCero". = Operandos: + - Si (Contador) O,(PC) = Direcci6n & "Aqui" + 1. Operación: g0t0 Salto incondicional Flap afcctadc C:ódigu de OP Descripcihn: Sintaxis: goto k Operandos: k O I 5 2047 Operación: k+(PC<lO:O> (Unconditional Branchj (PCLATH<4:3>)+ ( P C 4 2: 11>) Flags afectados: Ninguno Ejemplo: 1 1 1 Código de OP: 10 1kkk kkkk kkkk 1 Descripción: Salto incondicional. Carga bits O al 10 de la constante 'k' m cl(PC) y los bits 3 y 4 del registro PCLATH en los 11 y 12 del PC. Esta instrucción se ejecuta en dos ciclos máquina. Ejemplo: goto Principal ; Principal + (PC) Después ins Antes instnrcciim: (PC) ¿? = Después insbuccibn: (PC) Direcciiin apuntada por la etiqueta "Pri~~cipai". = incf lncrernenta f Sintaxis: Operandos: incf f O 5 f 5 127 4 iorfw Sintaxis: Opcrandos: d~ CO,ll Operacibn: (f) +l+ (destino) (lnerernentj Operación: Flags afectado: Flags afectados: Z 1 CbdigodeOP: 00 1101OIdfW IPfff 1 Código de OP Descripción: El contenido del registro 'f se incrementa en una unidad, si d=l el Descripción: resultado se almacena en ' f , si d=O el resultado se alrnaccna en W, en este caso el resultado de 'f no vana. Ejemplo: Ejemplo1 : incf Contador, 1 ; (Contador) + l + (Contador}. Antes instmcci Después instni Antes instrucción: (Contador) = OxFF y Z = ¿? Despds instniccio~~: (Contador) = 0x00 y Z = 1.
  • 595. R 4 hlA APFNDIC'L B RFPFK 1 OKIO DE INSTRL1CCI(IUES 570 ¡~C~SZ lncrementa f y salta si el resultado es O 1 Sintaxis: incfsz f;d Operaiidos. O I5 1 27 f d E [0,1] Operación: I,' {f'i~1~(destino);siiltasiclrcsultadocsO. (Jn~.remmtt Skip ipjtl) Deccripcioii: Incrementa cl contenido del registro ' f en una uniclüd. El rcsiiliado se almacena cii 'f si d-1 y en W si d=O, en cstc caso 'f no varía. Si el resultado del incrcinento es ccro se ignora la siguiente jns(riicciÓn y, cn ese caso, la inslrucción ticne una duración de dcis ciclos miquitia. Ejemplo: I Aqui incfsz Contador, 1 I! el (PCJ y los goto Bucle a instruccibn Continua .... ..,. I Antes instrucción: (PC)= Dirección de "Aqui". (Contador) = !Contador) + 1 y además: Dcspués instmccjon: - - Si Contador = O (2561, (PC) Dirección de "Continua". - Si Contador # O, (PC) = Direccion de "Aquí"+l . ¡ O ~ W OR entre W y el filteralk Sintaxis: iorlw k Operandos: O If 5 255 Operaciiin: (W)CiK(k)+(Mr) Flagsaolctíuios: Z Código dc O P : p f l m k k k m id, si d-l el Descripción: Efcctua la opcraciiin lógica OR entrc c l contenido dcl registro W y cl :na cn W, en literal 'k'. El resultado se almaceila cil ZI registro W. Ejemplo: iorlw b'00110101'. :(W)ORb'00110101'+(W) Antes jnsrnicciiin: (W) = b't0011010' y Z-¿? Después instniccion: (W) = b'10111111' y Z = 0.
  • 596. T 58U MICROCONTRCILADOR PIC 16F84. DESARROLLO DE PROY EC'JOS h.m-MA OR entre W y f ! Ejemplo: Antes ins Despues I Sintaxis: iorwf f,d Operandos: C) 5f l 127 I d E [O,11 Operación: (W) OR (f) 3 (destulo) (Inclusive OR W withj Flags afectados: Z Siniaxis: 1 CódigodeOP: 00 IOIOllldftT l f t f f 1 Operandc Dcscripcion: Efectka la operación lógica OK entre el contenido del rcgstro W y el Operacioi ccititztiido del registro 'f. Almacena el resultado en 'f si d=l y en W si d=O. i I Flags afet Código di iorwf Resdtado,O ; (W) OR (Resultado) (W)+ Descripci Antes instrucción: (Resuhado)=b'00010011', (W)=b'10010001' y Z = ¿ ? Ejemplo: Después instrucción: (Resultado) = b'00010011' , (W) = b'100 10011' y Z = 0. i Antes insi Después i Mover literal a W Sintaxis: riiovlw k Operandos: O 5 f 5755 Operación: k + ( W) (Move Liferal fo W) Sintaxis: Operando Flags afectados:Nn u o i g n Operaciór 1 1 Código dc OP : 1 1 0 0 u 1 kkkk 1 kkkk 1 Flags afec Descripcibn: El registro W se carga con el valor de 8 bits del literal'k'. Ciidigo dt movluj Ox5A ;SAh+IW) Uescripcic Despuks instrucción: (W) = OxSA Ejemplo: Mover f retfie I Sintaxis: Operandos: O 5 f 5 127 Operando. Operación: d f [O,ll + (f) (destino) i Operacion Flags afectados: Z Flags afec 1 Codigo de OP : 00 1 1000 1 dfff 1 fKf ] Ciidigo de Descripción: El contenido del registro 'f se carga eii el registro destino dependiendo Dcscnpcii del valor de 'd'. Si d=U el destino es el registro W, si d=l el destino es el propio registro 'f.Esta jnstniccion permite verificar dicho registro, ya que el flag Z queda afectado. i 1
  • 597. .r? RA-MA APENDITF R : REPERTORIC) DE INSTRrlCCIciNLS 581 ntre W y f Ejemplo: niovf PORTA, O ;PORTA) +W Antes insbuccibn: (PORTA) = Ox 1A, (W)=¿? y Z = L ? Después instrucción: (PORTA) = Ox 1A, (W)=OxlA y Z = 0 m0wf Mover W a f Sititaxis: ~riowf f' Operatidos: O 5 f 5 1.27 Operación: (W) + (f) (Move W ro,f] Flags afectados: Nin no Código de OP : *~~fl Descripcióil: Mueve el contenido del registro W al regisrro 'f. Ejemplo: movwf PORTB ; m) i ORm) ' (P Antes instrucción: (PORTB)=¿? y (W)=Ox.CF. Despuks instruccion: (PORTB) = Ox4F y (W) = Ox4F. literal a W noP No Operación Sintaxis: tioli e Literal [o Operandos: Niriguno Operacióti: No operar (;%'o ~ ) ~ ~ ~ ~ u f i u ~ ) 0 Flags afectados: Nin uno rhdipo de OP : Drscripción: r o 0 1 ~ m No realiza operación alguna. Consume un ciclo de instrucción sin hacer nada. Ejemplo: noP Mover f retFie Retorno de Interrupción Sintaxis: retfie Operandcis: Ninguno Clpcracion: TOS 3 (PC) + I CiIE Flags afectados: Ningiria Código OP : r o o 0000 1 0000 1 1M) I de 1 3 dependiendo Descripcion: Carga el PC con el valor que se encuentra en la parte aha de la pila. i destinu es el 1 asegurando así la vuelta de la intermpcibn. Potie a 1 el bit GIE con el firi io registro, ya de autorizar de iiuzvo que se tengan en ciienta las interrupciones. Tarda dos ciclos máquina.
  • 598. Ejemplo: retfie ; Retorna de la inteinpcion. Antes instniccion: (pC)=i4? y GIE=O Después instnicción: (PC)= (TOS) y GIE = 1 Sintaxis: Operandos: retlw Retorno con un Mera1en W Operacion: Sintaxis: rctlw Opcrandos: I) 5 k 2 255 Opecición: k + (W) F l a ~ afec s TOS 3 (PC) Código de Flags afeciados: Nin ino Descripciiin: Cbciigo dc o p :$1 1 1 0 lxx LLI<J< kkkk Descripción: Carga el registro W con el literal 'k' y después carga el PC ctiri el valor - - que se cncuetitra en la parte superior de la pila, efechiando ¿)si rctorno uri de subrutiiis. Tarda dos ciclos inlqiiina. Ejemplo: Antes instru Ejemplo: cal1 Tabla ; W contiene el valor de offset de tabla Después ins .... .... Tabla ;Comienza la tabla addd PCL,I ; !PC) = (PC) + (W) retlw k0 rctlw kl i Sintaxis: retlw k2 Operandos: retlw kn ; Fin de tabla Antes instnicciiin: (W)= 0x02 Después instntcci6n: (W) = Toma el valor de k2. Flags afectad Código de 0 1 return Retorno de subrutina Descripción: Siritaxis: rcturn Optraiidos: Ninbwno Operación: TOS 3 (PC) Ejemplo: 1 Flags aikctados: Nin .uno Antes insfmc Despuis isr Código dc OP : ~ 0 0 ~ ~ nt Descripcibn: Carga el PC con el valor que se enciitiiitra en la parte supcrior de la pila. efectuando risi un retorno de subrutina. Tarda dos ciclos miquiria. Ejemplo: retum ; Retorna de la subnitina. Antes instrucción: (PC)= L'? Despues instniccibn: (PC) = (TOS)
  • 599. rlf Rota a la izquierda con el Carry Sintaxis: rlf f,d Openindos: f O I5 127 d € [O,11 Operacibn: 7 6 5 4 3 2 1 0 (Rotate Lrfi ftlir augh C,'arry) - Registro f 1 Flags ayectados; C CódigndeOP: 00 1 I I I D ~ ] ~ ~ 1 (ffff DescripciGn: Rowión de un bit a la izquierda del conteiiidt) del registro 'f pasando por el bit de acarreo C. Si d-l el resultado sc almacena en 'tl, si d-0 el :on cl valor resultado se almacma en W. i un retonio Ejemplo: rlf Reg 1 ,O Antes instrucci6n: (Reg1)-b'lltO0110', W = i ? y C = 0 . jet de tabla Después instniccibn: (Regl) = b 1110 01 lo', (W) = b' 1100 1100' y C = 1. ' rrf Rota a la derecha con el Carry Sintaxis: rrf f,d Operandos: O I f 5127 d~ [O,lI Operación: 7 6 5 4 3 2 1 0 (RorureKightf rhrough C h q ) Registro f Flags afectarlos: C ibrutina CódigodeOP: r60 1 1 0 0 d f f f I f f f f 1 Descripcion: Rotación dc un bit a la derecha del contenido del registro ' f pasando prir el bit dc acarreo C. Si d=l el resultado se almacci~aeti 'f, si d=O cl resultado se alriiacena cn W. Ejemplo: rrí Reg1,O Antes insmcción: (Regl)=b'11100110', ( W ) = i ? y C = 0 . Despdsinstniccj6n: (Regl)=b'l1100110',(W)=b'01Il0011'yC=0. r de la pila, na.
  • 600. p 584 MICKOCONTKOLADOK PIC l hF84. DESARROLLO DE PKOYECI OS E H,'i.L1,2 mi? Rn-btt deep Pasa a Standby o modo de bajo consumo subwf 1 Sintaxis: slccp Sintaxis: Operandos: Ni ngutio Operandos: Operación: + OOh WDT + O W DT prcscalcr l+rO O+ PB Código de OP : - - Descripción: k'lags afcctados: TO , PD 1 CódigodeOP: 00 100001011010011 1 en Descripción: Pone cl circuito en modo Sleep (bajo consumo) con parada dcl oscilador y Timer O. (Ver capitiilo 16 para inás detalles). Se puede salir de este Ejemplo 1: estado por: Antes instnicciim: Activacion del pin /MCLR para provocar un reset Después instrucciii Desbordamiento del Watchdog si quedó operativo en el modo Ejemplo 2: rcposo. Gcncración de una interrupción que no sea TMRO, ya quc Csta sc desactiva con la instrucción xlcep. 4 Ejemplo 3: Ejemplo: sleep ; Pasa a "standby" o modo de bajo consumo. Antes imtsucciiin: Después instnicció S U ~ ~ W Resta el literal k a W swapf 1 Sintaxis: sublw k Operandos: OIkI255 Sintaxis: sw Operación: k - (W) (W) + (Subtract W,fi.omLztc=mI) Operandos: O5 Flags afectados: C, DC, Z dE 1 1 COdigo de OP : 11 1lOx kkkk kkkk 1 1 1 Operación: (f < Descripción: Kcsta por el mitodo de complemento a 2 al literal 'k' el contenido del (f< registro W. Almacena el resultado e n W. Flags afectados: Nir Ejemplo 1: sublw 0x03 ; 03h - (W) (W) Código de OP : Antes instrucción: (W)=OxOI, C = ¿ ? y Z = L ? Descripción: Lo Después instrucción: (W) = 0x02, C = 1 (el resultado es positivo) y Z = 0. de Ejemplo 2: sublw 0x02 ;02h-(W) +(W) w, Antes instnicci6n: (W>=Ox02, C=;? y Z = i ? Ejemplo1: Desput s instrucción: (W) = 0x00, C = 1 y Z = 1 (el resultado es cero). Antes instrucción: Después instnicción Ejemplo 3: sublw 0x02 ; 02h-(W) + CW) Antes instrucción: (W}= 0x03,(+3 en decimal}, C = i? y Z = L .9 - Después instnicción: (W) = OxFF, (-1 en decimal), C = O (resultado negativo) y Z = 0.
  • 601. S U ~ W ~ Resta el registro f a W Sintaxis: subwt' f,d Operandos: O I f 5 127 d~ [O,lI Operacicin: + (f'~- (W) (dcstinti) (Su brracr WfrcimJ t Flags afectados: C, DC, Z 1 CbdigodeOP: 00 )00101dfff lffff / Descripción: Resia por el método de complen~entoa 2 el conteriido del registro 'f merios el contenido del registro W. Almacena el resultado en W si d=O y en 'f si d=l. iscilador * de este Ejemplo 1: subwlf Regl,l ;(Re@]) (W) j (Regl) - Antes instrucción: (Regl)=0x03, (W)=Ox02, e=¿?) Z =¿? y 'I Despues instrucción: (Reg 1)= 0x01 (W) = 0x02, C = 1 (posjtivo) y Z = 0. , Ejemplo 2: subwf Reggl, l ;(Re@)- (W) 3 (Regl) Antes instrucción: (Regl) = 0x02, IW)= 0x02, C = i? y Z = i? Después inshccion: (Regl ) = 0x00, (W) = 0x02, C = 1 y Z = 1 (resultado c m ) . Ejemplo 3: subwj Regl, l ; @egl)- (W) + m%[) Antes instniccjbn: (Regl) = 0x0 1, (+1 decimaI), (W} = 0x02,C = ¿? y Z = i? Despuhs insmiccih: (Reg 1) = OxFF, (-1 decimal), (W) =0x022,C = O (neg.)y 2 = 0. swapf lntercambia nibbles de f Siritaxis: swapf f,d 1 Literal) Operandos: O 5 f í127 d~ [O,]] Operacion: (f <3 .U>) (d 1 : , 74) (&y' h'ibbles inJ :nido del (f <7:4>) 3 (d <3:0>) Dcscripci6ri: Los cuatro bits de m& peso del registra 'f se inter-cambian con los 4 bits Ejemplo 1: de menos peso del mismo registro. Si d=O el resultado se almacena en W, si d21 el resultadn se almacena en ' f . swapf Regl,O I ,1
  • 602. 586 MICRCII'ONTROLADOR P1 l hF84. UESARROI.LO DL PROYESTOS 1: :<HA F.IA X O ~ ~ W OR-Exclusiva del literal k con W Sintaxis: lrorlw k Operandos: O 5 k 5 355 Operacióti: (W)XORk+(Wj {Erclusive OR Litt7rul with W) Flags afectados: Z 1 1 Código de OP.: 1 1 1010)-kkkkm Descripción: Realiza la función OR-Exclusiva cntre el contenido del registro W y la constante 'k' dc 8 bits. El resultado fe alniacena en W. Ejemplo: xodw b'10101111' ; (W) XOR b'10101111' + (W) Antes instrucción: Después instnicció~i: (W)- (W)= b'10110101' y Z = i ? b'00011010' y Z = 0 x0rWf OR-Exclusiva de W con el registro f Sintaxis: - xorw f f,d Operandos: f O Ii 177 d~ [O,lI Operación: ( W) XOR (f) + (destino) Flaes afectados: Z " CódigodeOP: 111 )0110diTf Descripción: w, Rediza la fiincibn OR-Exclusiva entre el contenido del registro W y cl contenido del registro 'f. A h c e n a el ccsultado en 't' si d=l y en U' si d=O. Ejemplo: xorwf Reg,1 ; (W) XOR (Reg) (Reg) + Antes instmcción: (Reg)= b'lOlOII11'. (W)=b'lOllOlOL' y Z = i ? Después instniccion: (Reg) = b'000110IO', (W) b'lO110101' y Z = 0. =
  • 603. M-U al k con W CONSTANTES Y OPERADORES I registro f movIw D'l09' movlw d'109' :gistro W y el ;1=1 y e n W si movlw h'6D' B'<cantidad>' movlw B'01101101' DT "Estudia DPE" Tabla C-/Formato de 1~1.yconstunfe.~
  • 604. 588 MICROCCiN'rROLADUR PIC lbF84 I)EShRROI.I.O DE PROYECTOS ': N ,-M, La tabla C-1 representa la forma dc csprciticar el sistcina de nuriieracibn o ctidigoc affaniini~flcos,para cl cnsaniblador MPASM, con iin ejct~~plo caso. Hay que tener cn por cuenta: Las constantes hexadeciinalcs que corniencen por iina letra (A-F) deben ir precedidas de un cero para que no sean confundidas con urin etiqueta. Ejemplo: naovliv OFAh. i Las constantes pucdzti ser opcionalinrnte ~irecedidas un sigrio "+" (valores por positivos) o "-" (valores negativos). Si no sc antepone nada se asunie quc el valor es positivo. Cuando los operandos soii caractercs ASCI 1, debcn estar cricerrados ci1ti.e apóstrofes o comillas simples. Ejcmplo: moimlw 'G '. Para facilitar la tarea de programación el cnsamblador MPASM permite utilizar múltiples opemdores aritméticos detallados en la ayuda del MPLAB y cn 1 guía 3 "IWASAI. USER 'S GUIDE que sc puede obtener gratuitrimetitz cil la pagina Web dcl " fabricante www.inicrochip.cotn. En la tabla C-7 se detallan los principales: La: qiie soti u resulte m ! En ensamblai "WASiZI www.mic Tabla C-2 Príncipule'i. oprradot+rs uribrpiéfiros del ensurnhladi-ir MPASM
  • 605. 3 codigos :tcncr e ti dchci~ir Ejemplo: ' (valores ie que el te utilizar PRINCIPALES DIRECTIVAS DEL i la p í a Wcb del ENSAMBLADOR MPASM
  • 606. i o RA-WA Sintaxis: 1 propósito finaliza c Si no se variable Ejemplo: 1 CBL noni d INT En cs asignar lista qued utilizacion TabluU- I Direriiva~ ensara blador MPASAI del A continuación se expone un rcsumen dc las principales.
  • 607. 1 a, IL4-MA APENOICE D: PRIN(:IPALiiS UIREC'TIVAS DEL ENSAMBLADCIR MPASM 591 CBLOCK Define un bloque de constantes Silitalis: C'RLOCK [cciiprr] <lab~B[:~ incremcnt~][,<label>[:<incremen~]1 ENDC Descripción: (Dejine a Block o Cora~tan~s) f Esta directiva se explica en cl capitulo 9. Dcfine una lista de constantes. A cada ~lahel.d> le asigna i valor inmediatamente superior que a la antcrior < i b d > . El sc m propósito de csta directiva cs asignar direcciones n muchas etiquetas. Li ; lista de etiqiietas finaliza cuando sc encuentra la directivo ENDC. indica el valor de almique para el primer nombre del bloque de etiquetas. Si no se asigna en la expresion, la primem variable recibirá un valor superior al de la variablc fitial del CBLOCK anterior. Si el primer CBLOCK en el archivo fiiente no tiene ningún <cl?rpr> los valorcs asignados empiczan con el cero. Si < i t i c . r ~ w ~ ~ u P cspccifica. entonces a se la prcixima .;ldbcb se le asigna el valor de L int.remt.rif> supcrior a la atitenor <Iubel>. notnbres en Pucdcn darse ini~ltiples iina línea, separada por las coti-ias. Ejemplo: C B m K 0x20 ; A la primen iariable se le a s i p el valor 20 nombre-1 , nombre­ 2 ;nombre-2, se le asigna el valor 2 1. nombre-3, nombre-4 ;nombre-4 se le asigna el valor 23. ENDC En la mayoría dc las aplicaciotics cl propbsito d t las directivas CHLOCK y ENDC cs asignar direcciones (genemlrnente de rriemoria RAM de datos) a muchas etiquetas. La lista qucdsi enmarcada entre las directivas CBLOCK y ENDC. Un ejemplo típico de utiliracihn: C B m K OxOC ; Las variables se posicionan a partir de csta posición de RAM. Cen- , La variable Centenas ocupa la posiciiin OxOC & RAM. Decenas , La variable Decenas ocupa la posición hOD de W. Unidades . La variable Unidades ocupa la posición OxOE & RAM. ENDC
  • 608. 592 M1CRCiCONTRDLAI)DR ?1C16FM. DESARRC)LLtl DE PROYECTOS IVRA-MA Define la palabra de configuracibn Sintaxis: --CONFIG <expr> Descripción: (Ser Pror-e.~,sor Birsj Coi~/igrt~.#íi~irl Directiva para la deiinicibn de los bit de la palabra de cuiifigwacion del rnicrocontrolador con el valor descrito cn <~vpt.>. Ejemplo: Esta directiva indica la configuracjiin elegida para cl proceso dc grabacióti d c l microcontrolador. En este caso: No hay protección de código CCP-OFF). N o se habilita c1 Watchdog CWU 1'-OFt ). Se habilita el reset mediant? Powcr-Up Timer CPWRTE-ON). Se utiliza el oscilador por cristal de cuarzo. Es importante resaltar que -CONFIG7' se inicia coii dos subrayados (guiones bajos), no con irno (este error es muy kecuentc en los diseñadores noveles). DE Define datos en la EEPROM Sintaxis: [<label>] DE <expr>[,<expr>,... ,<expr>] Reserva palabras de memoria de 8 bjts cn J meriiciria EFPROM de datos. Cada a expresión reserva un valor de 8 bits. Cada carácter de una exprcsión se guarda en una E posicion separa&. método I Ejempli #DESME ORG Wl00 ; Corresponde a ta dirección O de la zora EEPROM :de datos. DE ''Programa EEPROM-M. Versibn 2.5. 1 5-08-2003'' ,kO Ejempli #DEFINE # D r n
  • 609. IDICE D. PRINC~PALESDIRECTIVAS DEL Eh'SAMBLAüOK hlP.4SM 593 Como en este caso el origen de la directiva está en la dirección 210011. que coincide con el inicio de la EEPROM de usuario, se obtiene el resultado que se i~~uestra en la figura D-1, que comspoi~de la veiitana de IA con memoria EEPROM dc usuiujo. 1 INCLCTCE -FliFaiA.Iix ; bzf:#>#,-~mm:>v 1 ml r - 2 : ~ -l , > ‘ LEL'J,:V O::ll,. :vt=,'J?: BEID< qpr, ii~:lda . COL, eipoiirl., A 1, , i l I e,-,. n J.. 1- rr.r.h E F J I D n . rle m l i t o s . Ft,i:ania PBFRUM 0 4 . Version 2.5. 15-08-2003" O x C I i , 1 1 DO@@ 50 71 6F 6 1 7 2 "1 6D 61 20 4 5 45 50 52 4F 4D 5 F Programa EEPROK /Vd Figura D- Memoria EEPR(2iZ.I de U . S U J ~ ~c ~I ~ J . T ~ u & , T I C de la directiva DE 3s (guiones #DEFINE Define una etiqueta de sustitución de texto EPROM Sintaxis: #DEFINE <nam& [c.string>] Descripción: (Dc$ne a Text Sir li,~titir Loliell l¿on Esta directiva define una cadcna de substituci8n de texto. Doridequiera que <numt'> sc cnciientre en el etis:~rnbl;idor sustituirá por <stritag>. se latos. Cada rda en una Esta directiva eiiiiila el A N S I 'C ' estándar como #deJne. Definir símbolos con este método no esti disponible para ser iisado por el MPLAB. Ejemplo 1: #DEFINE LED PORTI39 ; El LED sc conecta en esta linea. 'ROM ... bsf LED ; Enciende el LED. Ejemplo 2: #DEFIN E Banco0 bcf STATUS,WO ;Acceso al Banco O. #DEFNE B m o1 bsf STATUSJ1PO ; Acceso al Baiico 1.
  • 610. 594 MICRVL'ONTROLAOOR PIC 1hF84.DESARROLLO DE PRC)'EC?OS m I<~-MA Banco0 bcf LED ; Configura esta línea como salida Banco1 bsf LED ; Enciende el diodo LED Sintr Dpsc Define tabla Sin taxis: [<labe]>] DT <expr> [, <expr>, . .. ..<eqir>] (Dqfim Tubku) Esta dircctiba genera duraritz la fase cit. ensamblado tantas instnicciories rr,thi4 como caracteres u octetos la acompañen. Se explica cn ciipihilo 1 l . DT "mensaje". 0x1 ,.15 0 Esta directiva genera los códigos de operación de Iris siguientes insirucciones: rctlw retlw retlw Ox6D 0x65 Ox6E : ('m' en ASCII) ;('e' en ASCII) ;('n' en ASClI) 1 Sint rctlw 173 0; : ('S' en ASCII) para wtlw 0x61 ; ('a' en ASCII) retlw 0x6A ; (:i' en ASCTT) rctln 0x65 ; ('e' en ASCII) retlw 0x10 retlw OxOF ;(1 5 en decimal) Empieza bloque alternativo de un IF Sinta Sintaxis: ELSE Descripcibn: (Brgiri Alternotive A . ~ s e m b ~ fo IFI Block Usada junto con la directiva 1F para proporcionar un camiiio alternativo de ensamblado si a1 evaluar la ciitidición es falsa. ELSE puede usarse deritro de un bloque de programa » en una inacrti. Ver directiva iF.
  • 611. END Fin de bloque de programa Sintaxis: EN D Descripción: B1oc.k) (End PYOLTU~I !fine tabla Esta dircctiva indica el final del programa y es obligatoria. Si se detecta el fin di: fichero y no se ha encontrado la directiva END sc producc error. Todas las líneas posteriores a la línea en la que se encuentra esta directiva se ignoran y no se ensamblan. Ejemplo: Inicio bsf STATUS,RPO ; Comienza el programa ejecutabie ... ... END ;Fin del programa ENDC Fin de un bloque de constantes Sintaxis: EN DC Descripcihn: {Eiirl C'OIM'ILIIIIBIoc-k) ENDC sc cscribc al firial de una lista de constantes CBLOCK. Debe escribirse 1 1 para indicar el fin de la lisla. Ejemplo: klii-rii-la dii+ectivnCBLOCK. ENDlF Fin de un bloque de ensamblado condicional Sintaxis: ENDlF Descripción: {End Condicinnd Assembly Block) Esta ciircctiva niarca c1 cxtrcmo de un bloque condicional de ensamblado. ENDIF puede usrine dsritrci de ~itibloque de programa o en una macro. ilternativo de Ejemplo: hlirar la directiva LF. : un bloque dc
  • 612. 5% MICR0CC)NTROLADOR PIC 16F84. DESARROLLO DE PRCW EC'iOS v IRA-MA Fin de la definición de una macro Ejemplo: Sintaxis: ENDM Descripcihn: (Etlci'a Macro Dejiriition) Tcrmina tina defiición del macro coinenzada con la directiva MACKO. Las inacros se explican en el capitulo 16. Mirar la directiva MACKO. Define una constante para el ensamblador Sintaxis: 1 Sintaxis: <label> EQU <expr> Descripción: (l3gfine ciii A.~.teria Ciinstanr) blw Esta dircctiva pemiite asigna el valor de a ain identificadcii ~ I u b e / > .Su valor puedc ser el resultado de una expresiijn compuesta por otros identificadores tan crimplcja como sc desee. Generalmente, el identificador es un nombre que dcscribe el valor de niaticra más La para el proganiador. Sucle utilizarse para definir cotistantes y dircccioiies de significatirva de la 1ogi cero se i memoria. Asi, es más fácil recordar "ValorCarga" que recordar el vaIor 147 o, en el caso cxprcsib dc una dirección tle niemoria, PORTA quc 0x05. falsa fals ; Asigna e1 valor nmerico de 147 a la etiqueta "ValorCarga". Ejemplo d Emite un mensaje de error Sintaxis: ERROR "c-text-string>" Descripción: (Issue apl Error Afe,s.sage) Ejemplo Esta directiva genera un mensaje dc emir idintjco A cualquier error dcl En ensamblador MPASM. Si el psuceso de ensamblado ejecuta esta directiva aparcct: la memoria cliííica pantalla de error. El texto dcl mensaje debe ir eiitrecornitlado y puedc tcner hasta 80 caracteres.
  • 613. 1 C M-.Mi ,RA-~IA APENDICE D: PRTNCIPAI,ESDIREC:TIVASDEL ENS!L~ULAUORMPASM 597 rnacro Ejemplo: C'hequeoError MACRO Argumento1 IF Argumento1 % SS :Si el argumentoestá fuera de rango ERROR "emir-c hrckhg-O l el argumento está fuera de rango" ENDIF efinrlion) EN DM CRO. Liis 1 Otro ejemplci se describe en la directiva 1F. IF Comienza un bloque de código condicional iblador Sintaxis: IF <expr> ... .... ENDIF kn,~fa~rfl I Descripción: (Begin Conditionally Assemhled C'oJe Blvck) 'uhr~l,. Su C'umienzo dc cjecucihn de un bloque condicional dc cnsarnblado. Si .;t:tpr;- es -irlores tan verdadera el ciidigu ii~inediatoal iF sc msariiblara. En caso contrario, tas itistnicciories siguientes sc saltoii hasta encontrar una directiva ELSE 0 una directiva ENDIF. anc.r;t t i i i s La evaliiación de una expresión que sea cero se coi-isidcradesde el punto de vista :cioncc de dc la lógica falsa. La evaluaci8n de una exprcsjon que resulte cualquier valor distinto de M c1 caso 1 i cero se considera como verdadera. La directiva IF cipcra con el valor lógico dc una expresión: una expresiiin verdadera ( h e ) garantiza devolver un valor distinto de cero, y ralsa @se) cl valor cero. Ejemplo 1: p". JF Verjinn= 1 00 ;Comprueba la versión actual rnovlw hOA ? error rnovwf io-l ELSE rnovlw 0x01 movwf io-l ENDF Ejemplo 2: :rror del Eri e1 siguiente ejemplo si la etiqueta "FinTahla" se localiza en una dirección di: parece [a tiicmona de programa mayor de OxFF el encambiador emitiri un mensaje dc error. ,ner hasta ...... FinTabla IF (FinTabla> OxFF) ERROR "iCLilD.4DO!: La tabla ha superado el tam;iiru de la pigina & los" h4ESSG "primeros 256 byks de memoria ROM. NO funcioiiarb correctamente." ENDF
  • 614. 598 --- MlCROCCiNI~ROLACiOK lbF81. DESAMOLLO DE PROY FCTOS PIC $2 R A - ~ I A INCLUDE Incluye ficheros fuentes adicionales I Sintaxis: MCLUDE <<include-filv> o INCLTDE "<i nc lude-tile>" Descripción: (lncludt. ridditionul Soutce Filc.) El archivo especificado se lee como código fuente. El efectci es igi~al si el texto que entero del archiko ínclude se pusiera cn el lugar donde se ha escrito la direciva INCLUDE. Sc perniitcn seis rlivdes dc anidamicnto. El <inclzrJeJile> puede escribirse cntre comillas (" ") o entre los simbolris de "mayor que" y, "menor que" >). Si se especifica totalmente el camino del ficheru includc solo sc buscara en ese canino. Si no se indica camino el orden dc la búsqueda es: el directorio activo actual, en segundo lugar 21 directorio del archivo fiiente y por último cn el directorio ejecutable de MPASM. Sc explica eii el cripitiilo 10. 11 by Ejemplo: 1; INCLUDE <P16F84A.iNO ; Define el archivo donde estan definídos todos ; los regisiros &l PIC 16FWA. INCLLDE "P16FY4A.INC'" ; Tambih se puede defmir de esta fomia. INCLLDE "c:sysisysdefi.inc" ; Defie "sydefs" con su kaywtoria. INCLUDE <regs.h> :Dafme "rcgs.h"sin trayectoria. LIS Opciones de listado , , 4 , Sintaxis: LIST [ ~ l i s t o p t i o n ~ , [<listuption>] ..., I , > Descripción: (Lisding ilpliuns) / m ' i La directiva LlST tiene efecto sobrc al proccso de ensamblado y sobre el formato MES% del fichero listable de salida scgiin una larga lista de opciones que se detallan en el manual "MFASM L'SER 'S GUJDE" y en la ayuda del MPASM. De todas la más Sintaxis: importante es la que indica el procesador utilizado scgúti detalla el siguiente cieniplo. I I Ejemplo: I Descripcihi 1 i f i LIST P-P16F81A ; El PIC16FMA cdmo procesador utilizado. It Ect; i finalizar el 4 caractcrcs. y 1 ! 1 1
  • 615. I~A-M,~ APENDIC.~ PRINCIPALES I)IRECTTVAS DEI- ENSAMRI AUOR MP.4SM L) adicionales MACRO Declara la definición de Macro Sintaxis: <labe12 MACRO [<arg>, ..., <arg>] Una inacro define iin cuiijunto dc instniccioncs a las que se les asigna un al que si el texto nombre. Posteriormente, el programa fiietite del uswRo puede incluir el nombre de una :rito la dimiva rnacro y to&s las instnicciones quc la coinponm quedan insertadas en el momento de realizar cl ensamblado formando pa~te pruprna. Sc explica zti detalle eii el capitulo del 16. os sirnbolos dc Ejemplo: i n o del fichero : la biisqiieda es: Una estructura rnacro siiiede ser la sigwentc: nte y por ultimo NombreMm MACRO Instniccibn- 1 insenicci61i-2 Dotide "Nombrehíacro" indica el nornbrc de la inacro quc posteriormente se cmpleará cn el programa fiientc para incluir todas las instnicQcines que estén definidas bajo cste noinhrc. Las directivas MACRO y ENDM forman el cucrpo dentro del ciial S de listado c s ~ incluidas todas las instniccioncs deseadas. h C'adri vez que se eniplea "NoinbrehIacro" cn el propania fuente, irnplicii que se insertcn tiidas las instruccion~ conlleve dicho nombre en el programa que ;obre el forniato MESSG Crea mensajes definidos por el usuario : detallan en el e todas la mas e ejeniplo. l Sintaxis: MES SCi "<rnessage-tcxu" do. crear mensajes dcfmidos por el usuariii que aparcccn al Esta directiva pm~iite finaiizür cl proceso dc ensamblado y eri el fichero listablc *.list. Puede tener hasta 80
  • 616. bU0 MICROCONTKOLADCiR PIC 16384. DESARRIALO DE PRO' LC'TCiS E RA-MA Ejemplo: MmsajeMacro MCRO MESSG " mssgmwro-001 llamada sin el argumento " ENDM Hay iitrcis ejemplos descritos en la directiva 1F. ORG Origen de las instrucciones del programa Sintaxis: [<label';.] ORG <expr> Descripción: (Set Prog-um Originj El origen del programa 'comienza la dirección indicada en la ít:rpr> de la Jimctiva. Si se especitica una <labelb se Ic da el viilor dc la <tt~pr>. no hay ningún Si ORG cspecifcadu L gencracion del c6digo comienza en la dircccion cero. a Ejemplo 1 : ;j 4 1 ORG O ; Dirección de comienzo del programa - - goto Inicio ORG 4 ; Vector de interrupción. goTo SevicioIntcmi~ion Ejemplo 2: ht-1 ORG h20 ; Vectrir SO va aquí. lnt-2 ORG In'ltOx10 ; Vecmr 30 va a@.
  • 617. rograma REGISTROS ESPECIALES expr> de la o hay ningl~n BANCO O BANCO t INOF 80h OPTION 81h - E - .. PCL 82h 2 YI -- . STATUS STATUS 83h - 8 5 04h FSR FSR 84h PORTA TRISA 85h 3 TRlSB 86h -- B7h 'a E EECONI BBh '", €€CON2 89h Cij PCLATH 8Ah INTCON 8Bh OCh MAPEADO EN BANCO O NO IMPLEMENTADO FISICAMENTE. (SE LEEN COMO "O"). F i g i t u E-I Memorzu R4 M de datos del PIC16F84
  • 618. 6U2 hiICROCONTROLADClR PlC 16F84.DESARROLLO DE PROYECTOS '8; ICA MA Rl disp~nib mznioria con cl re; (T aplicada microcor alimcntai PCL ticr csl-rito con los PIC I 6FX8 corrcspot; RAh4 O21 escritos c rcgistro P la alimeni Tabla E-l Rcgi..~h.os SFR. (Speciaibitnclinn Rcgisters) del
  • 619. O h Banco O, 80h Banco 1 O Registro para el direccionamiento indirecto de datos. Éste no es un registro 4 ui rcgistro tisico) disponible Eisicamcntc. Utiliza el contenido del FSR para seleccionar indirectamente la memoria de datos o RAM del usuario; la instrucción determinará lo que se debe hacer con cl rcgistro seiíalado. El direccionamiento indirecto se explica en el capítulo 16. O1h Banco O (Timer O). Tempori7adorlcontador de 8 bits. Se incrementar con una señal externa aplicada al pin KA4IlOCKi o de acucrdo a una señal interna proveniente dcl reloj del microcontrtilador. Se explica ampliamente en capitulas 15 y 18. Al conectar la alimentación su conten ido es desconocido, (TMRO) = b'xxxxxxxx'. PCL 02h Banco O, 82h Banco 1 (Progrcdm Counter Low byte). Byte bajo del contador de programa, figura E-3. El PIC16F84 dispone de un contador de programa de 13 bits. Sus bits de menor peso corrcspondcn a los 8 bits del rcgistro PCL, implementado en la posición de memoria RAM 02h (y duplicado en la posición 82h del Bancol} por lo que pueden ser leidos o un registro fisico) escritos directamente. Los cinco bits de mayor peso del PC corresponden con los del rcgistro PCII que no pueden ser leídos ni escritos directamente (figura E-2). Al conectar - la alimentación se inicializa a (PCL) = b'00000000' y (PCH) = b'00000' F i l lineiic del Pucrtri A , PCH 8 7 5 7 PCiAT; <4:0> PCt 'k AL" o resultado PCLATH Figura E2 ComposiciOn d ~PC en instrucciones con PCL como destino l PCH PCL 12 11 10 8 7 o 2 K PCLATH 4 : 3 > PCLATH f i q r u E-3 Compu,~iciÓn PC en ímtmcciones "cal1" y "goto del "
  • 620. - - 604 M I I ' R I Y ~ O Y 'HOLAUOR PIClbFR4 I DEShRKOLLO DE PROYECTO$. -- RA-MA STATUS 03h Banco O, 83h Banco 1 El registro de estado o STATUS indica el estado de la Última operación aritmética o lógica realizada, la causa de reset y los bits de seleccibn de banco para la memoria cit. datos. A los bits del registro de estado se les suele denominar tlags o bandera. Al FSR 1 I conectar la alimentación su contenido es (STATUS) = b'0001 lsxx'. Scli: INDF se direcciona contenido 1 Tabla E-2 Regisrro de esdudo n STATUS C (Cany bitJ. Flag de acarreo en cl octavo bit, En instrucciones de suma aritméticas se actila cuando se presenla acarreo desde el bit m i s significativo del resultado, lo que indica que el resultado ha desbordado la capacidad del registro sobre el que trabaja, es decir. el resultado de la operacibn ha superado el valor escribirse 11111 1 1 1 (25Sio),que es el maxinlo valor que se puede representar con 8 : . bits. En el capítulo 8 se explica en dctalle su funcionamiento: Ranco 1. o C = O. En la suma significa que no ha habido acarreo y en la resta quc e1 alimentacic resultado ha sido negativo. o C =: 1. En la suma sjgtiifica que ha habido acarreo y cn la resta q i ~ z cl resultado ha sido positivo. DC (Digit Cany). Flag dc acarreo en el 4" bit de nienos peso. En operaciones aritméticas se activa cuando hay un acarreo entre el bit 3 y 4. es decir, cuando Puei hay acarreo entre los nibbles de menor y de mayor peso. escribirse c Z (zero). Flag de cero. Se activa a "1" cumdu e1 resultado dc una uperacion (entrada o aritmética o IOgica es cero. Banco 1. o Z = O. El resultado de la ultima operación ha sido tlistiiitu de cero. interrupcio o Z = l . El resultado de la última operacion ha sido cero. entrada. + /PD (Power Doii'n). Flag de bajo cuiisuiiio. Es un bit de siilo lectura, nci puede ser escrito por iisiiario. Sirve para detectar cl modo de bajo consunirl. el o /PD = O. Al ejecutar la instrucción slcep y entrar en reposo. o /PD = 1. Tras conectar la atimentación VD,, o al ejecutar clvwdf. m 0 (Timar Out). Flag indicador de fin temporizacibn del Watchdog. Es iin htt de sólo lectura, no puede ser escrito por ct usuario. Se a c t j ~ a "O" cuando cl en circuito de vigilancia Watclidog finalizii la teniporizacion. Sirve para detectar si una condición de reset fue producida por el Wuichdog Tlmer. o ITO = O. Al desbordar el temporizador del Watchdcig. o ITO = 1. Tras conectar VD, (funcionamiento noitiial) o al ejctiitar las instrucciones clrwdt o sleep. RPO (Regist~i- Bmik Select bit). Selección del banco para cl direccionamiento (EE, directo. Señala el batico de memoria de datos seleccionado. que accede o R P O = O. Selecciona el Banco O. (EEADR) o RP I l. Selecciona el Banco 1.
  • 621. Banco 1 W1 (Register Bunk Select bit). No utilizado en el PlC 16F84. 1RP1.No utilizado en el PIC 16F84. 'm Iaritmética o memoria de >anderas. Al FSR 04h Banco O, 84h Banco i I Se lector de registros para direccionarniento indirecto. En asociación con el registro INDF sc utiliza para seleccionar indirectamente los otros registros disponibles. El 1 Bit O 1 direcciunamiento indirecto se explica en capitulo 16. Al conectar la alimentación su contenido es desconocido, (FSR) = b'xxxxxxxx'. I I les de suma PORTA O5h Banco O lificativo del 1 del registro RAO a RA4). E1 puerto A puede leerse o Puerto de entrada/salida de 5 bits (pines xdo el valor escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido u con 8 bits. (entrada o salida) de sus pines se llama TRISA y esta localizado en la dirección 85h del Banco 1. Su pin RA41TOCKi también puede servir de entrada al Timer O. Al conectar la a i. 1 1 resta que el alirnentaciiin ueda confi~urado como e&da. resta que el PORTB 06h Banco O operaciones ccir, cuando Puerto dc cntrada/salida de 8 bils @ines REO a RB7). El puerto B puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de sus pincs sc llama TRiSB y csta localizado en la dirección 886 del Banco 1. Algunos de sus pines tienen funciones alternas en la generación de intempciones (ver capitulo 17). Al conectar la alimentación queda configurado como entrada. ra, no piiede o. EEDATA 08h Banco O fr. ig. Es un bit (EEPROM Data Hegister). Contiene los bytes que se van a escribir o que se han Y' cuando cl leido de la EEPROM de datos. Al conectar la alirnentacion su contenido es desconocido, a detectar si (EEDATA) = b'xxxxxxxx'. ejecutar las EEADR 09h Banco O (EEPROM Address Register). Contiene la direccion de la EEPROM de datos a la que acceder para leer o escribir. Al conectar la alimentación su contenido es desconocido, (EEADR) = b'xxxxxxxx'.
  • 622. 606 hf1CRUCONTKi)LAWR PIC hFF6. DESAHKOLLO DE YROI'FL'TDS % -: I C h$. ~ PCLATH o A Banco 0 ~ (Pc Latch Hágh). Registro qiie permite acceder de toma indirecta s la parte alla del contador de progamas en algunas instrucciories, la1 coma se iiescrihc en la figura E- 3. Al concctar la aliinentacibn se resctea (PCLATH) b'---U001)O'. INTCON OBh Banca O. 8Bh Banco 1 (fntc~.rupisCdtiriwl Regkrer). Registro p r el coiitrol de las intcmpciones. Es el aa encargado dcl manejo de las inter-pciones. í'onticiie los R bits que se rriucstran en la tabla E-2. de T s cuales unos acmn corno flags señafadoresdel estado de la iiitemipcion o y otros como bit de permiso o auturizacicin p a n que se pueda prodiicir la intcrrupciun. Al conectar la alimentación su conteiiidu es (TNTCON) = b'00Ci00110.u'. INTCOfi Tublu E-3 Registro de c'otiluol dt'la.<init.n.uyr1ioiws RBIF (RBport changt' Irifc.r*ruyt Flag). Flag de estacla de 1;1 inremiipción RBI . Indica yuc se ha producido una interriipcibn por carnbiu dc estado de cualquiera dc las líneas RR4 3 RB7. o RBlF= O. Ninguna de las entradas RR7 a R134 ha cambiado de estarln - o RBlF 1 . Cualquiera de las lineas RB7 a RBI del Puerto B ha cambiado. (Debe borrarse por software). INTF (Externa/ Ifitewupr Flag hl!). Flag de estado de la interrupción cxteina INT. Indica que sc Iia ~iroducido iiitcrrupcibn a travks del pin RBO,"INT. uiia o IhTF = O. No hay iiitei-rulición externa por el piri RDOilNT. o INTF = 1. Ha ocurrido uiia iiiterni~icibnexterna p r la Iinea RHUi'lIJT. (Debe borrarsc p o r suftwarc). c TOIF {Th.fRO Overflort* It;lci.mpt FJng Iiir). Flag dc cstado dr la interriipcirjn prodiicida por cl TMRO. Indica qlie se ha prodlicido lina interrupr'irjti por desbordamiento del Tiiner O, es decir, que ha pasado de b ' l 11 1 1 11 1 ' (FFh) a h'00000000' (00h). o TOlF = 0.E1 TMRO no se ha desbordado o TOlF = 1. El TMRO se ha desbordado. (Debe bcirrarsc por suthvarc). RBlE (RB Pord Changc lnteruupl Enahlci. Habilitacioil dc la interrupcivn RBI. b'iag que autoriza la intempcian por cambio de estado di: Ins Ijneas . RBTR R4 del Puerto B. RBLE = 0.Interrupcih RBI deshabililada. o RBIE = l . Intcmpci6n RBI habilitads.
  • 623. r'IL$.MA APÉNDICE E: REGISTROS ESPEC1.4LES 607 INTE (Externa1 1 Enablt~ bitl. Habit itación de la interrupciiin externa INT. W . Flag que autoriza la intempcihn externa a través del pin RBOIINT. o INTE = O. Interi-upciiin N T deshabilitada. parte alta o INTE = 1 . Intempcion INT habilitada. figura E- - TOl E (TMRO J Y I I ~ ~ I ' UEnahle hitj. Habilitación de la interrupción TOI. Flag P~ que autoriza la interrupción por desbordamiento del Tirtier O. ri TOIB = O. Intempcion TOI deshabilitada. u TOI E = 1. Interrupción TOI habilitada. inco 1 EEIE (EEPROM Write Complete Intt7rrupr Enabk). Habilitación de la iriterrupcion EEI. Flag que autoriza la intcmpcion por escritura completada de u11 byte en la EEPROM dc datos del PlC (el flag EEIF se encuentra en e l registro EECON 1). o EEIE = O. Internipción EEI deshabilitada. o EEIE = 1. Internipción EEI habilitada. GIE (Global Intermp~Enrrli/~>c.). de habilitacion global del permiso de Flag intempciiin. Se borra aiitoriiaticatrietitc cuando se reconoce una interrupción para cvitar que se prodiizca ninguna otra mientras se está atendiendo a la primera. Al retornar de la intcrrupcihn con una instrucción re@e, el bit GIE se vuelve a activar poniéndose a "1 ". o GIE = O. No autoriza interrupción de niilgun tipo. o GIE = l . Autoriza cualquier tipo de interrupcihn. Se pone a "1" iiin RBI. aiitumaricamctitc con la instruccion resJit7. itadu dc ado. OPTiON 81h Banco 1 mbiadu. Registro de configuración i-iiiiltiple, aunque su misión principal es gobernar el externa comportamiento del TMRO. Algunos microcotitroladores PIC tienen una ~nsmccion [N?'. denomina& también option, por ello. el fabt.icatite Mi~~rochip recomienda darle otro iiombrz a cstc registro. Así en el ficliero de definición de etiquetas P16F84A.INC' se le non-ibra ccittio OPTION-REG. Al concctar la alimentación todos sus bits se ponen a "1", (OPTION-REG)= b'llllI111'. -ri!pción iiripor (FFti) a Tohku E-3 Registro OPTIONREG PS2:PSO (Prescaler Rafe Select bits). Bits para seleccionar los valores del Prescaler o rango con el quc actúa el divisor de frecuencia, segiin la tabla E-5.
  • 624. PSA (Prescaler Assignment hitj. Asignacioti del divisor de frecuencia. El E Prescaler es compartido entre el ThlRO y el WDT: su asignación es mutuamente excluyente ya que solamente a uno de ellos se puede aplicar el Bit 7 divisor de frecuencia a la vez. o PSA = O. El divisor de frrcueticia se asigna al TMRO. o PSA = 1. El divisor de frecuencia se asigna al Watchdog. TOSE (TMROSnitrr-eEdge se lec^ bit). Selecciona flanco de la seña! al TMRO. m o TOSE = O . TMRO se incrementa en cad;i tlaiico ascendente de la señal aplicada al pin RA41TOCKI. o TOSE = 1. TMRO se incrementa en cada flanco descendente de la scñal aplicada al pin RA41TOCiU. TOCS (TMRO Clock Souvce S~lt7t.f Selecciona la fuente de señal del TMRO. bii). o TOCS = 1. Pulsos intrd~icidos traves del pin RAWTOC'M tTMRO como a contador). INTEDG (Inrrrrupf Edge Selecr bit). Sclector de flarico de L interrupcibn a rNT. o INTEDG = O. Interrupción por flanco descendente del pin RBOIINT. o INTEDG = L . Interrupción por flanco ascendente del pin RBOIINT. IRBPU, (Rmislor Purt B Pul/-Up Enclblc bit). Habilitación de las rcsjstencias de hll-Up del Puerto B. o IRBPU = O. Habilita las resistencias de Pull-Up del Puerto R . o /RBPU = 1. Deshabilita las resistencias de Pull-Up del Puerlo B. Registro de configuración de las líneas del Puerto A. Es el registro de control para el Puerto A. Un "O" en el bit correspondiente al pin lo configura como salidii. mientras que un "1" lo hacc como entrada. A! igual quc cl Puerto A, solo disponc de 5 bits. Al conectar la alimentación todos sus bits se potien a " 1",(TRISA) = b'--- 1 1 1 1 1 '.
  • 625. :' RA-MA r RA-MA A P ~ N D I CE: KEGIS'IROS ESPECIALES 609 86h Banco 1 Rcgistro de configmcion de las líneas del Ptierto B. Es el registro Jc control para cl Puerto A. Uii "O" en el bit corrcspondietite al pin lo configura como salida, mientras quc un "1" Ici ha-c corno entrada. Al conectar la alirnentaciiiri todos sus bits se ponen a "l".(TRISB)-b'11111111'. EECONI 88h Banco í (EEPROM L'o~rh.01 Register 1). Registro para cl coiitrol de la rnemr~riaEEPROM de datos. Al conectar la dimcntación su contenido es (EECONI ) = b'--4~001)'. uencia. El nación es aplicar c l ' Tahlu E-6 Rt.gisiro de ronlrol de la EEPROM de dubox IWCON NRO. e la señal RD (Read Controi Bit). Bit de control dc lectura cn la EEPRIIM. Al ponerlo en "1" se inicia la lectiira de un byte en la EEPROM de datos. Estc bit se limpia (se le la señal pone a "0")por h~rdware autoditicamente a[ finali7ar la Iechira de L posición a EEPROM. o RD = O. No inicia la lectura de la EEPROM o la misma ha terminado. 1 TMRO. 5adiir). RD o = 1 . Inicia la lectura de la EEPROM. Se borra por tiardware. 4RO cutriu WR tWritc1 Control Bid). Bit dc coilti-o1 de escritura eri la EEPROM. Al prinerlo en "1" se inicia uwi escritura dc uri byte en la EEPROM de datos. Este bit se limpia (se pone en "0") por hardwñre autciinaticaniente una vez Ea escritura de la EEPROM tia terminado. u WR = O . No inicia la escritura de la EEPROM o la misma ha terminado. 1' ¤ o WR = l. Inicia la escritura de la EEPROM. Se borra por hai-dware. WREN (EEPKOM WrifeEnuble bir). Permiso de escritura en la EEPROM. o WREN = O. Prohíbc la iiscrjtiira de la EEPROLl o WREN = l . Permite la escritura de la EEPROM. WRERR (EEPHOM Writt3 Error FIug Bit). Flag de cnor en la escritura. Se posiciona a "1 " cuando la operación de escritura temiria prernaturamcnte dehido a ciialquier condiciiin de rcsct. . o WRERR = O. La operación de escritura se ha completado correctamente. o WRERR = l . La operacibn dc escritura ha terminado prematurariientz. EElF (EEPROM Wrile Op~ratiunInlernyf Flag BIEJ. Flag dc cstado dc iiitzrrupciijn por finalizaciiisi de escritura en EEPROM. Señala el final con éxito de la aperacion de escritura de un byte en la EEPROM.
  • 626. 61U PICl hF84 DLSARROLLU DE PROYEC'I'US hliCRKON~CR0LADOK I,R~-MA o EEIF = O . La operación de escritura de la EEPROM no ha terminado o no comenzó. o EEIF = 1. La operación de escritura de la EEPROM ha terminado. Debe borrarse por software. Bits 5, 6 y 7 (Unimplcmentcd). No implemcntados fisicatnente. Sc leen "O". 89h Banco 1 {EEPROM C'untrol Register 2). Este registro no est5 implemeníadci fisicamente, por lo que es imposible leerlo (si se intenta leer, todos siis bits se leen ccinio ceros). Se emplca como dispositivo de seguridad durante el proceso de escritura de la EEPROM, para evitar las interfercncias en el largo intervalo de tiempo que prcciva su desarrollo. REGISTRO DE CONFIGURACIÓN El PIClBF84 dispotie de una palabra de configuracion dc 14 bits que se escribe durante el proceso de grabación del microcontrolador y que no se puede modificar dwantc la ejecución de un programa. Dichos bits ocupan la posición reservada de de men~oria programa 2007h. Tabla E- 7 Regisbu de coi$girroción (ConfigwrationWorrl) FOSC<1 :O> (Flag Oscilntor Selecdioral. Selecciiiri del tipo de oscilador: o FOSC - 00. Oscilndor de bajo consunio LP (32 kH7 - 200 kHz) o FOSC=01.Osciladorestind;lrXT( 1110kHz-4MHz) o FOSC = 10. Oscilador de alta velocidad HS ( 4 MHz - 20 MHz) o FOSC = 1 1. Oscilador cle bajo coste RC. WDTE (Wutclrltug EnaAle). Bit de habilitación dcl Il'atchdog. VPP u WDTE = O. Watchdog deshabilitado. D o WDTE = 1. Watchdog habilitado. PWRTE cPori'rr-up Timer Encrhlcl. Activaciiin del temporizador Power- Up. o PWRTE = 9. Temporizador Poww- Up deshabilitado. o PWRTE= 1.TernporizadorPci~u~r-Uphahilit;ido. CP ~C'ode~ot~~~dionbit~BitdeprotecciÓndeciidigo. o CP = O. Toda la memoria de programa cstá protegida contra lecmas indeseables.
  • 627. -ainente, ros). Sc PROM, lo. GRABADOR T20-SE escribe odi ficar latia de 1K5 Data 1 0 1 DTh -- TxD TxD -1 .- - . Zocaro PIC tA Pines R4 'dPP Ik A VPP D TxD D CCK 4 2-lo PIC 28 Ptnas -L - & - - - - Fi-quraF- l E~qia~nzu elt'ritico
  • 628. Cara de componentes Cara de pistas Figura F-2 Placa de Circuito Im11w.so quc u LlSTADO DE COMPONENTES: A-:. D3,DJ 1N414Y .<. - - - : : -- - - - a-> -2 D5 Zénerde 5Vl %W 1 <- >+ m . .; 1 +: .*. : D6 Zenerde 8V2 L/zW 1 y&:%/ : JI Zocalo 8 pines 4 J2 Zócalo 18 pines i 53 Zócalo 28 pines 1 P1 Conector DB9 hembra 1 Ql,Q2 BC547 ' I 43 BC557 s. R1 100Z 1 I R2 IOk F g r u F-3 Grabador TEtO-SE iir
  • 629. ASCII es el acrhniinci tic . 4 r m ~ r l l ' r l t l Stund~rrdCede for Iraformadion Jnb~rchange (Código Normalizado Arnet.iclirio liara el Intercambio de Información). E1 código ASCIl cs un sistcrna de rcprcsentación utilizado en los sistemas digitales (incluido ordenadores) que utiliza un esquema de codificacion que asigna valores numéricos a las letras, níiriieros. signos de puntuación y a otros caracteres. Al normalizar los valores utilizados para dichos caracteres se logra que, en sistemas dipitales, microcontroladores, ordenadores y programas inforrnáticos intercambien infomaci8n. Dado su origen en el sistema binario, el código ASCIl cstá coinpiiesto por 256 valores quc cstan divididos a la mitad en el conjunto est;indaiízado y el conjunto extetidido de L 28 valores cada uno. 4 Cbdiga ASCII estiindar. E conjunto ASCII bkico, o estandar. utiliza 7 bits 1 para cada codigo, lo que da como resultado 1211 cbdigos de c m c t e r c s desde O hasta 127 (OOh hasta 7Fh hexadecimal). Son los niismcis eri todos los sistemas operativo., y lenguajes de programación. Norn~dtnentc estos códigos se representan con 8 bits, poniendo el octavo bit o MSB a cero. Cúdigo ASCll extwdido. So11 10s caracteres del 128 hasta el 255 (8Oh al FFh hexadecimal) y no hay uii aciierdn respecto a ellos. Se asignan a conjuntas de caracteres que varían según los fabricantes y programadores de software. Estos códigos no son intercaiiihinbles entre los diferentes programas y sistemas digitalcs como los caracteres ASCII estándar. En el conjunto de caracieccs ASC'II cstandar se diferencian dos grupos: Códigos de control. Los prirneros 32 valores (del O al 31) están asignados a los cbdigos de cotitrol de coniunicaciotics y de impresora (caracteres no imprimibles, 1
  • 630. 014 Xi II'R( X7C)KI'ROI.AIIOK P-C: I I,t $4. DESAKKOLI.0 CIE PROYFC'TOS CI K<-L~A como rctroccso, retortiu dt: ciuru y tabulacion) empleados para controlar la toma en qiiz la intbnnacibn es ti-ansfcrida dcsde uii ordeiiadcir a otro n desde iui ordenador a una iinpresora. C6digos alfanuméricos. Los 96 ciidigos rcstaiites (del 32 al (27)siir] cariictercs ASCIl nonnalcs, se asignan a letras rnayúscuIas y minus~ulas alfabeto latino, del
  • 631. :wdc tcrcs :to Iniirici, is que se APÉNDICE H DIRECCIONES DE 1IVTER.NET EDITORIAL Ka-Ma: ~ww.ra-ma.e?o www.ra-ma.com FABRJCANTES Y DISTRIBUIDORES wwn .~iiicrochip.com Microchrp Technolr~gy n fabricante de microcontroladores PIC. w~w,dalsem - I .com Dal/us S c i n i c o r ~ d - M fabricante de componentes , elec~bnicos utilizados zti el libro. www.semiconductorc.philips.co~ Philifa Semic,ond~~cfor,~, fabricante de componentes utilizados en el Iihro. u w w . national.co~Nutinnd Semiconíiuctor. ww w . fairchildserni.com Fairchild S e n i i c o n d ~ c ~ ~ ~ r . h ~ : / / s h a i ~ - ~ ~ ~ o rShiirp o ~ I d . c Corpomfion. ~ c w wfutiiba-rc.corn Futabu, fabricante servomotores. . w w , v ishay.coni I/ishay Semrcondu~,tors,fabricanle del L'N Y70 y otros componentes electrónicos. e www.optekinc.com 0p1t.k Tcehnnloky, fabricante de sensorzs ópticos y otros. ~ww.ist>coin.co~n Iscicom Cuqin,ients, fabricante de opt~acopl~idorcs. wwu.robot-electronicl;.co.uk Devunlech L.td,componentes para inicrorobótica. i www.h~oi?.com Hi-Twh So@c~re, ~ii'opietariosde los derechos sobre cl compilador PICC'. ~ww.ccsinfo.comCCLYTrzc~,propie~~osdeIcoinpiladorPCW. w ww.melabs.com Liibs, propietarios del ccimpi lador iZ~íit~roEngitreer~rlg PICBasic Pro.
  • 632. 6 16 MlCROCONTROLADOR PIC l hF84. DESARROLLO DE PROYECTUS D R A-hIA i www.sanitron.es Distribuidor de microcontroladorcs PIC. También vende todo tipo de componentes electrbnicos. i ww.mode1i1nport.com Distribuidor de servomotores para España. Ticnc iina útil relación dc ticndas que venden productos de modelismo. www.idm.homepa~e.ciklne~ic.htm Programadores JDM. www-ic-prog.com S o h a r e IC-Prog. Las paginas Web de la secciiin anterior también tienen buenos foros sobrc microcontroladores PIC. Otros foros: AUTORES DE ESTE LIBRO ? S oluc Progr www.ccitii~inidadele~u~ni~~s.~~n~información útil sobre temas de Mucha electriitiica. i I~~:!:!pirrci-itial.redestb.es:!c'dstiIIoM h inforrnacion Útil. a it~u:.piclist.com Ciiti niiiclia itifoniiación sobre microcontroladorcs PIC y múltiples cnlaczs (cri ing t is).
  • 633. vende todo . Tiene una APÉNDTCE I l! CONTENIDO DEL CD-ROM foros sobrc El CD-ROM que se incluye en la presente publicaciiin contiene todos los :S programas necesarios para realizar los proyectos desarrollados en este texto. Hay además otros ficheros de ayuda o complementatins. Las diversos subdirectonos o ficheros que contiene son: 1 Contiene el archivo MPLAR v.6.40.EXE que es programa de instllacibn de MPLAB IDE vmibn 6.40.0.0 y algutiui archivos en MPIAB lDE formato PDF con información sobre el ensainblador MPASM, MPLAB y otros. -1 Los prdgramas resueltos de todos los ejercicios y proyectos. S olursicnes Progiamas Ficheros para rl 1C-Prog que es el software de grabación de rnicrocontroladorzs desarmllado por Bonny Gijzen y recomendado en el IC-Prog libro. Ficherua para la realización de la placa de circuito impreso dcl grabador TE'IO-SE. e irmas de TE 20-5 E información ticiiico sobre los componentes utilizados en el libra. :iirss PIC y PDF