You are on page 1of 237
SAU DARREL ESSAI SSSA SOIT CONTENIDO © Prétogo xl Capitulo 1, MICOCRONTROLADORES PROGRAMABLES: LA SOLU ESTA EN UN CHIP . 1 11. W, pasando TZ, = | $4 ot contuidetey 20 Sin embargo, cuande a instuceinrespande al nembrico mov, el contenido se pae geja en el mismo sitio y no eambia, pero si IZ ~ 1 averiguamos que dicho valor 2s cer _nowef fi Maeve el contenido del registro W a a posiciéa de Ia memoria de Gay identificada por f Realize la transferencia W’=> 4. Jueve el literal k incluido en el eédigo de Ia inctrucciém al registro W, k= movlw ‘Tumbign os Frecuente usar en In prctica el neménico monfi f, que et muy edmado Por lanl con que representa latransferaciaf~ W Aunque este neménico no existe come Ob ce itnbladon MPASM lo scepta y lo interpreta correctarente, ox decir, fo transform en moxf f0. La otra instru dos variontes que se empleari en el primer ejemplo es la de sumar: ada que adite add fds Suma cl contenido del registro W con el de Fy deposita el resultado en W si el valor de d 0, micntras que sid = 1 lo deposita en f. adhe k: Suma al contenido del registro W el fiteral que acompafia «In instrucsion y deposita cl resultado en W CW + k=). em ag dos dltinas instrueciones de sums funcionan autométicamente tres sefalizadores EIPZ. de vero, que pasa a vale | si el tesuliado de la operecidn 260. Ede scarey, FC, que se pone 2 1 cuando hay cairo ea In suma de los dos bits de més peso de fos operandos, ¥ Pon alc el sefalivader de acarreo intermedio, FDC, que adquiere el valor | cuando ay aanrrem sumar tos dos bits que acupan el lagar 4. (Dit 3) dv los operandos, Este elem Achelizador es muy interesante si $e trabaja con digitos BCD. ENUNCIADO Bt ojercicio maneja tres posiciones dela memoria do detes: En a direccin OC se depositard ef primer operando; en la 0Dh el segundo. en ta OEh el resultady de la sume de los dos primers vperanidos. Com) valor para ef primer operand sv va axsor 5 ¥conmo sexunde operando el 2 vrel lenguaje Ensamblador MPASM para expresar {0s valores hexadecimales se coment aniepuniéndotes «Ox. Asi tastes posiciones de la memoria ce dato que watiza este Drager capresadas en hesadecimal para ef Ensamblador MPASM, xe definirdn comm dxbe, OxOil v nite ncxpoctivamente, Esta ttima notacin werd la que se wilice a partir de ahory Ts Lak diferentes formas de expresar mimerds en el MPASM deperaiendo desu base 2” DECIMAL aur UBXADECIMAL- OxOe J Oe" / 04 / Deh “BINARIO- B11 ar MICROCONTROLADORES PROGRAMABLES: LA SOLUCION ESTA EN UN CHIP 17 Hay varias formas de represencar los mimeros en hexadecimal, aunque ts mis empleada, 20" ser adtemas la representacién utilizada en aC», ex la de anteponer Ox al nimero henade. cimal, No nos dehemes preocupar st se nos olvida este detalle, porque el onsamblador MPASM sume por defecto que se emplearés la base hexadecimal EDICION DEL PROGRAMA Para editar el programa se pucde usar cualquicr editor que use varecteres ASCH, El mas 2 mano ts el propio del sistema operative MS-DOS, En tal caso y si le damos come noire a este Programa PRIMERO, esianc situados eon elprompr del DOS se teclea: EDIT PRIMERO. ASM, Fl texto que existe deiris de las directivas, comandos e instrucciones precedide de «:» solo tiene la misidin de aclarar su cometid, pete es ignorado por el Ensamblador cusindo traduce el programa en eédigo miiquina, Son los comentarios, PRIMERO.ASM LIS?-P = 26ceg TRdicse! modelo de PEC que oe use 7 Sauna Alrecs iva de? Raoamblaaar p Rona pava ar ieeras OPERANT 329 ine. la povicioh det opesande 7 SPERANDOY BOL Ty0: Berine Ix poxicién del operande 7 RESULGAGO FOU. U30e | ¢ Deline ta pnsicidn del rasuleade co. FChwanis que indies al theanbi sacs « Gizeceién de da menaria Programa: desde sitters 1s P Slomienie inerevectee noviw 95 Pe 5 toriausd ineee ‘Rowe! ORERANTE® 2 8S cperanaor wewlx 92 pews movwt GeERAKDOA 1S operscuod few ty OBERANDOt } opecados = auawe APRRANDOD; Y 2 R + operanco2 =H flower MusuETADA MS Seectieds IND 1 Divect?va do: fin del proguene LL uso de mayiiscules y mindisculas en este fragmento de céidigo obedece » una serie de ‘ealus ¢ normas de estilo, comunes enire los programaderes en ensumblader, que aungus no son obligatorias, faclitan la ecuura dol codigo fuente, Un resumen de las reglas empleadas es el siguiente: 1 MICROCONTROI DOMES «PICs, DISERO PRACTICO DE APLICACIONES: Directims del comailador on mayuscules. Nompres de variables or mayiscules Nemonicos en mintierilas Programa bran tabulado Una vez editado el programa hay que ensamblarlo, Para ell nos situamos en cl directo~ rio del Fnsamblacor MPASM y se teclea MPASM, Se rellenan os datos que pide el programa y pulsando la tecla F10 se tealiza el ensamblado, Obtenide el progcama en cédige binario Gjecutable se puede simolar el funcionamienio del mismo wtilizanco un simulador software Recomendamos el MPSIM de Microchip y el SIMUPIC*S4 ce Microsystems Engineering, {que presentamos a continuacién para que pucia editar y ejecutar programas desde el prine cipio, Si Vd ha sido capar de entender] programa y la misidn de las instrucciones, de momenio vya basta, pero si iene ganas de comprobar si sus pensimientes son acertados le proponemos tuna cuesti6n, PROPUE. STA DE TRABAJO Fn ef programa PRIMERO.ASM sobra alguna insiruccion. Si Vd. consigue reatizarto con menos instmeciones, no solo ocupard menos palabras de la memoria, sine tambiém sv eject aris mis vipidamente. “ Qniere intentar resolver ef mismo progranta pera con menus instrucciones? Si ve da por ventiddo, ¢ quiere conaver wira enjoyue, dispane de una solucion en el disguete que ecompaia a fibro bajo ef nombre PRIMERO2.ASM, MANEJANDO EL SIMULADOR SIMUPIC'S4: EL PRIMER CONTACTO F] simulador SIMUPIC'R4 os una herramicnts que trata de facilitar a labor del programadlor de PIC, Acaha de comprober que para realizar un programa, por muy seneille que sea, deben lilizarse varios progrimas; un editor, un enssmblador y un simulador. FY SIMUPIC'84 trata de integrar (odas esc herramientas en un tinico entore, Como habré comprobado, este libro viene acompanacle por un CD en el que se inelaye una copia del programa, Pues manos 2 la obra, (vamos a probarlo! ‘Le prinero que se debe haeer es instalar el programs: Iisicamence esto se realiza siguien lo las instrucciones que sobre este apartady encontraré en el Apéndice E, en el que también se describe el contenido del CD. Ahora hay que decirle al SIMUPIC qué editor y qué ensamblador desea utilizar. Lo mis sencillo es ulilizar el editor del DOS (Edit) y el ensamblador MPASM, tal y como se ha util aio en el ejercicio anterior. Para.eso se edita un fichero Hamado simupic.cfx y se alteran los Yalotes necesirins, aunque es muy posible que el programa funcione con la configuracion por efecto. MICROCONTROLADORES PROGRAMABLES: LA SOLUCION FSTAEN UN CHIP 19 EScriba entre tn Poo Eruoretadar pee ce eee Figura 1.14. Contisuracién por defecto del SIMUPIC'RS. bichero sinupicef Ante cualquier poblema con el programa, consulle el apéndice final det libro; en é1 se explica detalladamente Ia instalacidin y el funcionamiento de esta herramienta, Ademas, cl CD contiene un fantéstico tutorial multimedia para manejar ripidamente el SIMUPIC’ 84, gREPI 1MOS LA SUMA? Vamos 4 volver a realizar el programa anterior, pero esta ver con el SIMUPIC'R4. Para eso sjecutamos el programa dle! simulador escribiendo desde el prompt «SIMB4», El ment princi pal contiene todos los pasos a seguir a la hora de programar una aplicacién para PIC, En primer lugar hay que asignar un nombre al programa; clegiremos la primera opeidn y eseribi- Femos PRIMER, que es el nombre que hemos dado a la aplicacidn. Ahora elegiremos la segunda opeién, con lo que aparece la pantalla del editor y podremos esciibir el eGdigo fuente, THSTRRECION RENO Figura 118. Visualicavién y renombvate de registnos en el SIMUPIC: 20 MICROCONTROLADOKES «PIC». DISESO PRACTICO DT APLICACIONES. Procedemos a ensamblarlo (apoidn tercera) y el SIMUPIC se encargeré de Hamar autonsatica~ inente al MPASM y ensamblar nucsiro programa; ademas nos presentard Ios errores de en. smblado, si los hubiera, Una ver ensumblado el cédigo fuente del programa PRIMERO.ASM, se pucde simular y comprabar que hace lo que debe. Para eso dehemos cargarlo en el simulader con la cwarla opcidn y ejecutarlo,. pero antes debemes tener medios para comprobar que efectivamente programa suma los conteaidos de las posiciones OxUc ¥ OxOd y deposita el resultady en ta OxOe. Para eso esta la octava opcitn (visualizar rogistros). Seleccionaremos todos los rezistros que participan en la suma (W, OxOc, OxOd y Ox0e) y los visualizaremos; incluso es posible renombrarlos para poder seguir mejor el desarrollo de la suma ‘Se pase a simular el programs, 0 mejor sera eecutarlo paso a paso para ver qué es lo que hhace vada instrucci6n: fa opciihn «trazac» realiza este trabajo, y cada ver que se pulse se eject tari una instruceién. Cuando todo cl programa haya sido cjecutado se nos informa que ha finslizado, y si todo ha ido bien, aparecera wna pantalla como és: orn pee a fit uuunaomgr ten uae key sgiswanth hoa te" | Figura 1.16. Resultdo det programa PRIMERO.ASM Pero In madre de todo conocimiento es la experiencia, asf que piense sus propios progra~ mas y simulelos, De momento, una interesante variantz del ejercicio podria ser sumar dos tnimeros situados en las posiciones Ox0e y Ox0d de Ia memoria y almacenar el resulado en la misma posicion 0xOd. Ades es interesante pensar en el minime nimero de instruecioncs con las que se puede resolver este ejereicio; ;podrd hacerlo con $ instrucciones? [a solucion sid disponible en el disqucte que acompaiia lz obra bajo el nombre PRIMERO3.ASM. LA EFICIENCIA DEL ENSAMRBLADOR FRENT! ALA COMODIDAD DEL © Para demostrar al lector la efectividad de la programacién en ensamblador hemos realizado el mismo programa en lenguaje C: sums el contenido de dos variables y almacena cl resultado en tuna tervera variable, llamada resultado, F1 programa es el siguiente NICROCONI ROLADORES PROGRAMABLI'S: L4 SOLUCION ESTA TNUN CHIP 21 141 programa ha sido compilado von cl PCM de la casa Custom Computer Serviees que comercializa Microsystems Engineering y se ha empleado el SIMUPIC'84 para desensam- blar su cédigo y traducizlo al ensambletlor Fl resultado ha sido el siguiente: 22 MICROCONTROLADORES «PICs, DISERO PRACTICO DE APLICACIONES ox0a, 9 peers Date, o axod ox00.9 Oat eats aba 0800.1 oxke,a sie fet 150. ae UxLe.0 O26 {LE programa resultante esta compuesto per 37 instrucciones! Mas de eineo veces las em- pleadas para realizar el mismo trabajo en ensamblador (no se preocupe si no entiende algunos Ge 10s nemdnicos, ya iré comprendiendo su significado sein avanee en la Lectura). Lt flexibs- Fidel dol «C> tiene su precio en cuanto a tamafo del codigo y tiempo de ejecucibr. DISENAR APLICACIONES CON PIC ES FACIL PRESENTACION DE LOS PERIFERICOS MAS SIMPLE: Periféricus digitales de entrada Los disefios reales utilizan diversas periféricos que hay que conectar a las patilas del microcon~ olador que soportan las lineas de E'S. 1.os periféricos pueden trabajar con seftales digitales 0 amaldgieas y pueden ser sencillos y faciles de acoplar o complejos en su funcionamiento y su adaptacibn. Nuesira idea es acostumbrar al lector & que realice aplicaciones sencillas y entu- siasmarle con l2s complejas para que | mismo se decida a realizarlas Personalmente propongo @ mis ahumnos realizar proyectos difieiles con la seguridad de que no van a funcionar y que seguramente estropearan elementos del mismo, Lo que van aprender es algo que yo nunca les podré ensefiar y, generalmente, serd algo irrepetible, porque nunca volverén a caer en Tos miisios ertores. Flos se tien Socarronament, perv en gran parte muerden cl anzuelo y se dan cucnta dc lo que les he dicho. Ademas, no suelo valorar mucho las experiencias que salen bien @ la primera, Siempre me quejo que no han servide para nad; ‘con elas no han aprendido nacks nucve. 'AV4,, suftido tector, le digo lo mismo: MONTE PROYLCTOS, HAGA EXPERIENCIAS, y sino fuicionan, ;;ENIORABUENA‘, esti en el buen camino y cada cosa que falle es una fensefianze valiosisima: ; YA SABE COMO NO TIENE QUE VOLVER A HACERLO! Cuan- do alguno se lamente del dinero que cuesta esta fitovoria de trabajo, que medite si hay «guna otra eosa que le proparcione mas satisfacci6n y st la encuentra, QUE CAMBIE DE PROFE NICROCONTROLADORES PROGRAMABLES: LA SOLUCION ESTA FNUNCHIP 23, SION. Los pocos dias que pasamos en este mundo debemos intentar que sean felices y si nuestro trabajo y nuestro pasatiempo no nus da satisfacciones estamos dilapidando e! eseaso tiempo que disponemos Vd. como nosotros pucde pasar grandes momentos mentango y proband sus experimen tosy plasmando en materia sus ideas. Para ello necesita un microcontroledor, una idea y unos periféricos que la Heven a buen puerto, Cuamto mas sencilla sea la idea y mis simples los periféricos mayor potencial tendri. Un simple diedo Jed que se encienda y un zumbador que suene cuando una persona mayor, enfer ‘ia 9 mpedida, tiene que tomar unia medicina, seguramente seri una idea que, bien ejecutad, tendria la posibilidad ks forrar en oro al que la tenga y sepa desarrollarla Como primer paso vamos a deseribir los periféricos de entrada y sulida mds files y usa dos cn Jos proyecton, los digitales. Si son de entrada «in'roducem un nivel logico alto bajo Por ia Lines que: se Tes conecta. Si son de salida creciben» un nivel alto 0 hajo para activarse o slesactivarse, Conienzarcuwos cnn los periférieos digitales de entrada, PULSADORE: 4stos dispositive permiten introdueie un nivel Tégico en ef moments que se les aceiona, prsando al nivel contvari euando se deja de haceito y yuclven a la posicion de repos. (Fi. gua 117.) be 7 Ia Fiqura 17. as das pusbles farmas do concctar wn pala En el esquema icquicrdo de la Ligura 1.17 la linea de entrada (IN) recibe un nivel légico alta cuando el pulsador esta en repos Cuando se acciona se introduce un nivel légico haje. El pulsador de la derecha funciona al reves. Hay multitud de detectores, finales de carrera y sensores digitales que funcionan de la misma manera que los pulsadores, INTERRUPTORI Los interruplores tienen dos estados estables y hay que accionarles pars cambiar de uno a otto. Pi interruptor admite el estado abierto y el estado cerrado, La Figura 1.18 muestra las dos formas de conceiar los interruptoces. Fn el esquema de la izquicrda de la Figura 1.18, por la linea de entrada al microcontrola- 24 MICROCUNTROLADOKES «PIC», DISERO PRACTICO BE APLICACIONES ww 10k ink oes o— ec => yoo Figura 1-18, Esqrema de conexionade de los imerrupiores Jor (IN) se intuoduce un nivel ldgive alto cuardl el interruptor esta abierto, mientras que cunrdo se clerra aplica un nivel Logico bajo. El imtcrruptor de la derecha funciona sl reves, CIRCUITO ANTIRREBOTES Todos les dispositivos electwomectnicos originan un fenémeno denominade «rebotes». Loe botes se proviueen en el instante en que se abren o ge eierran las mimi metilicas cel inte” reoptnr g pulsador Hay un momento de inestabtidad on el que, aunque silo se hayo aecionao eT cponttivo una ver, ls laminas ns abren y se eierran miltiples veces en ef momento de [a transieién, En la Figure 1.19 se presenta el efecto de Tos rebotes os rebotes duran varios miliseeundos y camo el microcontrolador explora el estado dela incr de entrada cada pocos microsegundas, el efecto que producen ¢5 como si se fnubiese bierto y cerrado el interrupter varias veces. Segin la aplicacién, lax consecuencias de esta falva interprelacion pueden provocar resultados ¢rraneos. Pant recolver lox rebotes existen dos procedimientox, Uno se encarga de climtnarlos cl software, es deeit, el propio programa que controla el sistema, y el eto los elimina con circu teria extema o hardware. La soluctin software para fos rebotes consisie en que al idenificar el primer flanco dee sefal de entrada, cl flujo de contro} pasa « una rutina le retardo de varios milisepundos antes ide pasar a detectar si se ha producido el flance contrario, Thos dos circuitos hardware antirrebotes se muesiran en la Figura 1.20. En el de la izquier PUISACION Figura LAY Eject de los rebotes: MICROCON IRDLADORFS PROGRAMABLES: LA SOLUCION ESTA EN UNCHIP 25 1K Figura 1.20. Dos esqucmas para elininar fos rebotes da, cuando cl pulsador esta abierto cl condensidor est earysdo y se introduce un nivel alto per la linea de entiada TN. Al activar el pulsador el condensador se desearga a traves de la Fesistencia de 1 K y aplica un nivel Igico bajo, Al desactivar cl pulsador, el nivel alta no se sleanza hasta que se ca:gue cl condensador con la tcnsidn positiva de alimentacién a través de fa resistencia de 10 K. Se puede regular ef tiempo de carga modificando los valores de la revistencia y ef condensador. EE cireuito de la derecha de la Figura 1.20 muestra un flip-Mlop R-S asinerono comfigunado mediante dos puertas NAND. Cusando el conniuradar cicrra el contacto de arriba el flip-flop se activa (Set) y, aunque haya rebotes, se mantiene activado, dado su funcionamiento, Cuan cl coumutador pasa a cerrar el contacto inferior, se genera un Rese: ¥ el flip-llap se desactiva aungue existan rebvotes. Una transiciéa campicta del conmutadar de abajo hacia atviba y de tuevo akyje genera un impulse limpio y sin rebotes que se aplica a ta linea IN. ENTRADAS DIGITAL! OPTOACOPLADAS En bastantes ocasiones hay que aislar cléctricamente al perifGrico de las lineas de entrada del microcontrolador. Para este fin la sefial se aplica # la linea de entrada mextiante un rayo de luz 11 peritérieo controla un emisor de luz y cuando se activa el primero, se genera un rayo lumi= twso, La linea de entrada IN recibe la Sefial de un receptor de luz, que cusmdo recibe un haz luminoso eonduce una coments. No exists ninguna relavion clécttica entre el perifrica y la linea de entrada, solo hay una transferencia lumninosa En algunos dispositivos optoacopladorcs, tanto el emisor de luz como el cecepior estén excapsulados conjunta y herméticamente en un chip, siendo accesibles sila las patitas de en: fraca y salida. Ba otros, el receptor y cl emisor son independientes y pueden emplearse para detectar el paso de objetos a su través. [in a Figura 1.21 se ofrecen dos esquemas de optoaco- piadores. En el esquema de la izquierda de Ta Figura 1.21, el periférice, cuando se activa, aplica un nivel légico alto al dnodo del diode emisor de luz, generando el ray luminoso. bl valor de R depende de las caracteristicas del digda emisor. KI ceveplor es un fototransistor que conduece twando ineide sobre é1 un rayo luminoso, presluciendo un nivel lépice alto en la resistencia de 1K cue st aplica a la linea IN. Asi, etando se activa el periférico, el diode led emite luz, conduce el fetotiansisinr y so produce un nivel allo en la linea IN. Fn el esquema de la dere. 26 \MICROCONTROL.ADORES «IC», DISENO PRACTICO DE APLICACIONES: vou yoo renigans Figura 1.21, Medeles comerciales de optoucopladores y exquemas de conexionado con las paaisus de entrada del mierocontrolades: cha, el emisor est permanentemente generardo un rayo de luz, por lo que siempre hay nivel alg en la Linea de entrada, al ester conduciendo siempre el fototransistor. Si algiin objeto se interpone entre cl emisor y el receptor se produce un nivel bajo en la linea de entrada. Funcio- ‘na como un detector de paso. DE 8 BITS: MICROCONTROLADORES 9 LOS «PIC» = 2, LA ELECCION Ente mas de 0 fubricanies de micrycontroladores que existen en el mundo es muy dificil scleccionar cel mejor». [in realidad no existe, porque en cada aplicavidn son sus caraeterist. cas eapecificas las yue dete mas conveniente. Por otra parte, los autores nos hemos equivocady a menudo y no somos ung garam: Ula de acierto. Personalmente, recuerle 1a época a principios de la ééeada de los ochenta, cuando esluhs convencido que las Memorias de Burbujas Magnéticus revoluvinnarian el mundo de le Microinfermatica con 1a misma importancia que To hicieron antes los microprocesadores, En ldia de hoy cada vez hay menos profesionales que saben de su existen De todas formas, como el libro Te hacemos cnire dos y mi coautor esta entusiasmado con los PIC y vive de eles, igual esta vez tenemos mas suerte, Dejando a un lado las preferencias personales, lo cierto es que Los PIC tienen «angel y tina gran aceptacidn en Ia comunidad de técnicos y aficionados que trabajan con mivrocontro- ladores, 2 ncuesog 2p <> cro GPAs CPN Rapp <> BP SPL carne Figura 2.2, Diayrame de coneviones de los PICI2Ceax de fa gama enana Aunque los PIC enznes s6lo tieniat: 8 patitas, queden dostinas hasta 6 como linear de E/S para los par féricos porque disponen de un eacilador interno PC. Fn Ja Figura 2.3 se presentan las principales caracteristicus de los modelos de esta sub- familia, que el fabricante tiene le inteaciGn de potenciar en un fututo préxime, Los mo dslos 12C3xx pertenesen a la gama baja, siendo el tamaio de las insirueciones. de 12 bits; Inienteos que lox 12C6xx son de 1a gama media y sus instrucciones tienen 14 bits. Los modelos 12Foxx poseen memoria Flash para el programa y EEPROM para los datos, EJEMPLO Segiin ef esquema de le Figura 2.2, para funcionar un PICIICSO8 precisa una tensién de lullmentactin comprendida entre 25 y 5.5K. que se aplica a fas patitas Von v Vee. ¢Cudntas panitas quedan disponibles, eomo maximo, para trabajar come lineas de B'S? SOLUCION Sélo 6, al disponer la céipsula de 8 pitas, 30 MICROCONTROLADORES «PIC», DISFNO PRACTICO DE APLICACIONES a eT aa [coxwor fo _ [peace] oats [i Towson [| Ee mene] ver MRO WT Caracteristicas de ley modelos PICIC(FIXAX de la gama enanc, Pigues PICI6CSX con instrucciones de 12 bits 2.2.2. Gama baja o basic: Se trata de una serie de PIC de recursos limilados, pero con una de Tas mejores relaciones casteiprestacioney, Sus versiones catin cncapsiladas con 18 y 28 patites y puctden alimentarse ‘cpartic de una tension de 2.5 V, lo que les hace ideales en las aplicaciones que Zuncionan con pilas. Tienen un repertorio de 33 instrucciones cuye formato consta de 12 bits. No admiten ningun tipo de interrupcin y la Pila sélo dispone de dos niveles MPLO (eCudntas patilas destina un PICTOCS4, Figura 2.4, para lineas de B/S, sabiendo que se las deramina RAx y RBx? SOLUCION 12 patitas. ew om es pea) TOCKI z — DSC 1 /C1KIN CARI SS oscacicanr ve 2B hwo 0 2 ops awe wee BR Eps evo no > pea am es Figura 2.4, Diaurema de paritas de ios PIC de ta gama baja gue responder a ta nomenclature DICIOCSA'SA MICROCOWIROLADORES DE § BITS: LOS ePIC) M1 2.2.3, Gama media. PICL6CXXX con instrucciones de 14 bits Es la gama més variada y completa de los PIC. Abarca modelos con encapsulado desde 18 Patitas hasta 68, cubriendo varias opciones que integran abundantes periférieos. Dentro de esta gama se halla el «fabuloso PICL6X84» y sus variantes, ELreperiorio de instrucciones es de 35 de [4 bits cada una y compatible con el de la gama baja, Sus distintos modelos eotionen todos los recursos que se precisan en las aplicaciones de les microcontroladores de 8 bits, ‘También dispone de intertupeiones y una Pila de 8 niveles ue permite el anidamient de subrutinas, La gama media puede clasificarse en las siguientes subfarnilias: al Gara rodia estindar (PGCE. Game media von camparador analdgco (PICTECEXI6ANIEEN). %61_-Gama mei Con moauilos de‘eupucn (CCP), soculaciée de enchure de impulsos (WM) y numa sare (PIC IECEX); di Game media cov.CAD 08 8 bts (PIC BL IXY. } Gama medin con CAD de pravision (PIC14N00): AL Gara. media con menare Flash y, EEPROM (PICIEXEN (a oste subfemiia 8s ¢ la que se 3 dediza este libro}; 9) Garr mecia con driver LCD (PICTACEDX) Lneuadrado en tn gama media tambicn se halla [a versi¢m PICI4COQ), que soporta el dise finde controladores inteligentes para cargadores de baterias,pilas pequhss, fuentes de ali= meatacién ininterrumpibles y cualquier sisteme de adquisicicin y procesamiento ie sefales que requicra gesti6n de la energfa de alimentacién. Ios PIC14C000 admiten cualquier tecnon Tayi de las baterias como Li fon, NiMH, NiCd, iwoswor |__| [ios [a] 2 = Figur 28. Principutes caracteristicas de los modelus de la gama baja a pe] [22 [wer [0] Pe] Le] pis | Po] 32. MICROCONTROLADORES «PICy, DISERO PRACTICO DE. APLICACIONES. EJEMPLO Segin la Figura 2.7, la nomenclatura de le subfamilia 16x8x diferencia asus modelos per fa letra intermedia (C, Fo CR). ¢Qué significado tienen dichas letras? SOLUCION Ce Significa que la memoria de insiruceiones es EEPROM. Indica que ta memoria ele instrucctones es tipo Flash. CR: La memoria de instruceiones es ROM y se graba en fabrica, Séto se tsa para grandes sevies. En la Figura 2.6 se afrece el diagrams de couexiones del PICI6C74 de 40 patitas, que ex el paradigma dle [a variedsd de recursos que pueden incluir los PIC de esta gama. 2.2.4. Gama alta: PICI7CXXX con instrucciones de 16 bits Se alcanzen las $8 instrucciones de 16 bits en el repertorie y sus modelos disponen de un Sistema de gestion de interrupciones vectorizadas muy potente, También ineluyen variados Contioladores de peritéricos, puertas de comunisacién serie y paralelo con elementos extemes y un multiplicador hardware de gran velocided Quizss la caractoristica mas destacuble de los componentes le esta gama es su aranufectura abierta, que consiste en la posibilidad de ampliacién del microcontrotador con elementos ex- las patitas sacan al exterior las lincas dle los buses de datos, direzeiones y ternes. Para cote Neuve ee i RALAND paar RAMAN] > ies BAZAN? > re RAMAN ae eaiToch) > i RASA ASE > in REOROWANE <> > knoe RriavReaNs ee v0 HEE SIAN? <> us vn > pores? see > ones esertsour > avira REOITIOSE:N ICAL > ecru RCLTOSICEPD <> a> ecrixc ROC ee SD news Ck Oe ee nasa Rows > > awvrsn ROLES <> =F koa Figura 2.6. Diagrama de pattias del PICIGC74, wio de tox modelos mis represemiativo de ty gama medi. MICROCONIROLADORES DE 8 BITS: LOS «PICa 33 omen pee | Es ee a es Taner Eespemiete a [rena Frame a [om | pees eta fe ener Figura 27. Caracteristicas relevantes de ios modelos PICIAXSY de le gama media, que son a los gue se dediea este Hibr, contrul, a Tes que se eonevian memorias 0 controladores de periféricos. Esta filosofia de cons. truceién del sistema es Ia que se empleaba en lox mietoprocesadores y nia suele ser una prde- tica habitual cuando se emplean microcontroladores. En Ii Figura 2.8 se muestran las cst risticas mis relevantex de los modelos de esta gama, que s6lo s¢ utilizan cn aplicaciones muy especiales con grandes requerimicnios, Con vistas al siglo x1, Microchip lanzars la gama «ancjorada» PICISCXXX, EJEMPLO Lovalizar el PIC de la gama alta que tenga mayores capacidades en sus dos memorias. SOLUCION EL PICITC756 con 16 K palabras de 16 bits cada una en la memorta de instrucciones y 902 Ayres en fe memoria de datos, 2.3, DESCRIPCION GENERAL Y APLICACIONES La diversidad de los modelos de PIC ticne una finalidad: poder selecctonar ef meis addecuudo para cada apticaciin. Por este motivo conviene tener un conscimiento fundamental y actual zado de cada gama, Fn cuanto a la gama enna, la familia PIC12CSXX, se trata de un conjunte de mierocon troladores CMOS encapsulados cou 8 patitas, Tlenen un precio muy bajo y resultan altamente competitivos, eR eee fe tt Mcrae Ee ee de ed Figura 2.8. Carneteristicas mas destacadas de lus modelas PICITCXNN de la gama aka 34 MICROCON'TROLADORES «PICs, DISENO FRACTICO DE APLICACIONES ‘Todos los PIC enanes tienen un formato tinico para sus instrueciones, aunque hay modelos con [7 bits, otras con 14 y otros con 16. En este grupo los mas usados son los de 12 bits, que proporcionan una extraordinaria cempactacion en el cddigo de lox programas, pudiéndose ci- frar en cl doble con respecto a otros similares. La arquitectura RISC, tipo Harvard, unida a la segmentacidin del proeesador, consigue que cleicln de ejecucién de una instruccian sea de 1 microsegundo cuando funciona una frecuen ciade 4 MIlz, Todas ley instrucciones duran este tiempo menos las de salto, que duran cl dable. Low BIC enanog san muy apteciados wn lws apligaciones de control de personal, en sistemas de sagurulad y en disposttives de o6j0 consume que gestionan rocoptores y transmisares de sofaics. Su pequero tameno los hace Ideales en muchos proyecios dande este suslcec oe hurdarnental Dentco de la zara baja el PIC14000 resulta muy interesante por los reeurtos que ineorpo~ ra: conversor A/D de meéie 2 alla resolucion [de 10 16 bits), sensor interno de cemperacura, comunicaciin scrie PC y ny bajo coasume. Son aptos para el control de eargadorcs dle bate- rias, monitores del estado de pilas y baterias, fuentes de alimentaciGm ininterrumpibles, ges~ tion del consumo de la eacrgia de alimentacin y sistemas de adquisicién de datos, expecial- mente de temperatura La gama baja, representada por los PICI6CSX, tiene proyeccion sobre los dispositivos de alta velocidad usados cn la industria de la automocién, c| control de motores y los receprores transmisores y procesadores de bajo consumo eneargados de Ie gestion de comunicaciones. . wuentia Ta subfamilia PICL6CSSX, que incorpora recursos propios Los microgontroladores PIC de la gama bajs consiguen superar a sus competidures en ve Jecited, 4 los que eventaian er us factor cercann A 4: y ‘emnbién en compresion dal codigo, que llega & ser asl donle Ln 1a gama media hay una subfamilia, PICI6CH2X, es manteaiznds el bajo precia y el consumo reducido, que es muy recommendable en aplicaciones relativas a la yestién de carwadores de baterias, control de sensores remotos con bajo eon sumo, ee Con dice versiones diferentes, la subfamilia PICLOCOX de la gama media se earieteriza por la incomporacién de numerasex eeursos (varios temporizadores, modulo de eaptura’com- paracion, puerta secie SPL ¢ °C, puerta paralcla PSP, etc.). Mejorando estes modelos, la serie PICIOC7X es una muestra de las posibilidades del procesador RISC funcionando a 20 Miz con um ciclo de instruccion de 200 ns. Los componentes de esta serie son muy apreciados en Jos sistemas de alarma y seguridad, asi como en el control remato de sensores en eutomocién, n recursos muy especiales, pero E) PICIOxéx y Sus variates pertenccen a ie gama media y su novedad os la inclusion do meratia EEPROM © Figsh para conterte: e! programa. MICROCONTROLADORES DE 8BIIS: LOS aPC 35 PICI6CXX Figura 2.9, Exquema de una apleacién tipica de PICI6Cs: destinacs ul control de wn médule viswatisador de varios digitos y ua tectado Lamemoria EEPROM, ée igual forina que Ia Flash, puerde grabarse y borrarse eléctricamente, sin someterla a rayas ultraviolela come sucede en el borvado de las EPROM con vert Adlsmis, se puede realizar la grabacién y el bortado en seric, lo cual posibilita la grabacion de vn programa, su depuracién y su borrado tantas veces como se desee y manteniendy insertado cl PIC cn el zécalo de la aplicacion. La memoria EEPROM admit: hasta 1 000.000 de ciclos de escritarm/borrado y almacena la informacién durante mis de 40 alios, La memoria Flash Lene un valor tipico de 1.000 ciclos de escritura-borrado, pero aventaja teenicaments en varios sspectos a la LEPROM. El hecho de poder emplear ef mismo dispositive cuando se cuando se prucban muchos programas en la fase de aprendizaje resulta muy prictico y econs- nico. Aplicaciones tipivas de estos microcontroladores son el control de puestas de geraje instrumentaci6n, inmovilizadores de vehiculos, tarjeias codificadas, pequetios sensores, etc. La grabacin de los PICI6X8X en el propio circuito les hace recamendables para cl almace- rnamiento de datos de calibracion y para la modificacion «le! programa al variat las condiciones del entomo; por ejemplo. al cambiar una pieza de un automdvil, el progiama de control del motor se modifica para su adzeuacion, La serie PICI6COXX tiene: como novedad Ia inclusién de un controlador pro LCD, que gestiona imtegramente cualquier pantalla de eristal liquide. Dentro de la ganva alta, la subfamilia PICI7C4X, con $8 instrucciones de 16 bits, tarda en cjecutar cala uni 121 nanosegundos cuando funcione » 33 MH, (las de salto tarda el debe). TH micleo del procesador est mejorado respeeto al de la gama media y Ia Pila disyone de 16 niveles, También se han aumencado las fuentes de intetrupcion y se ha incorporado un multi plicador hardware de 8 x & bits en un ciclo, para aplicaciones que exijan un céleulo matemiti- co intensive, Aplicaciones industriales que requieran alta velocidad y cilculos complejos, ins- trumentacidn y telecomunicaciones, son lis icesles para los componentes de la gama alta. E] PICT7C7S2 y el PIC17C736 son los modelos mas representativos de la yams alta y estan eneapsulados con 64 y 68 patitas respectivamenie Tienen una elevada capacidad de memoria ‘que alcanza los # K x 16y 16K x 16.en el Area reservada a las instrucciones y 454 y 902 bytes ealizan numerosas disefios 0 ramable de 36 MICROCONFROLADORES «PICs, DISENO PRACTICO DP APLICACIONES, cn la reservada a los datos, respectivamente. Poscci 12 canales para un eonversor AD de 10 A eanales para un médulo de captura de 16 bits, 2 USART, bus FC, ete. Fiyura 2.10, Cha pice aplicactin de fos microcontroladores de la gina media, Seusan PICIGCSS I) para conttolar wn temportador para mdguints contoledus por tiempo (ipo monedero) Disehuda y fabriendia por CEBEK. ‘A lis puerias del siglo xxt, Microchip present6 en el mercado mundial los nuevos mievo- adores RISC FLASH, Se trata de ka serie PIC16187X (3, 4, 5. 6.y 7). Son unos mode- Ventajas en su grabacién {i contr is mucho mas potentes que el PICT6LS4, pero que mantienen y borradko eléctrico. Una serie que encaja dentro de la gama media y que alcanza una memoria de cédigo die hasta SK palabras de 14 bits en memoria FLASH. Soporta hasta 386 « 8 bytes de RAM y 1556 x B bytes de memoria de dates EPROM. Pueden programarse s6lo con +5 WDC y exis- te acceso 4 Jectura y escritura de la memoria de programa, Talos potentss microcontroladores disponen de huista tres Timer o contadores, dos médulos de Capluta, Comparacion y PWM, un Convertidor Analigicu/Digital de 10 bits, Canal decor tnunicaciones sincrono SSP con modo 12C y SPI, canal USART/SCT, puesto paralelo esclavo asincrono de 8 bits y deteccisn de falta de alimentaci¢n (BOR). ‘Los lectores que completen con éxito el primer escaldn en el manejo del PICI6F84 debe- 4 fener muy en cuenta esta potentisima familia de PIC con memoria FLASH pata superar sus disefios MICROCONTROLADORES DE § BLIS: LOS «PIG» 37 EL SEGUNDO PROGRAMA DE CALENTAMIENTO: EXPLORANDO INTERRUPTORES ¥ ENCENDIENDO LUCES Con el primer programa del capituli anterior ya se conacen dos instruceiones (imov y adil) y todas sus variantes. Vamos @ aprender alguna nueva y hacer un segundo programa didactico pata prebarlo con el SIMUPIC’ 84, Seintenia mangjar las lineas de L/S digitales que los microontroladeics suelen agrupar en conjuntos de § ¥ que a nosotros nos gusta llamar smertas por Ia referencia que conllevan con lo entiada y salida de informacién para les periféricos extemnos, EI PICI6X84 dispone de dos puertas, PUERTA A y PUFRTA 1, que simplifieadamente dunoniinaremos PA y PR, En este caso PA s6lo pose 5 lineas (RAG-RAd) mientras que PE: cansta de 8 lineas (RBO-RB7), Tanto las lineas puerta como de otra pueden actuar de forma independicnte come entrada 0 salida. ‘Todos los recursos del PIC se manejan como revisiras de & its que estén implementados: fisicamiente come posiciones dé la memoria de datos RAM, LI valor de los datos que eniran ¢ sslen por PA y PB estén materializades en dos posiciones de In RAM, que en el caso del PICIGX4 corresponden a las diteceiones 5 y 6, respectivamente, Exislen oiras cos registros o posiciones de In RAM que se emplean para configurat fas ineas de PA y PB como entrada o sada, de tal forma que cuande en uno de los bits icestas registro s@ graha un L, la linea correspondiente de Ix puerta afectads acta como entrada; mientras gue si se giaba un 0, actiit como salida. A estos registros de configura- cibm de las puertas se les denomina TRISA, al que controla PA, y TRISB, al que lo hace con PB, La memoria dhe datos del PICL6X84 esth dividida en dos bancos: baneo 0 y bameo 1, y la anchura de cada posicidn es de 8 its. Fu las posiviones 5 y 6 del bance 0 se ubican los rezis- tios PUFRTAA y PLIERTAR, que contienen el byte de inférmacién que ha entrade o va a salir per las lineas de dichas puertas. Con igual situaciiin, pero en Ia banco 1, se hallan situados los retistos TRISA y TRISB que configuran Ia direceién de cada linea. (Véase Figura 2.11.) Cuando se conecta Ja alimentacion al PIC o se ncinicializa su fumeionamiento mediante un Reset, se activa automaticamente el acceso al banco 0, Si se desea acceder a posiviones d bianco | hay que poner a 1 el bit 5 de un registro Hamil ESTADO y que ocupa, duplicado, dos posiciones que tienen li dirceeién 3 del banco 0 y del banco 1 Si, por gjemplo, se quisiese configurar come entrautes a todas las lineas de ka PUERIAA come salidas a las de Ia PUPRTAR, habria que cargar con un | a todos los bits de TRISA y su un 0 at todos los bits de TRISB, Suponiendo que el bit 5 del regisiro ESTADO valiese 1 yse pudiese acceder al banco |, las instruceiones necesarias pata realizar la configuacién de jas dos purerias seria AR MICROCONTROLANORES «PICs, DISENO PRACTICO DF APLICACIONES [MEMORIA RAM DE DATOS, Figura 2.11, {os registrs PUERTAA y PLERTAN que conitenen la informacion que enira a sale por Jas lineats de E’Socupan las posiciones 5 y 6 del baneo J, mientras que TRISA v TRISB, encargados de ta conjlguractén de dichas lowus, se hallan situates en las evismas posiciones relativas pero en el banco 1 movin xt We tt hex movi Oxilb : W> TRISA fas frees de PA xe centiguian comma entradas): tnoviw x00 | We 0 movwt 0x06 |W = TRISE fas teas de PE son saicas) Cuando se comienza a trabajar por primera vez con el PICISXR4, el bit 5 del registro ESTADO se carga automaticamente con un 0. con lo que se permite el acceso at las posiviones cl banco 0 de la memoria de datos, Para configurar las Tincas de las puertas hay que aceeder a los registros TRISA y TRISB que se hallan en cl bance 1, por lo que, previamente a cargar ten ellos los valores adeeuados, hay que poner a I el bit 5 de FSTADO. Una vez configuradas los puertas, hahri que volver a poner a 0 cl bit 5 del registro LSTADO para poder Teer la informacién introducida por las Tineas que funcionan como entradas 0 para poder enviar 21 exterior los bits colocados sobce las lineas de salida, cuyos valores se halkin et las posicio nes 5 y (de! banco 0. Para resolver el nuevo ejercicio se comentan tres nuevas instrueciones bsf fib: Pone a | el bit ch» del operando fuente «ls, que es una posicion de la memoria de datos « regis. La instruccién dsf 0¥03,5 pone a 1 el bit § de la posicién 3 de la memoria de datos, en la que se ubica cl registio ESTADO, MICKOCONTROLADORTS DE 8 ITS: LOS ac» 39) bof fb: Pone a0 el bit «by del operand fuente «fp. La instruction bef esiade,5 pone a 0 el bit $ del registeo ESTADO. goto etiqueta: Provoca un sally incondicional en la ¢jecucién dc! programa hasta ta instruc- ccibn que saya precedida por el nombre de la etiqueta La instruccibn gore inicio catga al PC 0 Contador de Programa con la dineceidn de ta instrucetén que vaya referenciada con la etiqueta inicio, provocando la rotura de la secucncia horn del programa, ENUNCIADO Se colocan tres interruptores en tas lineus RAO, RAL y RAZ de la puerta PA de un PICIOCS4 vy cuatro dads fed en las lineas RB, RBI. RB? y RB3 de PL, ral como se refluja em la Fi- gura 222, Mediante los tres interruptores se introduce un niimero binario de tes bits, de forma que selimerraptor esté abiertu mete un 1, y si esté cerrado, pone ta linew a nerra y mete wn O, Se rata de canfeccionar un programa con lox neménicos de las instrucetones del PIC, que llamaremos SEGUNDO.ASM y que comienza leyendo ef mimero hinarto Introducido por ios interruptores, luego suma 2 unidedes a este valor y visualiza en los diodos led el resultado binario de la operacion, Ua ted upagado representa un 0 y encendidde un L 045 F1OK3 ricroxna Figura 2.12, Conexion de ives interruptores y euatrs diodos ted wn las tineax indicadas de fas puertas PA y PB. 40 ROCONTRULADORES «PICs, DISERO PRACTICO DE APLICACIONES 'SEGUNDK SM [fan 2) 1eCea F Eomande Que tailice @1 vac 7 usade ; se Yalares uy sepresentar en | Reieoden teat snaies al one } tg direceséa de ie menorie } donde ps eftuard 1e |} Ingteuseiga eimiente bet 205,555 liome eA ed Bie 5 de RatADG pura @irecetoaa: el baacw 1 fe id menozie de danos maydyONEE he ff thee wovwt Oxf) j= URS govle UXUG hee Dent HOG g We TRTSA (Las Linas Ge PR 5 de FenADO fal pance ¢ ot ome.3 aaaie } jove: xO Wo PURRTAR. Ely valor do it sale por jaa iémegs de UB @ + Jos ed) goto inicie 7 Ye balk @ Ig dnbbencoide presedida par la szicuete irieto, up } olenetiva ave indica e) final 7 del Srocrana EL programs SEGURDO.ASM puede quedar mas claro sien ugar de utilizar Ins direecio- nes resles en cddiga hexaclecimu se utitizan cliquetas que las identifiquen. SRGUNDO.ASM uve p 2 téeae X nex MICROONTROLADORES DF SRITS:LOS «tics 4 | OMISRTZA at, suas aces ea teUiTAA® gurda Meaciitcada con fda Siregetéede05, que Ri sorrecpoase ven 01 (Baie 0 eb el valor de PUERTAR yi ee del banea | een el du procs PURRTES ROL Owe: Rguivatonetn as do po eriqueta LuERTAD PSieae EGO OxU2 | Hatadh carrespocce von Pel valor asi'y © a 6 f Idenvicica w can of i valor 6 Perapo Does SuenTaa ueecaw never PUERTAD goco. infcts Con estas ejercivios silo nos proponemes inttodueir al lector a la programacién del PIC Si la seguide nuestro paso hasta ulvora, es una persona infeligente, $i In ve oscuro es un tio listo, porque con To pace que hemos dicho es logico que Lenya sombras en ef horizonte, perw ly pour ya ha pasado, ii Todavia no sabe nada del PICL6x84 y queremos que encienda varias luces! 9 el que usamos con nuestros alumnos en Gxita to se debe al método rt Este mel jase y los va muy bien, aunque, en confianza, el ine # Tos alumnos. todo PROBANDO EL PROGRAMA CON EL SIMUPIC?R4 PROGRAMANDO EN Tul como se hizo en el capitulo precedents, se muestra e! programa anteriormente desarrollado cn ensamblador, escrito ahora en lenguaje C. El programa en cuestion es SLGUNDO.C 42. MICROCONTROLADORES «PIC», DISENO PRACTICO DF APLICACIONES /*eugUNDO.C Frodrana que suma 2 unidades al valor que entra*/ 7+ pox Ta PuerteA mediante unc intarraptores y visualiza e1*/ 7+ pesultado mediante unos Leds que ee suponen conectados a*/ Ys la PaertaB */ fipelide weIsA 4y perctsts b cxngy pe dave 3 wasee 47 ao alo © phereas: (0 Puertak o> valor #/ yahor 18%: Mowe Lncrementa valor on 9 +7 puerta ~ valor: “/* valor =-> pu foviile rab ty UE | Xuele intinite +7 PROPUESTA DE UN EJERCICIO PARA «SUBIR NOTA» Se propone un ejercicio con el que pode comprobar los conocimientos adquirides hasta el momenta. Se trata de sumar el valor introducide mediante cuatro incecruptores conectados a las lineas KA a RA3 de PA con el valor introducide por otros cuatro interruptores coneetados, a las fincas RBO a RB3 de PB. Lil resultado de esta suma debera situarse en 1a posicion de ta memoria de datos 0x0C. Altalarse de la suma binaria de 2 operands «le 4 bits solo se debern tener en cuenta tos 4 bits de menos pesu dle! wgistro OxGe, aunque puede haber acarreo, Para comprobar su programa lo mejor cs que lo simule con el Stmupte’84, pero si algtin problema o esti algo perdido, en el disquete que acompai ul libro se encuentra una solucién bajo el nombre SEGUNDO?.ASM. Su version puede no coincidir con fa propuesta aqui y, sin embargo, ser correcta, Para ir a un sitio hay muchos eaminos DISENAR APLICACIONES CON PIC ES FACIL, PRESENTACION DE LOS PERIFERICOS MAS SIMPLES Periféricos Digitales de Salida DIODOS LED Ei diodo clecrroluminiseente « led es uno de los dispositivos de valida digital mas seacillo y eco. nnémico. Segiin el nivel ldgico que se les aplique a su eatodo o anodo se encienden o se apayan. MIPROCONTROLADORES DE RBITS, LOS «PIC» 43 En realidad todos les periféricos digitales de salida funcionan como el Jedd. Uno de sus ex- tremos Io tienen coneetado al positiviy de la alimentacidn «1 # tierra ¥ por el otro se les aplica el nivel lépica que suca una de las Hineas lel microcontrolador. En el caso del diodo Jed, se envenileri cuando la polarizavién enire sus eleetrodos sea la directa, o sea, positive cl ‘inodo y negativo el catindo Las lineas de tos PIC pueden suministrar suficiente corriente coms para encender @ un dicalo ted. por eso se les puede: conectar directamente a través de una resistencia de ahsorcién, como muestra la Figura 2.13. cud Kk} = 180 3 TaD Figura 2.13 Conevidn cireere de las diodos fed con fas lines de satida de wn PIC A veces pede haber dindos led w otto tipo de carga que necesiten mas carriente que la que pueden catregar las ineas del PIC, en cuye caso es necesario intrexlucir un transistor amplili- | ‘eador, como se muestra en fi Figura 2.14. | van Figura 2.14, Cuanda ty cargu precisa mds corrience que fa que pueste sumenistrar fa linea de salir del PIC hay que colocar wn transistor amplificuat RELE: La ectivacién y dessctivacion de un relé brinda La oportunidad ée povler controlar cargas mu- cho muyores (més eorriente) porque pueden ser contialuchis por los contactos de dicho rele En la Vgura 2.15 a ofrece un posible esquema pura ef gobierno de un re Caundo fa linea de salide, OUT, aplica un mivel aly a li base del transistor Darlington, hhace que conduzea y se active el relé. Al ectiarse: los contactos de éste se controla una carga mayor. Fl wilor de ia resistencia depende del tipo de telé y del Darlington, 44 MICROCONTROLADORES «FIC». DISENO PRACTICO DE APLICACIONTS Figura 218, Lsquema de gobierno de wn rele MICRORRELE. Funciena como un relé, pero mis pequeito y por tanto con menor intensidad pare su activa ‘clon y con menor posibilidad de controlar una carga grande. Fl circuito de conexion de un microrrclé a una Tinea de salida de un microcontrolador se muestra en Ia Figura 2.16. EL transistor PNP 2N390b conduce y activa la hobina del microrrelé cuando sale un nivel agive bajo por la Tinea OUT, El microrrelé de la figura es de doble contacto de dos posicio- nes, usando uno de ellos para controlar el dingo led que aeitia como piloto de la activacion. EL clr) contacto est a disposicion del usuario para gobemar la carga deseada. I RURRELE ICRORRELE ACTINADO > ER 0906 Figura 216. Cowexiim de wn mécrorrede MICROCONTROLADORES DES BLIS:LUS «PICs 45 SALIDAS OPTOACOPLADAS. A veces hay que aislar cléctricamente la carge a controlar de Ta fines de salida, Com este fin se puede usar ¢l mismo procedimiento que para cl aislamiento de Jas entradas, co en [a Figura 2.17. Ww se muestra Ture Figura 217. Salides optoacopladas, aisladas elévtricumemte 7UMBADOR Setrata de un peritérico que genera un zumbido sonoro cuando se activa. Hay muchos modelos yen la Figura 2.18 se muestra uno piezoelécirico, cuya activacidn se produce cuando por la linea de salida aparece un nivel bajo. Existen potentcs zimbadores que precisan de una etapa previa de amplificacion, CONTROL DE CARGAS GOBERNADAS POR CORRIENTE ALTERNA Los TRIAC son dispositivos eleetrdnicos que dejan pesar una parte del semivielo de la CA que 2 les aplica cuanto a su puerta se les envia un impulse de disparo. De esta forma la poteneia ‘ane eniregan depende de la genecacitsn de dichos impulsos Se pueden controlar TRIAC con optoacopladores, tal come se muestra cn la Figura 2.19. Cuando la linea de salida OUT tiene nivel slio el encendido del fotodiods hace conducie al IRIAG, el cual est contiolando ts potencia gue entrega a una carga, Conociendo la frecuencia a la que trabaja el TRIAC, por ejemplo $0 Hz, mediante soft- ware se puede determinar cn qué momento de cada semiciclo se genera el impulsy de cebado, egulanlo asi la potencia entregada & la carga. ZUMBADOK cxf | Figura 2.18 Conestonado de un cumbdor 46 MICROCONTROLADORES «IC», DISENO PRACTICO DI APLICACIONES oo Toca] IM ye [ 9. 1 100, oa woo Pac ay Figura 2.19, Giohierno del dispure de wo TRLAC mediante tu linea de slice del microconsrolador @ través de wn optoacepladar INTERFACE R! 132 Uns eplicucién verdaderamente interesante ex Ia comunicacién del microcontraladar con otros. ispositivos inteligentes, como puede serlo el computador ‘La norma de comunicacién serie RS-232 es una de las mis extendlicias. Una de sus carac- teristicas e3 la de los rangox de tensiones que utiliza para representar los niveles légicas. FL nivel alte se representa con una tensiin eomprendida entre 3 V y-15 V. mientras que el nivel bajo utiliza el rango de +3 V a +15 V. Lin la Figura 2.20 se presenta un esquema para convert os niveles lgicos proporcionados por las lineas del microcontrolaclar con Tos exigidos por ka norma RS-232. PI MAX232 de la firma MAXIM dispone de dos eanales de entra para niveles TIL, que son el THIN y el T2IN, con sus corespandientes selidas, RIOUT y R2OUT. Tpualmente, po~ sec dos canales de entrada para niveles RS-232 RIIN y RIIN y xis correspondientes salidas TIL, TIDUT y T20UT. Se alimenta con +5 ¥. En el esquema de ls figura silo se ha empleado uno de fos dos canales disponibles, Una linea de salida del PIC (EXD) apiica la informaciin a wansmitir (I'TL) por fe patita THN del = [= 1 cinewita intexrads MAX2R2 adapto los niveley ldgicos de las linens deb icrocontroladar con los que exige te norma RS-232, MICROCONTROLADORES DE § BITS: LOS «PlCy 47 MAX232. Dicha informacion sale por la patita RIOUT, pero convertida a niveles RS-232, tnviindose por la patita 3 (TxD) de un eonector estindar DB25 La lines de recepeién KS-252 (TxD) corresponde con la palit 2 del DE25, La inform: cin que se recibe se introduce por la patita RIIN del MAX232, que la convicrte a niveles VEL que salen por TLOUT a otra patita del PIC: Fn el interior del PIC debe existir un programa que gestione la entrada y salida de la infor macién serie. MOTOR PAP Los motores paso a paso (FAP) se gobiernan mediante cuatro sefiules digitales. Cada ver que se introduce un nuevo patrin al motor, gira un determinado Angulo, que se denoming paso. ELPIC puede dedicar custio dle sus lineas de L/S a sacar por ella las diversas combinacio- nes de niveles Lgicos en los momentos precisa para gobemar el giro del motor. Mediante el programa adecuada puede controlarse con gran exactitud el posicionamiento del eje, su velo- widad de giro, asi come su sentido. (Vigura 2.21.) ~ Las combinseiones binarias que «icben sacar las linens del microcontrolador dependderin uk las caracterlsticas y especificaciones del motor. Cada combinacion origina el giro de un paso, y el orden en que se aplican dichas combinaciones definen 1 sentido. LI intervalo de licinpe que transcutre entre la salida de una combinaeidn binaria y la siguiente determina la velocidad. Ja precision en el giz puede gleanzar un alto nivel al existit motores cuya resolucidn por nis0 es de fiseeiones de grado, de forms que pars girar una vuclta de 360° hay que aplicar ran cantidad de combinacioncs, LuN2005 AMPUIFICADOK MOTOR PAP, ee fot mmm | | — BOBINADOS Figura 2.21. Conesién de las 4 eniredas de us motor PAP a enatro lineas de salida def PIC EL ULN20034 es wa amplificador de ala gonancia para cansumos y tonsiones de trabajo elevades, EL PRIMER CONTACTO 4 CON EL PIC16x84 a PEQUENO, POBRE, PERO RESULTON Bl. Nuestro «maravilloso» PIC pertenece a la familia de la gama media y dentro de ella es uno delos mis pequerios; solo tiene 18 patitas. Ademés es el que dispone de menos recursos. Elresto de sus parientes tiene conversores AD y DA, comparadores analdgicos, tension in- tema de referencia, mas lineas de E/S, mas capacidad en sus memorias, varios tempori- adores y un largo etcétera de dispositivos de los que el PICI6X84 carece. Es «pobre» de nacimiento. Pero nosotros hemos elegido a este PIC, en sus dos versiones € y F, porque cumple con los requisitos esenciales para ensefiar a mangjar los microcontroladores y comenzar a disefiar pro- yectos. Es prictico, es sencillo y es econémico, pudiéndolo considerar como el paradigma para su empleo en todos los pequeitos proyectos que realizan los aficionados, los estudiantes y quienes prefieren progresar en sus conocimientos de lo facil a lo dificil. Creemos que sabien- «do manejat un PIC, e! hacerlo con todos los demas es muy facil La filosotia que hemos seauido en este libro es ensefar «bien» un modelo de PIC, el PICI6XEX, porque 6i {0 conseguimos sabemos que va a ser inmediato manejar los restantes. Se trate del mismo perro, con el risme collar, pero con distintas pulgas. La razén exclusiva de su interés se debe al tipo de memoria de programa que posce. En el caso del PICI6C84 se trata de una EEPROM de | K palabras de 14 bits cada una. El PICI6F84 tiene la misma eapacidad de memoria de instrucciones, pero de tipo Flash, Ambos disponen de 64 bytes de EEPROM como memoria de datos auxiliar y opeional. La memoria EEPROM y la Flash son eléctricamente grabables y borrables, lo que permite escribir y borrar el programa bajo prucba manteniendo el microcontrolador en el mismo zéca- lo y usando el mismo dispositive para grabar y borrar. Esta caracteristica supone una gran ventaja con la mayoria de los microcontroladores, que tienen como memoria de programa reescribible una tipo EPROM, Se graban eléetricamente, pero para borrarlas hay que someter- las durante cierto tiempo a rayos ultravioleta, lo que implica sacar del 26calo al circuito inte: grado y colocarlo en un borrador de EPROM. 49 50 MICROCONTROI ADORES «PIC», DISERO PRACTICO DE APLICACIONES Microchip iia introducido la memoria Flash porque tiene mejores posibitidades de aumentar su eapacidad con relaciém a la EEPROM, También por su mayor velocidad y menor consumo. No obstante, la EEPROM es capa de soportar 1.000.000 de ciclos dle escritura/borrado, frente alos 1,000 de la Flash ‘tra vetaja del PIC 16X84 cn cunntoa siraplficar el proces de escritura, borrado yrecseri= tura de programas, tan necesario en la fase de dineiio, es su sistema de grabacidn de datos, que se realiza en serie. Para escribir un programa en la memoria se manda la informacién en serie sand sélo dos patitas: In RB6 para la seal de reloj y la RB? pare los bits de datos serie. Mosiramos a continuaeién la tarjeta de presentacidn ie los PICL6X84 con sus datos perso- niales mas signifieativos ‘TARJETA DE PRESENTACION DE LOS «PIC IBXE4» MEMORIA DE PROGRAMA: 1K x 14, EEPROM (PICI6CEA y Flash (PICIBFBA) MEMG)RIA DE DATOS RAM: 36 bytes (PICIBC8SI y 6B bytes (PIC TBF! MEMONIA DE DATOS EEPROM: 64 bytes paia umbos modiolae PILA (Stack) De B niveles INTERFUPCIONIES. + pos alferentes JUEGO DE INSTRLICCIONES. 35 ENCAPSULADO: Pastico DIP de 18 patitas FRECUENCIA DE 19/ARA.I0: 10 MiHle maxima TEMPORIZADORES: Solo uro, el TMQ. Tambien tienen Pew Guarcidn (D1) LINEAS DE E/S DIGITALES: 19(5 Poeita A y 8 Purta 8) Cesrsnte maxima absorbida 80 mA Puerta Ay. 100 mA Puerta B Corriente idninso suminiatrads: 80 mA Puoria A y 100 mA Puerta B Comante maxiera absorbida por ings: 25 ma Comente mésime suministrade por tinge: 20 mA YOLIAJE DE ALIMENTACION Week’ De 2.8 BV OC VOLIAJE DF GRABACION (Vol: De 12a 14 VDC 3.1.1. Variantes del PICL6N8X Sc comercializan diferentes modelos gue respoaden a fa nomenclatura genériea PIC 16X atendicndo a diverss eatacteristicas, 1 Frecuencia méxima de Cuncionamiento, 2° Tipo de oseilador extemo usado pars yenerar la fieeuencia de releyj 3" Margen del voltaje de alimentacion, Los modclos que tienen las letras C, F o CR intermedias admiten el rango de voltaje de alimentacin esténdar. que es el que oscila de 4a 4.5 V DC como minima, hasta 5,5 a 6 V DC BL PRIMER CONTACTOCON EL PICIOASS SI como maximo. Los modelos con las letias LC, LF » LCR intermedias admiten el margen de twlije «eetendlidess, que sbarca desde los 2 V hasta los 6 V DC. En la tabla e la Figura 3.1 se indican las principales caracteristicas de algunos modelos, atendicndo a la frecuencia maxima y al tipo de oscilador usado. Tce TRIO TICS movers tC toy tama 00 Vat. 433¥ (Dor mama Sov prem eae SE LISA IN EL MODO HS. Figura 31. Prineipales caracterisiicos de diversos modelos de PICIOKRK. La buena aceptacién en ef mercado del eprimogénito> PICIGC84 ha animado all fabricante Microchip a comercializar nuevas versiones. Ha disefialo cuatro nuevos modelos que se mues tuan en la Figura 3.2. Dos de ellos intercalan la letra F, que significa que la memoria EEPROM [ey aon recs | cancr | eff feo] [rower Pet) before Po vor] Figura 3.2. Variantes de! PICTSCS4. 52. MICROCONTROLADORNS «PIC», DISENO PRACTICO DE APLICACIONES se ha sustituido por otra tipo LLASH. Los otros dos modelos la sustituyen por memoria ROM con mascara, pero todos clles rnantienen los 64 bytes de EEPROM para datos, En el ano 2000 existen los modelos PICLOF87X enormemente mas potentes que el PICIGF84. 3. Diferencias del PICI6C84 con los demas modelos PICI6X8X 1" La memoria de programa es de tipo Flash en los PICI6F8X y de tipo ROM en los PICIOCRSX. 2° EL PICIOFS# y ef PICI6CRS4 tienen mayor capacidad de la RAM de datos. Dispo- nen de 68 bytes en lugar de los 36 del PICI6C84. 4° Se ha invertida la polaridad del bit de control PWRIE, que activa y desactiva un temporizador encargady de retrasar el funcionamiente del PIC ai aplicarte ja ali= mentavisn. 4° Se ha incorporado un filtro a la entrada de ta patita MCLR4, por lo que se requiere un puso de mayor duracin para generar el Reset 58 Se han mejorado muchas especificaciones eléctricas en lox madelos Fy CR. 3.2. EL ASPECTO EXTERNO ‘Nuestro fabulose PIC std fabricado con tecnologis CMOS de alias prestaviones y encapsula- do cn plistico con 18 patitas. (Figura 3.3.) Se comeata brevemente la mision de cada uma de las patitas. Vg: Patita por la que se aplica la tensidn positiva de la alimenta sg: Patita conectada a tierra o negativo de Ia alimentacién. OSCICLKTW: Patita por la que se aplica la entrada del circuito oscilador externo que propor ciona Ta frecuencia de trabajo del microcontrolador OSC2/CLKOUT: Patita auxiliar del cireuito oscilador MCILRH: Fsta patita es activa con nivel logico bajo, lo que se representa con el simbolo #. Su activacion origina la reinicializacién o Reset del PIC. Tambien se usa esta patita curante Ia yrahacién de la memoria de programa para introducir por ella la tensién, Vie, que esti comprendida entre 12 y 14 V DC Rae sem Rat 0 eAwTOck! <> 4 osciician cree 4 osc2etKouT ve vo Pooja 4 paar ke ee m2 + er hs Figura 3.3. Diagrama del conesionade de las pattras det PICLOKAX. FL PRIMER CONTACTOCON EL PICI6x8I 83 RAD - RAG: Son las 5 lineas de E’S digitales correspondientes a la Puerta A. La linea RA4 multiplexa otra funcion expresada por TOCKI. En este segundo caso sirve para recibir una frecuencia externa para alimentar al temporizador interno TMRO. RBO~ RB7, Ustas 8 patitas corresponden a las § lineas de L/S digitales de la Puerta B, La linea RBO multiplexa otra funcién, que es In de servir como entrada @ une peticion extema de una interrupeiin, por eso se la denomina RBO/INT. Lob PICI@x8X tienen un:encapsulids de 18 patites, dos de ellas soparten ia tension de. ‘aimenitacién, otras dos reciben fa sefal del Osc lado: externa ¥ otta se utiliza pars generar un Reset. Las 19 patitas restentes Turcicrin como lineas de E/S para contvolar las wolicaciones. EJEMPLO En eldiseto de un juguete controtado por un programa de 91.5 instrucciones hay que construir, inicivlmente, un prototipo y posteriormente une serie de 25.000 unidades. ;Qué modetos de PICIOXAX se usardn en vata caso? SOLUCION Para el prototipo se usaré el PICIOCS4 0 ef PICIGFS84, Para la serie de 25.000 unidades se empleard el PICI6CR84, cuyo programa de mstrucciones se grabaré en febrica. LA FRECUENCIA DE FUNCIONAMIENTO. EL RELOJ La frecuencia de trabajo dol microcontrolador es un pardmetro fundamental a la hora de esta blecer la velocidad en Ia ejecucidn de instrucciones y el consumo de energia. Cuando un PICI5X8X funciona a 10 MHz, que es su maxima frecuencia, le comesponde un ciclo ce instruccién de 400 ns, puesto que cada instruccién tarda en eiecutarse cuatro perio~ dos de reloj, 0 sca, 4 ¥ 100 n= 400 ns, Todas las instrucciones del PIC se realizan en un ciclo dle instruceién, menos las de salto, que tardan el doble Los impulsos de rela) entran por la patita OSC L/CLKIN y se dividen por 4 inemamente, dando lugar a las sefales Q1, Q2, Q3 ¥ Q4, mostradas en la Figura 3.4, Durante un ciclo de instruceion, que comprende las 4 schales mencionadas, s¢ desarrollan las siguientes operaciones: OF. Durante este impulso se incrementa el Contador de Programa. 04: Durante este impulvo xe busca ef cédigo de la instruccisn en la memoria del prosgra- ma y ve carga en ef Regisiro de instrucetones. 02-03: Durante la activacién de estas dos sehales se prduce la decadificaciin y la eje cuctén de la instruccién. Para conseguir ejecutar cada instruccion en un ciclo de instruccion (excepto las de salto, que tardan dos), se aplica la técnica de la segmentaciin o «pipeline», gue consiste en realizar en paralelo las dos fases que comprende cada instrucci6n. 54 MICROCONTROLADORFS «PICs, DISENO PRACHCO DE ADL PACIONES, oc10 INsRLCaON, ma Paice: Las laden ae wgci@nn@r og tan ae 4 ai it 1 lee eh 1 2 ‘ i 1 1 et + ' ; = ! ' ene) ET i mneanaee {SEN Rea Figura 34. Les impulsos del rela} exiema (OSC) se dividen por 4 formande las seiales QI, 2, O8 ¥ 04. que configeran un vielo de rastruccién En realidad, cada instruccién se ejecuta en dos ciclos: en cl primero se lleva a cabo la fase de busqueda del codigo de la instruccién en la memoria del programa, y en cl segundo se decodifica y sc ejecuta (fase de ejecucién), La estructura scemeniada del procesador permite realizar al mismo tiempo la fase de ejeeucién de una instruceion y la de biisqueda de la i guiente. Cuando la instruceién ejecutada correspond: a un salto no se conoce cual sera le siguiente hasta que se complete, por exo en esta siluacién se sustituye la fase de busqueda de Ja siguiente insituecién por un ciclo «vacio», originando que las instrucciones de salto tarden lizarse des ciclos de instruccidn. (Figura 3.5.) heicto 2eKL0s sensumauvciao ace TeINSIRUCCION OWN sh INSIRUGION MOVE PA PINSIRUCCION CALL SAL INSIRLCON MOVUN Fol Figura 3.5. La segmentucién permite solaparen ef mismo ciclo la fase de ejecueén de unr insiruccion v la de biisqueda de la siruiente, excepto en ia instrucciones de salto EL PRIMER CONTACTO CONEL PICIOX84 5S La jrecunncis da funcionsmiesto: de un microcontroleder a un pardmatro fundamental del que dopende 1s velovicac ds elocucién de! programs y ¢! consume do snergia. Ceca medclo da PIC diapane de diversas versiones para distintas frecuencias, La téeniea de la segmentacién unida a la arquitectusa Harvard del procesador permite al PICT6C84 superar ta velocidad de sus competidores directs. Axi, por cjemplo, es 1,54 veces mis répido que el microcontrolador de Motorola G8HCO5 cuando ambos funcionan a la misma frecuencia de 4 MHz, EJEMPLO Un PICIONSS que funciona a 4 MHz ejecuta un programa de 1.000 instruccianes, de tas cuales el 25 por 100 son de salto. Calcular el tiempo que tarda en ejecutarto. SOLUCION Touursrxuccios = 4° Tre = 4 250 ns = 1.000 ns = 1 ps. Torocravy ~ 750° 1 + 25002 ~ 1.250 ps. 3.3.1. Tipos de osciladores Los PIC admiten cuatro tipos de osciladores extemos para aplicarles la érecuencia de funcio- ‘amiento, 1 tipo empleado debe especiticarse en dos bits (FOSC1 y FOSCO) de la «Palabra de Configuracién, como se comenta mis adetante Oscilador tipo «RC» Se tata de un oscilador de bajo coste formado por una simple resistencia y un eondensador. Proporciona una estabilidad mediocre de la frecuencis, cuyo valor depende de los valores de los dos elementos de Ia red R-C. (Figura 3.6.) onc Pa, I oro cake 00K 2a exec xo sore 10k one Nae PICI6XBa Figura 3.6. Esyuema dei vsctlador tipo RC, formado por un condersaador » nu resistencia externos Se indican fos volores que deben tener estos dos componentes para obtener algunas frecuencias de ascitacion. 56 MICROCONTROL ADORES 4PICy, DISENO PRACTICO DE APLICACIONES EJEMPLO Un PICIGF%4 funcionando con una red R-C de 10K y 220 pF, respectivamente, esté ejecu- tando un programa de 560 instrucciones de las cuales el 20 por 100 son de salto. ¢Cuénio tarda en efecutar el programa? SOLUCION Segtin la Figura 4.6, con una red R-C de 10 K y 220 pF se trabaja a 80 KHz, de donde: r r = 1580-109 12,5 ps = 4-Tose ~ 50 us Toocne = 4001 - 50 + 100 - 109 = 30.000 1s ~ 30 ms Oscilador tipo «HS» Se trata de un oseilador que alcanzat una alta velocidad comprendida entre 4 y 10 MIIz y esti. basado en un cristal de cuarzo 0 un resonador coramico. Oscilador tipo «XT» Es un oscilador de cristal o resonador para frecuencias estindar comprendidas entre 100 KITz y 4 Miz, Oscilador tipo «LP» Oscilador de bajo consumo coa cristal © resonador diselado para trabajar en un rango de frecuencias de 35 a 200 KHz. El.crislal de cuarzo o el resonador cerimico se coloca entre las patitas OSC] y OSC2 (Figura 3.7.) de aw Sz sur esa ee La ym Figura 3.7, Segiin ef tipo de osciluder y la frecuencia de inahajo se emplean diferemes valores en Jos condensadarey Cl y C2 que acompotian al cristal de cuarzo, Para jrecuencias ‘camprendidas enire 4 Mitz y 10 Mis, los condensadores tienen una capacidad de 15 pF 12 33 pE La resistencia KS s6lo es nevesaria en algunas versiones tipo HS. BI PRIMER CONTACTO CON EL PICIGNS4— 57 EJEMPLO Pera una apheacién en la que el coste es un factor preponderante y no le wfecta la precision del nempo, Zcusl seria ef oxcilador mis adecuado? SOLUCION El asetlador R-C. EE coste de una resistencia » un condensador ex minimo, aungue dejan bastante yue deserar fa precistén y la estahilided de ta frecuencia de trabajo. 3.4. REINICIALIZACION O RESET Cuando se aplica un nivel lézico bajo en fe patita MCLR¢ cl microcontrolador reinicializa sw estado, Dos acciones importantes se pioducen en la reinicializacién 0 Reset: L* El Contador de Progiama se carga con Ia direccién 0, apuntando la primera direccién de la memoria de programa en donde deberd estar sittsds la primera instruceidn de! programa de aplicaciba. a mayoria de los registres de estado y control del proceszdior toman un estado cona: ido y éeterminado, 2s Se puede ocasionar el Rese! de varins maneras, que estudiarenios EL cireuito ris simple para provacar un Reset manailmente al presionar un pulsador se muestra en la Pigura 3,8, 3.8, EL PRIMER CIRCUITO PRACTICO Con lo poco que sabemos ya se puede poner cn marcha ¢] PIC 16X84, Conocemes la funcién ée todas sus patitas, 13 de lus cuales se emplean para adapturse con los periféricos externas. De lax § putitas restantes, dos (Vpn y Vs) aplican ha tensién ée alimentacién, otras doy (OSC1 y OSC2) soportan el cristal «le eusrzo del reloj extemo y la que queda (MCLR4), ya se ha expuesto como hay que conectara para generar el Resct En Jos eireuitos donde se usa um PICI6X84 es muy habitual utilicar como tensién de al mentacion Ia de 5 V normalizaca y como circuitn de rloj externe uno del tipo XT a una PICIONSH Figura 3.8, Sencilla cincito que permite producir un Revel al presionar wy putsodor esterno, 58 MICROCONTROLADORES ePIC», DISENO PRACTICO DF. APLICACIONES freewencia de 4 MHz, Con esta configuracién, el conexionado tijo para cualquier aplicactén del FIC es el mosirade en la Figuca 3.9. Tas patitas que no se hallan conecladas en la Figura 3.9 son las dedicadas a transferir informacién con los periféricos que utlice la aplicacién, Para hacer operative dicho esquema ‘vamos @ coneetar algunos periféricos veneilles, que ne por es0 son los menos usades ns ricroKes iy ate acer ane — oP divest Figura 39, Conexionade fija del PICIOXS4 para cualyuier aplicacicn Como periférico de entrails utilizaremos un interruptor (IL) que se conecta a Ta linea RAL de la Pucria A. Como periférico de salida se colocari un diodo led (L3) en la linea RB3 de la Puerta B. Segtin el interruptor sc aba o se cierre introduciri un nivel légico allo o bajo. Cuando cesta abicrto aplica a la patita RA un nivel lagice alto a través de la resistencia de pull-up de 10 K. Sise cierra, al concelarse eon tiotra, introduce un nivel bajo. (Fi Aprovectando la coriente de salida dc las lineas de la Pucrta B, en tomo a los conectaremos directamente el diodo led L3 a la patita RB3, a través de una resistencia de absorcién de 330 1x aera +4 i Figura 3:10, Circuito de conexionado de un PICIOX84 en disposiciin de controlar un periferico de emirada ef interruptor I v ua periferico de sala, ef dodo fed Ls FL PRIMER CONTACIO CON FL PICI6X84 59 36, UNA SOLUCION AL DISERNO DE PROYECTOS: LA TARIETA DE PROTOTIPOS E) PIC precisa una eircuiteria auxitiar comin para cualguicr aplicacién, cambiando tinicamen- ‘eel concxionado de las lineas de R/S a los periféricos, Lxiste una forma muy eficaz de desa nollar el prototipo de un diseiio mediante una tarjeta de circuito impreso premontada y con tura zona libre para instalar y cablear lox periféricos. Una tarjeta de protetipes consta de dos zonas. En una xe ubica el zécalo que alojari al ‘micruconrolador con el programa ya grabado junto a la circuiteria comun (alimentacién, reloj y Reset) Ln la otra zona slo existe un area de agujeros perforados y estafiados sobre los que se concctan los periféricos y se unen facilmente can las lineas de E/S cue quedan accesibles Gn fa Figura 3.11 se muestra una tarjeta de prototipos para PIC de 18 patitas, disefiada por Microsystems Engineering, Una ventaja adivional de esta tarjeta es que ademis del zécalo donde se ubica el PIC, existe otro de 18 patitas, correspondicntes a tus del microcontrolador, que puede coneciarse por cable plano can un sistema de desarrollo 0 un grabador para que el PICLOX8X resida en el propio grabador y se pueda escribir y borrar el provrama hasia que quede definitivamente a punto, Llegado ese momento se quita el cable plano del grabadlor y se coloca el PIC grabado en el zécalo de la tarjeta de prototipes En Ta Figura 3,12 se muestra el exquema eléetrico de la cireuiteria que viene montada en la tarjeta de prototipos PICI8:MF.y que es la impreseindible para cl funcfonamiento del Fotograjia de la tarjeta do prototipos pare los PIC de la gama media de 18 patiias, diseriade por Microsystems Engineering. EL PRIMER CONTACTO CON EL MICIBXS 61 ‘microcontrolador. Li alimentacion es de 12 VAC procedente de un transformador extent y aplicada a través del conecior 32. El diody DI cectifica la corriente alterna y el eondemsador Cl actia como filtro, El rogulador de tensién U2, modelo UA78N5, junto con C2, proporcionan \a tension de trabajo estabilizada de ~ 5 V. Tambien es posible alimentar al eiteuito con una pila de OV, Las patitas de tas Puertas A y B det PIC colocuelo en cl 2bcalo de Ua tarjoia queilan aceesi- bes desée ef «conector de aplicacidn» por el que se unen con los periféricos alojados en la zona fibre. Dichas patitas tambien estén disponibles, junto a la linea de Reset MCLR#, en el eonector J1 FIC-BUS, capaz de concetarse coa el sistema de desarrollo Micro’PIC ‘Trainer con un cable pana de 26 hilos. Adlemis de las patitas de las lincas de B/S de tas Puertas, en cl eonector de aplicacié cnisten dos contacton para ta sefal de Reset, MCLRE, y para Ia sefal de salida del ascilador interno, CLKOUT. La tarjeta de prototipos PICI8-ME es una herramienta répica, compacta y segura para consteuir el prototipo de cualquier diseiw que utiliza un PIC de 18 patitas 62 MICROCONTROLADORES «PIC». DISFNO PRACTICO DE APLICACIONES: REARRANGE LILLE ENTE, PROGRAMAR PIC ES FACIL EL TERCER PROGRAMA CON DISENO HARDWARE Junto con un nuevo programa se intenta desirrollar la circuiteria clectiGnica asociada para proporcionar al lector una idea completa que aclare el interfaz del hardware con cl software. Tin cuanto a novedades sobre instrueciones slo vamos a emplear una desconocida y muy Péeil com fat: Complementa ef registra fuente f (cambia tos | par Oy viceversa) y el resultado to deposita en el destino d, Sid 0, el destino ex W, sid = 1, el destino ex ef registre fuente f EJEMPLO comf PUERTAA,0: Complemenia el contenida del registro "PUERTAAn y deposita of restlla- doen W. ENUNCIADO: MAS INTERRUPTORES Y DIODOS LE! Se dispone de cinco mterrupiores que actiian como perifericas de entrada y se conectan a las ‘cinco lineas de la Puerta d de un PICI 6X84 fiencionando a 4 MHz con oscitador externa tipo XT Como periféricos de salida actian cinco diodos fed rnidos a tus lineas RBU-RAS de le Puerta B. También se dispone de un puisador manual prara provocar el Reset. Diseitar ef esquema elccirénico de conesionado del PIC y conjeceionar un programa en lenguaje Ensamblador MPASM de Microchip. que explore ef estado de las intorruprores ) ‘gue ilumine ef led correspondieme al interruptor que se halle verrado. Fn la Figura 3,13 se ofrece el esquema electrinico del conexionado del PIC con la circui- teria auxiliar y con loz periféricos de entrada y salida. 'Al utilizar el programa Fnsamblador MPASM, se comienza indicando el tipe de PIC que se usd y e! sistema de numeracién hist pelece! ys usa #1 prcsees Hapa Sex 0G fe euples el esscema de punerdelée hexaderinas Con objeto de no emplear en cl programa las direcciones numéricas de los registros que uusan, se asigna a cada uno ce ellos una etiqucla identificativa que facilita la comprension del BL PRIMER CONTACTO CON RL PIIGXRA 63 PIcTexKa Figura 3.13. Esquema electronteo det conextonedo ul PICLOX84 de la circaiteria ausitiar comien y (os pervféricus de entrada y sotida de\ ejercicio. 110 rama. Hay registros que se hallan en los dos hancos de la memoria de datos, pero otros s6lo en uno, Hay que tener en cuenta que cuando se inicializa el program: procesador apunta autométicamente al banco 0 y si sc desea acceder al banco 1 es pr tras un Reset, el poner a | el bit 5 del rcgisiro Fstadlo, que se halla en la direceidn 3 de ambos bancos. La informacion que entra 0 sale por la Puera A se implementa en la direceién 5 del banco 0, mientras que en esa direecion, pro del banco 1, se halla el registro de configuracién de las lineas de B/S de la Puerta A. Usatemios Ia etiqueta «PUFRTAA» para ambos registros, pero aecederemos a cada uno segiin el bsmen que est8 activado en ese momento. Lo mismo haremos para los des registros de Ia Puerta dircceién 6, + ZONA DE RTIOURTAS. HO TO a pee eae PUBRTAR Zod 9x05 PURRTAR ROU uerado. cor “yf Sinobetsu'# Be Tox aoe , a los que denominarcinos «PUERTAB» y se ubican en la ‘iando rf destino es Wp a= > “Cuands el destino es el qegistro £, ¢e). la Puérta A (acou) ocuoa la iceveida S del bans Oy el Ia mising: atiqueta: nara <1 fegistto die fates y ul de eontigiewesén de la Puerta t Bl eegicere Sstadu octua Una vez asignadas las etiquetas a los registros y elementos que maneja el programa, se pasa a delimitar el mapa de la memoria del programa. Como sas realizarse ua Reset el PC apunta ls direcci6n 0 de la memoria de programa, en dicha posicién habri que situar la primera instruccidn. Al ear cclarse por primera vez el mi- 64 MICROCONTROLADOKES «IC», DISERO PRACTICO DE APLICACTONES crovonirolador & la slimentacién se produce un Reset. La direcetin 0 se destina 2l Vector de Reset y en ella se sittia lu primera instruceién del programa, SF PIC 16X84 admite intesrupciones, una de ellas al activarse la patita RROINT. Cuando sé produce una interrupeidn se guarda en la File cl contenido actual del PC (direecién de Feioino) ¥ el PC se carga con la direcci6n 4, que es 1a destinada al Vector de Interrupeién. En toe programa no se usain interrupciones y por tanto la direcctbn 4 de ta memoria de programa Se podria utilizar Iibremente, pero teniendo en cuenta que es muy frecuente cl uso de interrupcio- het, conviene que cl programa de aplicacién no invada dicha direecién y en conseeuencia Camience en la direccion 5. Pca iniciar el programa en la direecién del Reset 0 y al mismo tiempu situar la primera iastruccion en la direccin 5, xe coloca en Ia direccign 0 uns instrucesén de salto a la 5 de la siguiente forma: cong: 3 } BL programa comtensa en Le: y dixexchén O00 7} Waetor de reset! jgote inisto j gu salta a La etiauet ORGS. a-tinieio® ye aeigna la direccién 3 a te f eiguvente. inarruccién qué cont lene {la eriqueta inicie La primera instruccién ticne como etiqueta cinicio» y el Easumblador MPASM la situa cen la direccién 5, pravias a la dircetiva previa org 5. Para configurar las lineas de la Puerta A como entradas y las de In Pucrta B como salides hay que eargar el wpistro de configuracién de la Puerta A con unos y el de fa Pusrta B con ceros, Aunque la etiqueta que hace referencia al registro de datos y al de configuracion de 1a Puerta A es la misina «PUERTAAD, el azceso # uno u ofro se efectia segiin ci banco de la memoria de datos que se halle activo, Para acceder a los registros de eonfiguracion hay que poner a | el bit 5 del registro Estado. > Cuando un interrupior esté cerrado introduce un nivel bajo y como se desea que el diodo led correspondiente se enciencla, es necesario complementar dicho bit pare que les diedos, que se enicnden por nivel alto, respondan al enunciado del proyecto. Para esia operacién se utili- za la instruccién de complemento. {REGS War Gstaceys oy ene’ a 4 ol bie 5 de * ppeads. Accese s] bance 1. Se congigurar como” ulldne Less Teas de la Poerta B gl regixtre 9 ee cars eon: uior. 56 contianran cone entradas las Liseac de ta Possta & one 2 ¢.e1 bit 5 de uatada. oceon al bance. 9. etre puneran Pov Ott movwe HISRTAA bet RSTADO,S EL PRIMER CONTACTO CON EL PICIOAN 65 segiscrs ae. Uerea A eh & Soupleneuta a 05 Hates e058 pucria a y 2 deassite on ®, ML wostenide dew ge. Sdepssica an €) reqiptre Ge datos de de sRuerta Dy : > Ee qrea tn bucly cereada poe dette # Vin dol pregeay Si Yd. es capa de simular este preyrama con el simulaior SIMUPIC'S4 que ae incluye ‘con este Tbr euyo manejo se offece en un Apindice si, ademas, dispone de un sistema de desarrollo comu el Miero'PIC Trainer ds Microsystems Engineering ¢ ds un grabsclor de PIC para escribir este programa en uno de ells y finalmente, monta en una tarjeta de protot pos ol esqueria de la Figura 3.13 y al conectar el PIC grabado le funciona el ejercicio voree. tamente@igES UN MONSTRUGT® De todas formas, si Vd. no bace nada dc lo que le hemos eomentalo en el parzato anterior, Peto va entendiendo todo lo qus Te eontarnos, YA SABE. COMO FUNCIONAN LOS MICRO CONTROLADORES. Pero tenga en cuenta que hasta que no hag con sus propias manos vine aplicaciin y disefie un progiam y ponga todo ello en marcha, VO. NO Si: APROVECIIARA DE TODO LO QUE LE PULDEN DAR LOS Pic PROBANDO FI. PROGRAMA CON EL SIMUPIC’84 Una gran cualidad que posee el SIMUPIC'R4 es la de poder simular ef estado logico que se inuoxluce por las patitas y que actizn como Lineas de entrada. Se usa le ventane «VISION EXTERNA», gue muestra el comportamiemlo de las lineas de salidu ante los estimules exter- nos aplicados a las entradas. En esta ocasidn eonviene ejecutar el programa todo seguido y ny trazatlo instrucel instruceidn; do esta manera podieimos hacer uso de las welas Fl a P'S para introducir niveles ligicos por las patitas RAG a RAM del PIC que se simula. Cada ver. que se prulsa una de estas feclas el valor digital de Ie entrada correspondiente voltca, cs como si se accionase cl interrup- lor correspondiente. Durante lat ejecucién del programa las entradas RAG a RA4 se ponen de color verde, mien: tras las salidas (de RBO a RR7) adoptan un color rojo, Queda comprobar «ue cl valot de las salidas RBO a RB4 (donde realmente inn los leds) es siempre c} inverso del estado de las entradas RAO a RA, Cada ver que se pulsa una teela de funeién, el valor de la linea cortes- pondiente de la puerta B cambia, PROGRAMANDO EN C Ei listado que sc presenta a continuacién es una de las posibles soluciones, realizada para el compilidor PCM de la cass Custom Computer Services: 66 MICROCONTROLADORES «PIC», DISERO,PRACTICO DE APLICACIONES {4 TERCERO,C: Les 1 valor de cinco interruptores en 1e puerta A */ j* y saga por la puerta B el valor inverso $f Hdavico pictsend Hbyce | pucetaa = 05/4 Bosacidy de 1a poerta A */ dyes pucstue = 06 /* eonicin de la puerta B Ay void aln (oid) int seap? feretis et debe) /* Misti A coniiyurads pare entrada */ pet teieon( 0x00): {#4 PuekLa'S configureds pars. salida: 4/ ot fe al ve-{sble temporal ea naceooria porque */ Semp + -pueraay [a conplanentaci#n ea traduce ve aoe: pancritd pucktsp © cemag 2 y+ a) Cope de pueccua ea-Lonp */ ? 7# by Comphenentaciéy dx tenp */ y wkt Ios UBD pavpadeariun */ whblel 2 ys fs epetix infotervunpidasente "7 En el cucrpo del buele principal se aprecia otra de las desventajes del Ienguaje C: «no se conove cudl va a ser la traduccién a lenguaje maquina». Puede que hubiese side mis lgico hacer "puevtab - -pucrtaa". Sin embargo esto no da resultado porque los leds se cncienden y apagan constantemente (pruebe 2 simularlo). Sucede asi porque cl PCM traduce esa instruccidsa en el siguiente eddigo: By05 , 0 x06: One, 1 De forma que primemo se copia en W ef contenido de la puerta A, de aqui se mueve a la puerta B y luego se complements, Eso quiere decir que durante un ciclo de instruccién, la puerta A Valdzé lo mismo que la puerta By en el siguiente ciclo lo contrasio (al eomplementar- se). De aii el efecto de parpadeo y Ia conclusion de que sélo cl lenguaje easamblador nos da un control absoluto sobre la maquina, gSE ATREVE CON ESTE EJERCICIO? PRIMEROS PASOS CON EL MICRO’PIC TRAINER 4Se ha conformado con ver una simple simulacién en la pantalla de su ordenador? {No Te queda la duda de si cl montaje realmente funcionaria en condiciones reales? Es nor- TL PRIMER CONTACTO CON FL PICIEXS 67 rea dejar de ser mal, Por mucho que nos digan que una simulacién es fiel a la realidad nu solluare Vamos a comprobar que nuestro montaje funciona REALMENTE, con un PIC auténtien Para cso utlizaremos el Micro" PIC Trainer de Microsystems Engineering, que nos va a per mitit grabar un PIC 16X84 y ejecvtar el programa de control, Ademas dispone de todos los periféricos necesarios para nuestro montaje, con le que la eomprobacin va a ser realmente sencilla Tn el Apéndice C:se describe el esquuems y el funcionsmiento del Micro’ PIC Trainer ste un apéndiice al Final del Tibro en cl que se explica detalladamente el uso del Mi , - spiigiece un stan 3 ae Figura 3.19. Esquema tipice de conesionado de una pantalla LCD de dos Haeos le 16 caracteres cada una con las lineas de E/S de un PIC. EN EL INTERIOR 4 DEL PROCESADOR = RSS Cor eataareERETRIR ERR ER 4.1, UNA ARQUITECTURA MODERNA Y REVOLUCIONARIA. Para logear una compactacién de cédige dptima y una velocidad superior a fa de sus competi- dores los microcontroladores PIC incorporan en su prucesador tres de las earcteristicas mas avanzadas ea los yrandes computadores: + Procesador tine RISC + Procesador segmentacia + Aiquitectura HARVARD Con a incorporacivin de estos recursos los PIC on capaces de ejecutar en un ciclo de instruccién todas Ins instruceiones, excepto las de salte, que tardan cl doble. Una condivion imprescindiblees le simetia y onlogonalicad en el formate de fas instrucciones, que en el caso de los PIC de la gama media tienen una longitud de 14 bits, De esta firma se consigue una compaciacion en el cddigo del programa para un PICI6XR4 2.24 veces superior al de un 6SIICOS, funcionanda a ta misma frecuencia 1 juego de instruceiones se reduce 4 35 y sus modos de dlireecionago se han simplifteado al maximo. Con la estructura segmentad se pueden realizar simultincamente las dos fases en que se descompone cada instruccién. Al mismo tiempo que se esti desarrollando la Fase de ejecucidn de una instruceiéa se realiza la fase de biisqueda de la siguiente 4a arquiteéctura HARVARD #5 uno de los gilares en los que se susienta la niyanizacion de ios PIC. Gravias 9 ella se aUede acceder de forma simultinea ¢ indenerihnte a la momoria de alos ya {a memoria de insinucsiones Elaislamiento y diferenciacién de los dos tipos de memoria permite que cada uno tenga la lungitud y el tamafio mis adecuacos, De esta forma cn el PIC] 6C¥4 la longitud de los datos es de un byte, mientras que la de las instrucciones es de 14 bits. (Véase Figura 4.1.) B 74 MICROCONIROLADORTS «PIC», DISERD PRACTICU DE APLICACIONES MEMORIA of Datos ‘sus DF DATOS (MEMORIA DE INSTRUCCIONES INSTRUICCIONES Figures 4.1. La arquitectare HARVARD aista la memoria de datos y ta de instrucciones, permitiente aque la ioneinud de lus palabras de cacta ura sea la mis adecuada Ota caractetistica relevante de los PIC es el manejo intensive del Banco de Registros, Jos cuales participan de una manera muy activa en ta ejccucién de las instruccinnes, Como se muesira cn la Figura 4.2, la ALU efectiia sus operaciones légico-aritméticas con dox dopcrandas, uno que recibe desde el registio W (Work), quc hace las veces de «Acumulador» fen fos microprocesadores comvencionales, ¥ otra que puede provenir de cualquier registro 0 dicl propio cddigo de la instraccién. FI resultado de la aperacién puede almacenarse ea cualquier reyisito © en W, Psta funeionalided da un cardeter completamente ortoyonal a las Jnstrucciones que pueden utilizar cualquier registro como operande fuente y destino, La me- moria de datos RAM implementa en sus posiciones los registtos especiicos y los de proposito general ‘La arquitectura interna del PICI6C84 se presenta en la Figura 4.3 y consta de siete blo- ques fundamentales. BANCO DEREGISTROS INDMNECIO REGISTRO. INSTRU: BUS BLUATOS 9, Tue Te TSTADO. PORRTAD RO Reet GENERAL Figura 42. En ef exquomea ve muestra fos diferentes elementos que proporcionan fos operandos ila ALU. Ef resuttado se puede cargar en cuulyuier registro en W. ENEL INTERIOR DFT. PROCESADOR — 75 wotilhnn ccs Ce) saccaznon ree ioe al Revama aa “am, | Lo ee a, aad ie: ice ae oa ee a d.3. caguitectura inerna det PICIOCRE 12 Memoria de programa EEPTOM de | Kx 14 bits 2S Mamorie ce dots fomede por des sreas. Ure HAM donde Se alojan 22 registeos dé Prepdsito especifce (SFR) y 36 de proposito genvral (GPA), y otra ae) po EEPOM de 84 bytes. 51% GCamina de datos con una ALU de 8 hits y un registra de trabajo Wdel gue noonaimente recibe ui opeiendd ¥ envie at resultado, EF otro operandy pueda provenit del bus dé datos 0 vei propio cidigo ob ia WnstiuEKiOn (itera) 4 Diversos recursos vorsctattos al tus 09 dias, tales como Pusrias ue EntradavSalida, Temporizador TMAO, orc. 5° Biss de ‘einbos ¥ circuttos auxileres. 6° Direccionamienta de fa rnemorts de programa en bese al Contador de Programa igado 8 una Pla de 8 niveles de protuncided, ® ireccionade axecto ¢ indivecto de fs memena HAM. Para analizar de forma globill ct funcionamiento del procesador nos vamos a centrar en la ejecuciOn de una instruccién. ‘Todo comienza con la fase de biisqueda, que la inicia el Conta dor de Programa facilitando la direecidn de la memoria de instrucciones donde se ubiea, Su cédigo binario de 14 bits se lee y se carga en el Registro de Instrucciones, desde donde se 76 MICROCONTROLADORES «PIC», PISERO PRACTICO DE APLICACIONES transfiere al Decodificador y a la Unidad de Control. A veces, dentro del eédigo de Ia instruc- tian, existe el valor de ua eperando (literal) gue se introduce como eperando a la ALU. o bien tuna direccivn de la memoria de datos donde reside otto operando. La ALU es Ia cneargada de realizar la operacién légico-ariumética que impliea la instrac- cién decodificada, Uno de los operandos To recibe desde cl registro W y ef otro desde un registro o de fa propia insteuccién ‘Tanto ef banco de registros especificos, en el que cad uno tiene una mision concreta, como el de registros de propésito general residen en Ja RAM. La EEPROM de datos puede coniener datos que no sc dese perder al quitar la alimentacisn, pero su acceso esti controlado ‘con unos registros especiales. FEPICI6C8d tiene una zone de memoria de datos toe AM y otra tino EEPROM, La orimere tiene una cepaciead de 72 reyistios Ge propésila especial (SFH) y 36 de proposiio weneral IGPRI, todas alloy de tama byte, La segunda dispone do una capacitiad de 64 bytes. Las operaciones de B/S con los periféricos las soportan las Puertas A y B, Exisie un Tem porizador, TMRO, para enceryarse de las funeiones de conirol de tiempos. Finalmente, hay Tinos cireuites ausiliares que dotan al procesador de unas interesantes posibilidades de seyuri- dad, reduecion del consumo y reinieializeciin 4A.1. Diferencias dela arquitectura del PICI6C84 con la de sus variuntes Ja arquitectura del PICL6C84 se mantiene para todos los modelos que se derivan de ella con La ntes diferencias: PICIGES4: La memoria de programa es de LK x 14 bits, pero de tipo Flash, datos RAM tiene 68 rogistros de tamaiio byte de propésito general, en lugar de 36. a memoria de PICIGCRRA: [1 memoria de prugrama es de 1K x 14 bits Ope ROM y Ie de datos tiene iguales earaeteristices que el PICT6FR4 PICI6F83: La memoria de progiama es de 512 palabras de 14 bits y la RAM de datos tiene 36 bytes de registios de proposito general PICI6CRAB: [gual que ol PICISES3, pero la memoria de insirucciones es de tipo ROM, 0 sca, s6lo grabable en fibrica y utilizada en grandes series. BJEMPLO Indicar las diferencias entre ef PICL6CS4 y el PICIGF84 en cuanto a su estructura interna. SOLUCION 1° La memoria de programa tiene une capacidad de 1K x 14 bits en ambos modelos, pero len ef PICIBCSA es dle tipo EEPROM y en el otro es Flash. 2" La diferencia on la memoria de datos sélo afecta a ta zona de registros de propisito generat de tipo RAM, que en ef PICI6CS4 consta de 36 hytes yen el PICI6FSA de 68 bytes EN ELINTERIOR DEL PROCFSADOR 77 4.2. MEMORIA DE PROGRAMA Ts arquitectura de fos PIC de la gama media admite um mapa de memoria de programa capaz de contener 8,192 instucciones de 14 bits eada una. Este mapa se divide en puiginas de 2.048 posiciones. Para direccionar 8 K posiciones se necesitan 13 bits, que es la longitud que tiene cl Contador de Programa. Sin embargo, el PICISC84 s6lo ticne implementadas | K posiciones, por To que ignora los 3 bits de mas peso del PC, En la gama media, la verdadera aportacidn del PIC 1 6C84 es la utilizacién de una memoria «lcprograma del tipo EEPROM, capaz. de ser escrita y barrada eléctricamente. Lo mismo sucede oa el PICIOFR4, cuya memoria de instrucciones es de tpo Flash 4.2.1, El Contador de Programa y la Pila Tal como se presenta en la Figura 4.4, el rango de direcciones que cubre el PICL6X84 en su memoria de programa flega desc la 0000 H a la O3EF II, 0 sea, un total de 1.024 posiciones MEMORIA DE PROGRAMA uo woos HP VICTOR INTERRUPCION. 1K ErROM ure on 7 7 Figura 44. 41 tener implementado séle 1 K posiciones la memoria de programa del PICIOX84, se ‘gnoran ley 5 bits de mis peso del PC: La direction 0000 H este reservada para el vector dde Reset y la 0004 H para el vector dle laterrapcian. JR MICROCONTROLADORES «PICs, DISPRO PRACTICO DE APLICACIONTS En cl PC se ignoran 10s 3 bits de mis peso, de forma que apuntar a la direccién 33 IT es to mismo que hacerlo a la 433 H, 853 H, C33 M, 1033 H, 1433 H oa fa 1033 H. Los PICIGX@A4 tienen. 1K palabras do 14 bits en la memoria de programe y aunque al. PC tdisponie de-13 bits, en el diteccionarriento de la misma solo emplen fax 10 Ge menos peso, ‘Al igual que todos los registos especificos que controlan Is actividad del procesador, cl Con- ador de Programa esti implementado sobre un par de posiciones de la memoria RAM, Cuando se escribe el Contador de Programa como resultado de una operacién de 1a ALU, los & bits de ‘menos peso de! PC residen en el registro PCL, que ocupa, repetido, li posicidn 2 de les dos ban cosde la memoria de datos. Los bits demas peso, PC 12 :8>, residen en los 5 bits de menos peso del registro PCLATH, que ocupa Ia posicién OA H de los dos bancos de la memoria RAM. Ln las instruceiones GOTO y CALL de Ia gama media los 11 bits de menos peso del PC provienen del cédigo de la instraccidn y les otros dos de los hits PCLATH <4 :3>, (Véase Figura 4.5.) Com los 11 bits que se caryan cn el PC desde el codigo de las instrucciones GOTO y CALL, se puede direecionar una pagina de 2 K de lt memoria, Los bits restantes PC<12 :11> tienen la misién de apuntar una de lac 4 piginas del mapa de memoria yen los medelos de PIC que aleanzan ese lamaio, dichos bits proceden de PCLATH=4 :3>. ‘La Pila es una zona asladla dle las memorias dc instrucciones y datos, Tiene una estructura LIFO, en la que el tltimo valor guardado es el primero que sale. Tiene 8 niveles de profundi- dad cada uno con 13 bits. Funciona como un «buffer» circular, de manera que el valor que se obtiene al realizar el noveno adesempilackny (pap) es igual al que se obtuvo en el primero. La instruccin CALL. y las intercupciones originan la carga del contenido del PC en el nivel superior v «cima» de la Pila. El contenido del nivel superior se saca de Ia Pila al ejecutar las instrucciones RETURN, RETLW y RETFIB, Fl contenido del registro PCLATH no es afectad por la entrada o salida de informacion de 1a Pita Los PIC ho sisponent de instnicoiones especiticas push y pop| pare manelar diisckarmente la Fig, Tampoto 8¢ dispone ds ningun sevalizador gue indiqué cusndo se produce ¢) rebosa- imisnte da lds 8 vivelas de Ie Fila 4.3. MEMORIA DE DATOS RAM La memoria de datos del PICI6C84 dispone de des zonas diferentes: 1? Area de RAM estatica 0 SRAM, donde reside e! Banco de Registros Especiticos (SER) ¥ al Banco de Registros de Propésito General (GPR). Fl primer banco tiene 24 posiciones de tamaio hyte, aungue dos de ellas no son operativas, y el segundo 36. 2." Avea EEPROM de 64 byles donde, opcionalmente, se pucelen almacenar datos que no se pierden al desconeeiar la alimentacién, La zona de memoria RAM se halla dividida en dos bancos (banco 0 y bance 1) de 128 bytes cada uno, Lin el PICI6C84 sélo se hallan implementadas fisicamente fas 48 primeres EN EL INTERIOR DPI PROCESADOR 79 + 4) 4g pe, ene esuLTADO. DELAALU PCLATH satit> besocen PCLATH. Figura 4.5. En la figura superior se muestra cémo se carga vl PC cuande una instruceiin deposita en et el resultudo que se obriene de la ALU. Abajo se indica ta carga del PC en las insirucctones GOTO y CALL, posiviones de cada banco, de las cuales las 12 primeras estin reservadas a los Registeox de Propdsito Especifico (SPR), que son los encargados del control del procesador y sus recursos, Algunas de dichos registros se hallan repetidos en ta misma diteccidn de Tos dos bancos, ra simplifi ‘© (IND, ESTADO, FSR, PCLATH € INTCON). La posicion apuntada por Ia dire y la apuntach por Ia 87 H no son operativas, Los 36 reuisiros restantes de vaca banco se destinan a Registros de Propésito General y en rcalidad slo son operaiivas los 36 del banco 0 porque los del bunco I se mapean sobre cl banco 0, es decir, cuando se apuntaa un registro general del banco 1, se accede al mismo del baco 0. (Véase Figura 4.6.) Para seleccionar el baneo a xeceder hay que manipular cl bit 5 (RPO) del registro ESTADO. Si RPO = 1 se accede al banco 1 y si RPO =0 se accede al banco 0. Tras un Resel se accede 80 MICROCONTROLADORES «PIC». PISUSO PRACTICO DF APLICACIONES \cHOMADEDATOS aa a o 03 & P PROPOSITO. EN EL GENERAL BANCOO : : TANCOO BANCO T La memoria RAM de datos te divide en dos bancos de 128 bytes cada uno, aunque sélo los 48 primevos de cada baneo estin implemeniados en of PICI6CS4. Las 12 primeras posiciones de cada hanco se reservan a los Regisiros de Propésiva Especial (SFR) y las 36 restantes a los de Propdsito General (GPR). ENELINTERIOR DEL PROCESABOR — BL automiticamente al banco 0, Fara seleccionar un registro de propyisitn general no hay que tener en cuenta el estado del bit RPO, porque al estar mapeade el banco 1 sobre-el bance 0, cual- auier direccionamiento de un registo del banco | corresponde al honisloge del banco 0. En eldireccionamiento circeio a los registres GPK se ignura cl bit de mas peso, que iden tifica el baneo y sus dirceciones estan comprendidas entre el valor Oxte y Ox?f en hexade- cimal Los registros SFR se clasifican en dos grupos. Fn uno se ineluyen aquellos que controlan el nivlew del microcontrolador (FSTADO, OPTION, INTCON, ete.) y en el otro les que ructerizan la operatividail de los recursos ausiliases y periféricos, La Figura 4.7 presenta la estructura de estos registros y los valores que toman despues de un Reset, Ll PICIGES3 y el PICI6CRS3 tienen ung memoria RAM. con ta misma organizacién que el PICICRS. 43. 16CR84 Memoria de datos RAM en el PICL6F84 y el Pl Estos dos modelos disponen como peculiaridad los 68 registros de proposito general que ocu: Pat las direceiones comprendidas entre la Oxe y la Oxf en hexaciceimall. (Véase Figura 4.8.) Figura 4.7. Especificaciones de los registras SFR de los hancov do la memoria dle dittos RAM. Let abreviatura s significa desconorido; u- no cambin:-: no implomontado. se lee coma 0. ¥ a valor que deponde de la condicién SS 82. MICROCORTROLADURES «PIC», DISENO PRACTICO DE APLICACIONES MMI MORIA DE DALOS, @ kraispaos PRaPastio 'SESERAL japrApos a Genco wANEDT Figura 48, Organicavion necrma dela memoria de dates BAM en ef PICTOPSA y ef PICIBCRS4 re EN LL INTERIOR DEL PROCHSANOR — 83 4.3.2, Direccionamiento de la memoria de datos En los PIC de la gama media Ia memoria de datos esti organizada para alojar un maximo de 4 bancos de 128 bytes cada uno. Fl PICI6C84 sélo tiene implementados los 48 primerox bytes de los bancos 0)y |. Fir cl resto de los PIC de ests familia se destinan dos bits dol registro ESTADO (RPO y RPI) para determinar el binco y otros siete para cleyir una ee las 128 pusi= ciones del banco seleccionado, (Figuta 4.9.) rsta001 ———> rn Las nts DIRICCICMLL¥T BANCO Banoo Figura 4.9, tos P10 de ta gama medin uenen organizada la memoria de datos on 4 bancos de 128 posiciones cada uno. La zona sombreada no se halla implementada en et PICI6C84 E] operande que utiliza Te instruceién en curso se referencia mediante su direecién, que viene incluida en el codigo UP de fa misma, coneretamente en los 7 bits de menos peso. EL ban na acceder lo determinan los bits RPO y RPI del revistro ESTADO. Ea el cxso del PIC16C84 silo se usa el bit RPO al tener implementados tinicamente dos hunces, (Véise Figura 4.10.) Direccianamiento Indirecto Este modo de direccionado se usu cuando en una instrucciin se utilize como operanda el re« gistro INDF, que ecupa Ia direccién 0 de ambos bancos. En realidad el registra INDI no esta implementade fisicamente y cuanta se le hace referencia, se acecde «le direecion de un hanco especificada con los 7 ils de menos peso del registro FSR. El bit de mis pese dle FSR junto al bit IRP del registro LSTADO se cncargan de seleccionar el benco a acceder, mientras que lox 7 bits de menos peso apuntan a Ia posieioa. Como sila hay dos bancos en el PICI6C84 en este modo de direecionamiento, el bit IRP = 0 siempre. (Véase Figura 4.11.) 84 MICROCONTROLADORES «PIC», DISENO PRACTICO DT: APLICACIONES ESTADO CODIGO OF INSTRLCCION so marufanago Figura 4.10, Direceionamiento directo en of PCICCS4, LIEMPLO Usundo el modo de direceionado indirecta poner a 0 las pesiciones de fa memoria de ares comprendidas entre ta divecciin Ose y 0x2? del banco en un PICIGCE4 SOLUCION Enelmodu dedireecionado indireeto actia coma puniero el conrentdo del registro PSR, que en : leste efercicia se ird incrementando desde Ox0e hasta el valor 0x28 H, en ef que su bit 3 pasa @ valer 1 SsfurccioN. BANCO sFuece1on DIRECCION Figura 4.11. Seleceién det hance y la posicion en et modo de direcctonamenca iadirecta, Coma el PICTOCH4 slo ene dos ances, IRP ~ 0 siempre EN EL INTERIOR DEL PROCESADOR 8S del punters 44, EL REGISTRO DE ESTADO Hasta ahora ESTADO es el registro mas usado y es cl momento de describirle en su totalidad Ocupa ta direccion 3 tanto del bnanen 0 como del banco | de la memoria de datos RAM, Sus bits tienen tres misiones distintas . 1) Be encargan de avisar las incidenoiae del ‘ecultado de la ALU (C, DC y Z), 2° Iedican et eslado de Rasat (TOF y PDH! 3° Saleccionan ef hango 3 ueceder en la imersora da vatas IRR APO y API) En la Figura 4.12 se muestra ef diagrama de distribucién de los bits del registry ESTADO. Tos bits ‘TO y PD# indican el estado del procesador en algummis condiciones y no se pue- den escribir. Por este motivo la instruccién clry ESTADO dja el contenido de dicho regisiro on el valor O96 wu, siends w el simbolo de «no cambia». Solo se ponen a 0 los tres bits de iis peso, el bit 7 (cera) se pone a | y los restantes no alteran su val A continuacién se describe la misiin de los bits del registro FSTADO. C: Acarrea/llevada en el bi€ de més peso. 1 Cuando este sefializador vale 1 indica que se ha producido acarreo en el bit dle mis peso Gel resultado al ejeoular las instrucciones adduf y ackdla 0: No se ha producide scarreo, € también actia come seializador de «llevada» en el easo de la instruccién de cesta, como chief y sublwv Un este caso la eorrespondencia es inversa {si vale 1 no hay Hevada y si vale 0 si), De: carreojtlevada en el 4.” bit Igual significedo que C pero refiriéndose al 4,° bit, De interés en operaciones ea BCD, 2 ESTADO ; WARM RW OR OR RNP RAW WW Figura 4.12. Evtruciura interna del reyistro ESTADO. Los bits 3.) 4 s6lo se pueden leer mientras las demas tambien se pucden eseribir 86 MICROCONTROLADORES «PCs, DISERO PRACTICO DP APLICACIONES 2: Cero 1: EJ resultado de una instruceién logico-aritmética ha sido 0. (El resultado de una instruccién logica-aritmética no ha sido (0. PP: «Power Down» 1: Se pone autométicamente a 1 después de la conexidn de la alimentacién al microcontrola- dor o al gjecutar Ia instruccidn clrwde 0: Se pone automsticamente 0 mediante In gjecucién de Ia instruccién Jeep TO#: «Time Oub> 1; Se pone a 1 despues de fa conexici culasse lag instrucciones chwdt y sleep. (: Se pone a D cuando se produce el desbordamiento del Pero Guardian (iHatchdog). dle Ta alimentaci6n o al ej RPL - RPO: clecciim de baneo en direccionamiento direct Como el PICI6X84 sélo tiene dos hancos iinicamente emplea el bit RPO, de forma que ‘cuando vale 1 se accede al hanco 1 y cuando vale 0 se accede al banco 0, Después de un Reset RPO = 0, IRP: Seleceién del banco en direccionamiento indirect Este bit junto con el de mas peso del regisiro PSR sirven para determinar el bance de la memo. tia de datos seleccionado, En ¢l PICL6X84 al disponer de dos bancos no se usa este bit y debe programacse como 0. ENELINTERIOR DEI PROCESADOR 87 PROGRAMAR PIC ES FACIL EL CUARTO PROGRAMA: CONTANDO Y VISUALIZANDO En este programa vamos a utilizar un tipo de instrucciones muy eficaces que se basan en un salto condicional. Se trata de un salto un poco especial, solo salts una insiruceiéin, la siguiente ala det salto, Nosotros le lamamos abrineo» (skip). Ia instruceién bifis ESTADO, explora el bit 4 del registro ESTADO y si vale | produce «brinco» (salta la siguiente instrucci6n). Si vale 0 se cjecuta la siguiente instrucci6n normal: mente BJEMPLO Dudu el siguiente programa, indicar qué instruccion se efecuia detras de ta primera en ei caso que ef bit 4 del registro ESTADO vatya 1. cro essAvO ejecula evte Se ejecuta esta in bites gate SOLUCION Se ejecuta i instruccion goto VALE_| Dada su sencillez operativa se citan a continuacién otias instruceiones que ussremos en este ajercicio La instruccién citf REGISTRO borva © pone a 0 el contenido de REGISTRO. La instrve- ibn inef REGISTRO incrementa en una unided el contenido de REGISTRO. Su opuesta decy, REGISTRO, dectementa en una unidad el contenido de REGISTRO. Finalmente, existen dos instrucciones similares a addlw y addw. pero referidas a la esta, y son: shh y subvef ENENCIADO Se desea confeccionar un programa para ef PICI6C8S fimcionande a 4 MHz, que comionce proniendo a cero el contador CONTA. Después se ineremenia de unidad en unidad hasta aleanciar el valor xsl" h, momento en el que ve detiene en un bucte infinito no operative. El valor del contador en binario se viswaticard con 8 diodos led conectados a fas lineas de fa Puerta B. Se pide. B8 — MICKOCONTROTADORES «PIC, DISERO PRACTICO DE APLICACIONES 1° Esquema del civeuito electrdnicn. (Figura 4.13.) 2" Organigrama, (Figura 4.14.) 3. Programa eu lenguaje Ensamblador MPASM. PICLOC8S Figura 4.13. Esuuema de la circuiteria usitter que radea al PICIOCS4 que visualtea el valor det eontador en Jos 8 diodes led conectados a la Pueria B. Vigura 4.14. Organignama PROGRAMA EN ENSAMBLADOR EN EL INTERIOR DEI PROCESADOR 89 ‘CUARTO.ASM ise Beteens PADTY Re: we Fo txou + Camtense del wampo de 7 eriguetys ® 2QU 0 Scoxes PURRTAS. sou 0x08 ESTANG: Eu ‘oxo7 Eonia roy Boe ong a } BL promzana comiensa en 1a gata Lnieto. pSlaeecion Oy anita a 1a: ORG: 5 ireceién 4 para soprepasar; f Slo vector de incerrupe! és soiete lus FSYAbU,5 5 Salece!G> del bance | mavle oxa0 y Se contigura Puerts & mhownt BURRTAR somo galida Ss BSYAUO,$ 7 /Seladcida del bance 4 ln coxa. buctel dace goutnF + CONTA nave COU 56 carga en Ww nowt PUERTAB /} We be carga en Al : ade detos PB eR ecgE PCLITA ow SBTAGU,2 5 Lypiora 2 ¥ gi vale 1 ee f produce ‘be ince* buclel PELE = G sa vuelve bustet Tuclez gota buesed 84 dos 1 ve produce um } bugle anfinizo ed PROBANDO CON EL SIMUPIC’S4 Tal y como se ha hecho en los eapitulos anteriores, editaremos. ensamblaremos y curgaremos en memoria el progeama CUARTO ASM. Si nos fijamos en el enunciads del ejercicio, nos damos cuenta de que en él se especifica la frecuencia de reloj a ka que debe funcionar cl PIC ‘aso 4 Miz, Para cambiar la frecuencia de reloj de la simulacion con el Simupie"84 se acude a la opcidn quinta, «Opciones de Simulacion», «Pardmetros de Simulacion» ¥ una ver 90 MICROCONTROT ADORIS «PICs, DISERO PRACTICO DE APLICACIONES alli se introduce la frecuencia deseada en KHz, Por MHz indicaremos 4000 KH, Una vez configurada Ia velocidad de relaj, se ejeeula el programa mediante la opci6n 6, fijandonos como efectivamente los valores de le PB representadas en Ta ventana de visién ealerna ae incrementan de uno en uno hasta aleanzar el valor OxSf. El programa de ex Io termina en un bucle infinito, pero el leetor se dard cuenta de «que si deja el programa en ejecucién durante el tiempo suticiente, éste volverd a su comienzo, sto se debe al Watchdog, o «Perro Guardiim, que es un temporizador incorporado en el FIC que se enearga de provocar un Reset eada cierto tiempo. Esta temporizacion cs configurable, dosde un minimo de 8 ms a un maximo de 2,3 segundos. Fn particular en el Simpic"84 cl timer del WDT se inicializa por defeeto a 2,3 segundos. Pues bien, para evilar problemas, volveremos a at ventana de «Parametros de Simulaciinm y pondremos «N» en el campo Watchdog SIN, con lo que desactivaremos el Watchdog 0 Perro Guardian. nto, si deseamos una frecuencia de + LO MONTAMOS Y NO FUNCIONA. el lector, tal y como le aconsejamos, se ha atrevico a montar el diseho propuest en este capitulo, es probable que sv haya Ilevado una decepcién al observar que en su montaje el valor indicaclo por los leds no se increment de uno en uno sino que llega su valor maximo (Ox5F) al instante. Esto ex dchido a que el tiempo en que se produce el incremento del contador y la visualizacién del nucyo valor cs tan pequetio que no s¢ puede distinguir w simple vista, Eo particular buclef consta de 7 instrucciones, con una de salto, con lo que tardard en ejecutarse 8 ciclos de instruccién que suponen 8 jis, ya que a4 MIlz el ciclo de instrucciGn es de 1 Us. PONIENDOLO A PUNTO Para apreciar cl incremento del contador bay que incluir en el programa un retardo entre ect cambio de valor. A pesar de que csle retardo se podria realizar mediante la utilizacion del tempo-~ Fzador interno del PIC, hemes preferido no utilizarlo para fecilitar la comprensién del programa, Como siempre animamos al lector a que se atreva.a tealizarpor si mismo el programa, pero de todas formas, para comprobar su solucién osi tiene algiin problema, en el disquete que aeompatia el libro se ettcuentra bajo cl nombre de CUARTO2.ASM el programa que incorpora el retardo, Bajo cl nombre CUARTO2A.ASM, encontrard un programa que consigue un retardo mu- che mayor, pero anidhndo 2 bucles. ‘Tambign seria interesante preocuparse dle grabar el PIC con la opeién de WatchDog Timer desactivada, pues de lo contrario se producird el fenémeno comentado en el apartado del Si “84, aunque légicaments « mucha mayor velocidad. is decir, el contador se tara y cada 2,3 scgundos, que es el valor maximo de WDT y el que tiene por defecto, se pravocara un Reset y el programa volverd a su comienzo. PROGRAMAMOS EN © Se muestra la versidn en lenguaje C del ejercicio propuesto en este capitulo. Se ha usade el compilador de C PCM de la empresa Custom Computer Services. EN EL INTERIOR DEL PROCESADOR 91 ste es otra claro ejemplo de cémo simplifica la programacién el uso de un lenguaje de nivel. Aunque la eficiencia del cédiyo obtenido es mucho mayor programande dimceta- vente en ensamblitor alto LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, 2 PUERTAS DE E/S Y EEPROM DE DATOS 5.1. BL PAPEL DE LOS TEMPORIZADORES Los PIC disnonen de un procesador rapido y potente. En él se incluye 1a memoria de progra- ma, Ia de datos, la ALU, la Unidad de Control y alguns registros especiales. $1 dentre de un microcontrolalor tinicamente exisiiese un procesalor s6lo se pourian ejecutar instiueciones Jogico-aritmétices y de transferencia. Pero un microcontiolador es mucho mids que Un proc. sador, es wn «computador integral», en el que ademas del procesador hay puertas de FS para coneetarse con peritérieus, eanales de comunicacién, temporizadores para controlar tiempos, sistema de interrupeiones capaz. de detcctar anomialias o sucesos especiales, sistemas de ney Fidad. modo de funcionamicate con bajo consumo y un Jatgo etectera de recursos que configu rin la poteneia integral de un computador Los FIG conten todas ios recureos pesibles, aunque su fabigsvs no ee inciuye on tars 103 modelos, sino que los alterna para podarse ajustar dolimamante a los necesicades de cada diseno, Los PICIéX8X conticnen pocos recursos en comparseion a olros familiares, pero poseen los suficiemes para resolver gran paste tle las aplicaciones tpicas de los miemncontroladores. So. bre todo disponen de una memoria de programa tipo EEPROM (PIC16CR4) o Flash [PICI6I'8X), que les posibilita regrabar el progrutra hasta su total puesta a punto. En este capitulo se deserihen los recussos mis importantes de los PICLOX8X, que son: — Teinponzador/ Contador TMAD — Prive Guardin ( = 17 goto. explora No ha 1legado THRO a 16,0 return 1 Ha llegado TMRO al valor 16. :y vetorna al programa principal END, OPTION TPT Ts LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 111 ERROR DE ENSAMBLADO! Este programa da un error al ser ensamblado... ;Por qué? Para hallar una respuesta a esta pregunta debemos recordar una de las caracteristicas mas conflictivas de los PIC: el empleo de varios baneos de memoria, A la hora de etiquetar direcciones de memoria hemos asignado a una direccién de memoria dos etiquetas. En realidad son dos direcciones diferentes, porque tstin en bancos distintos que nada tienen que ver Ia una con la otra, pero eso es algo que el ensamblador no sabe, OPTION — QU. Ox01 THRO FQU Ox0L {Cémo podriamos solucionar esto? En principio podriamos etiquetar OPTION como x81, yaque esta en el banco I y ésta es la direccién que le corresponderia si los bancos siguieran un orden de numeracién absoluto. El caso es que esto tampoco funciona. Se suelen utilizar dos «trucos» para evitar este inconveniente. Fl primero es etiquetar OPTION como Ox81, pero cada vez que hagamos referencia a esta direccién usamos la etique- OPTION’SIH. Esto evita que el ensamblador dé error y hace que el programa se ensamble correctamente. La otra solucién, menos engorrosa, es la de utilizar etiquetas compartidas, esto es, una tnica etiqueta que se refiera a varias direcciones. Existen varias formas de hacer esto; nosotros «empleamos: TMRO_OPT EQU ox01 De esta manera sabremos que la parte de la etiqueta a la izquierda del subrayado se refiere 8 la posicién de memoria 0x01 del banco 0, mientras que la parte derecha se refiere a la misma direecién, pero del banco siguiente El programa, utilizando etiquetas compartidas, quedaria del siguiente modo: , QUINTO.ASM if List cad i RADIX = HEX Bou Dx06 #QU 0x03 Bol | ox01 CH } Tmieio del programa en direccién 0 BSTADO,5 j Banco 1 41010110" ; Valor a cargar en OPTION 112 MICROCONTROLADORES «PICs. DISTRO PRACTICO DE APLICACIONES, jovek amo ben sorte out “poner Fa purse Seat taa fonnpa,5. | ¢ Samco 4 poutine lw 1 fnean ae salads de PR 2.0 “gara SIpoiktss,7 0; Ereteude el ted x7 o 1 qecads j oanads @ aubeatsna de RETARDO SUERTAR. Cf Agius el Led. XKT = 0 = resasto : eres votavdo: alc © imuo Ger’ | 4 AMRD 2 WY onpiexa ou increnento aeoicra HECSH | TNRD_OPT. 4 UsHOeE = 1 ote! aeginea' |p No hat Liegoda wala 9 16,5) eee 0 EHa Vagace WRU al valor obey : 2 kecoeas a] programe pringipes PROBANDO CON EL SIMUPIC’S4 A Hahora de simular un programa con temporizaciones siempre es importante tener en cuenta aque Ja simulacién no se vu a hacer en etieanpo realy, Siempre serd més Tonta. May que tener esto prescmis e incluso considerar reducir proporcicnalments las tempotizaciones para que I simulacidn «no nos desesperen. Fin este caso no hace falta que reduzeamas el periodlo de 8,2 rms, porque el simulador aos de uno respuesta en um tiempo ceptable Para seber cusinte siempo de simulacion ha transeurrido (tiempo simulado, no tiempo real, que es mayor) utilizamos la ventana de contadores, pono antes deberemos ajustar la velocidad del teloj, ya que cl emo Inunscurrido se calcula en base a este dato, Este parimeina se eam hia desde el meni de «opciones de simulacin», y viene dado en KHz. De modo que cargare- 06 el programa ial y como ya sabemos y ajustaremos la velocidad 1000 KHz. (1 M12) Higura s.18. ayusiando la velocidad de le sieatacion. rT LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 113 PROGRAMANDO EN C Se ofrece el mismo programa con el compilador PCM. {7 quint0.c: Programa que hace parpadear un lea */ (7 en RBT cada 8,2 ma ” Hinclnde obt02 _ Cuando ocuire cualquiera de los 4 suvesos indioséos se origina una peticién de iniermp- cepia y se atiende comienza depositzndo cl valor Gel PC actual en la Pila, Oy cargando en el PC el valor 0004 HL, que es el Vector de Intcrrupeion dome se dexvia el Hujo de control Cada fuente de interrupcién dispone de un sefalizador 0 «flagy, que es un bit que se pone aulomiticamente a 1 cuando se produce. Ademés catka fuente de intetrupeidn tiene otro bit de permiso, que sezin su valor permite o prohibe la realizacion de dicha interrupeién. 6.2.1, El Registro de Control de Interrupeiones INTCON Ta mayer parte de los sefializadores y bits de permixn de las fuentes de interrupeién en tos PICL6X8X estin implementados sobre los bits del registro INTCON, que ocupa la direceion OB H del banco 0, halléndose duplicado cn c] banco I. (Véase Figura 6.2.) cn Permis Global de Interrupeiones iduales tam- L: Permite Ia ejecucign de twdas las interrupciones, cuyos bits de permiso indi bién las permitan. 0; Prohibe todas las interrupeiones, INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 119 PC = 0008 (VECTOR De INTERRUPCION) RUTINA De SERVICIO DE INTERRUPCIONES (RSI) 'SEALMACENAN LOS JREGISTROS A MODIFICAR] E DETERVINA TA CASA] DELA INTERRUPCION SALTO ALA RUTINADE SERVICIO CORRESPONDIENTE. SSE RESTAURAN LOS VALORES DE REGISTROS ALMACENADOS ‘SE HORRA EL SENALIZADOR DELAINTERRUPCION RETORNO (RETHIEY PC PLA, GIE = SEBORRAED SENALIZADOR DE LA INTERRUPCION, Figura 6.1. Onganigrama de tas operaciones principales de una interrupcién en los PICISXSX. EL selalizador de la fuente de inverrupeién hay que borrarlo antes del retorno para que no se repita la misma interrupcian, 120 MICROCONTROLADORES «PICs. DISTRO {CTICO DE APLICACIONES Figura 62, Discrh cid de los bits del registra de Control de las Insenmupeiones en tos PICIOXNK. ESE: Permiso de Interrapeién por fix de ta escritera en ta EEPROM L: Pernite se origine una interrupeién cuando termina la eseritura de la FEPROM de datos. 0. Prohibe que se produzca esta interrupeién TOIR: Permiso de nterrupciin por sobrepasamienta del THRO I: Permite una interrupeiéa al desbocdarse el I MRO, (0; Prohibe esta interrupeién, INTE: Permiso de Interrupetia por activacion de ta patita RBOANT 1: Permite fa iaterrupcidn al activarse RBOANT ©; Prohibe esta interrupeisn. RULIE: Permisn de interrapetn por cambio de estado en RB7:RB4 1; Permite esta intcerupcion. 0: Prohibe esta interrupeié. TULF: Sefializador de sobrepasamiemo det TMRO I: Se pone a | cuando ha acumride el sobrepasimiento, 0: Indica que el TMRO to se ha deshordade. INTE: Seftatizador de activacién de ta patita RBOANT 1: Se pone a 1 al activarse RBOMINT. ): Indica que RRO/INT aun a0 se ha uetivado. RBIF: Seitalizador de cambio de estado en las patitas RB7:RBS 1. Pasa a 1 cuande cambia of cxtade de alguns de estas 4 liness. 0. No ha cambiado el estado de RET: RBA Cuando GIE = 0 no se acenta nruura de 138 Interiipeones. Si GIE = 1 slo se vceptan ‘aquelias fusrits de interruneign cuyo int de earraize Se Io consist Siempre que se produzca uns interrupeién por cualquier causa, GIL = Oy el PC se carga ceo el valor 0004 H, que es el Vector de Interrupeién, Para conocer quit ¢ausa ha provocado la interrupeidn se exploran los sehalizaclores, tes de los cuales se ubican en el registo INTCON INTERRUPCIONES, RESET ¥ RECURSOS AUXILIARES 121 yel cuarto, EEIF, que se pone a | cuando finaliza la escritura de la EEPROM, se halla en el bit4 del registro EECONI. Los sefilizadores deben ponerse a 0 por programa antes del retomno de Ia interrup- ‘ifn y son operativos aunque la interrupcién esté prohibida con su bit de permiso corres- pondiente. En la Figura 6.3 se offece el esquema de la logica de control que origina la inte- rapes, EJEMPLO Confeccionar un programa que explore de forma continua las 4 fuentes de interrupcin para averiguar cudl se ha activado, SOLUCION Se usa fa insiruccion betes cegistro.n, que explora el bit an» de «registro» y si vale 1 se salta una instruceién, o sea, et PC se incrementa en 2 unidades. A esta operacién se denomi. a brinco, Hnicicdel servicio de inberrupcién por activacién de RB0/INT btfes intcon, inte Explora el bit intf de intcon y si vale 1 hay brinco goto pnertab } Salta a puertab tinicio del servicio de interrupeién por cambio en RE? ; RBA puertab bt fss intcon,rbif Explora el bit trbift de ; intcon y si vale 1 se produce brinco goto tmro = —— a 10 CED ere Figura 6.3. Logica de control para ta generacién de una interrupeién en los PICIBX8X. > SEDISHIERTA DIL 'MODO DE REFOSO 122 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES a eae oi ordaniento de THRO tmx btfss intcon,t0if ; Bxplora el bit toif y si ; vale 1 brinco goto eeprom A 4Anicia el servicio de interrupeié: fin de la escritura en la HEPROM eeprom bt fss eeconl,eeif —; Explora el bit eeif del } registro eeconi y si : vale 1 hay brinco goto int } Yuelve al principio EJEMPLO Confeccionar un programa que asegure que todas las interrupciones se hallan prohibidas SOLUCION Se comprueba que el bit GIE ~ 0. Se utiliza la instruccién que examina wn bit y si vale 1 produce un brinco 0 un salto de la instruccién siguiente. bucle bef intcon.gie ——; GIE bifec intcon.gie —_; Si GIE = 0, entonces hay brinco goto bucle (contintia) 6.2.2. Interrupeién Externa INT Esta fuente de interrupcin es sumamente importante para atender acontecimientos externos en tiempo real. Cuando ocurre alguno de ellos activa la patita RBO/INT y se hace una peticién de interrupcién, Entonces, de forma automiitica, el bit INTF = 1 y, si el bit de permiso INTE = |, se autoriza el desarrollo de la interrupeion. ‘Mediante el bit 6, llamado INTDEG, del registro OPTION se puede scleccionar cull seré el flanco activo en RBO/INT. Si se desea que sea el ascendente se escribe un 1 en dicho bit, y si se desea que sea el descendente se escribe un 0. El procesador explora el sefalizador INTF al final del primer ciclo de reloj de cada ciclo de instruceién. Recuérdese que cada ciclo de insiruccién constaba de 4 ciclos de reloj: Ql, Q2,Q3 y Q4. Al terminar QI se exploran los seftalizadores produciéndose un periodo de latencia, de 3 04 cicles de instruccién desde el momento que hay un seftalizador activado hasta que se inicializa la interrupeién. En la Figura 6.4 se muestra un esquema prictico para generar una interrupeién por activacién cn la patita RBO/INT. Los dos inversores del 74L.S04 realimentados constituyen un filtro anti- rebotes para el pulsador, y la red R-C y el iltimo inversor controlan la duracién de! impulso. 4 SiINTE = 1y se aplica un flanco activo en RBOVINT, el sefializador INTF s¢ pone a 1 autométia: ‘mente y s¢ solicita una interrupcién, que es eeeptada cuando GIE = 1. Antes de regrosar al. programa principal hey que borrar INTE puesto que en caso contrario al ejecutar fa instruc: ‘cin de retarno RETFIE se volveria @ desarrollar el mismo proceso de interrupcién, INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 123 PICTOFS4 atsoa atso4 j \c j v aa t z Ik Jaa 235s Pre Figura 6.4. Circuito para generar impulsos de duracién determinada, En el esquema Tiempo = 470 0,05 ~ 23.5 us. feeOANT EJEMPLO Confeccionar un programa para permitir que se acepte la interrupcién por activacién de la atita RBO/INT al aplicarta un flanco descendente. SOLUCION Ei programa deberd encargarse de que los bits del registro INTCON tomen los siguientes valores: INTE = GIE = I y TOIE = RBIE = EEIE = 0. También deberé asegurarse de que inicialmente, antes de producirse la interrupcién, el sefalizador INTF valga 0. dxf estado.rp0 + Seleccién del banco 1 bef option,intdeg_ > INTDEG = 0 para flanco descendente bef estado,rp0 Seleccién banco 0 bsf —intcongie 2 GIE bsf—— intcon,inte cINTE = 1 bef intcon,rbie RBIE =0 bef intcon.eeie : EEIE = 0 bof intcon.inef S INTE = 0 Se podia haber cargado todos los bits del registro INTCON con una instruecién, 62.3. Interrupcién por desbordamiento del TMRO Cuando TMRO se desborda y pasa del valor FF H al 00 H, cl sefializador TOIE se pone auto- mticamente a 1. Si, ademas, el bit de permiso de la interrupcién del TMRO TOIE = | y el bit Permiso Global de Interrupciones GIE = 1, se produce una interrupcien, Si no se recarga el TMRO cuando se desborda, sigue contando desde 00 Ha FF H. En sualquier momento se puede leer y escribir este registro, pero cada vez que se escribe se pier- ‘en dos ciclos de reloj para la sincronizacién. Cuando se carga inicialmente TMRO con el valor Nip, cuenta 256 ~ N impulsos, siendo el tiempo que tarda en hacerlo el que expresa la siguiente férmula: [Pevesincin 4 oe 8) aa del Blade essen 124 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES EJEMPLO {Cada cuénto tiempo produciré TMRO una interrupcién si se le carga continuamente con et valor 40;», ef Divisor de frecuencia esté programado en el rango 1:8 y el microcontrolador dispone de un eristal de 1 MHz? SOLUCION Para averiguar el tiempo de retardo se aplica la formula: Temporizacién = 4» Tose « (256 ~Nyq) » Rango del Divisor de Frecuencia Temporizacién = 4° I ues - (256 ~ 40) 8 = 6,192 ws 6. Interrupcién por cambio de estado en las lineas RB7 : RB4 de la Puerta B Esta interrupcién est disefiada especificamente para detectar la pulsacién de una tecla correspon: diente a un teclado matricial que se explora con 4 lineas de E/S. Para esta funcién se destinan Jas lineas RB7 : RB4 de la Puerta B, que cada ver. que cambia el estado ldgico de una de ellas fuerza al sefializador RBIF a ponerse a 1, y si los bits de permiso RBIE ~ GIE = I se autoriza la interrupeién, 6.2.5. Interrupeién por finalizacién de la escritura en la EEPROM de datos El tiempo tipico que tarda en desarrollarse una operacién de escritura en la EEPROM de datos de los PICI6X8X es de 10 ms, que es considerable comparado con la velocidad a la que el procesador ejecuta instrucciones. Para asegurarse que se ha completado la escritura y puede continuarse con el flujo de control del programa es aconsejable manejar la interrupeién que st origina al finalizar la eseritura, que pone automdticamente el sefalizador EEIF a I, y se auto- riza siempre que los bits de permiso EEIE = GIE = 1 ‘Cuando se deseribié el proceso de escritura de la FEPROM de datos se indie6 que se usaba un registro no real para asegurar la misma, Se trataba del EECON2, on cl que se grababan dos valores, el 55 Hy el AA H. Durante la escritura de este registro debe prohibirse la aceptacién de interrupciones para salvaguardar la operacién de escritura, por eso en ese médulo se pone GIE = 0, tal como se indica en el siguiente trozo de programa orientado a escribir la memoria EEPROM. Se supone que la direccién a acceder ya se ha cargado cn el registro EEADR y ¢l dato a escribir en EEDATA. bsf estado,rp0 4 Seleceiona el bancol bef intcon,gie | GIE = 0, Prohibe interrupeiones bsf intcon,ecie : Permite la interrupcién de la EEPROM bsf econ], wren » Permiso de escritura de la EEPROM movi 0x55 movwf ——_eecon2 Se escribe en eecon2 el dato 55 ht moviw Oxaa ‘movw eecon2 | Se escribe aa hen eecon2 bf eeconl.wr : Comiena el proceso de escritura bf inicon.gie | Permiso de interrupeiones INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 125 En los PICI6C84 y PICIGF8X se puede leer y ¢: haya protegido el existen dos bit EEPROM de ribir la EEPROM de datos aunque se digo. En los PICI6CRSX, que disponen de memoria ROM para el cédigo, Para el eédigo de proteccién: uno dedicado a la ROM de cédigo y el otro a la alos, 6.3, REINICTALIZACION O RESET Los PICIOXSX tienen cinco causas que provocan la reinicializacién del sistema, que consiste fn cargar al PC’ con el valor 000 H (Vector de Reset) y poner el estado de los bits de los registros especificos (SFR) con un valor conocido. 1" Conexién de Ia alimentacion. POR («Power on Reset) 2 Activacin de la patita MCLAY («Master Clear Reset») en funcionamiento normal 3. Activaci6n de la patita MCLR# en’ estado de Reposo. 42. Desbordamienta del Perro Guardidn en funcionamiento normal 5 Desbordamiento del Perro Guardian en estado de Reposo En la Tabla 6.1 se presenta el estado légico que adquieren los bits de los registros SFR de {a memoria de datos cuando se provoea un Reset por una de las cinco causas posibles 'a Figura 6.5 se muestra el esquema electrénico de los PIC16X8X para la yeneracién del Reset, La patita MCLR# dispone de un flitro interno para eliminar los ruidos y los impul. 05 muy pequeiios. I temporizador PWRT («Power-up Timer») activa una salida al cabo de un cierto ticmpo tras a conexiGn de la alimentacién, que se aplica a una entrada de la AND4, encargada de controlar el Reset del Flip-flop que controla la generacién interna del Reset del sistema, Solo es sca [ RESeEEO | ,att Loat sation sta | sa | vor [unto Tibi 6.1. Valor que adquieren tos bits de los registros SFR y el W después de producirse un Reset por ma de las cinco causas posibles. 126 — MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES Figura 6.5. Esquema electrénico para la generacién interna del Reset valida la salida de PWRT sil bit de permiso del PWRT esti activo a nivel bajo (PWRTE# = 0), dado que también se aplica a la OR7 de la Figura 6.5. El bit PWRTE reside en la Palabra de Configuracién y una de las pocas diferencias que tenia el PICI6C84 con el PICLOF84 era que aquél tenia como nivel activo del bit PWRTE el alto, mientras que este iltimo tiene cl bajo. EI Reset del Flip-flop final se produce cuando la AND4 saca nivel alto, To que requiere que sus tres entradas tengan dicho nivel, y eso supone: a) Que no haya peticiones de Reset y 1a puerta OR2 tenga su salida a nivel bajo. 5) Que si estd active PWRT finalice su retardo de 72 ms. ©) Que también finalice la temporizacién del oscilador OST, que retar completarse el retardo de PWRT. 1,024 - Tose, tras El temporizador PWRT proporciona un retardo fijo de 72 ms y sus impulsos de reloj os gener lin osellador FC propio, Este tiempo garantiza a estabilizacion del volteje de alimentacién Veo, Fl temporizador OST (Oscillator Start-up Timer) proporciona un retardo de 1.024 - Tose (Periodo de los impulsos aplicados en la patita OSCI/CLKIN). Sirve para asegurar que el Cristal de cuarzo o resonador cerimico empleado en los osciladores tipo XT, LP o HS esé estabilizado y en marcha. OST comienza a funcionar cuando termina el retardo de PWRT debido a la conexién de la salida de la OR7 con la ANDS La activacién de la entrada Set del Flip-fop se consigue cuando se activa la patita MCLR#, cuando se desborda el Perro Guardian o cuando se detecta un flanco ascendente en la patita Vo (POR), ‘En la Figura 6.6 se offece un cronograma de las principales sefiales que participan en la generacién del Reset y en el que se aprecia la secuencia de Tos retardos Trans ¥ Tos INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 127 Voo —_—/“ a POR ! Tra DESBORDAMIENTO PWRT f 4 os 7 DESBORDAMIENTO OST f RESET INTERNO. faa Figura 6.6. Cronograma de las principales sefiales que intervienen en el Reset para uno de los posibles casos en que MCLR# no cambia de estado con Vy En el registro ESTADO hay dos bits que indican las condiciones en las que se ha originado cl Reset, Se trata de TO# (Timer Out) y PD# (Power Down). (Figura 6.7.) 6.3.1, Reset por fallo en Ia alimentacién («Brown Out») Se produce un fallo en Ia alimentacién cuando el voltaje de alimentacion Vi» desciende por debajo del valor minimo, sin Hegar a cero, y luego se recupera, En esta situacién es preciso provocar un Reset. Para generar un Reset en un PICL6X8X cuando hay un fallo en la alimentacién hay que colo- «car un eircuito externo de proteccién, como los dos que se muestran en las Figuras 6.8 y 6.9. Lo] DESBORDAMIENTO WOT EN FUNCIONAMIENTO NORMAL [:e [2] spomanewtownren wana ne noso [ACTIVACION MCI Re EN TLINCIONAMIEN TO NORMAL 128 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES PICi6caa f Figura 6.8 Cuando Vp desctende por debaje del valor V= 0,7 ¥,se produce um Reset por a activacion de lo patita MCLRi. pero debe colocarse una resis La patita MCLR# puede conectarse directamente con Vp» para evitar los problemas que tencia de valor superior a 100 Q cuando se conecta con tierra, puede originar la corriente que eircula PICT6C84 41 Reset al pasar a nivel bajo ta patita MCLRA, Figura 6.9. El transistor Q/ se bloquea y activa el 1+ R2)= 0,7 ¥ ‘cuando el valor Vip desciende por debajo de Voy * RI/(R INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 129 6.4. EL MODO DE REPOSO O DE BAJO CONSUMO. Este modo de funcionamiento de los PIC esti caracterizado por el reducido consumo de ener- ia que requiere y est muy recomendado en aquellas aplicaciones cn las que hay largos perio- dos de espera hasta que se produzca algiin suceso asincrono, como la pulsacidn de una tecla En dichos periodos el procesador esta inactivo. El consumo tipico del PIC es de 2 mA, aproximedamente, reduciéndose @ menos de 10 wA ‘en el modo Reposo, fo que permite alimentarie con una pequefia pila durante casi dos afios Para entrar en el modo de Reposo hay que ejecutar la instruccién SLEEP y se produce una situacion muy especial de funcionamiento que parece como si el sistema se ha «eongelado», ‘equiriendo el minimo suministro de energia para mantener el estado del procesador sin nin, guna actividad. En Reposo Ia patita TOCKI se conecta a Voo o tierra, para eliminar la entrada de impul- $08 externos al TMRO. Por otra parte, como se detiene el oscilador principal que genera los impulsos Tose, también se para TMRO. Las patitas de E/S mantienen el estado anterior al modo de Reposo y las que no se hallan conectadas a periféricos y actiian como entradas de alta impedancia se aconseja conectarlas a Vy 0 a tierra para evitar posibles fugas de corriente, La hatila MCLR# debe eonectarse a nivel alto, Sin impulsos de reloj el procesador se congela y deja de ejecutar instrucciones hasta que se «despierten y salga de ese estado, Si el Perro Guardién continia activo en el modo de Reposo, al entrar en él se borra, pero Sigue funcionando, Los bits del registro de ESTADO PD# y TO# toman los valores 0 y |, ‘espectivamente. Para salir del estado de Reposo (despertar) existen tres alternativas: 1+ Activacién externa de MCLR# para provocar un Reset. 24 Desbordamiento del Perro Guardian si qued6 operativo en el modo de Reposo. 3 Generacién de una interrupcién. En este caso, como TMRO esti parado solo pueden producirse los ottos tres tipos de interrupcidn, Cuando se despierta ol PIC se desarrolla la secuencia del oscilador OST, que retarda 1.024 Tose ara estabilizar le frecuencia de trabajo, y Iuego se pasa a sjecutar la siguiente instruccion | asleep (PC + 1). Los bits TO# y PD# se emplean para conocer la causa del Reset que despierta al sistema. PDH=0 cuando se ejecuta la instruccion SLEEP. TO# = 0 cuando se desborda el Perro Guardian, 65, PROGRAMACION EN SERIE DE LOS PICI6X8X Les PIC que estamos estudiando permiten que se grabe en su memoria de cédigo el programa sobre el mismo circuito de la aplicacién, Esto permite a los fabricantes de productos finales Construir Ia tarjeta electronica con el microcontrolador sin grabar y realizar la escritura del Brograma justo cuando se realiza la venta. Asi se puede aportar el firmware mas reciente que se disponga. 130 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES La programacién en serie de los PICI6X8X requiere 5 lincas, dos de las cuales se destinan 1 soportar el reloj de la transmision (RB6) y los bits de datos serie (RB7), mientras que las otras tres soportan Vip, tierra y la tensién especial de programacién Vpp, que oscila entre 12y 14 V. (Figura 6.10.) El microcontrolador pasa al modo de programacién/verificacién colocando a nivel bajo las Jineas RBG y RB7 y aplicando la tension de programacién Vp. A partir de ese momento por RB6 se transmiten los impulsos de reloj y por RB7 sc transfieren los bits de datos en serie. ‘ALAS CONEXIONES, CONECTOR NORMALES DE SENALES, EXTERNAS PICT6X8X aaa wbvanneniny vrve— ALAS CONEXIONES NORMALES Figura 6.10. Tipico esquema de conexionado de un PICIGX8X para su grabacion del programa en serie, sobre el cireuito final de la aplicacién. INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 131 SOLER CESRPRMSS G25 122220 ETETENIR I ESD REBUT DBOET GPT IE 120212121 TERRORS SET PROGRAMAR PIC ES FACIL AEST EPPREEREEEDSZS 8557S PSPS TSS ESL PEBDBOGCST AEST LTTE, Las interrupciones constituyen un recurso esencial en la resolucién de las aplicaciones reales y los PICIOX8X disponen de 4 fuentes capaces de producir interrupcién: 1" Flanco activo sobre ta patita REO/INT 2% Desbordamiento de! TMRO 3.4 Cambio de estado en una de las patites RB? : RBS 4° Finalizacién de un ciclo de escritura en la EEPROM de datos La interrupcién provocada por la aplicacién de un flanco en la patita RBO/INT es muy e' caz para controlar cualquier suceso asincrono extemno. La interrupeién producida por el cambio de estado en una de las 4 patitas de més peso de la Puerta B esta disefiada para controlar peti- fericos especificos, como el teclado. La que controla el fin de la escritura en la EEPROM de datos es muy necesaria cuando se guarda informacién en esta memoria no volatil, porque el tiempo de escritura es relativamente largo (10 ms) y variable, Finalmente, la interrupcién mis tmpleada es la que origina el desbordamiento del temporizador/contadot TMRO, porque con ella Se puede controlar con mucha exactitud un periodo de tiempo, sin desviar la atencién del procesador. El ejercicio que se presenta en este capitulo dispone de una tarea principal muy simple y de otra auxiliar basada en el cambio de estado de un periférico cada cierto tiempo. Existe un ‘elardo que se controlard con la interrupcién producida por TMRO y asi el procesador se dedi- sari a la tarea principal, excepto cuando le avise cl TMRO, instante en el que se desviara ‘emporalmente a atender al otro periférico. EL SEXTO EJERCICIO PRACTICO: MANEJANDO INTERRUPCION 8e trata de confeccionar un programa en lenguaje ensamblador para un PICI6X84, cuyo Ascilador interno se halla controlado por un cristal de cuarzo funcionando a 4 MHz, Conec- tudos a las lineas RAO y RAI de la Puerta A existen dos interruptores, A y B, los cuales tienen ‘ue ser explorados continuamente y reflejar su estado (abiertos 0 cerrados) sobre dos diodos ‘td, A’ y B’, conectados a las lineas RBO y RBI de la Puerta B. Ademas existe oiro diodo ted en la linea RB7 que esté parpadeando continuamente, sando cada segundo por los estados de encendido y apagado, pa- SOLUCION Fala Figura 6.11 se ofrece el esquema general de conexionado del PICI6X84 que responde a lascspecificaciones del ejercicio. 132 MICROCONTROL.ADORIS «PIC», DISENO FRACTICO DE APLICACIONES PIC 16x84 von] fioe PARTAEO. Figura 6.11. Raguema elevtrdnicn de cunesionade det PICTOXSS. Para controlar el retano de | segundo para cl parpadce de! led conectado en la linea RST, se yencrara una imerrupeidn cada dicho tempo por desbordamiento del TMRO. inicialmente se cargari al TMRO cin cl valor 12), con To que el desbordamiento se produ: cin al eno de 244 (256 12) impulsos aplicados a dicho temporizadar Dichos impulyos serdn los dal oscilador interna Tasc, pero divididlos por 256 en el Divisor de frecuencia, con lo ‘oual la temporizacién total sera: Temporizseidn — 4. Toss Vale TMMBO . Rango Divisor Frecuoncia ‘Tomporivecion = 4 z0.ns: 284 Pho = BLA mis Como no se alcanza cl retatda de | segusde se eraplea un contador auxiliar CONTA que al eargarse con un valor de 16s, ¥ decrementarse una unidad cads 62.4 ms, cuando Hewue a 0 conseguira, aproximatamente, el Lempe buseado (62.4 1s x 16). En el programa gue resuelve el ejercicio se hy ulilizado came instruccidn clave la Otis regisiro.n, que explora el valor del bit w de registin y si vale L se salta la siguiente instriccion bbrineo, 9 sea, el PL se inerementa en 2 unid: que realize ol brineo si el bil examinado vale U. 5. La instruceidin inversa es hisve registra, PROGRAMA PARFADEO SEXTO,ASM Stet SaLeced RANTR. WEE INTERRUPCIONES, RESLI Y RECURSOS AUNITIARRS 133 134 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES Si Vd. ha «seguido» nuestras explicaciones sobre el comportamicnto de las interrupciones yy especialmente la del TMRO, es muy posible que entienda la mayor parte del programa del parpadeo. Es muy dificil que lo comprenda todo, porque siempre hay algo que esté mal. Co- mience a pensar seriamente que aquello que no encaja con sus esquemas puede estar cquivo- cado o tratarse de una errata. Si nos la comunica, le escribiremos agradeciendo su gentileza y trataremos de suprimirla en la proxima edicién, SIMULANDO CON EL SIMUPIC’84 En este capitulo no vamos a incorporar itinguna novedad sustancial en el manejo del Simu- pic’84. Tal y como ya estamos acostumbrados, editaremos, ensamblaremos y cargaremos en memoria el programa de este capitulo, SEXTO.ASM. Como el enunciado del programa nos indica que el PIC debe funcionar a una frecuencia de 4 MHz, debemos ir a la ventana de «Parametros de simulaciény y alli establecer la frecuencia de simulacién en 4000 KHz. Apro- vecharemos también para desactivar el WDT. En SEXTO.ASM existen, por una parte, 2 interruptores conectados a RAO y RAL que encienden 2 leds que estén conectados a RBO y RBI, y por otra parte un led conectado a RB que parpadea cada segundo. Mediante las teclas de funcién podemos introducir valores pot RAO y RAI y ver las reacciones de RBO y RBI en la ventana de «visién externa». Una caracteristica muy itil del Simupie’84 que no ha sido ain comentada es la «Ventana de Contadores». En esta ventana se muestran 2 contadores, uno de tiempo y otro de instruccio- nes. Ambos contadores pueden ser puestos a cero simultineamente mediante la opeidn «Poner a cero contadores» de la ventana «Opciones de simulacién». Logicamente, al comenzar el programa ambos contadores estin a cero. Mediante el uso de estos contadores se puede llevar ‘a cabo cualquier temporizacién, y en nuestro caso comprobar que el led conectado a RB7 parpadea efectivamente cada segundo. Pero el mayor problema con el que nos encontramos a Ja hora de programar y simular temporizaciones con Simupie’84, o con cualquier otro simula- dor software en general, es el problema de la velocidad de simulacion, ya que ésta es muchas veces inferior a la de un PIC real. Junto con los contadores de tiempo € instrucciones, en la ventana de contadores también nos encontramos con un indicador que muestra el modo de funcionamiento actual de PIC, es decir, si se encuentra en modo de ejecucién normal o en modo de Repose. PROGRAMANDO EN C La principal novedad de este programa con respecto a los anteriores, programados también en lenguaje C, es la incorporacién de la rutina que maneja la interrupeién por desbordamiento del INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 135, ‘Timer 0 y las directivas del compilador para la gestién de las interrupeiones. El programa en cuestion es el siguiente: Nag ni i 136 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACION /* Rutioa de contrel de los leds @ interruptores: */ dof yaQ = inpot (PEN_AQ) ? ral = input (PINAL); output bit (PIN_BO, 20); utput bit (PEN BL, rai): WHILE (PRUE); (* Bucle infinito */ LE PROPONEMOS UN EJERCI DE INTERRUPCIONES |0 LLEN EI siguiente programa controla una alarma conectada a las cuatro puertas de un coche, Se utiliza la interrupeién por cambio de estado en una de las patitas RB7 : RB4 y la interrupeién por flanco activo sobre la patita RBO/INT. El diseito prictico de esta aplicacién seria algo complicado, pot lo que nuestro objetivo serd inicamente mostrar al lector el programa en ensamblador para que se familiarice con el uso de interrupciones, El programa se lama ALARMA.ASM. ALARNA.ASM Un PIC 16CR4 contrela la alarma de un coche: Conectados a RB4 - RB? hay 4 sensores que controlar cada ne una puerta del coche. Cuando una de las puertas del coche es abiexta, $u sensor manda un 1 por sv linea respect iva canbiando deta de estado, con lo que se provoca una interrupeién y comienzan a sonar 2 zumbadores ; gonectados a RAO y RAL. } Para detener la alarma, @] usuario debe mandar una sefial } infravroia a up sensor, que cuando le detecta activa la ; patita RBO con lo que $e produce una interzupcién, los } aumbadores s¢ paran y e) programa vuelve a su comienzo List peaecad RADIX | HEX W EQU 0 e Bog 4 EStAbO QU (Dx03 POERTAA OU 0x05 BUERTAB EQU x06 HMTCON (equ Ox0R INTERRUPCIONTS, Q&S VRECLRSOS AUAILIARES — 137 Para animarle a trabajar con este prograia le sdvertimos que una de las actividades que ‘més usan los controladores es la que se dedica a las alarms MANEJANDO wp EL REPERTORIO DE INSTRUCCIONES 7.1, REPERTORIO RIS' Todos los modelos de microcontroladores PIC’ responden a la arquitectura RISC, que signifi ‘Computador de Ju ciones miquina que es capaz de interpretar y ejecutar el procesador es pequetic, come sucede en los PICIGXSX, que consta de 35, sinus tammbign que pose lus sig i 0 de [nstrucciones Redusidats. No sélo impliea que el niimero 1 tas inserveciones som simples y ripidas La falta de complejidad en la operacién que realizan las instrucciones de los procesa- dores RISC permite que seun ejeculadas, mayoritariamente, en un sole ciclo de ins raceiéa. Los PIC fardan en ejecutar todas las instrucciones un ciclo, excepto las de salto, gue tardan el doble. 2 Las instrncciones son ortogonates: Apenas ticnen resiricciones en cl uso de operandos, Cualauier instruccion puede usar cualquier operando, 3° La longitud de las instrucciones y las datos es constanie Todas las instrucciones tierten 1a misma longitud, 14 bits en fos PICLOXSX, ¥ todos Jos datos también, un byte, La arquiteciura Harvard del procesador aisly bi memoria dde instruceiones de la de datos, pudiendo tener diferente tamaiio sus palabras EIEMPLO Un PICISFS4 funcionando con un eristal de cuarzo de 10 MHz tarda 600 is en ejector un prograina que tiene ef 30 pur 100 de las insirucciomes de salto, a) ¢De cuintas inssrucciones consta ef programa? b) Cudntas posiviones de ta memavia de widega ocupa? 139 140 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES SOLUCION Todas las instrucciones tardan en ejecutarse un ciclo de instruccion, equivalente a 4 ciclos de reloj, excepto las de salto, que tardan el doble. 1/10 L0®s = 100 ns. 4+ Tose = 400 ns X +400 ns +2- X= 400 ns; CLK = Fose Ciclo Instrucciér Trrooxana = 600 14 X= 500 Luego hay 500 instrucciones normates y 500 de salto, en total 1.000 instrucciones. 4) 1.000 instruceiones tiene ef programa b) El programa ocupa 1.000 posiciones de la memoria de cédigo. 7.2. TIPOS DE FORMATO Las instruceiones de los PIC de la gama media, entre los que se encuentran los modelos PICI6X8X, tienen 14 bits de longitud. Dicho formato se divide en diferentes campos de bits, cada uno de los cuales referencia a operandos o elementos que maneja la instruccién en la ‘operacién que realiza en el procesador. Se describen dichos campos: a) Campo del codigo OP Los bits de este campo sirven para definir la operacién que realiza la instruccién. b) Campo de los operandos fuente () y destino (d) Estos campos de bits definen los registros que actiian como operandos en la instruc- cidn, Suelen referenciar la direccién que ocupan en la memoria de datos, ©) Campo de operand inmediato o literal (k) Es un campo de bits que contiene el valor de un operando inmediato. d) Campo que referencia a un bit (b) Suele ser un campo de 3 bits que indica la posicién de un bit concreto dentro de un registro de 8 bits, ©) Campo de la direccién del salto En las instrucciones de salto CALL y GOTO hay un campo de bits que contiene la direecién de la siguiente instruceién que hay que ejecutar. Dicho campo de bits se carga en el PC en las instrucciones de salto incondicional Para estudiar los diversos formatos que admiten las instrucciones del repertorio de los PICI6X8X se clasifican en cinco grandes grupos, atendiendo al tipo de operacién que desa~ rrollan. MANEJANDO EL REPERTORIO DE INSTRUCCIONES 141 1° Operaciones orientadas a menejar registros de tamaro byte 2° Operaciones orientadias a manejar bits 3° Operaciones que manejan valores inmediatos 4° Operaciones incondicionales de control del flujo del programa 5° Operaciones de salto condicional 72.1. Operaciones orientadas a manejar registros de tamaito byte El formato de las instrucciones que corresponden a este grupo se divide en tres campus: 1. Campo del Cédigo OP de 6 bits 2. Campo de la direcci6n del operendo fuente it} de 7 bits 3. Campo que deline el operando destino id) de 1 bit ‘as instrucciones de este grupo tienen como sintaxis: nemiinico fd. Cuando d= 1 el regis- {ro destino coincide con el fuente. Por ejemplo, si se desea incrementar el contenido de un 0, regi, y guardar ef nuevo valor en el mismo, se usa la instruccién : inc reg. EJEMPLO Qué utilidad puede tener una instruccién que mueve el contenido de un registro a él mismo (coincide el registro fuente con el destino)? movf reg 1. SOLUCION La instruccin mové fd pone a I el seftalizador Z cuando to transferido es ce) 170. Por eso dicha instruccién puede servir para saber si el contenido ¢: 8 cero 0 no lo es EJEMPLO Halla el formato de la instruccién inef fd, que utiliza como operando Juente el registro que ocupa ta direccién Ox07 de la memoria de datos y como registro destino él mismo fd ~ 1). Se sabe que los 6 bits del Cédigo OP valen ; 0010i0 FORMATO INSTRUCCION d=1 Ehegistro destino es f =O Elregistro destino es w Figura 71. Formato de la instrucciones oriemadas a manejar operandos queson resis de un byte Eloperando fuente (9 se representa con los 7 bits de la direccién que oct el registro on {a memoria de datos. El destino puede ser el mismo operando fuente (d ~ 1) 0 el registro waa, 142 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES SOLUCION Campo del Cédigo OP (6 bits): 001010 Campo del destino (I bit) 1 Campo operando fuente (7 bits) : 0000111 FORMATO DE LA INSTRUCCION incf 0x07.1 : 001010 1 0000111 7.2.2. Operaciones orientadas a manejar bits BEE mone . € En el conjunto de Efemplo: d € [0,1]. 0 Opciones. EJEMPLO Utilizar los simbotos y las abreviaturas usadas en el programa Ensamblador MPASM para expresar las caracteristicas de la instruccién que realiza la operacién ligica AND entre el contenido del registro Wy el de otro registro f. SOLUCION SIVTAXIS andvf fd (Sid = 0 el destino es W) OPERANDOS = Os fs 127 dE [0,1] OPERACION ——(W) and () + dest Sid =0, dest= W Sid =, dest=f FoRMaTO 000101 d fear PALABRAS QUE OCUPA EN LA MEMORIA DE CODIGO— 1 CICLOS DE INSTRUCCION PARA LA EJECUCION 1 EJEMPLO Sel contenido del registro W es Oxf0 y el del registro ESTADO es Ox0f, icon qué valores quedan cargados ambos registros tras éjecutar la instruccién andwf ESTADO, 1? SOLUCION Como el operando destino es ESTADO (d = 1), quedan: W = oxf0 ESTADO = 0x00 146 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES 7.4, INSTRUCCIONES QUE MANEJAN REGISTROS Responden a la sintaxis neménico fd, siendo f'y d los dos operandos fuente y destino que se hallan implementados por registros de 8 bits de la memoria de datos. El registro f viene referenciado por la direceién de 7 bits que ocupa, mientras que el desti- no sélo por 1, que si vale 0 ¢s el W y si vale I es el fuente. En la Tabla 7.1 se muestran las instrucciones de este grupo con sus caracteristicas mas interesantes, EJEMPLO Si se supone que inicialmente valen cero los registros W y los que ocupan las direcciones Ox01 y 0x02 de la memoria de datos, :qué valor contendrin después de ejecutar el siguiente programa? incf —0x01,0 incl 0x01,1 comp 0x02,1 jorwf — 0x02,0 xorwf OxOLT ‘Tabla 7.4. Principates caracteristicas de las instrucciones de los PICIOX8X que manejan come ‘operandos registros de 8 bits. Se han excluldo las de salto condicional que tienen el mismo formato. MANEIANDO EL RERERTORIO DE INSTRUCCIONES 147 SOLUCION (wy oss (x01) = Oxfe Wexb2) ~ Ong EJEMPLO Fxiste wna instruceién com la que se rotu u ta derecha, a través del serializador de acarroo € ef rexintre que ocupo tu ddireceiin Oxtld de la memoria de daios y deposita et resultado en W. Se pide a) Nemanivo b) Formate de ta instruccién ©) Stiniciakmente C= 1 y (0x04) OO, ¢qud valor se cargarié en W? SOLUCION a) ref Oxb4.0 by 997100 0 on0o100 ©) W'18q00m0R EJEMPLO Si el registro ESTADO contiene ef valor Oxf5 y se ejecnta ta insiruceiin swup) ESTADO,D, que valor contendrin ESTADO y W? SOLUCION La instruccién swap intercumbia tax ambbless entre si, En vex registra de 8 bits wet nibble corresponde u fos 4 bits de mas peso vel otro u los de menos peso. P30) > (deste 7-42) PF APD 9 (dest <3-02) Como el registro destino es el W, quedarin cargados BSTADO - Oxf We OSS S QUE MANEJAN BITS Soto hay dos instrucciones en este grupo, pero son muy Nexibles, Una de ellas pone a 1 (by/) ‘cualquier bit de un registro, mientras que la atra hy pone s 0 (bef), (Vase Tabls 7.2.) Enel formeto da lee inatrucciones que mansian ils se epresenta con 3 bits la nosinion ae tui n 8 ragistio bit b, El rogstta Fe appectica mediante su dliewctin Ce 7 bits. 148 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES Fe eonentisteceen mr erect teers [ape pom Pd ‘Tabla 7.2, Caracteristicas mas importantes de las dos insirucciones que manejan wn bit determinado de wn registro. EJEMPLO Si, inicialmente, ef registro W = Oxff y el registro OPTION = 0x00, gcon qué valores queda- rin cargados tras ejecutar el siguiente programa? bof OPTION.2 com OPTION.O swap OPTION. SOLUCION Went ior OPTION = 60100 0000" EJEMPLO Haltar el formato de ta instrucciin bsf Ox08,3. SOLUCION FORMATO DE LA INSTRUCCION dsf 0x08,3 : 0101 O11 6001000 7.6. INSTRUCCIONES DE BRINCO (SKIP) Solo hay cuatro instrucciones de salto condicional en los PIC de la gama media, Dos de ellas testan un bit de un registro y segiin valga 1 0 0, brincan 0 no. Recuérdese que un brinco es un «saltito» pequefio, sélo se salta la instruccién siguiente a la condicional. Las otras dos instruc- ciones inerementan o decrementan un registro y la posibilidad del brinco se efectita si con esa operacién ef valor del registro ha Megado a cero. Cuando estas instruceiones no brincan por {que no se cumple la condicién, tardan 1 ciclo de instruccidn en ejecutarse. Caso que brinquen tardan ef doble. (Véase Tabla 7.3.) EJEMPLO Se trata de averiguar el valor det bit 4 del registro ESTADO. Si vale I se borra 0 se pone al el registro Wy si dicho bit vale 0, se pone a I ese bit. MANEIANDO EL REPERTORIO DE INSTRUCCIONES 149 \STRUCCIONES DE SS SS a | om a A a = a Tabla 7.3. Caracteristicas més relevantes de las ewatro insiruectones condicionates de brinco. SOLUCION bifss STADO.A ; Si ESTADO<4> = 1. hay brinco bsf ESTADO,4_ ; Como ESTADO<4> = 0, se pone a1 el Como ESTADO<4> = 1, se borra W EJEMPLO Decrementar ef contenido del registro FSR hasta que valga cero y entonces borrar W SOLUCION bucle — decfsz FSR,I goto bucle clrw 1.7. INSTRUCCIONES QUE MANE. |AN OPERANDOS INMEDIATOS Se trata de media docena de instrucciones que realizan una operacién con un valor inme de 8 bits que se proporciona dentro del formato de la instruccién, el cual s6lo ti pos: el del Cédigo OP (6 bits) y el del operando inmediato (8 bits). (Tabla 7.4.) 1e dos INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS: AND inmediate con W z [OR inmedist con W z Rests W de un ened cocz Of exclusiva con W Tabla 7.4. Caracteristicas més importantes de las instrucciones que manejan operandos inmediatos (i). 150 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES EJEMPLO Indicar et valor del registro W después de ejecutar el siguiente programa: elrw movwf OPTION bsf —— OPTION,S comf — OPTION,1 bifse — OPTION,1 swap OPTION. SOLUCION (W) = bit 101 EJEMPLO Averiguar el contenido de W después de ejecutar el siguiente programa: elew addi 0x55 andly Oxf orl Ox0f xorlw — Oxaf SOLUCION (Wy) = oo 7.8. INSTRUCCIONES DE CONTROL Y ESPECIALES En este grupo se incluyen las instrucciones que rompen Ia secuencia normal del programa porque alteran el contenido del PC y también las instrucciones especiales. La instruccién de salto incondicional goto carga en cl PC la dircecién de la nueva instruccin, La instruccién cal de Llamada a Subrutina, antes de cargar el PC con la direccién de la instruceiin a saltar, salva la direccin de partida guardando en la cima de la Pila el valor actual del PC. De est tmanera, al retornar de la subrutina se saca de la Pita la diteccién de regreso del programa principal Para realizar un retorno de una subrutina se pueden emplear dos instrucciones. La mis habitual es return, que se limita a extraer de la cima de la Pila el valor que carga en el PC, Ot més compleja es retlw k, que, ademas de hacer lo mismo que return, carga en W el valor inmediato & que contiene. Es decir, devuelve un parémetro desde la subrutina Para el final de las interrupciones hay otra instruccién cuyo neménico es reffie, La operatividad de esta instruccién consiste en cargar en el PC el contenido de la cima de la Pils ¥y poner el bit GIE = 1, pues al comenzar la interrupeién este bit se pone automiticamente ad para evitar que cuando se atiende una interrupcién se produzca otra, GIE es el bit de permis de todas las interrupciones. En cuanto a las instrucciones especiales, se han incluido dos en este grupo: elrwdt y sleep La primera pone a 0 el contenido del Perro Guardian, es decir, lo refresca o lo reinicializa. EL Perro Guardian si se desborda (pasa de Oxff'a 0x00) provoca un Reset. La instruceién clrwd hay {que colocarla estratégicamente en ciertos puntos de! programa para evitar la reinicializacién MANEJANDO EL REPERTORIO DEINSTRUCCIONES 151 La instruccion sleep introduce al procesador en un modo de funcionamiento que se Hama de Reposo o de Bajo Consumo. Detiene al oscilador y cl procesador queda congelade, fo cieeutando instrucciones y manteniendo el mismo valor las Puertas de E/S. También pone los bits PD#=0 y TO# = 1 y borra al Perro Guardién y al Divisor de frecuencia, (Tabla? 5.) EJEMPLO Sian PICISES4 fanciona com un cristal de 4 Mite y el Perro Guardién esté programado para que se deshorde cada 18 ms, calewlar cada cuinias instrucciones como méximo deber re. Jrescarse al Perro con la instruccién clrwdt. SOLUCION: Fase = 1/4 - 10 = 250 ns Cielo Instruccién = 4+ Fose = 1.000 ns = I ys 18 ms = 18.000 ns Luego habré que incluir una instruccién clrwdt cada 18.000 normales como maximo. Las insirueciones de salto cuentan el doble. EJEMPLO Explicar las diferencias entre las tres instruccioney de aretorno», SOLUCION ‘eur: Retorna de una subrutina al programa principal. Carga at PC con el contenido de la cima de la Pila, retlw k: Hace lo mismo que «return» y, ademés, carga en W el literal k retfie: Carga al PC con el contenido de la cima de la Pila y pone GI En la Tabla 7.6 se presentan las principales caracteristicas de las 35 instrucciones de los FIC de la gama media, agrupadas por funciones, tal como se han descrito. Tabla Principales caracteristicas de tas instrucciones de control del flujo del programa y de las especiales, 152 MICROCONTROLADORES «PICs, DISENO PRACTICO DE APLICACIONES Tenuccowe ave = | ormcen_ Lacoi] rome aim Paanennon [eonaf wore ref [oe penmemee | [na a a SC sik [eral [oom] Le] ae [=a] ‘Tabla 7. Principates caracteristicas de las 35 instrucciones de los PIC de la gama media, agrupadss segiin su funcién y en orden alfabérico, MANBJANDO EL REPERTORIO DE ‘STRUCCIONES 153 SRS EES DR TES EATER EERE TE ET TPS TETRA PROGRAMAR PIC ES FACIL a A ERLE SEE SE i eR SEPTIMO EJERCICIO: PROGRAMAS CON UN POCO DE TODO MANEJANDO EL REGISTRO DE TRABAJO W Siendo W el registro de trabajo por excetencia y el més usado en todos los programas, resulta curioso que no disponga de algunas instrucciones que existen para realizar algunas opera nes con los otros registros, Se presentan algunas soluciones a estas carencias, Incrementar W Como W no tiene una instruccién especifica para realizar esta operacién, se puede conseguir el mismo resultado utilizando addfw 0x01. Decrementar W. Se recomienda emplear ta instruceién addhw Oxf. Complementar 0 invertir W Para este fin puede usarse la instruceién xorlw Oxf? Hallar ef complemento a 2 de W Primero se realiza el complemento a 1 y luego se suma I: xorlw Oxtf adaliw, 0x01 Toner a 0 varios bits de W sin alterar el resto Si, por ejemplo, se desea poner a 0 los 4 bits de menos peso de W sin modificar los restantes poede usarse la instruceién andéw Oxf0. Foner a 1 varios bits de W sin alterar el resto Seusa la operacién légica OR poniendo en el operando inmediato un 1 en aquellos bits que se sea poner a 1, mientras que los restantes se ponen a 0, Por ejemplo, si se desea poner a | los Stits de mas peso de W sin modificar los otros dos, puede usarse la instruccién ior/w Oxfe 154 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES MANEJANDO IGUALDADES Y DESIGUALDADES Comprobar la iguatdad det contenido de dos registros Para Hamar a la subrutina IGUAL en un programa cuando se cumple que el contenido del REGI es igual al del REG2 se puede usar las siguientes instruccione movt REG. { REG! se carga en W. xarwt REGZO | REG1 xor REG2 se carga en W brfse ESTADO,2 | ESTADO <2 = Z = 0, brinca | call \GUAL Z= Vy se llama a IGUAL 4 Comprobar que un registro tiene un contenido mayor que otro Se proponen las instruceiones que proporcionan un salto a 1a subrutina MAYOR cuando el contenido del REG] es mayor que el del REG? movt REGO REGI aw. subwh REG2.0 U REG! - REG2 a W btiss ESTADO.O {$1 ESTADO = C = 1, brince wall ‘MAYOR {Como C = 0, REG1 > REG2 Comprobar que un registro tiene un contenido menor que otro Con las siguientes instrucciones se saltaa la subrutina MENOR cuando el contenido de! REGH es menor que el del REG2. movi REG2,0 REG? aW subwt REGT.O. REG2 -REG1 oW bts ESTADO,O {$i ESTADO<0> = C = 1, brinca call MENOR | C= 0, luego REG! < REG2 EXPLORANDO LA CAUSA DE LA INTERRUPCION Los PICI6X8X disponen de 4 fuentes 0 causas que provocan una interrupcién. Las cuatta mandan a la direccién 0004 H de la memoria de cédigo el flujo de control (Vector de Interrupeién), por eso hay que comenzar averiguando cual de las cuatro ha sido la causanie de la interrupeién para atenderla con su correspondiente rutina. Las mencionadas causas som 1." Interrupeién Externa por activacién de la patita RBOMINT (Seftalizador INTF). 24 Desbordamiento del TMRO (Seitalizador TOIF). 3" Cambio de estado en RB 7:4 (Sefializador RBIF). 42 Fin de escritura en EEPROM (Seiializador EEIF), MANEJANDO EL REPERTORIODEINSTRUCCIONES 188 {Los sehalizadores son bits que se ponen a | automticamente en cuanto se produce alguna dc las causas de interrupcién. Como se aprecia en la Figura 7.5, tres de estos sefalisador'e ne ubican en el registro INTCON y el cuarto en el ECON AA nitiarse en el Vector de Tnterrupeién la Rutina de Servicio de Ia Interrupcién hay que ‘veriguas Ia causa explorando tos cuatro sefalizadores, para saltr a la rutina espeeifica, que lla, maremnos EXTERNA, TIMER, PUERTAB y EEPROM, segtin que se hallen a1 los sehalizadores INTE TOIF, RBIF y EEIF, respectivamente. Se offece un programa que explora a los sehalion, doves en el orden comentado y al encontrar al primero que valga | envia el flujo de control a su rutina de tratamiento, Befsc INTCON/1} S1 INTr 40, beings call INTE i Como INTF = 7, se llama a inte desc INTCON,2 ; Si TOIF = 6, brinca call | reer Come MOIR = 1, se Llama a TIMER Befsc | INTCON,O 7 Si RETF = 0, brinca fall PUERTAB |; Como RBIF = i, (ee llama a BUERTAA bst ESTADO,S } Seleccidn del banéo 1 donde acca SECON Btise EECONI. 4) 7 Si BRIG) < 0, brinca edd PRPROW | //Coma/WRI# 46')1// se Ttama 4! BRPRON . PROYECTO PARA MANEJAR UN DISPLAY DE 7 SEGMENTOS Gon ste ejercicio se pretende manejar todo el conjunto de instrucciones del repertorio, dise- face fattware y confeceionar el software para controlar un visualizador de 7 seurnentos desde varios interruptores. ‘las 3 lineas de menos peso de a Puerta A de un PICI6X84 se conectan 3 interry For los que se introduce un nimero binario comprendido del 000 al 111 i ais lineas de la Puerta B se conectan los segmentos de un display, que como se aprecia mel esquema de la Figura 7.6, son 7 mas el del punto decimal, dp. lores INTCON (Direccién 0x0b, banco 0) EECONI (Direccién 0x08, banco 1) | Bat 75. Los cuatro sefulizadores de las causas de interrupciin se ublcan en tos registros INTCON y EECONL. | 156 MICROCONTROLADORES «PICs. DISER 10 PRACTICO DE APLICACIONES. PICLOXBa DISPLAY Kigura 7.6. Esquema del conexionado de fos tnterruprores que actian como perifericos de entrada y el display de 7 segmentos como periférico de salida. EI display es de cétodo comin, que supone que los segmentos se iluminan cuando la linea de ta Puerta B les introduce tun nivel alto. El ejercieie consiste en visualizar sobre ef display el nlimero decimal correspondiente al binario que se introduce por los tres interruptores. SOLUCION Vamos a dividir el programa en dos partes. En la primera realizaremos el tratamiento del display de 7 segmenios y en ta’ segunda el de los interruptores: Para visualizar en el display los 8 niimerox decimales del 0 al 7, correspondientes a las 8 combinaciones binarias de los interruptores, se utiliza una tabla de conversién de cédigos. El cédigo de 7 segmentos es el que tienen que sacar las 8 lineas de la Puerta B para que se ilumine el mimero decimal. (Tabla 7.7.) 100 1H om 1or Tabla de converstin del eédigo hinario de fos tres inserruptores al cédigo de 7 segmentos que se aplica al display a través de las lineas de la Puerta B. 1 ‘Tabla 7.7. MANEJANDO EL REPERTORIO DE INSTRUCCIONES 157 Si se conoce el niimero decimal que hay que visualizar y dicho valor se carga en W, se Hama a fa subrutina DISPLAY que contiene los 8 valores ordenados de la Tabla 7.7. Dichos valores estin implementados mediante instruceiones del tipo rettw &, siendo k el valor correspondiente al cédigo de 7 segmentos. retlw k retorna al programa principal y carga en W el valor k. Una vex realizada esta operacién bastard sacar W por la Puerta B para iluminar el numero decimal. EI programa que se propone parte del supuesto de que, inicialmente, et W se encuentra el ‘nimero decimal a visualizar. call display MOvWE BUERTAR 7 Llama a la tabla ‘displays } Al retornar de 1a subrutina el valor i de W se saca por 1a Puerta B bucle goto ucla bucle infinite + TABLA DE conveRst6n-: @isplay addvé pew, é pelew aw BA pel se incrementa con el valor 1 de W propercionaado un salto Fetlw OX3F ; Retorna Gon el valor dol cédigo del 0 retlw 0x06 Retorna con el eédigo del retlw Ox5b ; Retorna con el eédigo del retlw Oxdf } Retorna con et eédigo del retiw 0x66; Retoraa con el cédigo del retlw Oxéd } Retorna con el cédigo del retlu Ox?d ; Retorna con el eddigo del retlw 0x07; ‘Retoran con el eédigo del END El modulo anterior realizaba el tratamiento det display; falta explorar los 3 interruptores Para averiguar el valor decimal a representar. Se supone que un intettuptor cerrado equivale aL y abierto a 0. Por esta razén habri que invertir los niveles introducidos por RA2:0 y dese ués convertir a decimal el eédigo binario. Para efeetuar esta conversién se supone que el bit de menos peso correspond con el valor invertido que se introduce por RAO. Si dicho valor tale I el peso de este digito es 1. Si RAI = 1, el peso de este digito corresponde a2, y si RAZ = I,€l peso de este bit corresponde a 44». Se propone a continuacién la eabecera det programa del proyecto y la parte correspondiente a Jnexploracién de los interruptores y el cilculo del mimero decimal correspondiente que se earga en W, desde donde ya puede enlazarse con el médulo del DISPLAY expuesto anteriormente, bret | | p-a6cea b RADIK. HBX I) eg |) 6 t Bou 4 Fou zou) ba BURRTAA BQU | 08 PORRTAB EGU 06 158 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES } Registro auxiliar (1 Para gaitar el Vector de. |; tnterrupeién 7 $eleccién del banco 1 i 7 Puerta B saliaa ; Puerta A entrada Beleceién banco 0 Se cargan los interruptores en W Se usa un registro auxiliar Invertit los niveles de i interuptores elrw bites Si RAO = 1, brinca oo. Salta a explorer el bit adalw 2 Si BAD = 1, se suna 1 itll bees 2 $4 RAL = 1) brinca | goto bi 2 Salta a explorar el. ' # bite add} 0x02 3 $i RAL + 1, se suman 2 bit_2 | btfss) VALOR,2 ; 81 RaQ = 1, beinea : goto. vidual } Salta al nédulo del ne } display addin oxoa }SLRA2 01, se suman 4 4 visual call display } Salta al méduio del 7 display Al ejecutarse este médulo se consigue que el registro de trabajo W quede cargado con el valor que debe visualizar el display de 7 segmentos, por cuyo motivo la ltima instruccién llama a la subrutina display. En realidad, como el PIC opera en binario, el valor que contiene W es el mismo que el que se obtendria explorando los 3 interruptores ¢ invirtiendo su valor Sin embargo se ha realizado este inttil proceso (convertir e] valor binario en el mismo valor binario) para manejar instrucciones muy usuales, Lo que perseguimos es que intente probar el programa, y de lo que nos alegrariamos es que no le funcionase, porque trampas, si no las hay, aparecen solas. Asi que a trabajar, porque si logra implementar el hardware y el software de este ejercivio y le funcionan correctamente, jES UN ARTISTA! SIMULANDO CON EL SIMUPIC’84 Para simular este programa haremos uso de la ventana de «visién externa» del SIMUPIC, de Ia introduecién de sefiales mediante las teclas de funcién, de la Tabla 7.7 de este libro y de una gran dosis de paciencia. MANEJANDO EL REPERTORIO DE INSTRUCCIONES 189 El simulador no dispone de un display de siete segmentos, de modo que tendremos que pronptObar que la salida en binario es correcta (por eso necesitamos la Tabla 7-1), Se carga el programa SEPTIMO-ASM y se modifica el contenido de la Puerta A. (Figura 7.7) Se introduce el valor binario que se desce en los tres bits de menos pese de le Puerta A y se ejecuta el programa PROGRAMANDO EN C Este programa puede confeccionarse en C de la siguiente manera: {* SlpTIMO.c: Programa que explora él contenido de tr “ 7h qearuptores en RAO, RA1 y RAZ y muestra el reauivado «/ /* en un Aieplay de siete segnentos en RB vy Hinclude <16c¥4.us fhite puertad < 05/74 posicién'de Ya puerta a +/ Gite PMBYRAB (31/06 /,/4/Bosiatan dasa puerta aay “Void main( vosa i 4 , be temp = 0, tablalain{ Ox3P, 0x06, 0x58, onan, a, x66. Ox6D, 0x7D,.0x07 }; “int indice ~ 0, i ase tes a Oxte 7) hiaeta'n son'evnlvads’ ae eutrada */ eas Pr rot 1 1s Sueded one igutaaw para antiga 4) eee co yreeteetey ) 74 ae ‘tempi omenta ta’ ederaaaae pak) AGI bit rest (vemp, 09.) inate eo 1; Pil (biteeseccemp. 1) ) indice «= 2; fat ( bitcbest (temp, 2°) ) dndice say ee tablet indices INT. Modificacton de los valores de los registros con et SIMUPIC. 160 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES Hemos utilizado un array tradicional en lugar de una tabla que haya que recorrer mediante saltos, método que resulta bastante més sencillo pero que consume memoria RAM. Por otra parte, el céleulo del valor decimal introducido por la puerta A se sigue haciendo mediante una serie de condiciones y sumas similar a la programada anteriormente en ensamblador, PROBANDO EN EL MICRO’PIC TRAINER Para probar nuestro programa con el Miero'PIC Trainer se procede de forma parecida al SI MUPIC, pero usando el display de la propia placa. Cargar el programa en el PIC de la placa y conectar el display de siete segmentos mediante el jumper correspondiente. El display deberd visualizar el numero que se esté introduciendo por los interruptores RAO, RAL y RA2. gSe atreve con esto? Ahora que sabemos manejar un display de siete segmentos, sabemos hacer temporizaciones y no tenemos ningin problema a la hora de leer interruptores, le proponemos un cjercicio que combina todo. trata de confeccionar un programa que lea tres interruptores en la Puerta A, situados en RAO, RAL y RA2, y que introducen un 0 al estar cerrados y un 1 al estar abiertos. Contar en splay concetado a la puerta B (tal y como se muestra en la Figura 7.6) los valores des- de e1 0 al introducido por los interruptores de fa Puerta A a intervalos de 500 ms. Ejemplo: si se introduce el valor «011», en el display deberi aparecer «-1-2-3-0- 1-2-3...» con una pausa de 300 ms entre niimeros. Suponer que el PIC va a funcionar a una frecuencia de 4 MHz y reali- zar la temporizacién mediante interrupciones. Tampoco estaria de mas que utilizase el «Perro Gardin, Existe una solucion a este ejercicio en el disquete bajo el nombre SEPTIMO2.ASM. Y DISENO HERRAMIENTAS 3 DE PROYECTOS ¢ 8.1, FASES DE DISENO En el despertar del siglo xx! asistimos a una impresionante carrera mundial por ineorporar nnicrocontroladores a los productos de mayor consumo para mejorar la imagen, las prestacio- nes, el tamaiio, e1 consumo y el precio. Cada nuevo disefio nace con una idea y termina con el prototipo que la implementa. Du: rante exe proceso suceden ordenadamente una serie de etapas que hay que cubrir pata th un final feliz. En el desarrollo de cada fase se utilizan un conjunto de herramientas hardware y sofiware, que segtin st potencia reducen mas © menos el tiempo que se consume en completar- la, Pero, aunque sean muy valiosas dichas herramientas, no hay que olvidar que, al igual que con la mayoria de las cosas en nuestro mundo, hay dos pilares fundamentales: 1 La IDEA Spo la imaginacién del diseiador pone limites a un proyecto, 2." EITIEMPO a voracidad del mercado es tan agotiante que cuando nos piden hoy un proyecto, nos exigon que lo hayamos entregado ayer, Con este panorama de trabajo se deben manejar excelentes herramientas que sean capaces ‘de mejorar la idea inicial en ef minimo tiempo. Hasta hace poco, tnicamente las grandes em- presas podian soportar los grandes desembolsos econémicos que exigia la adquisicion de esas hetramientas. Actualmente, los fabricantes de chips se van dando cuenta que para venderlos por cientos de millones de unidades tienen que facilitar y popularizar su empleo y poner a Aisposicién de los usuarios los medios que necesitan. ‘Microchip sc ha esforzado siempre en atender las posibilidades de los profesionales particu lares, y puede ser que ésta haya sido la razén de haber escalado puestos en el ranking mundial de venta de microcontroladores durante la década de los noventa y ocupar uno de los puestos de cabeza, La disponibilidad de herramientas eficaces y econdmicas justifica la espectacular 161 HERRAMIENTAS Y DISENODEPROYECTOS 163 Tanto el organigrama de la Figura 8.1 como la tabla de la Figura 8.2 se han hecho pensan- do en personas particulares que no dispongan de la herramienta de trabajo por exceleneia, el «emulador en circuito», cuyo coste suele ser superior a los 1,000 dolares, No obstante, con las herramientas que se proponen se pueden alcanzar las mismas metas, de manera mas artesanal y con igual precisién y eficacia La Figura 8.2 cont fase de un disefio con mi ie una tabla que describe las earacteristicas fundamentales de cada rocontrolador, cuando no se dispone de un «emulador en circuito». 8.2. HERRAMIENTAS ACCESIBLES Se describen modelos comerciales de las herramientas hardware y software empleadas en los disefios «humildes», que pueden adquirir muchas personas a nivel particular. = eo a ce fn [am = |S [ee a | [see | — | 2 ascent [em ie el Es = Figura 8.2. Tubla que muesira algunas caracteristicas de cada fase de un proyecto y las herramientas que se utilizan 164. MICROCONTROLADORES «PICs, DISENO PRACTICO DE APLICACIONES 8.2.1. La cabeza Es una herramienta que tenemos todos, pero es la més importante, Con ella se puc la clave del éxito, que es la idea, y también puede suplir y resolver carencias y dificultades que se presentan en todos los disefios, Se usa en todas las fases y de su rendimiento depende todo el trabajo. Cuide bien su eabeza, porque con solo una buena idea que le proporcione puede ser sufi ciente. 8.2.2. Editor de textos Concebida Ia estructura basica de la aplicacién, se puede atacar el desarrollo del software y del hardware, Con un equipo de especialistas estas dos partes se atacarian en paralelo, pero si cel equipo es Va., como pasa a menudo, no se preocupe. No tendré que compartir éxitos y fracasos, Le recomendamos que si esté solo comience confeccionando el software. Tendri que s- cribir el programa de control de la tarea, para lo cual precisard de un editor de textos que irabaje con caracteres ASCII E1 mas a mano es el propio editor del sistema operativo MS- DOS de su computador. Teclee EDIT, ejecute y estard dentro de dicho editor. 8.2.3. Ensamblador 0 Compilador En el editor tiene que ir tecleando el programa usando las instrucciones del lenguaje que elija Asi creara el programa fuente. Dicho programa hay que traducirlo a cédigo binario © cédigo ‘maquina para cargarlo en la memoria de instrucciones del microcontrolador y asi poder eject tarlo el procesador. A este programa ejecutable por el microcontrolador se Hama programa objeto. En los diversos ejercicios que vamos presentando en todos los capitulos del libro hemos tratado de resolverlos con lenguaje Ensamblador y con C, para comparar los resultados. Tam lenguajes muy féciles, como el BASIC, que podria utilizar si no es un experto en . El lenguaje que le recomendamos es 1 Ensamblador; con él obtendra el minimo ‘e6digo y asi necesitara menos capacidad de memoria y menos tiempo para su ejecucion. Pero Va. es libre Microchip ha ereedo un lenguaje y el correspondiente programa traductor MPASM, que es el que hemos utilizado en este libro. También para los PIC la empresa Parallax dispone del programa Ensamblador MPASM, cuyos neménicos son similares a los utilizados por Intel. Si trabaja con un lenguaje de alto nivel, como el C, tiene varias opciones de adquirit un compilador que lo traduzea a e6digo miquina. Destaca el compilador de C creado por Byte Craft, cuyo coste ronda los 1,000 délares. Otro mas barato y muy eficaz es el de Ia empresa CCS, que distribuye en Espanta Microsystems Engineering. En EE.UU, hay bastantes empresas que oftecen compiladores ¢ intérpretes del lenguaje BASIC, entre las que se distinguen Parallax, microEngineering Labs y VersaTech, En Eu- ropa este lenguaje no tiene tanta aceptacién HERRAMIENTAS ¥ DISE ODEPROYECTOS — 165 8. . Simulador software Es un programa que reproduce por software cl comportamiento del microcontrolador en ka eiecucién de un programa, presentando en la pantalla del PC el estado de todos los registros y Tecursos. No funciona en tiempo real al estar implementada la simulacién con software. Tan Poco puede adaptarse con periféricos externos, Su empleo no exige ningun hardware y es muy prictico en la primera fase de depuracién del programa. Elimina muchos errores que agilizan el desarrollo posterior. Los simuladores software no estan recomendados en aplicaciones en las que el tiempo sea un pardmetro estrieto y determinante, asi como en aquellas que tengan mucha dependencia con el mundo exterior. Microchip tiene el simulador MPSIM para los PIC y Microsystems Engineering ha creado cl simulador SIMUPIC’84, s6lo aplicable a los PICI6X84, pero de un valor diddctico y pro, festonal extraordinarios. Su bajo coste lo hace muy recomendable en formacidn y disedo con ¢sos modelos coneretos de PIC. En la Figura 8.3 se muestra una pantalla del SIMUPIC'84, en la que puede apreciarse que el Meni Principal dispone de todas las fases para la confeceion del software. Tiene ventanas en las que sc visualizan los estados de registros, posieiones de memoria, cl programa ensamblado y desensamblado, asi como la presentacién del estado lagi co que tiene cada una de las patitas del PICI6X84. 8.2.5. El grabador El programa objeto, 0 sea, en cédigo maquina ejecutable, hay que escribirlo en la memo- 2 k¢ instrucciones del microcontrolador. Para realizar esia operacidn se necesita un «pra. bador» Un grabador consiste en una tarjeta clectrénica que soporta varios zécalos con diferente niimero de patitas, en los que se introducen diversos tipos de microcontroladores. Dispone de Cireuitos auxiliares y de estabilizacién de la alimentacion. La grabacién se controla mediante un Programa de comunicacion desde un PC que se adapta al grabador por el puerto paralelo, ia | Figura 8.3, Pantalla principal del simulador SIMUPIC'S4. Se trata de un excelente, didiictico y econdmica simulador software para los PICI6XS4. 166 — MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES E] grabador Micro’ PIC Programmer es un buen exponente de este tipo de herramientas y ¢8 capaz de grabar todos los PIC de la gama media de 18, 28 y 40 patitas. (Figura 8.4.) 8.2.6. Sistema de desarrollo Fs una herramienta completa, muy prictica y econémica que sustituye de alguna forma I carencia del emulador en circuito. Consiste en una tarjeta de circuito impreso controlada por el puerto paralelo de un PC y que aloja un grabador de microcontroladores, eircuito estabiliza- dor de tensiones de alimentacién y gran parte de los periféricos més usados en las aplicaciones con microcontroladores. Su idea de aplicacién es grabar inicialmente el programa en Ia me- moria del microcontrolador y después conectarle los periféricos disponibles para ejecutar el programa en tiempo real y con total exactitud. Los errores hardware y software pueden resol- verse sobre Ia misma tarjeta y volver a ejecutar el programa hasta su correcto funcionamiento Con un precio muy atractivo el Micro*PIC ‘Trainer de Microsystems Engineering con- tiene todo lo necesario para desarrollar un proyecto con un PIC de la gama media de 18 0 28 patitas. Posee un grabador de PIC, que en caso de ser tipo PICI6X84 también es borrador, un circuito de estabilizacion de las tensiones utilizadas y un conjunto de periféricos (interrupto- res, pulsador, potencidmetros, leds, display de 7 segmento y pantalla LCD), con los que se puede editar, depurar, ensamblar, grabar, comprobar el funcionamiento real, borrar y repetir el proceso hasta tener a punto el proyecto. (Véase Figura 8.5.) 8. Consiste en una placa de circuito impreso donde viene montado el zécalo del microcontro- lador, la circuiteria auxiliar y la estabilizacién de la alimentacion. Ademas, dispone de una Tarjeta de prototipos Figura 84. Fotografia del grabador Micro PIC Programmer disenado por Microsystems Engineering HERRAMIENTAS Y DISENO DE PROYECTOS 167 cere) | SES cre tee Figura 8.5, Fotografia del sistema de desarrollo Micro'PIC Trainer Zona agujereada para soportar y conectar los periféricos especificos de la aplicacién. Insertan« soauaicrocontrolador con el programa grabado en su zécalo queda completado el prototips definitive. Confeccionado y depurado el programa, grabado el microcontrolador y comprobado el comportamiento real de gran parte del software mediante los perifricos del sisterma dhe de olla, se pasa al montaje del prototipo, Una parte de la circuiteria del prototipo siempre ea igual, porque es la que corresponde a la alimentacién y la auxiliar que acompaiia al microcon trolador (cristal y Reset). Lo que cambian son los periféricos a controlar y que se conectan con {as patitas de E/S. Para ellos se destina el area libre agujereada, Fn la Figura 8.6 se muestra una fotografia de la tarjeta de prototipos PICI8-ME de Miz crosystems Engineering, que es la que hemos usado en la implementacién de los ejersicios presentados en este libro. Esti montada sobre un pupitre de metacrilato que también contiene cl Micro'PIC Trainer y un transformador de alimentacién, configurando una utilisima hermes mienta de laboratorio, 8.3. EMULADOR EN CIRCUITO ES abs herramienta cara pero muy potente, que permite realizar un seguimiento completo y rapido de todas las fases de un proyecto, Con ella se reproduce el comportamiento del micr. controlador, pero ahora al emplearse hardware y software se consigue una similitud total de las functones. Se trabaja en tiempo real y se pueden conectar los periféricos externos a controlay para analizar los resultados de forma idéntica a la que se produciria si fuese el microcontrola, dor emulado el que estuviese ejecutando el programa de la aplicacién, 168 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES Figura 8.6. Fotografia de ta tarjeta de protoripos PICIS-ME sobre un pupitre de metacrilato que soporta al Micro 'PIC Trainer y un sransformador de alimentacién. Es un equipo electronico controlado mediante un programa desde un PC y del que sale una sonda que reernplaza al microcontrolador en ia tarieta de prototipos, Las ayudas que ofrece ‘al disenador son excelentes al integrar todos los programag que se precisan, permitienda luna depuracién potente del hardware y del software asaciados al proyecto. En Ja Figura 8.7 se muestra la fotografia def emulador en tiempo real ]CEPIC-Jnr-5X de empresa R. F. Solutions, que es capaz de emular a los PICI2C5XX y PICL6C5X hasta una frecuencia de 20 MHz. La Figura 8.8 presenta una pantalla de trabajo de dicho emulador en la que se recoge una amplia y valiosa informacién para la depuracién del proyecto. 8.4. INTRODUCCION AL DISENO DE PROYECTOS: PUESTA EN HORA Presentamos algunos proyectos que hemos considerado suficientes para abrir la mente y esti- ular la voluntad para que cualquier persona se decida a construir el primero. Para no tener que emplear més que un microcontrolador siempre se realizarén con un PICL6X84 y el montaje se hara sobre una tarjeta de prototipos PICI8-ME, de forma que si se anima y hace varios precise de los minimos componentes y no se gaste mucho dinero. Para HERRAMIENTAS Y DISENO DE PROVECTOS — 169 Figura 8.7. Fouografia del hardware, software » documentacién que componen el emulador en cirewito ICEPIC-Jar-5X de R. F. Solutions Figura 8.8. Pantalta de trabajo det emulador ICEPIC- Jn: 170 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES soportar las fases de los disefios hemos utilizado el Miero"PIC Trainer, el simulador SIMU- PIC’84 y el Ensamblador MPASM. Para poner de relieve algun un reloj digital Aplicaciones derivadas del control del tiempo hay muchisimas y en la Figura 8.9 se mues- tra la fotografia de un interesante kit comercial de la empresa CEBEK, que es un temporiza dor digital para monederos de méquinas que funcionan por tiempo. Cada moneda que se intro- due afiade cierto tiempo de funcionamiento de 1a maquina. Seguro que conoce y ha manejado muchos de estos «sacacuartos». Las entradas del monedero de la Figura 8.9 son dos pulsadores. Uno simula las monedas que se introducen y el otro es la puesta en marcha, Cada nueva moneda supone un incremento del tiempo de funcionamiento cuyo valor se selecciona con cuatro microinterruptores. Hay dos periféricos de salida. Uno consiste en un visualizador de tres digitos que puede presenta hasta un tiempo maximo de 999 minutos. EI otro es un relé que se activa cuando se presiona el pulsador de puesta en marcha y se desactiva cuando el tiempo Hega a cero, Regula el funcio- namiento y la parada de la maquina, Existe una EEPROM externa de datos para guardar el tiempo que queda iil si se desconecta la alimentacion. En la Figura 8.10 se offece el esquema de un reloj digital gobernado por un PICL6CS4 Las cuatro lineas de la Puerta A regulan los transistores de activacidn de los displays de 7 mentos. Las lineas RBO, RBI y RB2 se hallan conectadas a tres pulsadores para el ajuste de icas de los disefos comenzamos poniendo en hora caracteris Figura 8.9. Fotografta de un temporizador digital para maquinas que funcionan con moneda, construido con un PICI6CSS y comercializado por CEBEK FF HERRAMIENTAS YDISENO DE PROYECTOS 171 Figura 8.10. Esquema electrénico de un reloj digital basado en un PICI6CS4, horas, minutos y segundos. También RB1 y RB2, junto con las 5 lineas de mé Puerta B, excitan a los segmentos de los displays Para que aprecie las ventajas de usar una tarjeta de prototipos hemos montado el reloj digital sobre una placa de propdsito general, que se muestra cn la Figura 8.11. El enorme iS peso de la Figura 8.11, Montaje det reloj digital sobre una tarjeta de eircuito impreso de propésito general Tiempo, coste, fallos y presentacién hacen que este procedimiento sea poce interesante 172 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES tiempo que se malgasta en situar y conectar los componentes, los posibles errores de montaje, el coste similar de ambas tarjetas y la mediocre presentacién del prototipo no hacen recomen- dable utilizar este procedimiento. Usando la tarjeta de prototipos PICI8-ME se reducen al minimo el tiempo y los fallos del montaje. Las patitas de F/S del PIC estén perfectamente sefializadas y accesibles, hi inmediata la conexidn de los periféricos. El coste de la tarjeta PICI8-ME es similar a la de una de propésito general del mismo acabado, Finalmente, Ta presentacién tiene una imagen mas profesional y el riesgo de averias es nulo, (Figura 8.12.) ‘Ora ventaja de las tarjetas de prototipo es que pueden usarse para muchos disefios, ya que finalizado uno de ellos pueden dessoldarse los componentes. Con este f able montar los periféricos con rapinado, En este proyecto el médulo principal consiste en conseguir un tiempo patrin de 1 segundo que vaya inerementando el contador de segundos. Al alcanzar el valor de 60 se pondra a cero el contador de segundos y se incrementari el de minutos. El de minutos pasaré a cero al Megat 60 ¢ incrementard las horas, y éstas pasardn a cero al llegar a 24. No hemos juzgado intere- sante ineluir el programa, pero si le interesa puede solicitarlo a Microsystems Engineering, que también comercializa el kit y el PICL6C54 grabado, ciendo Figura 812. Fotografia det rele) digital montado sobre una tarjeta de prototipos PICIS-ME. HERRAMIENTAS ¥ DISENO DE PROYECTOS 173 8.5, UN DADO ELECTRONICO Se describe la construccidn de un dado electrénico que simula las seis caras de los también puede «tirarse» para sacar un nimero aleatorio del | al 6. Para la inte trénica usaremos un display de 7 segmentos sobre el que se visualizari el niimero de cada tirada y, también, un pulsador gue indigue el momento de la tirada. En la Figura 8.13 se mues- tra la fotografia de un kit comercial basado en el PICI6CS4, que implementa esta aplicacién sobre una eajita de baguelita que contiene la pila de 9 V que precisa su alimentacién, Gore bi Onna eee eee) Figura 8.13. Fotografia del dado electrinico comercializado en kit (DIY KIT 69). Et display de 7 segmentos y el pulsador de tirada se controlan con un PICI6CS4. La Puerta B del PIC, que en Ja fase de disefto y en It comprobacién en el Micro’ PIC Trainer puede ser un PICI6X84, se configura como Salida y sus lineas se aplican a los si mentos del display como se refleja en la Figura 8.14. La linea de menos peso de la Puerta A recibe el nivel logico del pulsador de tirada. PICTOXB4 - Tras man yt Figura 8.14. Conexién det PIC a los periféricos que configuran el dado, 174 MICROCONTROLADORES «PICs, DISENO PRACTICO DE APLICACIONES En la Figura 8.15 se presenta el organigrama resumido para el programa del dado. En la Figura 8.16 se oftece una fotografia de Ia implementacién especial del dado sobre tuna tarjeta de prototipos PICI8-ME de Microsystems Engineering. Lo mas llamativo es la sustitucién del display de 7 segmentos por un presentador que simula al display a base de numerosos leds. El programa lo encontrard en el disquete. En los juegos de azar hay jugadores de ventaja que hacen trampas. Una podria consistir en ‘modificar el programa para que cada cierto nimero de veces salga un niimero dado, 0 incluso para generar una secuencia de nimeros preestablecida. Vd. no debe emplear sus conocimien- tos para lucrarse de forma poco honesta. Hay infinidad de juegos que estén esperando su aportacién para que se jueguen més, sean Figura 8.15. Organigrama general para ef programa del dado elecirénico. Cuando el pulsador no esti activado (RAO = 1) se van iluminando sucesivamente lox segmentos del display para dar cierta vistosidad al juego. HERRAMIENTAS Y DISENO DE PROYECTOS 175 Figura 8.16. Fotografia del dato electrénico montado sobre wna tarjeta de prototipos PICI8-ME. ais atractivos y hagan disfrutar mas a Ja gente. Las quinielas, la loteria primitiva, la bonoloto, las damas, la ova, el mus y el ajedrez le ne Ayiidelos; ademas de entretenerse puede entretener a los demas y, de paso, ganar algin premio pot su trabajo, 8.6. SEMAFORO REGULABLE Este seneillo proyecto va a permitir manejar tiempo y usar la memoria de datos EEPROM. Se trata de un semaforo corriente con tres luces: roja, verde y dmbar, que estan simuladas por tres ddiodos led de dichos colores. La luz ambar se enciende durante un segundo en ta transicién de las otras dos. (Véase Figura 8.17.) Mediante tres pulsadores, conectados a las tres lineas de menos peso de la Puerta A, se regula el tiempo que estardn encendidas las luces roja y verde. Interruptor RAO: Cuando introduce un nivel 1égico alto el sistema funciona en modo AJUSTE ¥ se pueden modificar los tiempos de las luces. $i introduce un nivel légico bajo funciona en modo NORMAL, Interruptor RAL: Con nivel alto regula el tiempo de la luz roja y con nivel bajo el de la verde. Interruptor RA2: Con nivel alto inerementa el tiempo de la luz seleccionada y con nivel bajo se decrementa. 176 — MICROCONTROLADORES «PIC». DISENO PRACTICO DE. APLICACIONES Fotografia de wna tarjeta PICI8-ME sobre la que se han montado todos los periferieos que conileva el seméforo, Las 8 lineas de la Puerta B se conectan a 8 diodos led integrados en una barra que tienen la mision de visualizar el nimero de segundos, de 1 a 8, que esta encendida ta luz bajo prueba. (Figura 8.18.) Figura 818. Esquema de un conexionade de un PICI6C84 con tos periféricos que implementa el seméforo HERRAMIENTAS Y DISENO DE PROYECTOS 177 La duraci6n establecida para el encendido de las luces roja y verde se registran en posicio- nes de kt memoria de datos EEPROM para no realizar una nueva reprogramacién cuando se desconecta la alimentacién, FI programa de esta aplicacién Io encontrar en el disquete del libro, 8.7, PRESENTADOR DE MENSAJES Es un buen ejercieio para experimentar el manejo de pantallas LCD, que en este proyecto se usan para visualizar diversos mensajes previamente grabados. Concretamente, se pueden vi- Sualizar hasta 8 mensajes diferentes de acuerdo con el eédigo binario que introduzcan tres interruptores, conectados a las tres lineas de menos peso de la Puerta A. La Figura 8.19 mues ‘tael aspecto de esta aplicacién montada sobre una tarjeta de prototipos PICI8-ME y li F 0 el esquema de conexionado. El programa de esta aplicacién, debidamente comentado, se halla en el disquete, donde también podea encontrar el programa HOLA, que contiene las principales rutinas basicas que se neeesitan para manejar la pantalla LCD. 88. CLAVE DE ACCESO. Como iiltimo proyecto se describe una aplicacién que emplea a los dos periféricos mas clisi 60s en el control de los microcontroladores: teclado y pantalla LCD. Mgura 819. Fotografia det presentador de mensajes implementado sobre wna tarjeta PICI8ME 178 MICROCONTROLADORES «PIC», DISERO PRACTICO DE APLICACIONES Esquema de conexionado del presentador de mensajes: 20. Figura EY HERRAMIENTAS Y DISERO DE PROYECTOS 179 *ceso a un recinto se debe pulsar sobre un teclado la tecla A seguida de otras cuatro con diferentes digitos, que constituyen la clave. Si la clave es correcta se activa durante un segundo un relé, conectado a la linea RA4, que abre la puerta Se dan tres oportunidades para introducir la clave correcta. Ademds, se utiliza un zum! dor piezocléctrico que genera un sonido «beep» tras la pulsacién de cada tecla Con la tecla C se puede cambiar la clave y la pantalla LCD gen serie de mensajes durante la operacién. La clave queda registrada en Ia memoria EEPROM de datos de forma permanente. La Figura 8.21 muestra la disposicién de los periféricos sobre la tarjeta PICI8-ME y la Figura 8.22 offece el esquema de conexionado de los mismos con el PIC El programa de la clave se ha incluido en el disquete. Ahora le toca a Vd. intentar repetir estos diseiios 0, jmejor aiin!, crear otros nuevos, Si en algo le podemos ayudar nos brindamos a hacerlo. Nuestras ditecciones de correo electronica Son jmangulo@inf deusto.es y msysengi@arrakis.es Mgwra 8.21. Forografia del sistema de control de acceso montado sobre una tarjeta PICIS-ME GUIA RAPIDA A DEL PICI6x84 INTRODUCCION Todos los programas, ejercicies y proyectos de este libro pueden ser implementados con un PICL6X84, bien sea la version EEPROM con el PIC16C84, o la version Flash con el PICI6F84. La razén de esta eleceién es que sobre su memoria de instrucciones se pucden grabar y borrar les programas. Ambos modelos de microcontroladores son idénticos, excepto en los Siguien- tes detalles: 1° La memoria de instrucoiones del PICI6C84 es de tivo EEPROM, mientras que la del PICIOF84 es Flash, 2 La memorie de datos RAM de! PICIBC84 tiene 36 bytes y la del PICTEFES tione 68. 3% Einivel activo del bit PWRTE ests invertido en ambos modelos. Este bit permite o prohibe el funcionamiento de un temporizadior (POWER-UP) que acta retrasando el funciona miento del PIC al producitse un Reset por conexién de la alimentacion, 4° Enel PICI6F84 so han mejorado slgunas caractoristicas eléctvicas. Presentamos las caracteristicas mds usadas en la programacién y manejo de estos modelos. en las aplicaciones, para que al trabajar con ellos se localicen répidamente los datos precisos. Sabiendo manejar el PIC6F84 es muy facil pasar a usar los potentes PICI6F87X CARACTERISTICAS GENERALES © Memoria de programe de 1 K x 14. El PICI6C8S de tipo EEPROM y el PICI6FS de tipo Flash, + Memoria de datos EEPROM de 64 bytes. ‘+ Memoria RAM de propésito general de 36 bytes en el PICIEC84 y de 68 bytes en ol PICIBFBs. 419 lineas de E/S con control individual de direccidn Frecuencia méxima de funcionamiento de 10 MHz, 181 182. MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES ‘+ Cuatro fuentes de interrupcién: '2) Activacion de (a patita RBO/INT. b} Desbordamianto de! TMAO. ©) Cambio de estado en alguna patita A'B7-RB4. d) Fin de la eseritura de la EEPROM do datos. ‘+ Temporizador/Contador TMRO programable de 8 bits. erro Guardién, "+ Fncapsulado de 18 patitas. DIAGRAMA DE CONEXIONES La distribucién y denominacién de las patitas del PICI6X84 se presenta en la Figura AL FUNCIOD os DE LAS PATITAS T/CLKIN: Entrada externa de los impulsos de reloj 0 cone: con el cristal de cuarzo. OSC2/CLKOUT. Salida de Fosc/4 en modo oscilador R-C 0 conexidn con el cristal de cuarzo. VPP/MCCLR#: En modo grabacién por esta patita se introduce la tensién VPP (12 - 14 V DC), En funcionamiento normal esta patita soporta la peticion de Reset. RAO - RAS: Lineas de BJS de la Puerta A. RAS/TOCKT: Linea de E/S de la Puerta A 0 entrada de impulsos de reloj para TMRO. RBO/INT; Linea de E/S de la Puerta B o peticién de interrupcién. RBI - RBZ: Lineas de E/S de la Puerta B. MEMORIA DE PROGRAMA ‘Tiene implementadas | K palabras de 14 bits cada una, ocupando las direcciones comprendi- das entre la 0x0000 y la Ox03FF. Los modelos de la gama media alcanzan 8 K de capacidad maxima, (Véase Figura A.2.) RAZ > RAS > RAAITOCK > \VppiMcurt —> pal — RAD — Osc/ciKIn — oscxictKour vss —> — voo RBOMNT +> << 207 RB) +> — RB6 R82 +> <> RBS RB <> kas Figura A.1. Disiribucién y denominacidn de las patitas del PICLOXS4, APENDICE A -GUIA RAPIDA DEL PICIOX84 183 000 IMPLEMENTADO om osFr CAPACIDAD we MAXIMA, IMPLEMENTADO FFF 2000 PALABRAS IDENTIFICACION MEMORIA DE CONFIGURACION RESERVADO RESERVADO TALAGRA 2007 |__CONFIGURACION RESERVADO. 2008 No. IMPLEMENTADO arr igura A.2. Organizacién de la memoria de instruceiones de las PICIOXS4. Las posiciones ID de Identificacién sirven para que el usuario grabe en sus 4 bits de menos peso los cédigos que dese La Palabra de Configuracién sélo tiene 5 bits vilidos y sus simbolos y misiones se mues- tran en la Figura A.3. MEMORIA DE DATOS RAM Consta de dos bancos de 128 bytes cada uno. En el PICL6C84 sélo estin implementadas las 48 primeras direcciones de cada banco. En las 12 primeras se ubican los registros de propésito especitico (SER) y en las 36 siguientes los registros de propésito general (GPR). Sin embargo, los 36 registros de propésito general del Banco | se mapean sobre el Banco 0, dejando reduci dos a 36 los registros operativos de este tipo. En el PICI6F8¢4 la organizacién de la RAM es 184 MICROCONTROLADORES «PIC», DIS! {0 PRACTICO DE APLICACIONES. 13 [ae CP: Proteceiin de cédigo (CP = 0 activado) PWRTE: Control de temporizador *POWER-UP® (En el PICTOC8S PRT activado, en el PICIBFB4 al revés) WDTE: _Contiol del Perto Guardiin (WDTE = 1, activado) FOSCLFOSCD: SelecciGn ascilador: OOLP, O1XT, W:HS, TRC Figura A.3. Palabra de Configuracién, similar, pero los registros de propésito general llegan a ser 68 en cada banco, siendo efectivos sélo 68, puesto que los del Banco 1 se mapean sobre el Banco 0, (Véase Figura A.4.) MEMORIA DE DATOS EEPROM Los datos guardados en esta memoria no se pierden al quitar Ia alimentacién. Consta de 64 bytes que ocupan direcciones comprendidas entre 1a 0x00 y la 0x3F. Para acceder a esta memoria en lectura o escritura hay que utilizar los registros de control: EEDATA, EEADR, EECONI y EECON2 El proceso de escritura de una posicién de esta memoria es lento y dura unos 10 ms. Cuan- do finaliza se activa un sefializador y se puede provocar una interrupeion. PUERTAS DE E/S Hay dos puertas de E/S: Puerta A y Puerta B. Puerta A * Consta de 5 lineas denominadas RA4 - RAO. © RAB - RAO actiian como lineas de E/S digitales configurables de forma independiente © RAATOCKI, adennis de tinea de E/S, puede funcionar como entrada de los impulsos de reloj para et TMRO. © Sia un bitde TRISA se pone a 1, la linea de E/S correspondiente de la Puerta A actita ‘como entrada y si se le pone @ 0 funciona como salida ‘© Al leer una entrada se lee el estado actual de la patita © Las lineas de salida estén lacheadas y en ellas se mantiene el timo valor que han sacado. Tras un Reset todos los bits de TRISA se ponen a 1 y las lineas de la Puerta A quedan configuradas como entradas. © Cada linea de la Puerta A suministra una corriente maxima de 20 mA y puede absorber shasta 25 mA. La corriente maxima total que puede absorber ta Puerta A es de 80 md y la que puede suministrar de 50 rid. Puerta B © Cuando las lineas de la Puerta B se configuran como entradas es posible acoplarlas una resistencia «pull-up» al positivo, poniendo a cero el bit 7 (RBPU) del registro OPTION. APENDICE A -GUIA RAPIDA DEL PICIOX84 185 BANCO0 _BANCO1 [ea aay ECON? 0x00 sek ——____, DIRECCIONES MAPEADAS, SOBRE EL BANCO Pici6res 07 0 Figura Ad. Organizacion de ta memoria de datos RAM. En el PICIGCS4 sélo hay 36 registros de propisito general, mientras que ef PICIOF8¢ hay 68. * La Puerta B puede absorber una corriente maxima de 150 mA y suminisirar un total de 100 mA. * RBOANT también puede actuar como tinea de peticién de interrupeién + RB7- RBA pueden programarse para soportar una mision especial cuando estin confi guradas como entradas. Si cambia el estado légico de una de ells se provoca una interrupcién, 186 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES © Para la grabacion en serie det PIC se usa la patita RB6 para los impulsos de reloj y la RBZ para la entrada de datos. REGISTROS DE CONTROL. En las figuras A. a la A.9 se expone grificamente la distribucién y 1a misién de Tos bits de los registros de control (SFR) mas importantes, que son: / Sefalizador de acaneo en el octavo bit 1 = Acarreo en la suma y no en la rests (0= No acarreo en la suma y sien la esta Sefalizador de acartco en ef 4 bit de menos peso 1 = Acareeo en a sum (= No-acartgo gn la suma Ela resta lo contrario. Senalizador de coro 1 = El resultado de una operacién es cero tesultado de una operacin es datinto de cero Power Bown ras conclar VD0 0 e)ecutar “CLRWOT™ 0 Al ejecutar la instuccton “SLEEP Timer Out 1 = Tras conectar VoO o ejecutar ‘CLRWDT" 0 "SLEEP" ebasar el tiempo del "WOT* £RP<1:0>: Seleccidn de banco para el diveccionamiento directo 11: Banco 3 1180-1FFh) 10: Banco 2 (100-17) 01: Banco 1 (80-FFh) (0: Banco 0 (00-7Fh) Cada hanco es de 128 bytes El PICTOCAA sélo usa el RPO y RPI debe mantenerse a caro Seleceidn de bancos para el drecclonamiento indivecto (= Baneos 0 y 1(00-FFR) = Bancos 2 y 3 [100+1FFh) EIRP no se usa en el PICT6CEs y debe mantenerse a cero ‘Aciivacion global de interupeiones 1 = Concedido el permiso de interupeiones 0 = No hay posibilidad de interrupciones Registro de ESTADO. APENDICE A -GUIA RAPIDA DEL PICI6X84 187 2) Registro de ESTADO (Figura 4.5) ) Registro OPTION (Figura A 6) 1 Registros de Direcoionamiento Directo ¢ Indirecto (Figura A.7) ) Registro de control EECONT para la EEPROM (Figura A.8) 9) Registro de control de ls intertupciones INTCON (Figure A.) P52: P50 —_-Rango con e! que actia e! Divisor de frecuencia P52 PSI Po Division del TMRO Division del WDT PSA: Asipnacién del Divisor de frecuencias 1 = El Divisor de frecuencia se le asigna al WOT = El Divisor de frecuencia se le asigna al TMRO TOSE: Tipo de flanco en TOCKI 1 Incremento de TMRO cada flanco descendente = Incremento de TMRO cada flanco ascendente TOCS: Tipo de reloj para el TRO, Pulsos introducidos a través de TOCK! (contador) = Pulsos de reloj interno Fosc/4 temporizador) Tanco activo interrupeion externa lanco ascendente: Figura A.6. Regisiro OPTION, 188 MICROCONTROLADORES «PIC ikecro. DISENO PRACTICO DE APLICACIONES INDIRECTO (FSR) Ac ; Tos 7 its de menos peso que frman el codigo OP de Ia instacelén, selecionan una de entre 128 posiciones diferentes de la memoria de datos. Los bits Rese del regio de estado (RPI:RPO) Seleccionan el bance, Para acceder al banco 1 es obligatoro poner previameniea tel bitRPO. ona ‘Si como apetando de una insiruccion se accede a regis INDF iposicion 0 area de datos), se accede Fealment 3 ja posicion que en exe momento indigue el Fegisto FSR (poscin 4 del rea de dato) Ls 7 bits de Frenos peso del (<6:0>) seleccionan la posicin; el bit ‘23> del FSR, junto con obit IP del regio de Estado (bit <7), seleccionan el banco. Enel PICTOCAS. slo ‘estan implementados los bancos 0 y 1, por lo que elit IRPdebevaler-O" Figura A.7. Regisiros de Direceionamiento Directo e Indirecto. Bits 7-5: Nomplementados. Se leen como 0 EEF: 1 © La esetura ha terminado ‘Sehalizador de itemupcién de la operacion de escritura La excriturm nose ha Lerminado @ ne ha comenzado WRERR: Sehalizador de wor 1 = La esertura ha terminado prematuramente (0= La escrtua se ha completado WREN: Activacin de escrtura 1 = Perio escribir 10 = Prohibe escribir en la memoria de datos EEPROM WR: Cont de escrtura 1 =Inicia un ciclo (0 = Prohibicidn de comienzo de ciclo de escrtura en la memoria ide la EPROM ‘Gorwrol de lectura 1 = Comienzo de lectura (0 = Prohibicin de comienco de lecura Figura A.8, Regisiro de comrol EECONT para ta EEPROM de datos. APENDICE A -GUIA RAPIDA DEL PICIOXS4 189 RBIF: —Sefalizador de estado de la Puerta B 11 = Cuando cambia de estado cualquier linea de PB (RB<7:4>). Se borra por software, 0 = Ninguna entrada de PB ha cambiado Senalizador dle estado de la interrupcl6n externa 1 = La entrada de la interrupcion se ha activado. Se borra por software. 0= No hay interru Seftalizador de rebosamiento del TMRO 1 = EI TMRO se ha rebosado. Se borra por software: (0 = EI TMRO no se ha rebosado Activacién de la interrupci6n de la PB Interrupcién activada Interrupcién desactivada ‘Ativacién de la interrupci6n EXTERNA, 1 = Interrupeién activada 0 = Interrupeién desactivada ‘Activacién de la intertupcién del TMRO 1 = Intetrupcién activada 0 = Interrupcién desactivada Activacion de la interrupcién de la memoria EEPROM 1 = Interrupcién activada 0 = Interrupcién desactivada ‘Activacién global de interrupciones 1 = Concedido el permiso de interrupciones 0 =No hay posibilidad «ie interrupciones Figura A.9, Registro de control de las interrupeiones INTCON. JUEGO DE INSTRUCCIONES En la Figura A.10 se ofrece el conjunto de las 35 instrucciones que componen el tepertorio del PICL6X84 190 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES A CT I a a CCC | roma t wore eet | a A A CC fom teer Pee [fea mmr eee a a a CCC [perpen eee Peapod [eee eee [rere [omens oe Pere pene mel [eeprom pa ee ep A CA | [eeepc a a CC Prone af orev re | [ercapenne Te [ep TRRTRICCONS DU AINCO SN TS TN [eee taprrmnneomnmef a fo eee af | [ae commer oe fo ee [penta mereimeneen fe tee [Rerap omens foe fem ee} | TRSTRUCCIONNS QUE MANGAN OPERANDOS INMEDIATOS [fare [ormacon [eros] roma aan [onnnzons| [ooert Pmmrmnene eC | [aon oman et A A A TC [aera [owcrnionoie meee [om et [ene Penrice | [emi Pome ef Figura A.10, GUIA DEL USUARIO r DEL SIMUPIC’S4 INTRODUCCION El Simupic’84 cs un programa cuyo objetivo es simular, en la medida de lo posible, el comporta~ miento de un microcontrolador PIC 6X84, en sus dos posibles versiones, ya sea 16C84 0 16FR4 ‘A pesar de que compite en prestaciones con muchos otros simuladores software del mer do, la principal caracteristica de este programa es su facilidad de manejo. Se logra reunir en un mismo programa unas clevadas prestaciones y un diseiio sencillo, que facilitan en todo mo: mento la comprensién de las operaciones que se llevan a cabo en un PIC real. Esto se logra, entre otras cosas, gracias a recursos como la Ventana de Visién Externa, en la que se muestra en todo momento el estado de las lineas de E/S del PIC. Otra caracteristica que hace facil el manejo de este simulador es que opera en un entorno de trabajo en el que estén integradas todas las herramientas para el desarrollo de un programa. Se puede llamar al Editor, al Ensamblador y, una vez obtenido el ejecutable, simularlo, Al tratarse de un simulador software, légicamente, la velocidad de ejecucién de un progra- ma es varias veces inferior a la velocidad en un PIC real. Simupic’84 dispone de algunas herramientas particulares, como los contadores de tiempo ¢ instruceiones. No es posible el uso de periféricos reales, ya que la simulacién es Hevada a cabo totalmente por software. INSTALACION La instalacién de este programa en el disco duro es muy sencilla y basta seguir las instruccio- nes que se indican en el Apendice E, el cual también describe el contenido del CD que acom- paia a este libro. Le recomendamos que siga el tutorial multimedia sobre el SIMUPIC’84 El editor y cnsamblador utilizados son el EDIT.COM del DOS y el MPASM de Microchip, Si se desean utilizar otros, se han de especificar en el fichero de configuracién Simupic.cfg. 191 192 MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES LA VENTANA DE MENU PRINCIPAL En esta ventana se presentan Las siguientes opciones: Asignar Nombre lamar al editor Ensamblar Cargar fichero HEX Opciones de simula Ejecutar ‘Trazar Visualizar registros Alterar registros in eeaayaene ESC Salida al DOS fro ete est Br aa ier feared Cire Wenoria ROW 10244 TNSTRUDEEON— MHERONTCD Figura Bl. Pantaita principal del simulador SIMUPIC'S. Para seleceionar una de estas opciones se debe situar sobre la deseada 1a barra sombreada ya continuacién pulsar . Otra forma de seleccign es mediante el raton 0 simplemen- te pulsando el niimero de la opcién elegida A continuacién se explica la misién de cada una de las opciones: 1, Asignar Nombre La funcién de esta opcién es dar nombre al proyecto que se va a realizar, No es necesario indicar la extensién, y en caso de hacerlo, el programa no Ia tendri en cuenta, tomando por defecto la extensién ASM para el fichero fuente y HEX para el ejecutable en formato Intel ‘generado por el ensamblador. APENDICE B - GUIA DEL USUARIO DEL SIMUPIC’84 193 2. Llamar al editor Mediante esta opeién se llama el editor de textos indicado en el fichero de configuracién simupic.cfg en su linea: «editor = prog.exe» Especificando a ruta, se puede utilizar cualquier editor de textos del mercado para confec- cionar el eédigo fuente del programa, aunque se recomienda el EDIT.COM del DOS. 3. Ensamblar Llama al ensamblador especificado en el fichero de configuracién simupic.cfg en la linea: «ensamblador = prog.exe» Asi se obtiene el fichero ejecutable, 4. Cargar fichero HEX Carga en la memoria de programa el ficheto *, HEX en formato Intel, generado por el ensam- blador. 5. Opciones de simulacién Da paso al siguiente meni 1. Reser en ef PIC: Se genera en el PIC el Reset producido por MCLR (fuente externa de Reset). El PCL se pone a cero y si existia algin breakpoint, se mantiene. Poner a0 contadores: Pone a cero los contadores de tiempo e instrucciones de la ventana de contadores. Mediante el uso de estos contadores se puede llevar un completo control de las tempo- rizaciones realizadas. 3. Examinar programa: Permite moverse a lo largo del programa para examinarlo, establecer un breakpoint asignar a PCL una determinada direccién de la memoria de programa. En la pantalla de ta pigina siguiente aparece una ventana de ayuda en la que se in Tas teclas para realizar cada una de estas acciones. Con ESC se descartan realizados y pulsando se almacenan. 4. Pardmetros de simulacidn Se especifica ef modelo de PIC (16C84 0 16F84), Ia frecuencia y el tipo de reloj estado del Perro Guardian (activo o inactivo) y la duracién del periodo de SLEEP. tra caracteristica resefiable es que debido a la lentitud de la simulacién se puede alterar la duracién del periodo de SLEEP para evitar que el Perro Guardian genere un Reset 194 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES Pe fi ees irs Teetae Newark ROM 1020KI4 ‘ePSa, PG, Thiclo, DIR NSIRUCCION — MNERENTCO Fin 'PeL+ 190 oO: Lon0o110 CURE ROG inant ESE ROR, Tooo1t0 Cul abn TT =e Figura B2. Henan que permite examinar el programa de la memoria de instrucciones asi como la asignacion de puntos de ruptura (breakpoint). Amite indicar el nimero de instruceiones NOP que se ejecutaran antes de que se produzca cl Reset o determinar la duracién del SLEEP para que sea la misma que en tun PIC real 6. Bjecutar a opcién ejecuta el programa que contiene la memoria de instrucciones del simulador, El programa se ejecutard desde la posicién actual del PCL hasta que encuente un breakpoint o se pulse la tecla de final de ejecucién (ESC). i ee pera ecu partie Peer Coairue ‘90001 1oc00110 CLF ROH Groviotocooo!t sk Huh, s boone toeapr 10 cL Ru Figura B.3. Hentana de configuracién det simutador APENDICE B- GUIA DEL USUARIO DEL SIMUPIC'84 195 Durante la ejecucién del programa, tanto los contadores de tiempo como los registros vi- sualizados son actualizados dinimicamente. istica muy interesante que incorpora $i "84 es la posibilidad de poder introducir estimulos a las lineas de E/S, durante la ejecucién del programa: Voltean el valor actual de las lineas RAO a RA, — Shif(+F8: Volican el valor actual de las lineas RBO a RB7. 7. Vrazar Fjecuta la instruccién apuntada en ese momento por el PCL. Durante el trazado de un progra- ma no es posible introducit estimulos a las lineas de E/S, pero es posible alterar los valores de los registros 5 (Puerta A) y 6 (PuertaB) mediante la opcidn «alterar registros», que se explic: 1 més adelante. Durante el trazado de un programa los breakpoints son ignorados. 8. Visualizar registros Se visualizan en la pantalla los registros que se desee, ya sean especiales, de propésito general ode Ia EEPROM. E! PCL es visualizado por defecto. Se puede asignar al registro visualizado la etiqueta que se desee, facilitando de esta mane- ra la comprensidn det programa 9. Alterar registros Se altera el valor binatio de los registros que se especifique. Para seleccionar un registro, ya sea para visualizarlo 0 alterarlo, se usan las siguientes opciones. * PCL: Contador de Programa. * TRISA TRISB: Configuraciones de las lineas de EIS. * OPTION: Registro OPTION del PIC (dit 81h). * EEPROM: Una direccién de la memoria EEPROM mediante direccién hexadecimal. Una vez seleccionado el registro, se puede definir una etiqueta descriptiva de 8 caracteres ara facilitar la identificacion del registro. Salir al DOS, Ds la posibilidad de salir temporalmente al DOS o terminar el programa. En el primer caso fecleando EXIT se regresa a Simupie’84 en el punto en que se abandond AYUDA Mediante ta tecla de funcién F1 se muestra en pantalla Ia ayuda para la funcién que se esté fealizando en ese momento, 196 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES OTRAS VENTANAS, © VENTANA DE VISION EXTERNA En esta ventana se muestra el diagrama de patitas grificamente. Las lineas de E/S configu- radas como entradas se muestran en color verde, mientras que las configuradas como sali- das se muestran en color rojo. El valor de las lineas (0-1) se actualiza durante la cjecucién y trazado de los programas. © VENTANA DE VISUALIZACION DE REGISTROS Bis una ventana de color azul y esti situada a Ta derecha de la pantalla, En ella se muestran los registros que han sido seleccionados previamente. © VENTANA DE MEMORIA ROM En esta ventana se muestra el contenido de la memoria de programa del PIC. Cada linea ‘muestra la direccién de memoria, el cédigo de instruccidn en binario y el neménico corres- pondiente. © VENTANA DE CONTADORES: Se presentan los contadores.de tiempo € instrucciones y el estado en que se encuentra el PIC, normal 0 SLEEP. EJEMPLO PRACTICO. Se ofrece un programa muy sencillo cuyo tnico fin es ilustrar el manejo prictico del simulador, ; EJEMPLO,ASM Programa de ejemplo de aso del simulador ; SIMUPIC'B4, £1 programa consiste en sacar por 4 leds } conectados a las cuatro lincas de menos peso de PB el } valor introducide por § interruptores conectados a las 2 4 lineas de menos peso de PA. List p-16ce4 } Modelo de Pre a utilizar RADIX HEX RSTADO! EQU Uxt3 PORRTAA BOU 0x05 PUERTAB ROY 0x06 yona 48 etiquetas ong 0 best FRTANO,5 Seleccién ae banco 1 moylw Oxf ( movi PUERTAR 3,98 configura PA come + entradas APENDICE B- GUIA DEL USUARIO DEL SIMUPIC’R4 197 moviw 0x00 movwt |: PUBRTAR, i 82 configura 2B como } salidas bet getano.5 Seleccién de bance 0 bucle movf PUERTAA,0 ; Bucle infinite que mueve e1 movwE PUERTAB 3 contenide de Pa a PB. gots bucle end Mediante Ia opeién «Asignar Nombre» se da un nombre al programa, en este caso EJEM- PLO. No es necesario indicar la extensién, Se llama al editor de texto usando la opeién 2 del menii principal. Una vez editado el programa fuente se obtiene el programa ejecutable, tras cnsamblarlo mediante la opcién 3. Realizada esta operacién se carga en memoria de programa el fichero ejecutable con la opeién «Cargar fichero HEX». La numeracién de las opciones del ment principal no es arbitraria sino que se corresponde con el orden de los pasos que se supone deben seguirse hasta obtener el programa ejecutable y poder simularlo. Cargado en memoria el programa ejecutable y antes de pasar a simularlo, se debe ac 4 la ventana de «Opciones de simulacion», y dentro de clla a «Parametros de simulaciém>, para configurar las diferentes posibilidades de simulacién, como el modelo de PIC a simular, la frecuencia de reloj, ete., que en este caso dejaremos con sus valores por defecto, es decir PICI6C84 a una frecuencia de 100 KHz y con el Perro Guardian activado Finalmente, se simula el programa, ejecutindolo mediante la opcién sexta del men prin- cipal. Se puede ver el estado de las lineas de E/S en la ventana de vision externa y cambiar el eslado de PA, que esta configurada como entrada, mediante las teclas de funcién Para tener un control total sobre los pasos que esta realizando cl programa, conviene visua- lizar los registros implicados (W, Puerta A y Puerta B) y trazar el programa mediante la opcién 7. der EJERCICIOS VARIADOS WATCHDOG.ASM Este programa muestra el funcionamiento del Perro Guardian o Watchdog. Para comprobar la temporizacién del Watchdog se va a utilizar una caracteristica especifica de Simupic’84: Alllegar a una posicién de la memoria de programa que no ha sido grabada se muestra el mensaje «programa finalizado». De esta forma, el programa comienza en ta direccién 10h, inicializa el WDT con una temporizacién de 36 ms y entra en un bucle infinito del que silo sale al producirse Reset por WDT, condicién que pone el PCL a cero, apuntando una posicién no grabada. Esto ocurrita a Jos 36 ms de iniciarse el programa. Mediante la ventana de conta- dores se puede comprobar esta temporizacién. Para poner a cero los contadores de tiempo instrucciones se accede a la ventana de «Opciones de simulacion» y se selecciona la opei «Poner a cero contadoresy. i Bl objetivo de este program: es mostrar en 1a préctica el # funcionamiento del Watchdog en el BIC 16ced. + Bl programa eatra en un dudle infinito del que sale tras cumplirse la tenporizacién acignada al Watehdeg, que en } este caso serdn 46 nis, es decir,2 veces la temporizacién } nominal, 198 MICROCONTROLADORES «PICs. DISENO PRACTICO DE APLICACIONES LIST | peleced STATUS BQU opr ROU. osm oun } Programa principal: ors. bet novlw movwt elewat bucle: goto. END. TIMER.ASM ‘A continuacién se presenta un programa que muestra de forma practiea el uso del TMRO. El ‘objetivo de este programa es lograr una temporizacién de 100 ms con una frecuencia de reloj de 100 KHz. Para ello, y tras realizar los célculos pertinentes, inicializamos el TMRO con un valor 100 usando el Divisor de Frecuencia con rango 16, Al igual que en el ejercicio anterior, utilizaremos los contadores de tiempo ¢ instrucciones para comprobar la temporizacién, } Programa gue muestra ol funcionamiento del timer: ; Realiza una temporizacién de 100 me i ijst, eeiecad intcom equ tmr_opt equ node. equ status equ org, movlw nowt bet moviw movwe be movie movwe pucle betse 10 STATUS, 5 progvoro01" opt pucle ona ain bah 03h 8 /gogonan9’ intcom suatus,5 proogoouia? tmr_opt. status, 5. bioi1apico? ‘emrlopt Lateom) tole iBance 1 +, Se asigna el Divisor al } watehdog con un rango ez. } S¢ inicializa el wor ; Tipo de prc Desactive interrupciones } Banco 1 4 } Diviaor asignado al i } THRO con un factor de 16 : + Banco 0 7 ; Se inicializa THRO con + 100 } $2 el pit COLE del intcon beet APENDICE B - GUIA DEL USUARIO DEL SIMUPIC'S4 199 TMROINTASM El objetivo del programa que se presenta a continuacién es similar al del programa anterior. En este caso se trata de realizar una temporizacién de 150 ms utilizando una frecuencia de reloj de 100 KHz, pero utilizando la interrupcién de desbordamiento del TMRO. Tras realizar los cileulos pertinentes, obtenemos que se debe inicializar el timer con 22 y el Divisor con rango 16. Para el tratamiento de la interrupcién dinicamente se pone el W a cero y se espera a que el WT reinicie el PIC. 200 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES, DRATINT > Aqué ge ineluirén los tratamientos de las } daterrupciones. De momento nos limitaremos a poner W } a0. (para que Ge vea gue se ha producido 1a 5 } dnterrupeién) y esperar a que el WatchDog reinicie i el BIC. 3 moviw 0 FIN veto FIN END D_EEPROM.ASM Se propone un ejemplo de uso de la EEPROM de datos que incorpora el PICI6C84. Esla memoria es muy titil a la hora de almacenar datos que no se desea perder tras interrumpit la alimentacion, Cuenta con el inconveniente que su tiempo de escritura es muy alto y, ademés, variable, por lo que las eserituras sobre esta memoria se controlan mediante el uso de interrup- E] Simupie’#4 detiene el programa cuando encuentra alguna de estas tres condiciones de error relacionadas con escrituras sobre la EEPROM: © Lectura durante (a escritura: Se produce este error cuando se trata de leer o escribir en Ja memoria EEPROM antes de que haya terminado el proceso de eseritura anterior. © Fycritura o lectura en una posicion inexistente del mapa de memoria de la EEPROM: Cuando se trata de aceeder a una posicién de direccién mayor que 3Fh (Jos dos bit de mids peso de EEADR no estaban a 0) © Orden de lectura y escritura simultdneas: Esta condicién de error es en realidad una variante del primer tipo de error, que consiste en poner WR y RD a | simultancament. programa ilustra la correeta utilizacion de la EEPROM de datos: Biemple comprobado con si SINUPIC consistente on almacenar ; en las N primeras poeiciones de la EEPROM ¢1 contenido de } las direcciones 10h-(10+N-1)h de 1a memoria RAM } Bl valor de N esté en la direccién OF dol primer banco de memoria. Después de escribir la cadena se comprueba que la escritura es correcta y deja Wa 0 si ha sido agi, y a un valor diferente de 0 ei no lo: es. ; NOTA Funciona correctamente ei Neo : List pelscna ’ DATA_CONI EQU nh ‘ ADDR_CON? EOU 99n STATUS | -BOU 03h N HOD Osh inicio HOU ion ET APENDICE B - GUIA DEL USUARIO DEL SIMUPIC’S4 201 INDE Rou 00m FSR ROU oan TNTCON —EQU Opn ong 0 goto INL oR a retfie # Interrupeién sin 1 tratamiento INL bot STATUS, 5 7 Banco 0 move NO 2 Se guarda en w e1 } contador movwf — ADDR_CONZ andut ADDR_CON2,0 S@ refrescan los flags bites sTATUS,2 #81 F2-1 se ealta a FIN goto | rim j Tnieialmente on ADDR esté ¢1 numero de i bytes a escrible +4 (de Nei a 1) 7 Se eseriben en orden inyerso SCRIBE dect — ADDR.CON2,1; DirEEPROM on Addr. movi | ADDRLcoN2,0 DirkEPROM en Ww addiw — 1nIci0 INXC10+DirBEPRM- DicRAM (en Wj Direccionamiento movwt | PSR tindirecto move INDE, 9 Bn W dato a escribir movwE. DATA CONL ; Dato a escribir en EI ;DATA # Secuencia de escritura bet INTCON, 7 i GrE=0 bot STaqOS, 5 2 Banco 1 movlw | h’s5! movwE — ADDR_CON2 movlw —-hrAR? movw£ | ADDR_CON2 moviw | -b/1L000000' movwf — LNTCON j Greet were-1 psf DATA COND? > wREN=1 bet DATALCONL;1 4 Orden ae escritura WALT Bleep ; Se espera el fin de la eseritura } EL WOT siempre tarda més en rebogar 2 que la escritura en completarse bet STATUS, 5 } Banco 0 cine addwt ADDR_CON2.0 ; ADDR_coN2-0 2 bits | stams,2 } 81 F221 Ge salta a 2 COMPROB goto | ESCRIBE 202. MICROCONTROLADORES «PIC». DISENO PRACTICO DE APLICACIONES COMPROB, LEE FIN ‘} tndelo de 1a comprobacién de 1a escritura move 8,0 movwf | ADDALCONZ } Inicialmente en ADDR ; bytes a leer + 1 (de 7 $8 eseriben en orden deck ADDR_CON2,1 movf ADDR_CON?, 0 ‘addi Ntcto howe FSR: bet STATUS, 5 bet DATALCONL, 0 ‘bet STATUS, 5 2 comprobacion move MDF 0 SubwE | DARA_CONT, 0 brise statds,2 goto. FIN + Siguiente claw addwt | ADDR_CON2, 0° befss STATUS,2 goto LEE sleep goto, FIN END: ; Se guarda en w el } contador estd el niimero de Ne ad) iaverso DirEEPROM en Addr DIrEEPROM en W DirRAM en Wt Direceionamiento indirecto Banco 1 orden de lectura Banco 0 Data de la RAM en W “> w todo ha ido $i no Error y Wo 0 ‘ADDR_CON2=0.7 ‘Si Ffsl se salta a FIN hee el siguiente BREVE DESCRIPCION DEL «MICRO’PIC TRAINER» _ INTRODUCCION La practica totalidad de los ejercicios propuestos en este libro se pueden realizar con el Micro’PIC Trainer (uPIC Trainer) de Microsystems Engineering, que nos ha permitide incluir un breve resumen de uno de los capitulos del Manual del Usuario que acompaia a dicho sistema de desarrollo, Sélo se describe el esquema electronica y el funcionamiento del sistema, que creemos puede ser de interés para los lectores como ejer BI sistema {PIC Trainer consiste en un equipo completo para la evaluacién de aplicacio- nes basadas en los microcontroladores PIC de gama media de MICROCHIP. Dispone de una serie de periféricos basicos de E/S con los que se puede verificar el funcionamiento de una aplicacién, asi como la circuitetia necesaria para la grabacién de todos los modelos de micro- controladores PIC de gama media de 18 y 28 patitas. Un tutorial multimedia de montaje y ‘manejo esti contenido en el CD que acompaiia al libro. Se denomina «sistema de desarrollo» el equipo fisico y el conjunto de programas que Forman una herramienta capaz de desarrollar todas las operaciones necesarias para disei proyecto basado, en este caso, en un microcomputador programable, que en un circuito integrado recibe el nombre de micracontrolador. Las caracteristicas del sistema son las siguientes: estar ineorporado |. Alimentacién desde un transformador de 12VAC 0 desde dos piles de 9VDC. El circuito Ale estabilizacion esté inclvido en la placa, Con él se obtiene la tension general de +5V. WWeo) y la de grabacién de +13.8Y 2. Soporta cuaiquier microcontrolador de gama media tanto de 18 como de 26 patites. La frecuencia de trabajo por defecto es de 4MHz, que se puede moditicar cambiando é! ‘oristal de cusrzo. 3. Generacién eutomdtica de RESET (POR! y manual, mediante pulsador accionado por | usuario, S entrades digitales, implementadas mediante 5 conmutadores, 4 entrades de tension analigica, variables mediante potencidmetios 8 salidas digitales conectades a 2 indicadores luminosos tipo LED y/o a displey de 7 gegmentos. Mediante jumpers se selecciona uno u otro, 7 Conexién de un modulo de visualizacién tipo LCD de 2.X 16 (dos lineas de 16 caracteres cada una) y control de contraste medlante potencidmetro 203 204. MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES 8. Tanto los peritéricos de entrada como ios de salida se pueden desactivar 0.70 mediante sus respectivos jumpers. Se desconectan aquellos que én une determinade aplicacion, rno se empieen, con objeto de reducit la carga eléctrica en las lineas de E/S del PIC. 9. Conector de expansion PIC-BUS donde todas las senales de E/S del microcontroledor, ojo prucbe, estén eisponibies pata ser empleadas por otros periféricos distintos 2 los ‘que dispone uPIC Trainer. 40. La sefal RAA/TOCK! se puede emplear como entrada o salide digital o entrada de pul- 's08 de reloj para ef timer 0, desde el exterior. 11. Lasenal RBOINT se puede emplear como entrada o salida digital 0 entrada de interrup- ‘ion externa 12, Circuito grabador wen oircuito», Petmite, con el software de control necesario, grabar el FIC que en ese momento esté insertado en cualquiera de los 20calos. Es especialmente Util para 0! modelo 16C84, que al disponer de memoria EEPROM de programa, se pue- de grabar ¥ ragrabar tantas veces como sea necesario sin necesidad de retirarlo del 126cal0. Lo mismo sucede con ef 16F84, con memoria Flash. 12. Led indicador de presencia de la tension Vpp de grabacion 18. Conector 0825 pare conexién con e! canal paralelo de cualquier ordenador personal. 15, Software en castellano pera realizar todas las operaciones propias de grabacién: Lectu- 7, grabacién, verificacion, borrado, edicién, etc 16. Todos las componentes que forman «PIC Trainer van sobre una placa de circulto impre- 50 de tipo profesional. El conjunto se suministra completamente montado 0 en forma de Kit pava que sea el propio usuario quien lo ensamble. En la Figura C.1 se presenta el esquema eléctrico de conexiones del sistema de evaluacién {PIC Trainer, En los siguientes apartados se irin explicando las diferentes secciones que To componen. En el CD existe un tutorial muy didéctico que muestra el montaje, paso a paso, de este sistema de desarrollo. LA FUENTE DE ALIMENTACION Se encarga de obtener las tensiones estabilizadas de trabajo: alimentacion general de +5V (Vee) y la tensidn de grabacion de +13.8V. La tensién de entrada se aplica mediante 2 pilas de 9V o bien desde un transformador de I2VAC conectado a J1. En este caso a tension alterna se rectifica mediante el puente de diodos D1 y se filira mediante los condensadores C1 y C2, para obtener una continua sin estabilizar. ‘Sea como fuere, la tensién continua asi obtenida se estabiliza a +5V mediante el regulador U6, uA7805, y a+13.8V mediante el regulador uA78 12 junto con los tres diodos D2-D4, 1N4007. EL MICROCONTROLADOR El sistema LPIC Trainer esté disefiado para trabajar con cualquier modelo de microcontrola- dor PIC de la gama media encapsulado con 18 o 28 patitas. Esta es Ia razon de la existencia de dos zécalos para soportar ambos tipos. ‘Segiin el esquema de la Figura C.1, las diferencias basicas entre los modelos de 18 y 28 patitas consiste en que los primeros disponen de una puerta A de 5 lineas (RAO-RAA) y una puerta B de 8 (RBO-RB7), mientras que los segundos disponen de una puerta A de 6 li- neas (RAO-RAS), una puerta B de 8 (RBO-RB7) ¥ una puerta C de 8 lineas (RCO-RC7). APENDICE C - BREVE DESCRIPCION DEL «MICRO'PIC TRAINFR» 205, é 2 Figura C.1, 206 MICROCONTROLADORES «PIC», DISENO PRACTICO DE APLICACIONES. En APIC ‘Trainer se emplean tas 5 lineas de ta Puerta A y tus 8 de la Puerta B, que son omunes a los dos modelos de PIC, En cualquier caso, las Hineas de estas puertas, junto con las de la puerta C, estén disponibles para ef usuario a través del coneetor PIC-BUS de ex- pansion, La frecuencia de trabajo para cualquiera de Jos dos tipos de: PIC queda establecida median- tel eristal de cuarzo XI y Jos condensadores C6 y C7, Esta es, por defeeto, de 4MHz, aunque cel usuario puede modificarla cambiando los valores de! cristal y los condensadores segiin las caracteristivas t8enieas del modelo de PIC clegido. ENTRADAS DIGITALES stan formadas por 5 interruptores (SW2-SW6) conectadas a las lineas RAO-RAA de a. puet~ tu A, capaces de introducir niveles ligicos «l y «> por esas lineas, Dich lineas pueden programarse para scluar de diferentes formas, Asi, RAG-RA3 pueden actuar, ademas, como tnlradas analogicas y RA4 como entrada exterior de pulsos de retoj pars el TMRO (TOCKL. Estas linea tienen ssociados unos jumpers con lox que ¢ seleeciona el tipo de entrada que se les va a aplicar, Los jumpers 18(0)-18(3) seleccionan indlividualmente si por RAO-RAS se van a introducir entradas digitales con los interruptores SW2-SWS, entradas analdgieas con Jog potencidmetros P2-PS o, simplennente, si estas lineas van a quedar desconectadas tanto de {os interruptores como de los potenciSmetros y porler asi usarse con otros periféricos distinios Con el jumper J9 se selecciona si RAG acta como entract digital procedente del interrup: tor SW6, entrada de seiial de reloj para cl TMRO (TOCKD), que se aplica desde cl exterior mediante el conector J2(1), @ simplemente, si esta linea va w quedar desconeetada y libre poder usarla con otro peniférico distin ENTRADAS ANALOGICAS Estin formadas por 4 resistencias variables 0 potenciometros (P2-P5), que se alimentan con la tensidn pencral de +5V, Seguin se mucvu cleje de cualquiera de estos potencidmetros, se abtie ne una tensién variable entre 0 y SY por los terminales centrales (cursores) de los mismos. Ta tensidn variable presente en cualquiera de los 4 cursores de los poiencidmetios P2-PS ‘va a parar & los jumpers 18(0)-J8(3), cespectivamente, Si cualquisra de ellos esti en la posieidn «analdgicon, la Linea correspondiente (RAO-RA3) recibira dicha tensidn para su posterior pro cosamiente. Conviene recordar que aunque a nivel de hardware wna o mas fincas se configuren come entradas analdgicas o digitales mediante los jumpers 18(0)-J8(3), ef software de control del PIC debe ir acorde con las mismas, programando adecuadamente lus earavteristicas de dichas linea de emirate. LIDAS DIGITALES lstdn conectidas s la puerta B y consisten, por una parte, on una barra de diodos leds lumino- sos (DE) que representan e) estado ligico de las sefales RBO-RI7, y por otra, un display alfanumérico de: 7 sewmientos. APENDICL © BREVE DESCRIPCION DEL «MICRO'PEC TRAINER 209 EL CONECTOR DE EXPANSION Se trata de un eonvctor dé 26 contactos en el que estén disponibles lucs las setales de las diferentes puertas de /S, ademis de las de alimentacion y MCLR. Esto permite concetar fiuturas expansiones desarrallacas por Mierusystems Engineering 0 pr ef propio usuario, ‘mangjanito nuevos perittricas. Esta posibilided tiene especial interés en la conexidn dle la pla. tea de prototipos PICI8-ME, donde pueden slojarse los periféricos de la uplicacién, mientras que se depura el software desde el sistema de desarrollo, Para que no haya conMlicto entre los perifericos ennectados al PIC-BUS y los ya existentes on UPIC Tr: i, mediante sus correspondicntes jumpers, aquellos que vayan a ser reempluzados. Una completa informacion thenica del sistema de desarrollo PIC Trainer, con mumetosos sjervicios practices, puede hallarse en el Manual de Usirio de esta excepeional herramienta disenada por Microsystems Engineering (Gral, Concha, 39 - 48012 Bilbao) Fv ly Figura €.2, se muestna una fotogrofia del Entrenador de Laboratory Mieru*PIC Lab, compuesto por el PIC Trainer concctado a la tarjeta de protutipas PICIB-ME, que se Alimentan con un transtormador especial y van montadas sobre un bastidor de metacriluto ner, es necesario deseonce! Figura C2. Forongrafia det Entrenador de Laboraorte Micro 'PIC Lab gue dispone det ePIC Trainer la taryeta de protonipos PICIS-ME vu transformador espectal, montados sabres bustier te mensertlat, LAFAMILIAPIC D AL COMPLETO. (CORTESIA DE MICROCHIP TECHNOLOGY INC.) CS wee nee ef eee Tee | eee wee ees] samara = |S ee fe) ge TEL = fg = |r] oe | ae | es ee eee soe RU esses s| MICROCONIRULADORES «PICs, DISESO PRACTICO DE APLICACIONES: m2 Be APENDICE D- LAVAMILIA PIC ALCOMPLELO 213 214 MICROCONTROLADORES «IC», DISENO PRACTICO DE APLICACIONES are SS meses eee me La | a lenerwan mopseceanetned| eRe ara el correcto funcionamiento de] CD-ROM que acompaia a la obra es necesario un PC con. los siguientes requisitos: + Tarjeta de sonido, + Tatjeta grifica, * Altavoces, La primera vez que se ejecute la aplicacidn es necesaria Ja instalacién previa del visor Quicktime3.exe, que se encuentra contenido en el dizectorio Faiz. del CD-ROM (para las re ferencias en este apendice se supone Unidad D:\). Una vez hecho esto se ejecutard el progra- ‘ma Tutorialexe, contenido en D:\Tutorial Multimedia, Desde la pantalls principal de este programa se podran' hacer las siguientes operaciones: + Instalar SIMUPIC: crca cl directorio C:\TutoriaR'Simupie y copia cn ¢ el simulador SIMUPIC, cl ensamblador MPASM y otros progiamas complementarios. Crea ademas cl directorio C:\Tutorial\Proyeetos, donde copia programas de aplicacién, dispuesios cn Los siguientes direetorios: ~ C:Ejemplos: ineluye los ejemplos de uso del simulador SIMUPIC'S4, de los que se habla en el anexo acerca de este simulador, — CiLibro: incluye todos los ejercicios de la sezcicin «Programar PIC es fécil» de cada uno de los capitulos, asi como les proyectos propuestos en el Capitulo 8. :BAsicos: incluye los cinco Proyectos Basicos resueltos en el A pcnulice F ipieas: incluye los tres Proyectos Tipicos resueltos en el Apéndice F. = + Instalar PICME-TR: crea el directorio CATutorialPieme-Ir y copia en lel programa de grabacisin PICME-TR. Dicho programa necesitaré Ia jarjeta de desarrollo PIC TRAINER, conectada al PC mediante un cable paralelo y provista de un microcontrola- dor PIC para ser perativo. * Tutorial: este tutorial, medicinte el uso dal sonido, imagen, video y animaciones, instru 1 al usuario en los siguientes aspectos: 218 216 MICROCONTROLADORES «AMCs. DISERO PRACTICO DF APLICACIONES onamiento de cada una de las opciones de este simulador + MicroPic Trainer: = Montaje: paso a paso, se mostrard eémo identificar sito y forma adecuados de la tarjeta de desarrollo, cada componente y montarlo enel — PICME-TR: se ensefiarin los pasos necesrios para la correcta grabacién d ‘crocontrolador PIC. nulacién: se incluyen dos videos, uno mostrando la ejecucién de un programa y otro sobre las clases cle montaje de la tarjeta MicroPic" Trainer, 218 MICROCONTROLADORES «PIC». DISERG PRACTICO DE APLICACIONTS PRIMERA PARTE: PROVECTOS BASICOS RESUELIOS ¥ COMENTADOS SEGUNDA PARTE: PROYECTOS TIPICOS RESUELTOS ¥ COMENTADOS DS Y COMENTADOS PRIMERA PARTE: PROYECTOS BASICOS RESUE LISTA DE MATERIALES NECESARIOS Materiales comunes a todos los Proyectos Bisicos APENDICE F - PROYECTOS CON EL. PICIBIN 219) En la Fotoge Baisicus. ia de la Figura F. se muestran los componentes utiliadas en los Proyectos, 1. Tiras de pestes hembra (2) Bara de leds Display / segmenios PIC 18F34 PACK OIL oo 339 PACK SIL ao 30 PACK Sil. do 10K Optoareplaor H24At Dips 2umbador Pulsade Died ted 3. R100, Maron-negro-manron 220, Roje-rojo-marton R180, Maron gris marén FAK. Maronnegro-r0 Fr0K. Mandn-negosnareria Figura FL. Foragrafia de fos componentes empleaados en fa implementacisn de las Provectes Rasa, PROYECTO BASICO 1: CONTROL DE UN DISPOSITIVO DESDE DOS PUNTOS Enunciado y objetivos Fs muy usual tener que gobernar una carga (motor, Limpara, ete.) desde dos puntos situados acierta distancia entre ellos. Per todos €s conocido cl contiol de una kampara (L) en una sila, que al disponer de dos pucrtas muy distamtes, se desea encenderla 0 apagarla desde dog internuptores (11 ¢ 12) situaidos all lado de las puert Inicialmente, cuando TI ¢ 12 estan abiertos (0) la kimpara Lest apagada (0). A partir de esta situacion, cada ver que cambia de estado uno de los interruptores, la lémpara cambia tam- bien su estado, Se muestra la tabla de verdad y Ia ecuacidn légica de la salida en Ia Figura F. Le ze + 2 Wigura 2. Tabla de verdad y ecuacion (deiea. Las seflales negadas se representan con # 220 MICROCONTROLADORES «PICs, DISERO PRACIICO DE APLICACIONES Materiales especificos para el Proyecto Biisico 1 Se recomienda leer el funcionamiento y conexionado de los perifericos que utiliza este pro yecto (diodo LED y microrruptores) en la seccién del Capitulo I titalada «Disefiar aplicaciones, con PIC es tical». Esquema eléctrico Hv PICI6XB4 ura Pd. Exywona eléctrico de ta préctica. Lox componeates dibujados con linea fine se balan pre- imoreatos en la varfeue de prototipos PICT Mb. APENDICE # - PROYICTOS CON EL PICISR8s 221 Foto del montaje Figura Fa. Foiografia del montaie sobre ka placa PICIS-ME: Organigrama tc faa rar Figura ES, Ongonierama del proyecto 222 MICROCONTROLADORES «PIC». DISENO PRACTICO DI; APLICACIONES EI programa comentado APENDICE F = PROYECION CON HL FICIAL 223 Propuesta de un nuevo proyecto Para comencar a disenar con microcontroladores, y una vez. que ha sido capaz de poner en mar~ cha el proyecto que hemos descrito, le proponemos un ejercicio para que lo implemente usted. Se dispone de tres interruptores, T1, [2 e 13, con fos que se desea controlar un didn LED «dL, de tal forma que debe encendesse cuando dos, xy siln dows, de los interruplores esiéa ce- rrados. Fn todas las derns situaciones el diado LED debe estar apszado, PROYECTO BASICO 2: SEMAFORO PROGRAMABLE Enuneiado y objetivos Sc tala de sitnutar el funcionamiento de las tres tuces de un semforo (verde, mbar y soja) ‘mediante tres diodos LED (L1. L2 y L3) de entre los diez. de que dispone unat barra DIL. El control del encendido y apagaddo de: lus LED se realiza mediante los microrruptores II ¢ 12 de Jos cuatro de que dispone un conjunte DIP-SWITCH. 224 MICROCONTROLADORES PICs. DISENO PRACTICO DE APLICACIONES ura FG, Tubla de verdad en fag se nica tos segunda de encendide de tas LED. Scgtin el estado de los microrruptores, se desarcolla una sccucacia conercta de tiempo de encendido de los tres LED que simulan las luces del semaforo, de acuerdo eon lat tabla de la Figura 6, La finalidad primordial de este ejercicio es la de manejar el temporizackor TMRO para que produzca retardos de diversa duracitin, Materiales especificns para el Proyecto Basico 2 ata Figura FT. Bsyuernr elérico. APENDICE F PROYECTOS CON EL PICLORS4 225 ‘Como se puede apreciar en la Figura F7, los microrruptores TI ¢ 12 se conectan a las lineas de entrada RAO y RAT de la PUFRTAA a través de sendas resistencias de 10KQ. En este caso son actives por nivel bajo. Los diodos LED L1, L2 y L3 sv conectum a las lineas de sa lida RBL, REG y RBS de la PUERTAB a través de resistencias de 3300. Los demas elemen tos del esquema estén presoladdos en La tarjeta de procotipos PIC 18-ME. Organigrama INICIALIZAGION PAT, ENTRADAS PB SALIDA, INCIALZAR. REGISTROS SECUENCIA 17 ‘SECLIENCIA OT SECUENCIA 00 Figura F8. Organigranns det funcionaamensn det semaifona 226 MICROCONTROLADORES -PIC., DISHRO PRACTICO DE APLICACIONES Foto del montaje Figura F.9. Fotografia del montaje sobre la placa PICIS-ME. EI programa comentado Se simula un semaforo con tes d onblnecin que nloplen oat IF PROYECTOS CON EL PICIOF8| 227 228 MICROCONTROLADORES PIC». DISENO FRACTICO DE APLICACION IS APENDICE F - PROYECTOS CON EL PICIOF8$ 129 8 MICROCONTROLADORES «PIC», DISESO PRACTICO DE APLICACIONES, Propuesta de un nueva proyecto ara continuar con el manejo del TMRO y el control de tiempos se propane un programa que Imaneje ocho diodos LED de la barra DIL usada cn el Proyecto Basico 2 Los ocho diodos LED (11.7) de menos peso de In harra DIL se conectan a las ocho hiness (RRO-RB7) de la PULRTAB. Los LED se iran encendiendo secucncialmente durante un tiem- ‘pode 0,1 segundos de izquierda a derech, 0 viceversa, segtin que el estado l6gico que intro- Guzca el micromuptor 10 concctado a la linea RAO de la PUERTAA sea un «O> oun 1» res

You might also like