640

Click here to load reader

Microcontrolador 16f84 desarrollo de proyectos

Embed Size (px)

DESCRIPTION

Libro de Microcontroladores 16F84

Citation preview

  • 1. En~lqueP alaclosFernando RamlroLucas J. Lpez- 1Alfaomega e ~a-~a" , .;Y- ---,I'"J- ,.1i

2. Este libro pretende intrcducir al lector en la realizacibn de proyectos de circuitoselectrbnicos construidos con el popular mlcrocontrolador PtC16F84. Para tog rarlose muestra un elevado nmero de ejercicios resueltos que el lector podrhdesamolar facilmente con medias a su alcance.1 Tanto los aficionados sin grandes cranocirnientos de electrbnica, pero coninquietud suficiente para montar sencillos trabajos con rnicrocontroladores, comoA- los estudiantes de carreras tcnicas de electrbnica y los estudiantes de IngenieraIndustrial, Telecomunicaciones o InformAtica, mcontrardn de gran utilidad estaobra para Ialrealizaci6n dB sus primeros pro~ectos.m-lflbr~ resulta eminentemente prctico ya que contiene m& de 160 ejerciciosresueltos con sus programas y esquemas, siendo muchos de ellos proyectoscl Asicos, como termdmetros, relojes, calendarios, cerraduras electrnicas, controlde dispfays, temostatos, temporizadores, alamas, sirenas, comunicacibn con lajuegos, control de motores, microrobots. etc.- El software utilizado es de libre distribucin y los Circuitos emplm componentes quepueden adquirirse facilmente en cualquier tienda de pwuctlos electrbnim. Para eldesarrollo de cualquiera de los proyectos planteados no se precisa degrandes medios materiales, por lo que realizados resulta sencillo,I econdmico y ameno, adems, se incluye un CD-ROM que contiene elsoftware nema&, las soluciones a los ejercicios y notas tcnicas. 3. Microcontrolador PICI 6F84Desarrollo de proyectos 4. 1 Microcontrolador PICI 6F841 h Desarrollo de proyectosEnrique Palacios MunicioFernando Remiro DominguezLucas J. Lopez PerezAlfaomega 4)+ Ra-Ma' 5. Microcontrolador PIC lbFB4. Desarrollo de proyectosQ Enriquc Palacios Muiiicici. Feraando Kemi ro Dominguezy Lucas J. L6pez PrezISBN 84-7897-600-0, edicidn original publicada por RA-MA Editorial,MADRID. Erpaia. Derc~hosre servxicis 0 RA-MA EditorialMARCAS COMERCIALES: RA-MA ha intentado a largo de este librodistinguir las marcas registradas de los trminos descriptivos, sigiiiendo elesiilu de mayusculas que utiliza el Fabricanre, sin introci6n de infringir lamarca y slo en beneficio del propietariode la misma.Primera edicin: Aliaoiiiega Grupo Editar, Mkxico. agosto 20038 2004 ALFAOhlEGA GRUPO EDITOR, S.A. de C.V.Pithgoras 1139, Cul. Del Valle, 03 100 Mxico, D.F.Miembro de Id Camara Nacional de In Ind~stria Editorial MexicanaRegistiw No. 23 17ISBN 970-15-1033-XDerechos reservados.Esta obra es ptopied.d intelectual de su autor y 10s derechas de publicacicinen lengua espaola han sido legalmente transferidus al editor. Prohibida surepri~duccinp arcial o total por cualquier medio sin permiso por escrito delpropietario de los derechus dzl copyright.NOTA IMPORTANTE - - -La inforniacirrn cnnten ida en esta oliri tienc un i'iii ex~lu~ivamendteid dcticoy. por lo tanto, no esti previsto sil aprovcchamirnio 3 nivtl profcsirinai ti in-dustrial.Las indicaciones tcnicas y programas incluidos. han cidn elahnra-dosCOI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas decontrol. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no ser jurdicamon-teresponsabte por: errores u nmi17O6101112IN7 OUT7to a la del RB7 GND COM.BOBINASlade los contactosms de 52-8 de de con 13. -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 cpsula DILde laPara cargas de hasta 10 W es riiejor utilizar reles de lminas encapsulndos en DIL, alta fque necesitan una menor inta~sidrid de activacibn, aunquc sus contactos no perniitzii dar 11activar cargas grandes. La fipra 2-9 muestra un ejemplo de apjicacitin donde s61o esnecesario un tratisistur para gobernar et reli. Normalmentt estos rels llcvanincorporados dentro de la cipsula el diodo de proteccin, como se ~iuede apreciar en la fototrfigura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito.5vALlMENTAClON CARGA'l---CARGAR1 u110k BC547 CARGA hiiAxiMA(500 mA. 1bW)FiguiFipru 2-9 Gobierno de p~qrtrilnc~ar gas u trai.L.r d~ un rd&d e lminas en cu~)sulDu ILhar i 2.5.3 Control mediante fototriac ~UZ. 1ila teEn el circuito de I:i figura 2-10 los contactos del rel son siistitiiidos por un prctifciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz. el tries neEl necesario aislamiento entre cl microcontrolador y la carga de 230V se hace cona;mediante wi opt~~opladoMrO C3041, qiic es iiii circuito integ~dc)q ue incluye iin LEDque controla al fototriac. Este dispositivo esti rspccialmente diseado para usarse coinointerface tic sistemas 1gic0s con equipos que tienen que alimentarse coi1 los 230 V de la apag:red clectiiila. Sus carac tensti cas mas significativas son: conilIncorpora un pequeo y eConirriico encapsulado DIP 6. corriiSu tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre lared elctrica y el microcontrolador.Es capaz de proporcionar hasta 1 O0 niA, que le permitira alimentar garardirectamente 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 laCuenta con un detector de paso cjrcu por cero inlenlo, lo que permite economizarun nmero iio despreciable de componentes externos. de rtc ircuEl cc 14. ~cia mnima Para conseguir cstas potencias, el triar: debe ir montado sobre unbuen radiador derna es dc calor, de forma que el semiconductor cc refigere adecuadamente. A la llorade poner el;mdo en el radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarseal. Por tanto. temiinal T2. por lo que se dcbe aislar cuidado(;aincntc el triac de! radiador rncdianteunalamina de y un para el tornillo.mica separador dc plishco Ir a!;urolar'-sefialnormalmente utiliza zurnbsidor piezoelctrico miniaturacomprendidas entrc y 16consumo FO mA, por 10 ser directamentesalida microcontrolador, tal figiimSUM&ADOR EMITE SONIDOCON SALIDA BAlOentrcolnaceiEMITE822Conexihn de irn aim bador ininia firt-a microconfroJadoric, donde lade unvez, estacargas2.6 ZUMBADOREn muchos proyectos es necesario indicar mediante tina audible la ocurrenciade un evento. Para ello se uncorno cl de la figura2-12.Un zumbador miniatura funciona con tensiones 3 V y suno supera los que puede alimentado por lade un como se indica cn la 2-13.A NIVEL137 (8 A)'uctivasZUMBADOR SONIDOCON SALIDA A NIVEL ALTOtc enparaFisura2-13 aun 15. fICROCONTROLADOR PIC16F84. ~ R A - Mmicrocontr:vcimism-1Grabador E>(TEPO-SE compatibleFjxlrra Coyf;guraciin par[/ p b o r micrmot iri-orudorps medios redz4cilr'osgrabador equipo dondc procede pharrnicrocantrolador la% instnicciones prapma control.zkalo quc integrado grabas, cual orientarseuadarnente de capsula .cores:rciaEes e1 pueden entrbnica.Microchip okce gmbador PICSTART ficitihzada (fipraEn lasquc rmiicho rncnuiiitcrcsaig~purtAtiles soh22 DESARROLLO DE PROYECTOSEnmltiplestienda depor sOrdenadorPersonal Programadoro JDM)3-1 con3.2 GRABADORESEl o programador es el fsico se a lamemoria del con del de Tiene unlibre sobre else inserta el circuito a el debesiguiendo la seal la del chip. Hay multitud denmercado que se adquirir cualquier tienda de clecgrabadel PLUS, de muy utilizacin yfiabilidad respaldada por el fabricante 3-2).apenasmuyque estos 16. En ltiternct pueden localizarse mltiples grabadores de bajo c o nparaPIC. Uno de ms es el denominado y susmicrocontroladores 10s populares JDMiniiltiples versiones mejoradas, puedetal como el TEJO-SE que se adquirir en cualquiertienda de por un precio muy asequible Sipor si cn F se proporciona informacin paraelectriinica (figura 3-3). 1 ntarlomismo, c1 apkndjce el1-. 1 - -IibleJDM alsnas versions2- grabar disertdor Jens Dyekjm, w. i d r n . h om~ a ~ c . d k / n ew~ i c .:rol.zbcgrabadores-ir(inica.CfRCUtTOFig~rcr Esqzt~rnad e 110 pl1~1docro rnpnfildeJ BM bO.cico corEir figums se describen bsicas pmprnadorqite reqiiicrc cornponcntes. Pa esmenor qiic In dcl PICSTART PLUS. construcciiinintcrcsantc para miiltiplcs Auiiqiic hay quc tina obsen~acicinp.abadores hrisicos cor~ectamente ordcnncpottfitjlcs scihre Ademb, iina clamadorJDM)El programador y de sus la Wcbe laTiene unorientarsefeES EXTERNA AL3-4las 3-4 y 3-5 dos versiones de esteapenas Evidentemente fiabilidad de este programadormucho pero su facilidad de lo hacemriy aplicaciones. hacer v esque estos tan no funcionan en algunostodo. conexin incorrecta puede daar ordenador. 17. 1 l 24 MICROCONTROLAWR PICI 6W. DF5AR ROLLO DEPROYECTOS m ~ 4 - W A -r' M-h~D1TU l W i 4n7 funcionamielufili7gr cstcjq)mg.si:~de1x5EnI la iiltima ver:L5y-y - E ayudar atodc~K profundodcDsBm programa C.-- GRFimrvn t C Avriromri lio i r n ni.nhn/Lr rnnind;hlo IT) fiA hr;r;rn c;i? n1;montn~Mn oviornrr 1 . f i E . I L . -, -, YYYL,CI.*" Mb l l r l h. L.I.C.C.", L"I.I I IUY.I,I&, " Y l l . YUi l .U, l .l. R~tno pulsando la tecla F9, tambitn al pulsar Sel icono correspondiente de la barra de herramientas (flecha azul).Animate (o teclas ctrMF9). Modo de ejecucihn animada. Ejecuta el programade forma continua pero actualizando todas las ventanas cada vez que seejecuta una instruccin. Es m& Eenro que el modo "Run" pero permite vercomo van cambiando los registros. Tal vez sea d modo de ejecucin ms utily rccomendablc. Se entn en este modo seleccionando Dshir~~>e rA niniatambin 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. Seconsigue seleccionando D~hti~gge>r Run o pulsando la tecla E5. Tambidn seentra en cstc modo al activar el icono correspondiente de la bamherramientas (dos barras verticales azules).Sfep Inro. Ejecuci6n paso a paso. Eiccuta una soJa instnicciCin del progamacada vez actiializando los valores dc las ventanas. Es la forma mis lcnta desimuIaciiin pero se compnieba fci 1 mente como van evolucionando todos losregistros y memorias, siendo muy facil dstectar los posibles errores. En estemodo se entra seleccionando Debugger > Srep Info o piilsando la tecla F7.Tnmbjzi pulsando sobre el icono correspondiente de la barra de herramientas.* Resef. Equivale a un reset por activacin del pin MCLR. En este modo scentra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. Tambin si sepulsa sobre el icwo correspondiente de la barra de herramientas.A-MAPan1aemho ticSeleccionndonde Iia i 25. it~ t.icuentre,fine (mblador ::to. II :continuacin:]Ni? LED PORTB se i:n IineLED(Dflne n :D~Plnes (genmlmentc ~ D F F-DFFidbsD P(tl O,i1 Rznmsc conccia 3: nm.;o :LERACCCW 1.Confrgum csla lneahcccw :: Encicndii1: L#DEFINE ANSI simbolosmCtodo disponibles Dara mr15. este valor ARIOcuwriorlargo numero binario natural formato hcuion opcracianes progamas microcontrolador merece !;e. iemplo expresado binario natm1 I01 1 1 11 BCD separas Fasqudando: 0010 figura txplica cl: diagmma resolver.4. coni~crsihn. irnplernenta. descrito continuaci9ns, e pttede Iri figura 9-6.***sis valoresde--m -AnienzoRAM 4 ., -1 he,umm hinario 8 bits cs curivcnido El erultadri gl~qrrlem~irinsil amadas Ccntcna~. L'nirladcs Admi s tiiial 1c bajo repsmi W y dcccnas cn cl nlbhlc Ins didas:dcm;calida visuaii7arn !as dmenas la* La e n m punidadeLEDs canesicioncss estartictados;:p: pr: ejemocediniientrpln quc trai;2 1" A. l...s*,-,la figura9-4 que. . - Esta dir queeuna Dondle quieraEjemploA seconecta cstn...bsfBLOCKmarcada entre lasbcicofRanw1 .: El; al Banco; como salida.Banco O.el diodo;Esta directiva emula del C standard. Los definidos coneste no estn ser usados el MPLAB.anterior ejemplo).Si no 9.9 CONVERS NATURAL A BCDal: de lasi a lo del La conversin de un expresado en a es unade variables, de las ms utilizadas en los con y que seranalizada en detalle. Por el valor 124 en seria00, para expresarlo en hay que centenas, decenas y unidades0001 0100. La 9-5 de flujo para estadefinidaUn programa ejemplo que lo seria el a yque comprobar sobre el circuito deloa datos..Un nnihhlde 3 RCD. seDocenas y aldel las alto. Eno de se ylas en elalEl mniunivalor queEl utilizado 26. MICROCO~OLAWRPI C16F84.D ESARROLLO DE PROYECTOS OWMA{Decenas)movlwsubwfbtfi~;FotoNO, IHNO, m!NO, miNO. resiNO, miNO, mNO. mca loNO. reSra 10NO, Festa 10NO, resr fnNO. mtIncremcnNO. hcrt. . .. .S).cenas).cenas).cenas).cmia~).cenas).NO. lncmcnta (UcNO. Incremonta (aeNO. Incremnta (DeNQ. Incrementa (DeNO. IncrtNO. IncrtNO. lncrthln lnm.:menta (Dcmenta (De:mcn ta (De..-..M+- Ir%*cmiaii).cenas).cenas).,*v.i ii~ibiiibiira(r ,cr*nnrl bCil02,J.Si. @ecenari)=O, y aldembincrementa (Cenfew)NO. Inemnenta (DeNO, resta 10 cenas)s, sete 'Numero".r- 1 lUDE !o CnnOovlw h' En el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado ..-hardware utilizado sdel esquema de la figura 9-7.IlCl i4.mtovlw h'l,tn h.idovlw h'litn A'1717: tmp11; Por qi verdad mie 3 enmba tabla dc I:abla seri diancja dc tes tal como I:matar un:jtmpto, la I 28. C'M~ULO SALTOS 1351 1 1 I;(cd*I-6nl).1 1 1 1 i ; ( - h z ) .r i 1 1 1 I;@orSi@&tf).1 1 O O;wgumidn4).1 1 1 O i 1 l;(CdgumcibnS)-1 [ O 1 1 l;(Conftguracibn).1 1 1 1 i 1 i 1 1 l;(Wguracin7).; im enbndw mectai.mi llneas del puerto RA2 M1 (B) RAU;Lassalidasse~enenelpuertnB:;RBS(S5),lU34 (M),M 3 ( S3). (521, M1 (Sl) RBO;ZONADEDATOS ***SH***l*%'****W'****SI************5*1II*L*I***************h****U*****CONFIG CP-OFF & -ri'DT-QFF & -PWRTEEON & XT-OSCEST P=16F84AINCLDE 4'16F84A.lNG;ZONADEC~D~GOS**'*******************Q"'*L******~****#********S:*****~***++*************pmgrama conireriza h direaibn 0.bsf STATWSH'O d Bancoclrf TMSB : heas hiato se confipmu saiida.movlw blOOO 1 1 1' : lneas det se eukada.mowf TRISAbcf STATUS,RPO ; alsi utilizxiiin la movf PORTA,W ; el valor las variables e n e .de Se los deandlw b'00000t1i' ; queda cm aec bits enaada.;igue configuracibn &macla.deC o n f 1 ~ 0 i i Ogota Configuracion 1Co~guracion2Corhgumcicin3registro goto Conguraciod;fr. goto ConfiguracionSI goto Cdguraciaagoto Configmcion7rnovlw b'0000101Ot ; Confipuracibnindexado. goto Activasalidaconfiguracibn'.CL*******I*movlw b'OO1OOO1li : Cun-ihmovb b'0000111~' C 0 n ~ i S ogota ActvaSaWCdgumon49:o o a o o oo o o o oo o o 1O O ] O O OO O O1 O 0 1C, B. A se a las A: (C), y{A).RB2 y (SO).ORG O ; El en; Acceso l .Lasdel Bcomo11 Las 5 Puerto A configurancomoAcceso Banco O.que puedan serde Leodesumando al ;Saltaa laen el registrogotogoto un registro base gotoque es elAl ejecutar lacon la primera;O.Ito Ell.2,; 3. 29. 136 MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS F RA-MAmvIw80C~idmvlwConf~iioti6mwhsotoCwfigmcion7mvlwActivaSalidamYwf ; Vidiza por el pueFto de salidaEn las soluciones de los ejercicios facilitadas en el CD-ROM que acompaa a estelibro, se describe otra forma de implemmitacibn ms eficaz mediante el provaindexado - O1 B.acai.Figura 9-7 Cit.~liliiop aru comprnhur ios programas de tabla de ivrdac39.1 1 SALTO INDEXADO DESCONTROLADOComo ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programay que direccionan la memoria de cdigo estan guardados en dos registros especficos(figura 9-8):El regun regLos bipuedePC LAEl PCLlbits son transfetiznen por dcstiCuando !instnicciiin .ades as, cl salto eque el registroprueba de un sa; Prowa para cor; Se debe comproba9; ZONA DE DATOINCLUOLIST; ZONA DE C~DIEORGIniciogotochORGPrincipalniovlwaddwf 30. i RA-VA CAP~TULO SUBRL'ITNAS DE RETARDO 173;ta iiistniccioncnstalR..ContA can R-ContB con"K"contador R-ConlA"K*Pequerio tiempourridoDecrementa R-CoiitA:S;SUBRUTINA:0nseguir el retardo R-ContBruccin:I R-Corrr.4,ijerite12-4(A) SUBRUTINAEsfruchci-ad e Iw sub~4tjnad(~9 r~~tnrdoddeducir el~iiicialmente - ContA sigiiientc: viene ps:Ziempo=5+4K K = ; miquina. VC- -> a) "1" -r al VGal inversorinversor Entrada 'O"VCC=SV vcc=5vNegro en Corte Entrada al inversor Entrada al "1"- Detacta --r Trans151or --> "O" --> pCFigflru 3.2-8 Cirtrritu tr;tlzcos de conexiupr delCM70El circuito de la 32-9 permite ajustar la tensin de disparo delfigiira CNY70.oper~cional, tensiiin,rtitnda cl sensor inversora iinUtiliza un amplificador que trabaja como comparador de al que se leha conectado en la no inversora y a la entradaque como un divisor de tensin.potencibmetro trajaVCC'Wla misma.a corriente1'70cinSdel950Lade lasformas detensiones aerta sonVTariarlo FiTransistor Sauraao .-- Enbada --> RA3; 1- - 22P - en Cme Enmda invsrsor --> M = - D .rteaplicacioncorriprobar dispusjtivos analizado CNY70OP703104105 Sensor-CNY70-01 .asmsensnr 32-1 cl enciimtrarefle-ja entradarnensajc inhrrojotioaparece; Eaimblla L.CD visualiza e& sensor CNY70,se& b corrrspiindimie. - Bhco --> sahuado 3 abada --b = "1 ". - Negro -> 2 enhda inversor " " -a KA3 "0 ".nxima7-8 y3; Lneas conecra d sensor.mayores masun diodoeste casodel. inversor " 0 '1'Negro --Transistor --, "1"704 tieneente parade las32.4.3 Ejemplo dePara el funcionamiento de los que tiernosy los se puede cargar el programa y montar elcircuito con el de la figura l. Cuando sensor se frente a unasuperficie blanca el haz infrarrojo y en la RA3 aparece un nivel alto quehar que en el LCD visualice el "Color BLANCO". Si el haz scenfrenta a una superficie de color negro o encuentra superficie, el haz no refleja y en elLCD el mensaje "Color NEGRO".se el color "Blanco"o "Negro" que detectandoel; configuracindel esquema Si:; Color transistor al inversor"O" RA3; Color transistoren corte al 1 =distancia,es32-9corrientedonde se 106. 526 DF PROYECTOSMICRWONTROLADOR PIC 1 hF&l. DESARROLLO O M-M.4; Z Q ~ ~ A D E C ~ D* *~~ *~* ~O* vS+ w * * * * * * * * * * * ~ * * ~ ~ * * * v ~ * * + b * * * ~ * * ~ * * ~ ~ * * u ~ ~ * * * ~ * * m e * * * ~ * * * m m + ~ORG4 1 LCD-hiciaiizaMensajeCiilorcall LCDMemajeSTATVS,rn; del senwr cornoh f STATCiS.RPOcall LCD-Lindmovlw MensajeNegro negro.b t k Sensor Lae sensor.rnovlw MmajeBlanco ;cal1 LCDMensajc Visualira msultado.gotoDT " BLANCO". 0x00DT " Negra ", 0x00WCLmE enencuerimy gr32-26,sensormedicibn.piilso 1scnsor SR1emitidos zilcs emitirS36DESARROLLODE RAMAActivado (A)Lospero dchumanas. Losmediante untardanFinal de carrera Representacin de un final de carrerasobre el queEL32-24 Final de carreradeactivar brazo de la el comn realiza un contacto secon el activado A. Cuando se activa la palanca el terminal C endc reposo R. su bajo consumoconEn temas anteriores se ha utilizado siempre sistemas para lospulsadores. Un sistema se muestra en la 32-25, se de unflop que presenta en salida y Q2 complementarias. En elestado de reposo la salida Q E tiene un nivel alto y la salida un nivel y al activarfinal de la salida a tener un nivel bajo que la salida aalto.Este fuihacer la SIanchura del deElviajan a la32-25 de carreraa circuito reflejado y captadoincorporado 117. i elctrico1ias.ULTRASONIDO SRFO4Loi; ultrasonidos aire mislila naturalezapena superior H-k audibles mdetectores obszacuIos ultrasonidosmediantc ondas ultrascinicasalgnvolvcr piilsosobjetoSW04 sensom ultrasmidos, desrtrro!lado DeiwrrrechLrd (~w.mbot-electronics.co~uk) comerciali;rsido Espaiia Intpluc S.L(www. s u ~mo h o t i c a . ~q~ue) , capaz detectarencuentra cn 3M pequcio el SRF04su consiirno gran fisico muestran en figumCanexlonesSRFWt .5llrnanlsd4n ?NZ - Salldn- E111rada Disparofisico Cencxiones postcriolsensor hncinnnmedicion, lapulso muestra figuraSW04 fiinciona uftrasonidos,la hasta alcanzar objeto. sonido esultrasonidos. que cl controladorimpulsos, continuacibn contar d32.9 DETECTOR PORson vibraciones del de la que el sonido,de frecuencia a los 20 por lo que no son por loshumanos. Los de por emiten pulsos de ultrasonidoun dispositivo transmisor, cuando las se reflejara sobreobjeto, a tmvs de una cpsula sensible se captan los pulsos reflejados. Eltiempo que tardan en los reflejados es proporcional a la distancia delsobre el que se reflejan.EL es un mdulo de por pory en pores de objetos y calcular la distancia a la quese un rango de 3 a cm.De muy tamao, destaca porcontacto bajo y precisin. Su aspecto y conexiones se la32-26.e para los delrata de unEn elactivar e12 pasad aEca3Aspecto y vistaEste por ultrasonidos y contiene toda la electrnica encargada dehacer la Su uso es tan sencillo como enviar el pulso dc arranque y mediranchura del de retorno tal como se en la 32-27.El sensor emitiendo impulsos de Los impulsosemitidos viajan a velocidad del sonido un entonces elreflejado y captado de nuevo por el receptor de Lo haceincorporado es emitir una rfaga de a empieza a tiempo 118. MlCRKONTltOLADOR PIC 1 hFM, PROY ELTOS un-MA538 DESARROLLO DEaiie tarda -- -- en --- lle~--- =" ar el - - eco. - - -. Ente ---- . tiemm --' se traduce en un nulso de eco demichura J;.-,.-+~I n* 3-- - - - - - - --- -proporcional a la distancia a la que se encueiitrael objeto.uSdsUPermita'1I 11 1 ultrau IidrPulsu Z E ---Diagramar de iiempos SRFO4, (c~rfe~..iLwi ww.srtp~rrohoicfa .com)la medida tiguraincrementa p,siendo de medida ihlida 11s y 18 correspondientes cni 1 respectivama i- - - - - - - *- .L--- ---.-.**************1ParaI ; lhea RA3; sensor ruitemrpciones po; SeguidamaII ; centirnms.0,lO 0,18 0,24 030 18,00 36.110tPULS0 (ms)MlNiMo I_ nniurn n~ ~ ~ n i n a-q -AMAXlMO D.,- A-A- .,-L.+ IF' I l - -- I I I VI L-Ua b.GIlULWi distaticio tedida unchuua pulso : ZONA DATiItpica puede medidor el 32- I- rnM29, se distancia censor LISTI iNCLUISen~or~Ultrasonido~O1.aspmii,e de utilizarse d C8UICsensor. I Distanciiminirna ps pin SRFO4 ENDCPulso de Disparo10MnimoEntrada PulsoDisparoFigura 32-27 del deLa relacin entre distancia y el ancho del pulso se muestra en la32-28. Por cada centmetro de distancia la anchura del pulso se en 60el rango entre 180 m, a 3 y 300te.3 4 5 6 258 259 300DISTANCIA (cm)ANCHURA0.36 17.68 17.94.".,..,- ...--.-,Figura 32-28 Relacin entre la y la deUna aplicacin ser un de distancias, como de la figuradonde en el display visualiza la desde el a un objeto.El programa para comprobarfuncionamiento del La tcnica de programacin consiste en mandar un impulso anivel alto de disparo con una duracin de 10 al 3 del (entradaUNota E l Pulso EcoNCde Salida de Eco; el controlquese ponga;se.,;En este programaDE 119. Rh-MA:retardosl 6nalle1.ips,300saleprcipiircional.*kli**O*iT~U**L***O#*******i**,**SeIISM uaoniJo + * * * * * ~ " + C * ~ * * * , V U * * I * * ~ - -; Programa un medidor & dismclas objeta utilizarido L.eriso poruhmonido SRF04.; semar primer iugar un us mvei alto por: lnea que Ia entrada di~paro msm. que m; aensor ponga nive1 conecta liea Ipsinterrupciones desbordamiento &I Timcr medir alto; Segudmente v i d i z a mdulo LCD Ia okqeto e x p r d m; centimfms.; mtr&u el SRF04 ps pulso.distancia minina miximaOxOCm ianchuradelee Eca y elPulso dela figuraen 60y cmdisparo). Despus se lee el pulso que por la patilla de ECO pin 2 y se mide sulongitud. que es al eco recibido.para hasta unPara el control del en se genera pulso de 10 a lase conecta a de del Seguidamentese espera a else un alto en la salida ECO que se a la RA4 y se utilizan; por O para el tiempo que esten el pulso.se en el el valor de distanciahasta alPor cada de distancia al objeto aumenta 60 la anchura del;En este programa la es 3 ctn y la 250 cm.CBLOCKDistancia 120. hIICRKONTROLAWR PIC 1 hF84. UESARROLI. 0 DE PRO'rT.C'TUS#DEFINE Diqm PORTA,3 Disparo#DEFINE PORTA4 PulsoMinimaDis!ancia EQU .3MaxbDistaacia EQU ,250TMROCarga~crm EQU 4'27' obten experimenttilmente; StopwatchTimer cuda M) p. correctzmciitt pir tolemcias componentes M dhacer a j e fio este vator, wbre IasORG OgotoORGgoto ServiciointemipcimM-jeDistaraciaDT " Distancia: ", OxOOMensajeCentimetroDT " 0x00 I V i s WhfmsajjeDisranciaMenor ;visualizmrrm'mist. 0x00 ;YcuandomMcnsajeDistanciaMayor"fist. 0x00 ; distancis4 1 LCD-Inicializabsf STATWS,RPOkf moybsf Eoo subumwlw b ' m ' Prescaler TMRO. bthmovwf OPTION REGbcf STATL'S~PO ~ D : ticializa sub1btfsrclrf Dic(arrcia ; Iniciztli !mbsf Comierw guiso disparo.cal1 Reiardc-70micros ; Duracin de1 DisrauciaMaytbcf Dispara disparo. movm=x~Eool movbtfss ECM, el flanw be h &al mov@tu ESpera-Ec0-l ; de delmovlw TMROOCargadOmicrosm M W O Timerrnoviw b'10100000' ;A uton~air iterrupcibn TMRO (TOIE). mvmovwf MCON movmOYE s p s d a igota S W . Disl~nciaFiabiclrf NCON ; pducido d h c o Prohlbe intemp. mcdl VisuaIiza Visualiza VisurilizaDim540; para iniciar la medida.Eco ; cuya anchura hay que medir.;Valor ido con laventana para una interrupcin del; O Si no mide las de los;que un de comprobndolo condiciones reales.Inicio4cm", ; la dDT MENOR de:",DTMAYOR de:", Si laDisparo; de 2 para ellnea de disparo en bajo.el registro.Disparo ; el depulso.;Final del pulso deEco ;Si espera subida desalida censor.;Ya se ha producido el flanco de subida;Carga el O.del; flanco de bajada de la de la salidaEspera-Eco-O ; delSe ha de bajada.; la distancia. 121. Reardo-2s ;Espera un lacallgota Principaltiempo huta pr6xima medid&- Subrutina "S&cioIntmppioa" - ------. - -ejecuta la peticibn Timer cada 60 ps 8s mCmento; & anchura por centmetro distanciavalor distancia espresadaServicioIntmpcionmovlw TMRO-Carga60micros ; Cwga Timero.TMROmovlw .i insmicciim "addwf", "incf'&lwf Distancia,F para posicionar flagmvlw MaximaDisimcia En c m desbordamiento carga mximobtfk STATS,CDistanciaf MTCON,TOFrdieVisualiza centimetros. t i x e niandovisiialitar nrmero dwenas vimialicen aunque seanIas decenas vidicen =o.; euVisualitacansubwfbtfssmovfsriblwbtfsgotoDistanciaMenorniov1wmowfDistanciaFiableVisuatizaDisimciatnayor apmcc emir.pantrilla antsrior.comprobar mInimo 8drnisblc.: TW)+istancia)-Minimaatancia;C=l?, (W) i@istancia)rMinimaDi~ia?; menw. error.: comprobar mximo sdmisible.(W)rMaximaDistancia-(Distaricia)CeO", (W) &laximaDistancia~istancia)?; entra dentro delMaximaDistancia distancia rnayw &oMensajeDistanciaMayorVisusiizdXstanciaMinimaDistmciaMensajeDiutanciaMenor~ i i s u a l ~ D i s ~ c ~ ~ir~enord el minimo fisble.Fin;Se debidoa de interrupcindel O queeldel la de pulso de medido. La variable "Distancia"contiene el; de la en centmetros.elmovwf;Se utiliza en lugar de; de Carry.; de su valor.movwfbc; la distanciaexpresada en Se de manera que haya que; un mayorde 99 las siempre se cero.;Y cuando sea menor de 99 no se si esSi la distancia menor de 3 cm o de 250 cm un mensaje de;Borra lamovlw; Va a si es menor del; positivo?.goto No ha resultado y salta al mensaje deVa a si es mayor del;; negativo?,goto No,la medida de la distancia rango.; La es que elmovwf Distanciamovlw;La distanciaDistanciamovlwmovlw 122. MICR(K0NTROLADOR PlC16F84. UESARKOLI .U PROYEflOS 0 KA-MA !',caIl LCD-Mmjernovlw : Centre de m llneacal1 LCDLPosicionL~ ; & pantalla.DistancikW4 1 Bi'Na-BCD : immvf BCD-Centem~W ; Primero laibtfss STATi JS,Z m vislializa lasgota VisdmCentenasmcst-f DistanciqW ;d i BIN-a-BCD : Liopass aBCD.d i LCD-Byte ; Visualiza decenasgota Visuali~a-cmVisdizaCentmascail LCD .NitibIe ; Viwalimmovf Distancia,W reci~perar vaior.d BIN-a-BCD ; Local1 LCi-ByteCornpleto ; Visualiza detenas raque : unidades.movlw MensajeCentim-csllLCD-Mumajer e mINCLUDE R4-!iA C'APITUIO (:O'IS-~RL~C'C'ION MICRUROBVTK4-MA 33: DE UN 555un eje 33.5 NIVEL MOVILIDADd p t a F~SICO. Ic jug~etcenconw,ir:undariaichci de urihay queruedas,iiie de S!pcr3ara fijarcstruct~ira que clegido iiiici-obot pemiitiIiLa hemos para nuestro nos realizartnovimientos hacia delante, a la derecha, a izquierda y sobre si mismo.hacia trris, giro la NI1I1!1i8 ,F i ~ ~ k33m- i~intierrtu hucia delunte Figura Moilir~lit'rito atru.~tigura mucstra wi ttiovimientohaceti girar los direccin haciarectilneo, siiponiendo exacLm.icntefigura reliresenta forma mor,irnientogirar iiiotores uii~ectilineos,--- u piitiicndo scm exactaiiziite1 I -- Figum 3 3-1 J Giro en ,spnti& hora,.io F~LU~U Giro LJ /U iqzkierd~lPor forma moviniientounenparaontcsparalas12 Mo 33-13 haciaEn la 33-12 se como se realiza hacia delante. Sedos motores en la misma delante, esto provoca unmovimiento que los dos motores sean iguales.La 33-13 la de realizar el hacia atrs. Se hacenlos dos en la misma direccin hacia atrs, esto provoca movimientoque los dos motores iguales.Giro a la derecha Giro a la izquierda33-15su parte la figura 33-14 muestra la de realizar un de giro a 136. h4ICROCOYTROLADOR P1C 16F84. PROYECTUS c RA-t.44-r: D.-4hiA cbmo movimieiltn izqiiimda.atrA.5 y delantc,niovimicnto izquierda.Movimiento de SO bre propio c . j ~sii tina i~iuyhace estructum. isuy(figura como podrn scr cl dc tiiiciilvs e11 pruebasREACCI~Ndecimos principio de formado 10srealizarseguidamente de pam microbot reactivo,rnicroconwolador PIC16F84h, sca Unea niigr;imicrobotsm i s introducirse e! riiicrorobiitica.muestra quc sensoresinfmrrojos descritos caphilo anterior.niotores utilizmios L293B 79.fiadyuicicion1i ~ rco co~itrolla556 DESARROLLO DFLa figura 33-15 indica realizar un de giro hacia la Sehace girar el motor izquierda hacia el motor de la derecha hacia estoprovoca un de giro a la de la estructura.Figura 33-16 giro suEl movimiento de giro completo sobre propio eje abarca superficiegrande que no la adecuada para moverse en recintos muy pequeos33-16) casomovi de laberintos.33.6 NIVEL DEComo al este capitulo. este nivel esta porsistemas electrnicos y sensoriales bsicos para su control. Vamos aun sistema control construir un gobernado por elqiie capaz de seguir una sobre un fondoblanco. A este tipo de se los denomina rastreadores y probablemente son lossencillos para cn mundo de la ParaeLa figura 33-17 el circuito elctrico donde se aprecia losutilizados son reflexivos del tipo CNY70, en el ParaPara controlar los el driver explicado en el capituloventaja d 137. < RA-MA:quierda.elante, esto:rficie miivlosdo por:ntesensoress.REO G@A SENTi30 HORARIC.RO = "Y. hlOTORG A SENTOO ANTIHORARIORB1 ="O'. IhHABILITA DRlVER MTOR IRB2 = '1" H481LtTA ORIKR PY". G R . SENTW HORARIC,.R83 D". WR4 DO AFIllHOPARIO.- BWNCO --r TRPNSISTOR SATURAD3 d INWRSUH W' --> HA " 1-.- -> TRAVSISTOR a AL IhVERSDR '1" --> RA =51 RAO t Rkl "?'ESTA FUEW LAClflEA W" DENTRO LIHEA.Figwu i Ca'rclri/o t'I4ciricti hficrobot "Para tijar sensores heuios utitiaado adhcsivn !S deadquisicibn cnI senscires Cm70 a la eiitrada delniicrocontrutirdor inversoras Trigger Schmtt, ademh,qiie cl 40106 encoiitramos seis inversores.RA-M.4Se= "1" MOTOR ENEN1 Y 2 PARADO3 YRB3 = MOTOR EN= MOTOR EN SENTy pequeosdo por DETECTA ENTRADA AL =a realizar DETECTA NEGRO EN CORTE ENTRADA "O* EN HAY UN M Y CON DE LAelun fondo33-1 del "TRASTO son loslos una cinta por dos caras. fciluna ferretera. En la Figura 33-18 se aprecia la forma de fijarlos.S3 anterior.9. Para poder conformar las seales de loshemos utilizado puertas que tienenla ventaja de en mismo chip nos con El 138. icionamento descripcibn os dispsitivm elerior. apiwcinrsc dc figura 1y la de se explicaron en capituloComo puede en el circuito la 33- 7:r i e r a 33-10 ryac* sensor linca alCuando un detecta el fondo blanco, a la entrada de la del PORTAque Fe llega unest conectado " 1".indo sensor sobre linca ne-m , Ja lnea EIIun est la a la entrada de del PORTA al casaest conectado Fe un que hacer esIlega 'V. iinresmta clk33.7.1 EstAntes ddiquemicmbot, ya S{fiincion. Dc cst;pnnciEnhr;i de disear33-19 PrimerFigura Visto laretnl de! rnicrolior TrcrituAl le hemos conectado los dos que necesita que el1 motor se a y 2 queL29I1R niotures cl rnicrobot: 1los Cilde~echn encuentn mcctado los dtivm 1 est5n c o m pinicrocontrolador. cnciieiit 139. - -- -- -.< - -.< ' nd->A C ' A P ~ U L3~3); CONS 1-KUCC'IOY MCI1C)KOBC)T I-ln-hl). - . -itlilili r El izquierdri se enciientra cunectado d r i vm 1, qirepur lineas Rl33 micmcontrolador.modo dt fiiiiciiiiiainiento lo5 rnotriires niuestra 135 334.Tabla 33-3 roitrrol dcl inotvr, de~ttclaoTabh 33-4 Conlrol del m u : ~que 31 montar10 cl en contrario. In iinico ticriehacer inveitii siis cuncxicincs. iorografa la miiestiu elquc prcscnia microbot cebo cl implernentado.NWEt33.7,l rnicrribot rastreadrrcalizar cl dcbzmos estrategiainicrobut, ya sea lima qiie cornportc com robo1 rristreador 0 palahinciiin esta riuiierti podren-ios fiar al~oriimci conixol.11 razonable peitsar en cualqiiiera siguierites ladiscfiar- algor tnici dc hiii~cioriamiento:.4ignritma. Depcndjcrido de sensores hacermicrrihcit tome dccisiunes ~nostradase n la f i w a 33-20,~uacirados dc derrclia lectura sciwrcorresporidic~tte: blaiicoencueiipa de lirica nzga.7DE UN 559motor a los 3 y a su vez estncontrolados las KB2 y delEl de se en tablas 33-3 yizquierdoEn caso motor le gire sentido queque es La de figura 33-19 aspectoel ''Trasto" circuito33.7 DE CONTROLEstrategia a seguir para unAntes dc programa fijar la que Jebe seguir else un cualquier otraDe el deprincipio parece de las estrategias ahora de elPrimer la posicin de los podemosque el las En este dibujolos la e Izquierda indican delsi cs indica que detecta fondo blanco y si es negro queencima la 140. izquardo. rad3aitebueno. seguiiniento dcpendeimprecisibn seguirloocasicitiar cabeceus dcscndos11 eguedcb seguir urio erinegro-blaiicosensoressebordetineaEstA laderecho.Seguir a la izquierda1 Decisio~resr7 irirrinr seghi sepndo algoritnruRobot Raslreador 0ConfiguracibnRA0 ->porHa salidola derecha? por la izquierda' bsfRAO=I?laRB3=1, R02=1 RB3=1. RB2=1RB1=1, RBO=O RBi-1, RBO=I3-?2 Diagratnu r i'rflujo dd prugrama del micvnrnho f ru~trmdorEl Pcontinuacicntiende (bianco - sensorlndependi; -Sielmihasta que wsedal; 40106+ Blancr; (No estienci; - CoIw Negm; (Estiencima;: C ~ ORGlniciobsfbsclrfbcfh c i p a lmovlwbcEsisotomovlwb&Salida por el borde Permanece sobre la Salida por el borde Est fuera de la lnea Realizar linea n Seguir derecho. Realizar girar a la derecha o giro a la derecha hacia giro a la izquierda a la izquierdaelAnalizando este algoritmo detenidamente se puede comprobar que no es losuficientementepuesto que el de la linea de ladel camino por el microbot, es decir, depende de la anchurade la pista. Esto puede retrasos en el recorrido, no oincluso quea perderse.Segundo Algoritmo. En este caso, dependiendo la posicin donde se ; siencuentra el microbot sobre ; SI el;Inea, decidimos de los bordes,nuestro caso el borde derecho, es decir, la deteccin derespectivamente por los colocados a la derecha y a la izquierda tal ycomo muestra en la figura 33-21. ;;La de losinversor; ColorSalida por el borde Permanece sobre la Salida por el fuera de Inea izquierdo. Realizar negra Realizar hacia girar giro a la derecha giro a la derecha delanteFigura 33-2 el ZONA DEDAPuertos:RA4 EntradasZONA DENOfGira a la derecha: Sigue camino recto: Gira a izquierda.Figura 3 141. -o continuacin, es fcil deducir su funcionamiento si seguido y sese sigue en hacia delante.; Si el tiene los de la se le girar a la tal ; hasta que vuelva a3!rda1-w.4 ~ I A a3 RA.MA CAP~TLLO37 : < 'C) ~ ~ STRUCCDI ~fN I1 N RIICKOROROT 561rastreador33.7.2 Programa delEl programa realiza el del se muestra alinea quc scpndo algoritino rastrcadoria hernril; los i-azoriarnientosrigiirri 33-22-entiende el organigrama de la; de para el TRASTO, el se siguiendo una negraPrograma control micnibut cm1 desplaza lheak la ; marcada ~oii~fondo c blanco amalo & pi.;ta.:Iiiira ; sensores iipticuu reflexibn a y 7 0 situados Ia p a de lanterados mimbot: sensor esti conwbdo U RAO sensor M.1.Los de estn en inferiordel; El de la derecha y el de la izquierda aEl adopta la estrategiade seguir la por el derecho:; Si que en el borde izquierdo sobre negro y derecho sobre; programa linea hirde- derecta esti dm~ h os:m sorIC ; blancoC: en : - sensor Ia derecha detecia liiiea gim daecha buscandolanco ; como estk sensorSi el de negra hacia la el borde,independientementede el de la izquierda.- microbot dos sensores fuera Inra. hace itquierda y c n c o n ~ I d ~ .sena1 los sensores CNY70 hs: entrddas micrmontroIador baves; invavor mana color:: - --I --> en- --> RAx: inverwr "1 " -2 -; (Esti la linca wta La-CONFIG -CPOFF -WDT-OFF & -PWRTI-ON & - X u S CP= 6FS4AINCLUDE o Por finalizacion de cscntiira IiiALa arquitectura de la es del tipoEl set dedelas duran unmquina, excepto las salto que dos.Velocidad deo20 para la del entrada.DC - 200 para la del ciclode 4 6Memoria de Flash de 1024dc68EEPROM de datoscondc 14Los datosuna 1 (8 bits)15 registros de funciones especiales.La pila tiene 8de profundidad.de de cuales ser habilitadasindependientemente poro por el pinU Por delO.o Por cambio lasde memoria EEPROM de datos. 146. 1 ENCAPS ULADOA -1 Microcon~o/udorP KI 6FMACAR~CTER~STICAS PERIFRICOSDisponz 1 liricas entrad$ control individiial dircccin.terminal. paragobernar iinmA csta bdjo.mii pin csbi nTcrnporkador/Contador bitsprogramable.admite escritura.EEPROM admite 1.001).000escriblra.Ciwantiza retenciiin mcmoria EEPROM40puedc pines, ICSP (In Circ.uilSerzul Progrunrii?in~)Puwer-On Re.wr wer- C'p ( Oscilla~ur Sturt- Up Titner(OSTItemporirador oscilador RCPriltec.cicin cdigo dc proparno mcdinntc activa~irjiid e un proteccihn.SLEEP.dc oscildor seleccionable.Tensii(excepTmciiTensic/DIL-18FiguraDE LOSde 3 de salida con deAlta capacidad dc corriente por Proporciona suficiente corrienteLED:o Consume 25 por pin cuando a nivelo Proporciona 20 por cuando nivel alto.Dispone de un de S (TMRO) con divisin de frecuenciaLa memoria Flash de programas hasta 1.000 ciclos de borrado yLa memoria de datos hasta de ciclos dc borrado yuna de datos para la de datos superior a losaos.Se programar en el circuito va sene mediante dos(PO N), Po Timer PWRT),CARACTEIDispone de un Watchdog {WDT) con su propio para unfuncionamiento fiable.de la bit deMudo de bajo consumoTipo 147. 1.:ntiua.mior(ln Circtdi~- 0 pI: RI-MA APENDICI; CARACTF.R~STIC~ IS'TC~ ' ~Cn~ESL PlclIiFX4A 567-4RQUITECTURA(SRAMIRA-.R . 4DBh, EEDbTA EECONI 181hli e----.J-, - --- u09h EECON2 8% &C 1.-OOOhl -/*t.-. - -1 BUS D E IBUS INSTRUCCIONES 113n CPU j r PILAVSS r--- - - - N -- -I p - , k - " ; " " " ~ ~ l M1 +F EEy 1Fipnr .4-2 ipr/~ +X,5Vdisipaciiin tnkl ................... .. ....................................... 8 mWMxirna cl pin Vss ................................................................. 1 50 mApin VDD ................................. .... .............. 1 m.4Mxima dc eii halo 1IU mAMixima zti pin I/O ............................ 20 i r i Acorrieiite de conj tinto dcl ............. ,.S0 inAcorrienic dcl ................. rnAcorrietiie baio conjunto dcl Piiertri 8 .............. 1 mAMxiinn cl dcl A-.. ............ 00 mAPICltinstrucciones.chdigo o p e TablaEii inIW.ideltEiiqu~in:RISC, so1cdinstii salto, (instcien RA4 rcspectn de a. . .Potencia de. . corrientepor Maxima corriente por elcorriente salida por cualquier pin ............................ 25corriente de salida alto por cualquierMxima salida eti bajo por el Puerto A.Mxima de sal ida en alto por el conjunto Puerto A 50Maxima dc salida en por el 50corriente dc salida en alto por conjunto Puerto 1ElEdeinstrucciones dela B-l.La nomenlasO Sio SiEn las inbit dsiemprelas irliteralLas 35que noinstruccionesLastiempo dedeLasutilizar 149. APENDICEPIC16FR4 csti compuesto una LPU RlSC jucgoinstruccicincs. bits instnicciones seoperacibn propiamente hchu opedos,insmiccionzs quc cste microconlrolador lasTablantimenclntiira qiie ritiliziin cs si~iicnte:d representadcci "1" cl misinoEii iiismiccic!nzs bits. b (0.7)Cinstrucciunes I reprzseniaIos 1 1 bits.instrucciones PIC16FX4 las caracteristicas proccsadorRiSC, sOlo iui instniccionesinstrucciona cuniplenLasmqiiinadc ejecuci6noperai-ido.BREPERTORIO DE INSTRUCCIONESEl por de tipo con un de 35En los 14 que forman las mquina del PTC incluyen elcdigo de y los en caso de que haya. Las 35de consta son que se muestran clasificadas enla B- t .La estas instrucciones laEn las instrucciones la letra f representa un registro y el destino:o Si d es "O" el resultado la operacin se sita en el registro de trabajoW.Si d es el resultado se sitia en registro f.las que manejan representa en binario la posicindel bit deseado dentro del byte, representa el byte o registro. El bit O essietripre el bit de tnenor peso.En las con literales y de control una constante oliteral que segn casos puede ser de 8 uLas 35 del cumplen de unque no supone tener juego de reducido sino que, adems, suslas siguientes caracteristicas:instrucciones son simples y rpidas. Todas las instnicciones tienen untiempo de ejecucin de un ciclo (4 ciclos de reloj) a excepcin de lassalto, que tienen un tiempo de de 2 ciclos mquina.Las instrucciones son ortogonales. Casi todas las instrucciones puedenutilizar cualquier 150. MICKOCONTROLADOR PIC16FIW ECl'CiS D RA-MA T m Tcidns570 DESARROLLO DE PROYLa longitud de las instrucciones y los datos es constante. lasinstrucciones tienen una longitiid dc 14 bits y los datos una longitud dc 1byte.1 f Direccin del registro ( de0x00 hristu Ox7F)d l i s t r o dcPosicin de un bit dentro Y bitsLiteial, etiquetadato constante oque puede " 1 "ser"0"osi d = O, el resultado scguarda en W, si dde dcfcctoresultado la operacin se guarda en el registro f. El valor por es) 1 Power Down 11 [I 1 -(1 Conteni -3 clcSentido la transferenciaCampo del bit unde registro IPlCIFS4SET DE INTRUCCIONES DELInstruccionesBit deOpcionaldode CARGAclrf f 00 3 (t) no ooo i I fff t~zclnv 00 + (W 0000010xxxxxxx z(f) + 1 dm fVf Zmovf f,d (destino) 00 000movlw k k 3(W) 11 OOxx kkkk kkkkNingunomovwf f (W) + 00 0000 1 m l ~ f f1 dc(f) NingunoInstrucciones BITPone O 'b' rcg, 01 OObb bfffffffPonc 'b' reg. bflT mf Ningiinoa el bit del 'f.a 1 el bit del 'f. 01 Olbb 151. :.$1IiU dtEfW00001 I dfffffff00 1010 dmfmI 1 Ilnx kkkkkmdmmO0 1 ffff1000 kkkk00 o100 mm+Todas lasd de 1 byte.NingunoU11100 010100 1 dfff11 kkkkdel Carry (destino) 152. r 7IhfiCROCONTROLADOR PICI AFM. DESARROLLO PROY CCTOS ~1 K A - ~ I A c, ~ 4 . 4 ~ 4 Iaddlw el karldlwOperandos: 5 IOpeiacihn: + (W)~ l a pOP m r K mDescripciiin: W litcral 'k 'W. "1 ".0x1 5 ;(W)+Ox157(W)instruccin: (W)=OxiO, C= ?instniccibn ; (W) .= 0x 10 5(W)=b'00010000' +b'~O10101'=b'0010i' addwf el fI:Siiitaxis: addwf0565127d E [Q,11Operacion: (W)t(t)+(destinol andbZCdigodr'OP: [ 0114dfff Imf 1Descripciori: registro 'fd -C " 1".addwf Registro,O (Regisiro) +.(W) + (W)instniccibn: (W)=O?c17, OxC2, C =?instniccion: (W} OxD9, OxC2, Ck- - -IO5k5255(M:) AND (k) (W) (.&VD wilh ?+yZCdigodeOP: 1 100-liigica dcl registrulI 'k'.irmuinslOperandos:Operacin:insminstSintaxis:Dcscripcion:insminsb ~!572 DESuma literal con w Ejemplo:AntesDespusSintaxis: kOk255(W)+ kafectados: C, DC, ZCdigo de :Suma el contenido del registro al y almaccna el resultado enSi se produce acarreo el flag C se pone aEjemplo 1: addlwAntes yDespus + 0x1 = 0x25 y C= O.0101'Suma w con registrof,dOperandos:!(Add WFlags afectados: C, DC,00Suma el contenido del registro W al contenido del yalmaccna el resultado en W si = O, y en el registro f si d l. Si seproduce acarreo el flag se pone aEjemplo: ;Antes (Registro)= yDespus = (Registro)= y = O.andlw w AND LiteralSintaxis: andlw kOperandos:Operacin: LiteralFlags afectados:11Descripcin: Efecta la operacin AND entre el contenido W y elliteral el resultadose almaccna en W.Sintaxis:Flags afectarCdigo de ODescripcin:Ejemplo:AntesDespusbcfOperandos:Operacin:Flags afectadCdigo de OEjemplo:AntesDespusbsfSintaxis:Operandos: 153. -L', M-h4A APFNDIC'E 0: KEPERTORIO 7?ruidtw b'01011111' (W) AND b'0101111~' +Antes instniccin: W) b'l01000ll' z=?instniccin: 0 = b'00000011' 0.YUI 10 W) andwf WcnOperaiidos: I 5d E [ O , ] ](A ND W withdFlagsCdigodeOP: 0 0 1 0 1 0l)dffT 1 ffK 1lgica entre registrocontcnido 'f aimxetia 'fd = l .andwf Registro,l (W) AND (Registro) 3instruccidn: jW)=b'0010111', (Registro)=b'11000010' Z = i ?instniccion: (W) blOO1O 11 (Regrstro) b'000000 Z 0.bcfbcf5 < 137Ci}unoCiidigo OP mfffmli~imerobc FlagReg,7 + CFlrigReg,7)Anks instniccin: (FlagReg) b'11000111'.(FlagReg) = b'0 1 'bsfI 5127OIb17Operaciil: 1 3 (f)DE INSTRUCCIONES:on W Ejemplo: ; (W).= yDespus y Z =AND fultado Sintaxis: andwf f,dO f 127Operacin: (W) AND (f) (destino)afectados: ZDescripcin: Efecta la operacin AND el contenido del W y cldel registro y el resultado en W si d = O, y ensiEjemplo: ; (Registro)Antes yDespus = 1 ', = 10' y =Borra un bit de fSintaxis: f,bOperandos: O fOperacin: O (fFlags afectados: Ninde :Descripciri: Pone a cero el bit 'b' del registro 'f.Ejemplo: f ;O=Despus instruccin: 100011 .Activa un bit de fSintaxis: bsf f,bOperandos: O f 154. TMICROCTJNTROLADOR PIClbFX4. DESARROI.1.O DE PROYCC-I'OS d Ri-MiCdigo OP: 1 01 1 ] bmTrtt~ 1Descihipcion: iiumero 'h' del rcgisroOlbh APone a uno el bit 'f. FFlagReg,7 ; l i (FlagReg,7)Instniccion; (FlagReg) b'0 1000 1 1 'Instnrcci6n: (FlagReg) ti' 1 1 OOO 1 ' instrDespuksbtfsc cal1Operandos: 5 5O)NinCbdiga OP *mfm']Qcracinel nimero instrucciun cliie sc"nop". cste caso, s81o FLags afecth$rc ejeciitarsc. COdigoDescripciiiDescripcin: SiAqui btfsc Flag,] Si 1Falso ProcesoX... ; cetci. instrDespuks ininstmccin: (PC) "Aqui".Despues instrucci6n: PC) = "Verdad". 1 clrfOperandos: 5 5 afectOSb57(f) = (Sil Te3l.J; Skip I f Si.) Descripci~FlagsOP [ 1 1 1 l hb 1 1 ffff 1 lDescripciii: niimero imo instniccin quciginra se "nop". esrc sdlo instrinstniccibn Iitfss DespiihI574Flags afectados: Ninguno Ejemplo:deVbsfAntes = 1 .Despus = 11 . AntesirTest de bit de f y salta si es ceroSintaxis: f,bO f 127Operacin: Salta si = O OperandosFlags afectados:de :bit b del registro f es cero la sigue a staignora y se trata como unEn y en este caso, lainstruccin precisa dos ciclos para de; el bit del registro Flag es cero salta.goto ;Ha sido uno. Ejemplo:Verdad Ha sido Antes...=Direccin deSi el bit FlagAntes= O Direccin deSi el bit Flag= (PC) = Direccin de "Falso".Test de bit de f y salta si es uno Sintaxis:O f 127 FlagsCodigo deOperacin: Salta si 1afectados: NingunoCdigo de : 0 bfffSi el bityb del registro f es latrata como un En caso, yprecisa dos ciclos para ejecutarse.sigue a esta seen este caso, la Antesin 155. APMDICE B: REPERTORIO DE 5752 IJ..,I, ,S: RA-M* INSTKLIC'L'IONESes cero Si bit Flag = (PC) = de "Verdad".!ue:ste caso.ie;teEjemplo:; Si el bit del registro "Flag" es uno salta.Aqui btfss Flag,l 1Falso Ha sidoVerdad ;Ha sido uno.goto ProcesoX ; cero....= Djreccibn "Aqui".Antes instruccin: (PC) deDespus ins~ccin: Si el bit Flag = O, (PC)= Direccin de"Falso".el 1, Direcci6ncal1cal1Openndos: 5 5Opcraciun; (PC'}+I + (Crr// Subroictine)k i (PC~lO:O>),(PLLATli)i (PC< 1>)Flap unoCbdigo OP b]~dd (Unconditional Branchj(PCLATH)+ (PC4 1 1 >)OP: 1 1 1 1 1m+instnrcciim: (PC) ?insbuccibn: (PC) Direcciiin "Pri~~cipai".incf lncrernentaOperandos: 5 5d~ CO,llOperacibn: (f) +l + (lnerernentjCbdigodeOP: 1 1101OIdfW IPfff 1'f'f, alrnaccna en'f: incf 1 + l +instruccin: = OxFF ?instniccio~~: Z 1.incfsz 1Operandos:Flap afcctadcC:diguDescripcihninsiorfw 4OPinstmcciinstni578 DESARROLLO DE PROYECTOS=Direccin de "Aqui".(Contador)Antes(Contador)- y Sintaxis: - Si (Contador) =O, Direccin de- Si (Contador) O,(PC)= "Aqui" 1.Operacin:Salto incondicionalde OP:Sintaxis: goto kO k 2047Operacin:2:Flags afectados: Ninguno Ejemplo:Cdigo de 10 kkk kkkk kkkkDescripcin: Salto incondicional. Carga bits O al 10 de la constante'k'cl(PC)y losbits 3 y 4 del registro PCLATH en los 11 y 12 del PC. Esta instruccinse ejecuta en dos ciclos mquina.Ejemplo: goto Principal ; Principal (PC)Antes = DespusDespus = apuntada por la etiquetafSintaxis: incf fO f 127 Sintaxis:Opcrandos:(destino) Operacin:Flags afectados: Z Flags afectado:00 Cdigo deDescripcin: El contenido del registro se incrementa en una unidad, si d=l el Descripcin:resultado se almacena en si d=O el resultado se W, eneste caso el resultado de no vana. Ejemplo:;(Contador) (Contador}. AntesDespusEjemplo1 Contador,Antes (Contador) y Z =Despds (Contador)=0x00 y = 159. hlA APFNDIC'L B RFPFK 1 OKIO INSTRL1CCI(IUES 570 ~ C ~ S Z 1incfsz f;dOperaiidos. I 5d [0,1]{f'i~1~(destino);siiltasiclrcsultadocsO. (Jn~.remmtIt, ' Skip ipjtl)(PCJinstruccibnd-l el:naDeccripcioii: Incrementa cl registro ' f unicld. rcsiiliadocii 'f d-1 d=O, cstc 'f vara.resultado incrcinento ccro siguiente jns(riiccin cninslruccin ticne dcis miquitia.Iincfsz 1 I!goto......,. I"Aqui".(2561, - deDcspus instmccjon: !Contador) + adems:# O, Direccion "Aqu"+ O ~ W OR filteraliorlwOperandos: I f 5Operaciiin: (W)CiK(k)+(Mr)Flagsaolctuios: Zdc : p f l m k k k mEfcctua opcraciiin entrc cl dcl registro Wliteral 'k'. almaceila cil ZIiorlw b'00110101'. :(W)ORb'00110101'+(W)jnsrnicciiin: (W) = b't0011010' Z-?instniccion: (W) b'10111111' 0.R4DElncrementa f y salta si el resultado es OSintaxis:O f 1 27EOperacin:almacenadelese caso, lacontenido del en unasi y en W si en casoes se ignora launa duracin de ciclosElnoseSi ely,elay losEjemplo:AquiContinuaContador,BucleAntes instruccin: (PC)= Direccin de(Contador)=- Si Contador=O- Si Contador1 y(PC) Direccin "Continua".(PC)= de l.entre W y el kSintaxis: kO255Cdigo OPDescripcin: la lgica OR contenido y clEl resultado seid, sicn W, en registro W.Ejemplo:AntesyDespus = y Z = 160. T58U MICROCONTRCILADOR PIC 16F84. EC'JOS h. m-MA!iorwfOperandos: C) 5 l Id E [O, 11(W) OR (f) (destulo) OR withjFlags ZCdigodeOP: 1 00 IOIOllldftT l f t f f 1Dcscripcion: Efectka operacin OK entre del rcgstroccititztiido 'fd=O. i Iiorw f Resdtado,O (W) + (W)instruccin: (Resuhado)=b'00010011', (W)=b'10010001' Z=?= b'00010011' (W) b'100 0. iriiovlwOperandos: 5 f 5755 + ( (Move Liferal fo W)Flags 1 1 1 1 00u 1 kkkk 1 kkkk 1Descripcibn: W bitsmovluj Ox5A ;SAh+IW)Despuks instruccin: (W) OxSAIOperandos: 5 5d f [O,ll i(f) +Z 1 1 1000 1 dfff 1 fKf ]'f eii'f. jnstniccion i'd'. destino el1insDespuesSiniaxis:OperandcafetDescripciAntes insiOperacirCiidigo dtUescri pcicOperacFlagsCiidigoIDESARROLLO DE PROYOR entre W y f Ejemplo:AntesSintaxis: f,df 127Operacin: 3(Inclusive Wafectados:la lgica el contenido W y el Operacioidel registro 'f. Almacena el resultado en si d=l y en W si FlagsCdigo di; OR (Resultado)Antes y Ejemplo:Despus instruccin: (Resultado) , = 10011' y Z =Despus iMover literal a WSintaxis: kO Sintaxis:Operacin: k W) Operandoafectados:NingunoCdigo dc OP : Flags afecEl registro se carga con el valor de 8 del literal'k'.= Ejemplo:Mover f retfieSintaxis:O f 127 Operando.ionOperacin: (destino)Flags afectados: afecCodigo de OP : 00 deDescripcin: El contenido del registro se carga el registro destino dependiendo Dcscnpciidel valor de Si d=U el es el registro W, si d=l destino es elpropio registro Esta permite verificar dicho registro, yaque el flag Z queda afectado. 161. .r? RA-MA APENDITF R: REPERTORIC) DE INSTRrlCCIciNLS 581niovf ; PORTA) + Wntre W y f Ejemplo: PORTA, OAntes (PORTA) = Ox A, yDespus instruccin: (PORTA) = Ox A, yinsbuccibn: 1 (W)=? Z=L?1 (W)=OxlA Z=0m0wfSititaxis: ~riowf f'Operatidos: 5 5Mover W a f(W) + (f) (Move W ro,f]noOP : *~~flDescripciil: registro regisrromovwf ; m') i(P ORm)instruccin: (PORTB)=? (W)=Ox.CF.Despuks instruccion: Ox4F (W) Ox4F.noP[o3 dependiendoi1 destinuiotioliNirigunoOperaciti: (;%'o0 ~ ) ~ ~ ~ ~ u f i u ~ )afectados: unorhdipo r o 0 1 ~ mOP Drscripcin:noPretFieretfieOperandcis:Clpcracion: 3I + CiIENingiriade OP : r o o 0000 1 0000 1 1 M) I 1Carga PC en ahavuelta intermpcibn. Potie 1 firiiiuzvo ciientaO f 1.27Operacin:Flags afectados:NinCdigo deMueve el contenido del W al 'f.Ejemplo: PORTBAntes y(PORTB) = y =literal a WNo OperacinSintaxis:e Literal Operandos:No operarFlagsde :NinNo realiza operacin alguna. Consume un ciclo de instruccin sin hacernada.Ejemplo:Mover f Retorno de InterrupcinSintaxis:NingunoTOS (PC)Flags afectados:Cdigoel con el valor que se encuentra la parte de la pila.Descripcion:es el asegurando as lade la a el bit GIE con elregistro, ya de autorizar de que se tengan en las interrupciones. Tardados ciclos mquina. 162. Ejemplo: ;Retorna de laAntesDespus (TOS) 1retfie inteinpcion.instniccion: (pC)=i4? y GIE=Oinstniccin: (PC) = y GIE =retlw Mera1I) 5 2Opecicin: + (W)3 (PC)afeciados: Nin inoCbciigo dc o p $1 0 lxx 1 LLI=Ox02, C=;? Z=i?Desput s C (el0x02 ; 02h-(W) + CW)(W} i? Z L-.9(W) OxFF, (-1 C = 0.Descripcin:Antes instnicciim:instrucciiiimtsucciiin:instniccisw5). ficherusolo sc buscara en ese Si no se indica camino el orden dc la bsqueda es:includc canino.el directorio activo actual, en segundo lugar 21 directorio del archivo fiientey por ltimocn el ejecutable de MPASM. Sc explica el11directorio eii cripitiilo 10.by1 ; INCLUDE : Dafme "rcgs.h"L I Spuede de esta[~l i s t opt i on~...,, [], , Sintaxis: LIST4 ,I>Opciones de listado(Lisding ilpliuns)susin trayectoria.Descripcin:/ 'm i LlST tiene sobrc proccso sobre MES%La directiva efecto al de ensamblado y el formatofichero de salida una larga lista opciones que se detallan en eldel listable scgiin demanual "MFASM L'SER 'S GUJDE" y en la ayuda del MPASM. De todas la msSintaxis:importante es la que indica el procesador utilizado scgti detalla elsiguiente cieniplo.Ejemplo:,II I Descripcihi1fi P-P16F81A ; PIC16FMA cdmo procesador I Ect;LIST El utilizado. t finalizari eli4caractcrcs.1!y1 1 179. adicionales MACRO Declara la definicin deque:rito la dimivasirnbolosi n o fichero: biisqiiedaS;obre forniato:todasd o .I ~ A - M , ~ APENDIC.L~) I)IRECTTVAS DEI- AUOR MP.4SMMacroPRINCIPALES ENSAMRI, ..., ]inacro iin cuiijunto instniccioncs asignafiietite uswRo nombreSintaxis:y to&s instnicciones quc coinponm insertadas elcl pa~te pruprna. explica zti eii16.rnacro siiiede sigwentc:NombreMmInstniccibn- 1insenicci61i-2Dotide "Nombrehacro" inacro quccmplear cn las instnicQcines estn definidascste noinhrc. forman cucrpo ciialc s ~ h todas instniccioncsC'adri que se eniplea "NoinbrehIacro" cn propania irnpliciiinsertcn tiidas instruccion~l SCi "(Set Prog-um Originjprograma t:rpr>Jimctiva. especitica .ORG cspecifcadu gencracion c6digo dircccion cero.; j4 1 comienzogoto- -; VectorgoTo SevicioIntcmi~ionht-1 ORG h20lnt-2 In'ltOx10; Vectrir aqu.; Vecmr [email protected]:llamada sin argumentoejemplos descritos en la directivaOrigen de instruccionesdel programaSintaxis:Descripcin:El origen delSi seLauna'comienza la direccin indicadase da el dc ladel comienza en laen la de laSi no hay ningnEjemplo 1:ORGORGOInicio4; Direccin de del programade interrupcin.Ejemplo 2:SO vaORG 30 va 181. rogramaexpr>hay ningl~nESPECIALES- ..--04hREGISTROStINOF 80hOPTION 81h -82h 2YI- 584h3TRlSB-- B7h 'EEECONI BBh '",CON2 89h Cij8AhINTCON 8BhIMPLEMENTADOFigitu E-I Memorzu R4 PIC16F84de laoBANCO O BANCOE PCLSTATUS STATUS 83hFSR FSRPORTA TRISA 85h86h.aPCLATHOCh8MAPEADOENBANCO ONOFISICAMENTE.(SE LEEN COMO "O").M de datos del 182. 6U2 hiICROCONTROLADClR PlC 16F84. DESARROLLO DE PROYECTOS'8; ICA MAticr csl-ritoRldisp~nibmznioriacl re;(TalimcntaiPCLPIC I 6FX8corrcspot;RAh4 O21crcgistro Palimenicon losRcgi..~h.os (Speciai bitnclinn Rcgisters)conaplicadamicrocorescritoslaTabla E-l del SFR. 183. ui rcgistro tisico) 4un registro fisico)escritos directamente. Los cinco bits de mayor peso del PC corresponden los del- Fl i lineiic PucrtriOOhRegistro para el direccionamiento indirecto de datos. ste no es un registrodisponible Eisicamcntc. Utiliza el contenido delFSR para seleccionar indirectamente lamemoria de datos o RAM del usuario; la instruccin lo que se debe hacercon rcgistro El direccionamiento indirecto se explica en el captulo 16.Banco O, 80h Banco 1determinarcl seialado.h Banco OO1(Timer O). Tempori7adorlcontador de 8 bits.Se incrementar con una seal externaal KA4IlOCKi de acucrdo dcl delaplicada pin o a una seal interna proveniente relojSe explica ampliamente en 15 y 18. Al conectar lamicrocontrtilador. capitulasconten (TMRO) b'xxxxxxxx'.alimentacin su ido es desconocido, =PCLLow Byte bajo del contador de programa, figura E-3. El(Progrcdm Counter byte).02h Banco O, 82h Banco 1dispone de un contador de programa de 13 Sus bits de menor pesoPIC16F84 bits.corrcspondcn del implementadoRAM (y Bancol} leidosa los 8 bits rcgistro PCL, en la posicin de memoria02h duplicado en la posicin 82h del por lo que pueden ser oconrcgistro PCIIque no pueden ser ledos ni escritos directamente (figura E-2). Al conectarla alimentacin se a = y (PCH) =inicializa (PCL) b'00000000' b'00000'PCH PCt785 7 PCiAT; 'k AL",resultadoPCLATHFigura E2 en instrucciones con como destinoComposiciOn d ~PlC PCLPCH PCL12 11 10 87 oK 4 : 3 >o2 PCLATHPCLATHf i q r u E-3 Compu,~icind el PC en mtmcciones "cal1 " y"goto "del A 184. --MI I 'RIY~OY'HI OLAUOR PIClbFR4 DEShRKOLLO RA-MA--1STATUS estadobits seleccibn cit.registro tlagsI b'0001 lsxx'.Regisrro de esdudo n(Cany bitJ. de clactila presenla acarreo desde m i squeoperacibn1 1 1:. (25Sio), maxinlo bits.dctalley quc e1C =: 1. sjgtiifica qi~zoDC Flag dc acarreo en el bit de En(Digit Cany). 4" nienos peso. operacionesaritmticas elnibblesZ (zero). "1" cumdu dc uperacionIOgicaZ tlistiiitu= l . ltima+ /PD (Power Doii'n). cuiisuiiio. siilo nciel iisiiario. cl consunirl.slcep y/PD 1. VD,, clvwdf.m0 (Timar Out). temporizacibn iinct actj~a clfinalizii teniporizacion.Wuichdog Tlmer.ITO Watchdcig.ITO 1. VD, noitiial) ejctiitarclrwdt sleep.RPO (Regist~iB- mik Select cl direccionamientobaticoRPOI elFSR 1Scli:direccionacontenido 11.alimentacicPueic1.interrupcioentrada.(EE,604 DE PROYECTO$.STATUS 03h Banco O, 83h BancoEl registro de estado o indica el de la ltima operacin aritmtica olgica realizada, la causa de reset y los de de banco para la memoriadatos. A los bits del de estado se les suele denominar o bandera. Alconectar la alimentacin su contenido es (STATUS) =INDF seTabla E-2 STATUSCFlag acarreo en octavo bit, En instrucciones de sumaaritmticas secuando se el bit significativo delresultado, lo que indicael resultado ha desbordado la capacidad del registrosobre el que trabaja, es decir. el resultado de laha superado el valor escribirse1111 1 que es el valor que se puede representar con 8En el captulo 8 se explica ensu funcionamiento: Rancoo C = O. En la suma significa que no ha habido acarreo en la restaresultado ha sido negativo.En la suma que ha habido acarreo y cn la resta clresultado ha sido positivo.se activa cuando hay un acarreo entrebit 3 y 4. es decir, cuandohay acarreo entre losde menor y de mayor peso. escribirseFlag de cero. Se activa a (entrada oaritmtica oe1 resultado unaes cero. Bancoo = O. El resultado de la ultima operacin ha sido de cero.o Z El resultado de la operacion ha sido cero.Flag de bajo Es un bit de lectura, puedeser escrito porSirve para detectar modo de bajoo /PD = O. Al ejecutar la instruccin entrar en reposo.o= Tras conectar la atimentacin o al ejecutarFlag indicador de findel Watchdog. Es httde slo lectura, no puede ser escrito porusuario. Se en "O" cuandocircuito de vigilancia Watclidogla Sirve para detectar siuna condicin de reset fue producida por elo = O. Al desbordar el temporizador del= Tras conectar (funcionamiento o al lasinstruccionesoobit). Seleccin del banco paradirecto. Seala elde memoria de datos seleccionado. que accedeo = O. Selecciona el Banco O. (EEADR)o RP l. Selecciona Banco 1. 185. Banco bit). No utilizado en el1I>anderas.1 1leslificativo1xdobits.ra, piiedefr.ig.Y' cuandoW1 (Register Bunk Select PlC 16F84. 'm 1RP1. en el PIC 16F84.FSR 04h O, il ector(FSR) b'xxxxxxxx'. I I IINDF seleccionardirecciunamientoO5hentrada/salida RAO RA4). E1tratara1. a RA41TOCKi servir dealirnentaciiin ueda confi~urado e&da. 11 i. 1PORTB cntrada/salida bils @ines REO RB7).tratarapincs TRiSB csta 8861.intempciones08h(EEPROM Data Hegister).alirnentacion(EEDATA)EEADR 09h(EEPROM Address Register). direccionqueNo utilizadoaritmtica omemoria deAl Banco 84h BancoSe de registros para direccionarniento indirecto. En asociacin con el registrosc utiliza para indirectamente los otros registros disponibles. ElBit O indirecto se explica en capitulo 16. Al conectar la alimentacin sucontenido es desconocido, =de suma PORTA Banco Odeldel registro Puerto de de 5 bits (pinesa puerto A puede leerse oel valor escribirse como si se de un registro cualquiera. El registro que controla el sentidou con 8 (entrada o salida) de sus pines se llama TRISA y esta localizado en la direccin 85h delBanco Su pin tambin puede entrada al Timer O. Al conectar laresta que el comoresta que el06h Banco Ooperacionesccir, cuando Puerto dc de 8 a El puerto B puede leerse oescribirse como si se de un registro cualquiera. El registro que controla el sentido(entrada o salida) de sus sc llama y localizado en la direccin delBanco Algunos de sus pines tienen funciones alternas en la generacin de(ver capitulo 17). Al conectar la alimentacin queda configurado comoentrada.noo. EEDATA Banco OContiene los bytes que se van a escribir o que se hanEs un bitcl leido de la EEPROM de datos. Al conectar la su contenido es desconocido,a detectar si= b'xxxxxxxx'.ejecutar las Banco OContiene la de la EEPROM de datos a laacceder para leer o escribir. Al conectar la alimentacin su contenido es desconocido,(EEADR) = b'xxxxxxxx'. 186. 606 hf1CRUCONTKi)LAWR PIC hFF6. DESAHKOLLO DEYROI'FL'TDS %-: I C h~$ .PCLATH o A ~ 0(Pc Latch Hgh). toma indirecta s parte allaprogamas instrucciories, la1 iiescrihc figura3. concctar aliinentacibn resctea (PCLATH) b'---U001)O'.INTCON OBh 8Bh Banco(fntc~.rupiCs dtiriwl Regkrer). para coiitrol intcmpciones.dcl de inter-pciones. 'onticiie R que se rriucstrancuales acmn flags seafadores iiitemipcioncomo auturizacicin prodiicir intcrrupciun.conectar conteiiidu (TNTCON) b'00Ci00110.u'.Tublu Registro de c'otiluol dt' la.c.). permisointempciiin. aiitoriiaticatrietitc interrupcincvitar prodiizcaintcrrupcihn re@e, GIE" ".No autoriza niilgunGIE l . interrupcihn. "1"aiitumaricamctitc instruccion resJit7.OPTiON h 1i-iiiiltiple, misin gobernarAlgunos microcotitroladores PIC ~nsmcciondenomina& option, ello. fabt.icatite Mi~~rochipiiombrz registro. As ficliero P16F84A.INC'non-ibra ccittio OPTION-REG. concctar(OPTION-REG)= b'llllI111'.Tohku OPTIONREGPS2:PSO (Prescaler Rafe SelectPrescaler quc de segiin1REGISTROS 607altafigura E-RBI.ado.primera. Al retornar de la con una instruccinvuelve a activar ponindose a 1o GIE = O. interrupcin de tipo.o = Autoriza cualquier tipo decon lael bitSe pone ase81 Banco= Intempcion INT habilitada.E (TMRO de la interrupcin TOI. Flagque autoriza la interrupcin por del O.= O. TOIu TOI EInterrupcin habilitada.EEIE Complete Habilitacin de laFlag que autoriza la por escritura completada debyte en la EEPROM dc datos del (el flag EEIF se encuentra en elregistro 1).o EEIE = O.o EEIE = 1.(GlobalSe borrapara que sehabilitada.Flag de habilitacion global deldecuando se reconoce unaninguna otra mientras se est atendiendo a laRegistro de configuracin aunque su principal es elexterna comportamiento del TMRO. tienen unatambin por el recomienda darle otroa cstc en el de definicin de etiquetas se leAl la alimentacin todos sus bits se ponen a "1",poraE-3 Registrobits). Bits para seleccionar los valores delo rango con el acta el divisor frecuencia, la tabla E-5. 188. (Prescaler Assignment hitj. Asignacioti ElPSA del divisor de frecuencia.Prescaler es compartido entre el ThlRO y el WDT: su asignacinesmutuamente excluyente ya que solamente a uno de ellos se puede aplicareldivisor de frecuencia a la vez.o PSA = O. El divisor de frrcueticiase asigna al TMRO.o PSA = 1. El divisorde frecuencia se asigna al Watchdog.TOSE bit).Selecciona flanco de la sea! al TMRO.o TOSE O. TMRO se incrementa en ascendente de la seal(TMRO Snitrr-e Edge se lec^ m= cad;i tlaiicoRA41TOCKI.1. cada scalRA41TOCiU.(TMROC lock Souvce S~lt7t.bfi i).1. intrd~icidos pin RAWTOC'M tTMRO(Inrrrrupf Selecr bit). flarico interrupcibnrNT.INTEDG RBOIINT.RBOIINT.IRBPU, (Rmislor Purt Pul/-Up Enclblc rcsjstenciashll-UpIRBPU =/RBPU de Pull-Up Puerlodepin salidii."1" hacc A! quc cl disponc bits.bits potien " 1 ", 1 1 '.aplicada al pino TOSE = TMRO se incrementa en flanco descendente de laaplicada al pinTOCS Selecciona la fuente de seal del TMRO.o TOCS = Pulsos a traves del comocontador).INTEDG Edge Sclector de de Lao = O. Interrupcinpor flanco descendente del pino INTEDG = L . Interrupcin por flanco ascendente del pinB bit). Habilitacin de las dedel Puerto B.o O. Habilita las resistencias de Pull-Up del Puerto R.o = 1. Deshabilita las resistencias del B.Bit 7 ERegistro de configuracin de las lneas del Puerto A. Es el registro control parael Puerto A. Un "O" en el bit correspondiente al lo configura como mientrasque un lo como entrada. igual Puerto A, solo de 5 Alconectar la alimentacintodos sus se a (TRISA)= b'--- 1 1 1 189. : ' RA-MAaplicar cl 'NRO.la5adiir).4RO cutriur RA-MA AP~NDICE KEGIS'IROS86h 1Rcgistro de configmcion Ptierto registro Jccl Puerto Uii bit corrcspondietitequc "1" Ici ha-c Al conectar alirnentaciiiri ponen"l".(TRISB)-b'11111111'.(EEPROM L'o~rh.01R egister 1). para coiitrol rnemr~riadimcntacin b'--4~001)'.Tahlu Rt.gisiro de ronlrol de dubox IWCON(Read Controi EEPRIIM. ponerlo en"1" lectiira Estc"0") h~rdwarea utoditicamente a[ finali7ar la Iechira deRD lectura borra tiardware.tWritc1 Bit coilti-o1 de escritura eri prinerlouwi escritura urien "0") hardwre autciinaticaniente vez detia 1'WR iniciaInicia hai-dware.(EEPKOM Wrife Enuble bir).Prohbc iiscrjtiira EEPROLll . la(EEPHOM Writt3 Error FIug Bit). cnorposiciona "1 " cuando temiria prernaturamcnteciialquier condiciiin de rcsct.WRERRl . operacibn escritura prematurariientz.EElF Wrile Op~ratiun Inlernyf Flag BIEJ. Flag dc cstado dciiitzrrupciijn finalizaciiisi escritura xitoaperacion byteE: ESPECIALES 609Bancode las lneas del B. Es el control paraA. "O" en el al pin lo configura como salida, mientrasun corno entrada. la todos sus bits se aEECONI 88h BancoRegistro cl de la EEPROMde datos. Al conectar la su contenidoes (EECONI ) =E-6 la EEPROM deRD Bit). Bit de control dc lectura cn la Alse inicia la de un byte en la EEPROM de datos. bit se limpia (sepone apor La posicinEEPROM.o RD= O. No inicia la lectura de la EEPROM o la misma ha terminado.o= 1. Inicia la de la EEPROM. Se porWR Control Bid). dc la EEPROM. Alen "1" se iniciadc byte en la EEPROM de datos. Este bit selimpia (se ponepor una Ea escritura la EEPROM terminado.u= O. No la escritura de la EEPROM o la misma ha terminado.o WR = l. la escritura de la EEPROM. Se borra porWREN Permiso de escritura en la EEPROM.o WREN = O. la de lao WREN = Permite la escritura de EEPROM.WRERR Flag de en la escritura. Sea la operacin de escritura dehidoa.o = O. La operacin de escritura se ha completado correctamente.o WRERR = La dc ha terminado(EEPROMpor de en EEPROM. Seala el final conde lade escritura de un en la EEPROM.uencia. Elnacin ese sealle la seal1 TMRO. 190. hliCRKON~CR0LADOKP ICl hF84 DLSARROLLU DE PROYEC'I'US I , R ~ - M Aescritura de1.software.5, (Unimplcmentcd). implemcntados fisicatnente. Sc{EEPROM C'untrol Register 2). registro no est5 implemenadci fisicamente,que intenta siis ccinioemplca durante elinterfercncias largo prcciva desarrollo.CONFIGURACINPIClBF84 dispotie configuracion escribemicrocontrolador modificardwantcmen~oria programa 2007h.Tabla Regisbu coi$girrocin (Configwration Worrl)FOSC (Flag Oscilntor Selecdioral. Selecciiiri- 00. Oscilndor (32 kHz)FOSC=01.Osciladorestind;lrXT( 1110kHz-4MHz)( MHz MHz)1 cle(Wutclrltug EnaAle). Bit dcl Il'atchdog.deshabilitado.= 1.cPori'rr-up Timer Encrhlcl. Activaciiin temporizador Power- Up.Temporizador Poww- UpPWRTE= 1.TernporizadorPci~u~r-Uphahilit;ido.~C'ode~ot~~~dionbit~Bitdeproteccindeciidigo.de cst lecmasVPPD61Uo EEIF = O. La operacin de la EEPROM no ha terminado o nocomenz.o EEIF = La operacin de escritura de la EEPROM ha terminado. Debeborrarse porBits 6 y 7 No leen "O".89h Banco 1Estepor lo es imposible leerlo (si se leer, todos bits se leen ceros). Secomo dispositivo de seguridad proceso de escritura de la EEPROM,para evitar las en el intervalo de tiempo que suREGISTRO DEEl de una palabra de dc 14 bits que sedurante el proceso de grabacin del y que no se puedela ejecucin de un programa. Dichos bits ocupan la posicin reservada dedeE-7 dedel tipo de oscilador:o FOSC de bajo consunio LP kH7 - 200oo FOSC = 10. Oscilador de alta velocidad HS 4 - 20o FOSC = 1. Oscilador bajo coste RC.WDTE de habilitacinu WDTE = O. Watchdogo WDTE Watchdog habilitado.PWRTE delo PWRTE = 9. deshabilitado.oCPo CP = O. Toda la memoria programa protegida contraindeseables. 191. -ainente,ScT20-SEros).PROM,lo. GRABADORficarlatia-.- 1 -- - Zocaro PIC tA PinesVPPDTxDD'dPPDThTxD TxDI4-L & 2-lo PIC Ptnas - - - - -Fi-quraF - l E~qia~nzeult 'riticoescribeodide.Data 110A1K5R4kCCK28 192. Cara de componentes Carade pistasFigura F-2 Im11w.soqucLlSTADOPlaca de CircuitoD3,DJ 1N414Y A-:..+>m -< . .+.:* :.; 1D5 5Vl %W 1 -:----:-Zenerde L/zW 1 /%::&yJI Zocalo 418 ipines 1Conector hembra 1Ql,Q2 BC547 'I43 BC557 s.1 100Z 1R2 IOkFigirru Grabador TEtO-SEuDE COMPONENTES:Znerde --D6 8V28 pinesJ2 Zcalo pines53 Zcalo 28P1 DB9I RF-3 193. ASCII acrhniinci tic .4rm~rll'rltl Stund~rrd Cede for Iraformadion Jnb~rchangeNormalizado Arnet.iclirio liara de E1 ASCIlsistcrna en los digitalesesquemaniriieros. signos dedichos dipitales, microcontroladores,ordenadores inforrnticos intercambien infomaci8n.ASCIl cst coinpiiestoquc est;indaizadoextetidido de L4 Cbdiga estiindar. E1 bkico, estandar.para 1211 cbdigos cmctercs desdehasta (OOh niismcis eri losNorn~dtnentc estosCdigo ASCll So11 10s (8Oh FFhuii aciierdnque losintercaiiihinblesestndar.caracieccs ASC'II cstandarprirneros1cbdigos cotitrol coniunicaciotics es el(Cdigo el Intercambio Informacin). cdigocs un de rcprcsentacin utilizado sistemas (incluido ordenadores)que utiliza un de codificacion que asigna valores numricos a las letras,puntuacin y a otros caracteres. Al normalizar los valores utilizadospara caracteres se logra que, en sistemasy programasDado su origen en el sistema binario, el cdigo por 256valores cstan divididos a la mitad28 valores cada uno.en el conjunto y el conjuntoASCII conjunto ASCIIcada codigo, lo que da como resultado127 hasta 7Fh hexadecimal). Son losoperativo., y lenguajes de programacin.o utiliza 7 bitsde Otodos sistemascdigos serepresentan con 8 bits, poniendo el octavo bit o MSB a cero.extwdido. caracteres del 128 hasta el 255 alhexadecimal) y no hay respecto a ellos. Se asignan a conjuntas decaracteres varan segn fabricantes y programadores de software. Estoscdigos no son entre los diferentes programas y sistemasdigitalcs como los caracteres ASCIIEn el conjunto de se diferencian dos grupos:Cdigos de control. Los 32 valores (del O al 31) estn asignados a losde de y de impresora (caracteres no imprimibles, 194. 014 Xi II'R( X7C)KI'ROI.AIIOK P-C: I I,t $4. DESAKKOLI.0 CIE PROYFC'TOS CI K