Está en la página 1de 329
Conceptos hasicos - Lenguajes de programacion Introduccion 3 Pasos a seguir para CAE) elaborar un proyecto ete eet) Chile: $ 1.450 UO Ea OL Saraee) Curso practico sobre ETT TS (Teoria, Prog! Programacion, Pyne mae y Wi Coen Pence a Sd 6 £1 Curso pric sabre MCROCONTROLADORES de PKI. pu WW: i ea ace a oa cae os Cabana tugs clea petas econeson Ge color, De estas iiltimas, 8 estin dedicadas a la seccion de 4a 22 N°R-22, Piso, PROGRAMACION y 8 2 la secci6n de PROYECTOS, Tekin (6) 3388179. 3348187 Las paginas de cada secci6n son encuademables por separado, Por esta raz6n, all 3318189 - 3548193 Fass (6) 3548020 Pereira Colombia Carrera 13 N° 38-43, iso 1 format los volimenes, debe cuidarse de desprender previamente, de todos los fasciculos, as 8 paginas centrales ce PROYECTOS, las 4 lc PROGRAMACION y por tikimo las 8 paginas de Durante la publicacién de los fasciculos se lets Bana ponder ala vena ls tapas de los 3 volimenes de fa obea para su encuademacton, ean ogg - Colombia CEKITS.A. garantiza la publicaci6n de la totalidad de la obra, el suministro de la tapas necesarias para su encuademnacién y el servicio de niimerosatrasidos hasaun Mail: ecekit@col2telecom.com.co ao después de terminada la crculacion del tikimo fasciculo. Fambién garantiza la butp://ewww.cekit.com.co fidelidad de la informaci6n teérico-prictca suministraca y el comrecto funcionamiento i Gerente Gener de los programas includes como ejemplos de a obra. einen Geren Comers Motorola, Microchip, PIG, Intel, Atmel, Parallax, Zilog, Philips, son marcas registradas de Marcel Aha lnsclfereies empress en los Estados Unides yen os pies. tas productesy nombres de Decco ll compas menciomidasen esa obra pueden ser marcas regsadkas de ss propietaros, 1 elipe 5: Bstecuno hasdodsberado sein ed plan deledtory des autres y Lane ea Ths nsponsalilad porlon quienes integra del re departamento téenico de CEKTE'S A, JUAN ANDRES CASTANO W. is MANUEL FELIPE GONZALEZ G. Distribucion Internacional ‘ a a eae Argentina: imporador Ector ConosurS.A. Av. Belgrano 355 1 Tel 4342-9029 Fax: 4312:9025, JUAN DIEGO HERNANDEZ. femal: goonosur@speedy.comar Dis. Capital: VACCARO SANCHES Y CIA, - Moreno 794, 97(1082) Buenos Ates. Dist. Interior: DISTRIBUIDORA BERTRAN S.A. - Av. VélerSarsfild Proyectos 195001285) Buenos Aires, - Bolivia: AGENCIA MODERNA LTDA. - Chile: DISTRIBUIDORA, ALFA S.A. ~ Colombia: DISTRIBUIDORAS UNIDAS, - Venezuela: DISTRIBUIDORA CONT: oN AE eg NENTAL- México: CONSORCIO SAYROIS - Ecuador DISTRIBUIDORA ANDES - Panam: pig cardia: Laxz Angela Plata. PANAMEX'A.- Pert DISTRIBUIDORA BOUVARIANA S.A. - Paraguay: SELECGIONES S.A C Diseto: Gloria Marcela GomezG. Unuguay:DISTRIBUIDORA CAREAGA Diagramacion Héctor Hugo Fimencs Suscripciones (no validas en Argentina), ntimeros atrasados ee y consultas técnicas en Colombia CEKIT S.A. reprodec ped ote por aur me se Calle 22 N°8- 22, Piso 2, A.A. 194 Pereira(Colombia) pense ero descr, 0a nuestro correo electrénico: EDICION CONO SUR ‘ecekit@col2.telecom.com.co Inxemacional Graphics & Printing Co. 72600 Doulas Road, Suite 403 Coral Gables, Florida 33134, USA ISBN (Fasciculo 8) 958-657-510-1 Impreso y encuadernado por: ISBN (Volumen 1) 958-657-1989 RR Donnelley af ISBN (Obra completa), 958-657-997-0 ‘América Latina Ruta Panamericana Km, 38,700 Buenos Aires Argentina Impreso en Argentina Jurio 2003, Estudie, con el método de CERIT de “Aprender haciendo”, la tecnolo- gia de los Microcontroladores, una de las que mas haf cambiado el mundo en los iltimos afios y gang miieho dinero Estos pequefios ce electrénicos se-encuentran en todas partes: au- bros Tméviles,/éomplitadoras, clectrodomésticos, alarmas, jueBos de luces, instrumentos, equipos de cofaunicaciones, etc. ‘neste curso incluimos los principios te cos, los fundamentos de su programacién, julia. gran camidad we actividades pricticas y proyectos completos para tsamblar. Los mietocontroladores son los elementos bé sicos y fundamentales de una nueva revoliitién, _ lniinrerconexién de todo con.todorertuna red mundial, de ons control. Estorper- CE eed PTT Te a cna eee a ieee a eed mitird la comunicacién de hechos y datos entre personas y objetos formando la red del con miento, base de la economia del nuevo milenio Capacitese y forme parte activa de la nue- va economia, Las personas con buenos conocimientos de esta tecnologia, tendrain muchas oportunida- des laborales 0 podrin fabricar sus propios aparatos en forma industrial, lo que puede ser la base para una empresa muy rentable. Con e8ti estructurada el curso 320 paginas (1 a 320) secciones mos de pasta dura con cada uno de los temas pr pales, Para su facil identificacién, cada una de las sec ciones tiene un color diferente. La distribucién de Jos tomos es la siguiente: Tomo 2: Programacién 160 paginas (1 a 160) El Curso practico sobre Microcontoladores de CEKIT S.A. se publicard en 40 fascfculos con tres ida uno, y al final, se agrupard en tres to- Tomo 3: Proyectos 320 paginas (1 a 320) Seccion tle Teoria En la seccién de teorfa, se estudian los fundamentos tedricos y funcionales de los microcontroladores. Esto se refiere a la estructura 0 arquitectura interna de los mismos, as{ como a la funcién de cada uno de los terminales o pines de los diferentes dispositivos tratados en el curso cuyo conoci cesario para disefiar citcuitos con estos componentes. jento es ne- Se empieza con un repaso sobre el tema de los mictoprocesadores, los cuales dieron origen a los microcontroladores, y se desarrollan durante las lecciones, los diferentes aspectos técnicos de esta tecnologfa. WT. Capacttamon para vlvte mejor la Los registros Organizacién de la memoria La EPROM de datos Las interrupciones Los puertos de entrada/salida (I/O) Los temporizadores (Timers) Las opciones Comparacién/Captura/PWM El puerto serial sincrono SSP, bssp La USART Las referencias de voltaje Los comparadores Los conversores A/D Modos de bajo consumo (sleep y watchdog) Bits de configuracion Programacién en el circuito (in circuit) El conjunto (set) de instrucciones Las comunicaciones seriales Otros microcontroladores Parallax (Basic Stamp) Intel Atmel ceion de Programacion Todo aparato o proyecto con microcontroladores i Neccion te proyectos Indicador binario de 4 bits ‘Alarma para el hogar y el automévil Reloj digital y calendario Secuenciador de luces programable Cerradura codificada Activacién de aparatos via telefénica ‘Temporizador universal ‘Aviso luminoso con diodos LED Luces ritmicas Convertidor paralelo-serial Punta logica ‘Temporizador miniacura Frecuencimetro Generador de seftales Programador de memorias Adquisicion de datos en 16 bits “Minirobot con microcontrolador Addquisici6n de datos por el ee ere Programacién de un microcontrolador El ciclo de desarrollo de un programa + Herramientas de software Programacién en modo inmediaro Programacién orientada a registros Control de flujo de un programa Puertos de entrada/salida Subrutinas Interrupciones Programacién en lenguaje estructurado Temporizadores Programacién serial Programando los conversores A/D y D/A. Programacién en lenguaje C Tépicos avanzados de programacién En esta importante seccién del curso, se entrega una amplia informacién con la cual el alumno podrd ensamblar una buena cantidad de proyec- tos. Para cada uno de ellos se incluye la teorfa de funcionamiento, el diagrama esquemético, la lis- ta de materiales, las instrucciones para el ensam- blaje y el listado del programa. ‘unde ensantie “Teer ycioraninta A quienes va dirigido el curso El tema de los microcontroladores es de gran utilidad para un grupo muy amplio de perso- nas que requieran conocer esta tecnologia por su gran cantidad de aplicaciones. Los principales grupos de usuarios son: Estudiantes y profesionales de Ingenieria y Tecnologfas: * Electrénica Eléctrica * Mecénica * Sistemas * Bioingenieria * Mecatrénica Automatizacién Estudiantes de cole; Técnicos en: * Electronica industrial * Automatizacién * Electrénicos en general * Alumnos de los cursos de CEKIT S.A. + Estudiantes y profesionales en FISIC para sus necesidades de instrumentaci Autodidactas 0 aficionados con conocimientos e1 * Electrénica Digital * Microprocesadores - ‘eel? Certificatio ee Una vez terminado el curso y aprobada la evaluacién que se publi- caré al finalizar la obra, el alumno recibir un Certificado de Apti- tud Ocupacional otorgado por CEKIT S.A. y aprobado por las respectivas autoridades educativas. Este certificado ler permitira acceder a puestos calificados de trabajo. nal Otra obra con fa calidad editorial y didéctica de Ceuur.. cua sara vivir mafor PROYECTOS CON MICROCONTROLADORES En esta seccidn tendremos una serie de proyectos completos con diferentes tipos de microcontrola- dores con el fin de practicar y comprobar la teoria expuesta, y asi cumplir con los objetivos didécti- cos esperados. En todos los cursos de electrénica, a cualquier nivel, si no se practica es muy dificil aprender algo. Por lo tanto, recomendamos que los alumnos construyan, ojala, todos los proyectos que aqui se presentan lo que les garantizard el ver- dadero aprendizaje de esta tecnologia de tanta ac- tualidad y aplicaciones. oro pricto do iroccattacors GACH. © q Introduccién a los proyectos Podriamos decir que ésta es la seccién més importante del curso ya que aqut se ponen en prictica todos los conocimientos adquiridos en las demas secciones, pero teniendo siempre presente que un proyecto con microcontroladores, sin las bases teéricas, no tiene mucho valor. Una vez que el lector haya terminado el curso, solamente podri decir que habré aprendido si es capaz de realizar sus propios proyectos partiendo de un problema o una necesidad; logrando ademas una solucidn origi- nal la cual puede convertirse en un producto final de amplia aceptacién en el mercado lo cual le traeria beneficios econémicos tanto a nivel personal como local, regional y nacional, Un buen diseftador y ejecutor de proyectos con microcontroladores, siempre tendrd oportuni- dades de trabajo, ya sea como empleado o como creador de productos electrSnicos innovadores. Los proyectos que se publican en este curso se han seleccionado como ejemplos muy represen- tativos de soluciones a los problemas ms comunes que se encuentran en el disefio de todo tipo de dispositivos electrénicos con microcontroladores y han sido ampliamente comprobados. Cada uno de ellos puede ser considerado como una aplicacién completa o ser la base de un aparato mds com- plejo que se obtiene afiadiendo més funciones para cumplir los requerimientos exactos de esa solu- cidn. Desde otro punto de vista, estos se pueden tomar simplemente como la mejor forma de visua- lizar el desarrollo concreto de los conceptos te6ricos que se han analizado en las secciones de teorfa general y programacién. Metodologia Nombre, objetivo e Para cumplir con los objetivos de esta seccién, se inclu- importancia del proyecto yen proyectos de diferentes tipos como juegos de luces, En este punto se destacan sus apli- temporizadores, alarmas, relojes, instrumentos, circuitos _ caciones, su posibilidad de formar de control, circuitos que se conectan alos puertos serial 0 parte en otros proyectos mds com- paralelo de una computadora tipo PC, circuits de co- _ plejos y las alternativas de expan- municaciones, etc. figura 1.1. Cada uno de estos proyec- sién o modificacién para obtenet tos incluye: variantes del disefio original. Figura 1.1 Proyectos con microcontoladores © RICNT 01:0 ricco te merocontrtesores Explicacién del disefio Es la explicacién concisa y detallada de cada una de las partes que forman el proyecto. Para hacer esto dela forma mds lara ydi- déctica posible, se acudi- ria diagramas de blo- ques, simulaciones por computadora y descrip- Instrucciones de ensamblaje En este curso se hard especial énfasis en los ct dados ¢ instrucciones para armar cada uno de los proyectos, para lo cual se mostrard gréficamente la evolucién de este pro- ceso, Con este fin tam- bién se incluird una guta idn paso a paso de cada Figura 1.2 Componentes con funcianes de ena para la correcta ubicacién una de las ctapas que for- de los componentes y la rman el sistema. También se in- En cuanto a los dispositi-_conexién de los accesorios cluirén diagramas de tiempos vos de salida, se pueden tener _ ternos que forman parte del ci de las sefiales digitales que se otros circuitos integrados ya cuito o aparato, figura 1.4. manejen, en donde la aplica- sean de uso general o especia- cién lo amerite. les, indicadores luminosos _Explicacién de los como diodos LED, pantallas programas (software) Esta explicacién incluye el (displays) o indicadores de siete Aunque en la seccién de pro- diagrama esquemitico o plano segmentos, pantallas de cristal _gramacién se explican los con- cen el cual se muestran todos los liquido (LCD), indicadores so- _ceptos generales para el disefio componentes del circuito y la noros, relés electromagnéticos de los programas, en cada pro- forma como se interconectan 0 deestado sdlido, optoacopla- _yecto se mostrar su programa entre ellos. dores, transistores, triacs, sole- completo, debidamente docu- noides, motores, etc., figura mentado, si el espacio lo per- Componentes 1.3. En cada proyecto se expli-_mite, Si es muy extenso, éte se complementarios caran las caracteristicas yel fun publicaré, igual que los demas, Cada proyecto de este tipo po-__cionamiento de estos compo- en Ia pagina web de CEKIT. see, ademés del microcontro- _nentes. S.A. (www.cekit.com.co) en lador, una serie de componen- una seccién especial creada para tes adicionales que realizan Lista de materiales este curso, Todos los programas funciones de entrada como re- Todos los proyec- cibir y acondicionar sefiales de tos tienen una lista diferentes tipos (sonoras, lumi- completa de los nosas, de voltaje, de corriente, materiales que los etc,); deteccién de érdenes conforman parafa- como en el caso de interrup- cilitar su adquisi- tores, pulsadores y teclados, ciénene mercado, entre otros; conversores andlo- Cada componente go/digitales (A/D); cireuitosde se enumera con su reloj en tiempo real; circuitos _respectiva etiqueta de comunicaciones con otros _y valor o referencia disposicivos similares ya seaha- que lo identifica cia un sélo elemento oa una dentro del diagra- red, etc. figura 1.2, ‘ma esquemético. Fgura 1.3 Componentes con fncones de salsa curs prctco de meroconroaores MECH. ©® BOGGS Ure eo ae Para que las explicaciones de la programacién cum- plan con el objetivo plan- teado, al lector debe po- seer conocimientos sobre Jas instrucciones del mi- crocontrolador, de las he- incluirén un diagrama de flujo donde se vea claramente cl al- goritmo establecido y los pasos que el programa debe ejecuar. De igual manera, algunos proyectos incluyen programas en lenguajes de alto nivel como Visual Basic, C++ 0 LabVIEW cuyos cédigos fuente también estarin disponibles para ser uti- lizados por cualquier persona. - al Figura 1.4 Guia para ef montaje de los companentes sramientas que se nec tan para escribir el progra- ma y de la forma como éste se lleva a la memoria del circuito integrado; te- ‘mas que se explicarén am- pliamente en laseccién de programacién. Calibracién y pruebas Enesta parte se describen las pruebas y ajustes de calibracién que se deben seguir para asegurar el fancionamiento correcto del ss- tema, siel disefio ast lo requie- re. Recomendacion importante Para hacer los experimentos y construirlos proyectosde estecur- so, es muy recomendable que el alumno tenga buenas habilidades paraarmarcircuitosen un tablero ‘Botones de Control deconexiones (promobaand,soldar correcamenteloscomponentes en Jos crcutios impresos y montarlos aceesorios externos en la caja 0 chasis; si esto no se hace bien, los ircuitos tienen muchas posibil- dades de fllar. A este nivel de co- nocimientos, suponemos que esto yasettiene, pero sino es st, sc puc- de lograr ficilmente estudiindolo y practicando, En el Curso Pricti- code Electrinica Moclema de CE- KITS.A., se encuentran varias lec- ciones y actividades précticas so- bre estos temas Nota para los alumnos que se inician en el tema ‘Como en los primeros proyec- tos no se tienen las bases teéri- cas y de programacién suficien- tes, probablemente no entende- ri algunos temas, No se preocu- pe, que al avanzar el curso los ind comprendiendo perfectamente. Pasos que se deben seguir para el disefio de un proyecto con microcontroladores Como ya lo mencionamos, cl objetivo final y principal de este curso es queal terminarlo, los lec- Comgugre Figura 1.5 ae a rotten O Ger: Fe pts ae reetetenree rmicrocantrotador ‘Figura 1.6 Diferentes tipos de microcontatcores cores puedan crear sus propios circuitos y disefios ‘con microcontroladores. Los proyectos que aqui se presentan son slo ejemplos para facilitar este pro- ceso el cual serd una manifestacién de nuestra crea- tividad, lo que seguramente nos brindaré grandes satisfacciones si se logra desarrollar correctamente, “ey [i Cuando se diseita un proyecto con un microcontro- Jador, realmente fabricamos un cireuito integrado propio, hecho a la medida, donde se verdn refleja- das parte de nuestras ideas y conceptos. En este pro- ceso se deben seguir los siguientes pasos 1) Definir claramente en palabras comunes los ob- jetivos del proyecto, detallando cada una de sus funciones y el comportamiento del circuito, te- niendo en cuenta los elementos que es necesario controlar ya sean de entrada, de salida o ambos. 2) Disefiar el diagrama de bloques con base en el punto anterior, figura 1.5. 3) Seleccionar el microcontrolador adecuado de acuerdo a los requerimientos mencionados, figura 1.6. room re: ree Be Sere contre sy 82 a Figura 1.7 Diagrama esquernética de un proyacto con mirocantolador rs prctc de Weocontlatores AC © ele Figura 1.8 Componentes para un proyecto con 4) Diseftar el diagrama esquemd- tico, figura 1.7, el cual debe incluir todos los componen- tesexternasal microcontrola- dor; ademés, se deben consi- derar las caractristicaselécri- casdeéste (capacidades de co- rriente por puerto, por pin, voliajes, velocidades, etc) y las delas cargaso cite tados a los puertos. ‘conec- 5) Elaborar una lista completa de materiales con todas las especificaciones de cada uno de los componentes, lo mas detallada posible. Lo mis recomendable es elabo- rarla en Excel con el fin de asignarle los precios a cada componente y obtener el costo total del proyecto. 6) Con base en la lista anterior, conseguir todos los componen- tesyaseaen los suministroslo- cales, nacionales y ain del ex- terior, sise trata de un compo- nente especial, figura 1.8. 7) Armar el circuito en un proto- board o en un circuito impre- s0 universal, con el objeto de tener una ersin inicialo pro ‘microcontolador totipo para comprobar el di- sefio y realizar los ajustes ne- cesarios si no se cumplen los objetivos iniciales. El micro- controlador se puede instalar sin ener grabado el programa para dejar listas sus conexio nes, figura 1.9. 8) Elaborar el diageama de flu- jo del programa para facili- tar la escritura del mismo. 9) Escribir el programa en un edi- Figura 1.9 Monta del proyecto en un tablero de conexiones (protobeard) tor de texto para computado- ra, siempre pensando en el dliagrama esquemitico y en la formaen queestin conectados Jos pines de los pucttos, esta- bleciendo si las cargas se acti- van con “unos” o “cero” figu- ra l.10. 10) Utilizar un programa en- samblador para corregir ertores de sintaxis y “tradu- cir" las instrucciones a cédi- 05 binarios. Figura 1.10 Escribiendo el programa en un editor de textos Sear: Curso practico de Microcontrotadores de determinar si es necesario modificar el programa princi- palo algunas rutinas (por ejemplo, las de tiempo), para lo cual se regresa al editor de texto y se hacen los cambios pertinen- tes, repitiéndose el proceso hasta lograr al comportamiento Figura 1.11 rogramadores para microcontroladores deseado. 11) Trasladar, por medio de un programador apropiado se- gtin la marca y referencia del microcontrolador, el cédigo binario (-hex) obtenido des- de la computadora a la me- moria de programa del mi- crocontroladot. A este pro- ceso se le lama en algunas regiones, “quemar el micro- controlador’, figura 1.11. 12) Montar nuevamente el mi- crocontrolador en el proto- board, para verificar el fun- cionamiento del proyecto. En este momento se hacen todas las prucbas y se pue~ Es conveniente, por ejem- plo, acudirala ayudade un pro- grama simulador, con el cual se puede conocer el compor- tamiento de todos los regis- tros de RAM y ROM cuan- do se desarrollan rutinas 0 cdlculos matemiticos. Este paso se puede denominar la simulacién fuera de linea (off-line). Luego se puede pensar en la ejecucién de una simulacién en linea (on-line), si se tienen las herramientas adecuadas o si se utiliza un microcontrolador que per mita llevar a cabo esta tarea, figura 1.12. Figura 1.12 Simulacién dl programa Curso practico de Microcontroladores: eur: @ ‘oyectos Ella consiste en simular dentro del circuito y en los pi- nes del microcontrolador, los programas 0 cambios que el usuario ejecute desde su com- putadora; aqui el lador atin no se encuentra pro- gramado, La tiltima etapa es una emulacién en tiempo real del programa, consistenteen que la computadora, con ayuda de unos equipos especiales (emu- ladores), puede ejecutar el pro- grama e imicar el comporta- miento de los terminales segiin lo indique el programa que se vaa grabar en el microcontro- lador. Esto se hace a una veloci- dad tan alta, que si se compara a simple vista el funcionamien- odel microcontrolador progra- mado y la emulacién, no se no- tardn diferencias. srocontro~ Con estos procedimientos, se podria deducir que el proyec- to funcionaria mejor con otros componentes 0 con otra confi- guracién del circuito, lo cual hard que se redisefie el proyec- to, modificando buena parte de lo hecho hasta este punto. Figura 1.13 Proyecto terminado con sucircuitoimoreso 1 caa de montaje erect Superadas todas las etapas anteriores y funcionando de manera éptima, tanto el cir- cuito como el programa, se pueden disefar y construir el circuito impreso final y la caja de montaje, que alojara los componentes de manera definitiva dando por concluido el pro- ceso, figura 1.13. Para realizar los cxperimentos y construir los proyectos de este curso, es conveniente po- seer conocimientos previos en clectrdnica gital, electrdnica anloga y bases sobre el ma- nejo de computadoras. Si se tienen deficien- cias en alguna de estas areas, les recomenda- mos acudir a los cursos que sobre estas mate- rias ha publicado CEKIT S.A Seleccién del tipo de microcontrolador Cuando se desea construir un aparato utilizando tun microcontrolador como elemento central, se deben tener en cuenta varios aspectos. Para em- pezar, se deben conocer los aleances y requeri- ‘mientos del proyecto con el fin de escoger el mi- crocontrolador mas adecuado. Esta decisién, se puede tomar basindose en. Ja lista de requisitos que se tienen para la aplica- cién. Si compara esta lista con las hojas de des- cripcién de los distintos microcontroladores, se- ‘guramente podré identificar ficilmente el dispo- sitivo que mds se acomode a su proyecto. Entre las caracteristicas que se deben tener en cuenta, se tienen: + Entradas/salidas paralelas programables * Canales andlogos programables + Salidas de PWM para control de motores * Condiciones para la generacin de interrupciones * Cantidad y tamafo de los temporizadores * Cantidad de memoria * Tipo de memoria de programa (ROM, EPROM, PROM y EEPROM) * Cémputo del punto flotante + Niveles de voltaje y corriemte que pueden mancjar © GIR tor piste En a scccién de tcoria se explicari detalladamen- te, a través de la diferentes lecciones, de que se trata cada uno de estos términos con el fin de que el alum- no los pueda analzar correctamente; as{que no sepre- ‘ocupe sino losentiende bien por ahora. Alavanzaren cl curso, ls iri conociendo y entendiendo mejor. Para failcar est trea, cada fabricante de micro- controladores tiene disponibles una serie de manuales de datos téenicos donde se describen las principales caracteristicas de cada uno de sus dispositvos. Asi mismo, cada empresa tiene su pagina rueb en. Jainternetcon una informacién inmediatay muy com- pleta sobre todos los microcontroladores disponibles para d disefio de proyectos de todo tipo. Dentro de «sta informacién se encuentran las “Noras de aplica- ign” (Application Note), esas son proyectos comple~ 10s, incluyendo al diagrama y el programa, que brin- dan soluciones a muchas de nuestras necesidades. En la préctica, seguramente se encontraran, ‘comparando cada casa fabricante, caracteristicas muy similares en cada una de las lineas de pro- ductos. La decisién de cual se va a utilizar debe ‘entonces contemplar aspectos como el acceso a las herramientas de desarrollo, el precio, el so- porte del fabricante, la disponibilidad cercana y |a familiaridad, y los conocimientos que tenga el usuario frente a una marca determinada. Esea seccidn de proyectos se ha enfocado en la usilizacién de microcontoladores Motorola, PIC y Basic Stamp, por estar ellos entre los de mayor difu- sin y comercalizacidn a nivel regional y mundial, Como en el mercado existen muchas otras marcas de microcontroladores de igual calidad a los tratados en este curso, con la estructura pro- porcionada, el lector podré migrat ficil y répida- mente a otra tecnologia. Esperamos que esta seccién les sea de mu- cha utilidad para aprender sobre los mictocon- troladores y tener una idea de las tantas cosas que ellos pueden hacer para nosotros. LECTOR BINARIO DE 4 BITS Por su sencillez, este es un proyecto muy apro- piado para iniciarnos en la practica de aplicacio- nes con microcontroladores. En este sistema se utilizan los puertos o I{neas de entrada/salida de un microcontrolador, para lectura y salida de da- tos digitales. Caracteristicas * Lectura de cuatro sefiales digitales de entrada provenientes de un interruptor dipswitch * Salida de datos digitales a través de diodos LED * Manejo de buffer para amplificacion de la corriente * Incluye fuente regulada aso pect de Mcecontolacores CQGRCHY.: © Lector binario de 4 Funcionamiento Para introducirnos de manera répida en el ma- nejo de los microcontroladores, y en este caso de los PIC, vamos a hacer un montaje en don- de se conectan cuatro interruptores (tipo dip- switch) como entradas del microcontrolador y cuatto diodos LED como salidas. Este proyecto tiene la configuracién tipica de un sistema de control con microcontroladores: elementos de entrada, unidad de proceso y elementos de sali- da; tal como se puede apreciar en el diagrama de bloques de la figura 1.1. El programa se en- carga de verificar el estado de los interruptores en cuanto a su nivel légico (1 6 0) 6 de voleaje, y de acuerdo a esta lectura, se deben encender 0 no los diodos LED respectivos. Este proyecto es fundamental para ejercitar- nos en el manejo de los puertos y podemos en tun momento dado reemplazar los dipswitch por diferentes sensores de entrada y los LED de sali- da, por otro tipo de actuadores como relés, triacs, cg 73105 Unidad de proceso Figura 1.1 Dagrama de Bogus del proyecto clectrovalvulas, ete. La figura 1.2 muestra el diagrama esquemético del circuito, Nétese que los interruptores tienen resisten- cias de 1 KQ conectadas al positivo de la fuente de alimentacién; estas sirven para fijar un nivel alto cuando el interruptor correspondiente no esté haciendo contacto. En este caso, cuando no se encuentra cerrado ningiin interruptor, el mi- crocontrolador lee, en sus Iineas de entrada, “unos” y cuando alguno se encuentre cerrado leeté un “cero”, figura 1.3. Por otra parte, para encender los diodos LED se utiliza como buffer acoplador un circuito integrado ULN2803, el cual tiene un conjunto de transistores que in- vierten el nivel de voltaje (si es alto lo pasan a . Figura 2 RESET Diegama @ Sire Curso préctco de Microcontroladores ‘Nota: Efunconamientoy estructura de fos crcultos de osciaciin reset seanalizaran detalladamente en la secién de teoia Figura 1.3 Obtencién de os niveles gions en las ineas de entrada bajo y viceversa) y amplifican la cortiente. Por lo tanto, el nivel de salida para encender un LED debe ser positivo. La fuente regulada de voltaje Aunque los microcontrolado- res PIC pueden ser alimenta- dos con voltajes entre 3 y 6V, cs recomendable suministrarles tun voltaje estable y de bajo ri- zado, dentro de dicho rango, para que el comportamiento de Jos citcuitos que poseen en su interior sea el esperado y no ocasione algdn problema en la cjecucién de los programas. El disefio de la fuente inclu- yeal regulador positivo de SV, de la serie de reguladores integrados ddetres terminales 78105, cuya ca- pacidad de suministr de corrien- tes del orden de 100mA, sufi- icnte para alimentar el circuito, Para mejorar la estabilidad y garantizar el buen desempefio del regulador, éste debe estar acompariado de los condensado- res Cl, C2 y C3. El diodo recti- ficador de propésito general D1, que abre o cierra el paso de la corriente hacia el circuito depen- diendo de la polaridad encre sus terminales (dnodo y cdtodo), se ha incluido en la entrada como una proteccién para el circuito de este circuito si hay una inver- sién prolongada en la polaridad del voltaje de alimentacién. Los diodos emisores de luz LED (Light Emitting Diodes) Son un tipo de diodos que se uusan generalmente como indi dores luminosos y como visuali- adores, figura 1.4. Para que un diodo LED pueda emitir luz, es necesario que sea polarizado di- rectamente con un voltaje posi- tivo entre dnodo y catodo supe- rior a 1.5V aproximadamente, Las principales ventajas de los LED como emisores de luz es su tecnologia de fabricacién cn estado sélido, lo cual impli- ca que su desgaste o vida titil es mucho més amplia que la de los indicadores luminosos incan- descentes. Bajo condiciones de polaridad directa, el diodo LED brilla con una intensidad lumi- nosa proporcional 2 la magni- tud de la corriente que pasa a través de A, la cual debe ser li- mitadaa menos de 50mA (tipi- camente 5mA) para evitar su descruccién por calentamiento. EI microcontrolador Antes de continuar con fa ex- plicacién del funcionamiento de este proyecto, analicemos brevemente las caracteristicas del microcontrolador utilizado. Se trata del muy conocido PICIGE84 de Microchip, cuya disetibucién de pines la vemos cen a figura 1.5. Sus principales caracteristicas son: * Memoria de programa Flash de 1K x14 * Memoria de datos RAM de 68 bytes + Memoria deddatos EEPROM de 64 bytes * PILA de8 niveles * Cuatro tipos de fuentes de interrupcién * 35 instrucciones + Encapsulado de 18 pines + Frecuencia de trabajo méxi- ma de 10 MHz + Un solo temporizador + 13 lineas en total de entra- dafsalida (1/0) * Corriente maxima absorbi- da: 80 mA en el puerto A y 150 mA en el puerto B * Corriente maxima suminis- trada: 50 mA en el puerto A y 100 mA en cl pucrto B * Corriente maxima absorbi- da por linea: 25 mA * Corriente maxima sumi- nistrada por linea: 20 mA Memoria de programa Es una memoria de 1Kbyte de tamatio con palabras de 14 bits ipsa ‘ate Sear Cétodo | © { Anodo Cy Figura 1.4 Los diodos LED (aspect isco ¥y simboto) curs préeteo de Mecrocontiecores GREAT. © Ose Og Ea ie a a, > 0 aerroon: oscveunn Wo oscoraxout sot — ec ae 8 roie—4 14> 198 i a5 rat — Figura 1.5 Distribucdn de pines del mirocontolador 16F84 ‘Como es del tipo FLASH se puede programar y borrar eléctricamente, lo que facilita el desarro- Ilo de los programas. En la figura 1.6 vemos el ‘mapa o distribucién de esta memoria; en ella se puede apreciar el espacio de la pila y las ubica- ciones especificas que deben ocupar cada una de las porciones del programa como el reset (0000H), el vector de interrupcién (0004H) y la direccién de inicio del programa (0005H). En la numeracién 00H, 0004H y 0005H, las primeras cuatro cifras indican una posicién cde memoria (0000, 0004 y 0005) y la letra H al final, indica que estén escritas en el sistema de numeracin hexadecimal, que es muy utilizada para este tipo de datos. Memoria RAM El PICIGF84 puede direc- CAL 1s cionar hasta128 posiciones fn dememoria RAM, pero blo RETURN tiene establecidasfisicamen- te las primeras 80 (QOH- 4FH en hexadecimal). De éstas, las primeras 12 son re- gistros que tienen un propé- sito especial en el control del microcontrolador y las 68 si- guiientes son registros de uso general que se pueden utili zar para almacenar los datos temporales de la tarea que se std ejecutando. En la figura 1.7 se aprecia el mapa de la memoria RAM. ‘0000 See ee Figura 1.6 Mapa dela memoria de programa © BICIT, 120 prte0 0 meroconnetares Dentro de este mapa podemos apreciar el re- gistro de estado en la direccién 03H, figura 1.8. Este registro contieneel estado aritmético dela ALU, la causa del reset y los bits de prescleccién de pégina para la memoria de datos (RAM). Estos tiltimos son especialmente tiles cuando trabajamos con mi- crocontroladores PIC de mas capacidad que el 16F84. En esos dispositivos, la memoria de progra- ma (ROM) se divide en varias “paginas” o bloques de programa y la memoria de datos se divide en varios bloques denominados “bancos”. Podemos observar que la memoria RAM, en el caso del PIC 16F84, se divide sélo en dos “ban- cos”. Para tener acceso a cada uno de los regis- tos, debemos decirle al programa que direccio- ne el banco correspondiente segiin el registro que deseemos trabajar, Para cambiar de banco, se uti- liza el bit cinco del registro de estados, ponién- dolo en uno o en cero segiin corresponda. Descripcién del programa Cuando se lee el estado de los dipswitch se debe invertir el valor leido, para asegurarse que el in- terruptor que esté cerrado se convierta en una seftal positiva para encender el LED correspon- diente. En la figura 1.9 se muestra el diagrama 04H ‘005H BANCO O BANCO 1 Sat No es un registro fico ‘= Posiciones no establocidas ‘Figura 1.7 Mapa de ia memoria RAM det Aiciered Figura 1.8 Registro de estado de flujo correspondiente al ejercicio y en la fi- gura 1.10 el programa respectivo. Cada uno de los bloques del diagrama de flujo se ha etiquetado con un nuimero, al igual que cada una de las partes del c6digo del progra- ma se ha marcado con letras para ser referencia- dos dentro de la explicacién que se daré a conti- nuacidns esta metodologia se seguird aplicando a lo largo de este curso. ‘Cuando escribimos un programa para un mi- crocontrolador, debemos tener en cuenta el mapa de las direcciones de la memoria RAM que po- sea, Este mapa de direcciones debe contener los puertos, el registro de estado, el registro de inte rrupciones, etc., y debe estar incluido en todos los programas que desarrollemos; estas definicio- nes estin dadas dentro de la seccién A del pro- grama a través de la directiva EQU. La funcién de esta directiva es definir una constante a un nombre en el programa; cualquier valor defini- do por EQU es fijo y no se puede modificar en ninguna parte del programa Curso préctico de Microcontrotadores eur: Proyect 3g Figura 1.9 Diagrama defy del programa Los nombres que se escogen son libres y a eleccién del programador; por ejemplo, status lo hubiéramos podido llamar “estado” o tener cual- quier otro nombre, pero siempre se referind a la direccién 03H dela memoria RAM que corres- ponde a ese registro (STATUS). Cada que utili- ® oa En caso de que un numero se escribe 0°15° significa atimero decinal Hn caso de que el ninero se eseribe 6790010101": significa nnero, binrio Hn caso de que un numero Se eseribo 25H: significa numero hewadce\nal iSt no se especifica nada, ‘se supone rumeracton hexodecinal IdeFinicton de registros pe cau oak Stotus qu 3H tebe at pea eu OH irish SH tise eu BSH . cu oH reset org” acto inicio org inicio bef status,5 moviw 3H owe Seisb ov ove ber ciclo betes oer ez ifs 20 ber et efss 80 5 tts ote bse en goto eet es BE ptooe goto ete es Be ptae,7 gto te eo goto eee ena Fusibles de progronacton Ose bu Netehdog of Cote protect OFF Poner"Up-Tiner OW wero. Picasa ccemos la palabra searusen el programa, cl ensam- blador entendera que nos estamos refiriendo a la direccién 03H de la memoria RAM, Por facili- dad de entendimiento, es muy conveniente asig- iempre nombres relacionados con la funcién de cada uno de los registros para que nos ayuden a recordatlos. En el bloque B del programa, se observa una nueva directiva denominada ORG. Con ella es- tablecemos la direccién, en la memoria de pro- heer: Curso prdctco de Merocontrladores fel vector de reset es 1a direccién 02 ise salta ol inicio det prograna el prograta enpiezo en ta direcci6o de menoria as jpongo cero en el pin 1 del puerto & iregreso o chequeor el punto'B del dip pongo. cero en el pin @ cel puerto & Fegreso a chequear el punto C del tp pongo cero en el pin 7 del puerto B egreso. chequear el punto D del oip ongo cero en el pin 6 del puerto B reareso para continuar el ciclo jel puerto 8 esta en la direccién 06 de Lo RAM A Fel puerto 8 esta en la direccin 0 de 1 RAM registro de configuracion del puerto & registro de conflguracion det puerto & indica que el resultado se guarda en B C se ubica en et segundo banco ge RAM 3se carga et registro W con 3C 35e progranan los pines del puerto 8 se ubico en el primer banco de memoria RAM requeo el pin 3 del puerto 8, (dip AD si estd en Cero solto a ett $81 esta en uno, pongo un uno en el pin RAL jghequeo el pin'2 det puerto @ (BIT B del dip) si esté en Cero, salto o et3 #54 est@ en uno, pongo un uno en el pin RAQ Hchequeo el pin'a del. puerto B (BIT € del dip) esta en cero, salto a et5 {est en uno, pongo un uno en el pin R87 wequeo el pin'S det puerto ® (BIT D del dip) isi estd en Cero, salto a et7 Si esta en uno, ‘pongo un uno en el pin RBS Irepito todo et proceso D Figura 1.10 Programa para el proyecto grama, del cédigo que sigue continuacién y que se debe ubicar en la direccién que ella referencia Si miramos el mapa de la figura 1.6, observare- ‘mos que esta parte del programa lo que hace es ubicar al cédigo en su posicién correcta, el vec- tor de reset en la direccién 0000H y el inicio del programa en la direceién 0005H. ‘Cuando desarrollamos una aplicacién con mi- crocontroladores, uno de los primeros pasos que debemos seguir es configurar el funcionamiento sib de los puertos, es decir si cada Configuracion: — ox7 uuno de los pines o terminales del See microcontrolador vaa servi para ma oes entrar datos 0 para originar sali- =H da de datos. En algunos casos, Pa © we uun mismo pin puede alternar su aa funcionamiento, pero esto lo Agua 41 Covgwactin °° analizaremos mds adelante. En Seat Ls ial el bloque 2 del diagrama de flu- joy en el bloque C del progra- colocar un “cero” en el bit co- da, se utiliza la instruccién brfis ima, se establece esta configura-_rrespondienteal pin, econfigu- ,b, la cual lee el bit cidn. Esto se hace a través delos ra como salida, mientras que si__indicado por la letra b del regis- repistros erica y trisb, los cuales se escribe un “uno”, el pino ter- tro indicado en (en son registros de ocho bits que minal queda configurado como este caso los puertos A y B), y se configuran los puertos Ay B; al entrada, figura 1.11. Encl pro- _ salta la siguiente instrucci6n si grama observamos cémo sehace ese bicesté en “uno”; siel bitestd PARASABER WAS eraniotadede-| ¢lcmbio a la pégina uno para en “cero”, el programa ejecutala Sno oe sofware tleada para tases poderacceder a frisay trish para siguiente instruccién la cual co- caruncenitodemsnveseresenensan- modificarlos rresponde a un gotoceriqueta>. aor lanado cio fete) ainstructio- La instruccién goto permite sal- etreleeiedaenecelabelr Los numerales 3 al 14 del tar incondicionalmente varias tas insiuccones en ensanbacorson un diagrama de flujo y la parte D _ posiciones hasta el lugar donde Conjunto de comandos establecidos ata- del programa, toman cl valorlei- se encuentre la etiqueta que se eecpaiaeechorencnsnesanes 40 d€ los interruptores che- referencia en . Una laiaen wc 4queando uno a uno los bits RB3, _ vez se han leido los cuatro ter- RB2, RB4y RBS. Segiin el esta-_minales del interruptor, y origi- do de cada uno de esos pines, se nado la salida correspondiente, lengua ensamblador de os microcon- ‘uncionespecfic y pola tanto puede ser ‘Bases pra ert ntegrado oe 18 invocado cada vez que se neces lal +f et _ Canetr de ani ge 2 pes arse pricticn de Mcrcontoadores CAGMCAT:: @ traaanres PI pest tes comporetes ae Ber eine sc debe sacar un “cero” o un “uno” el programa retorna al punto 2 Instrucciones mneménicas por los pines RA1, RAO, RB7 y del diagrama de flujo o etiqueta a RBG, respectivamente. Para leer ciclo del programa, para repetir i. cada uno de los pines de entra- todo el proceso. eae aetanuee cones Hie ‘rasladan drectamente en cédigo de m= ee eee ‘quina. Se usan para realizar operaciones 1 it “Microcontrolador PICT6FB4 _matematicas yligicas sobre datos residen- 1 2 ‘egulader fijo de +5¥, LM7BLOS tesonlamomataTantn pueden over io Orr deers NN, UHC ats ene rts, lua cue star +o Dic ected opt ea HED Joao de memoria de programa 4 Ups, LEDS yLED4 Dogs LED ge Sam, oe sie 2 Giyed Candas creme 0.1080” ee ee eee 1 @ ‘Condensador electrolitico de 47uF - 25 | See re eae 2 chyos Condensadores cerkmicos de 20 -50V ‘oer or eden tt ab mem santas eee ae ‘nicos, referenciar datos y en qué formato 4 -RI,R2,.RSYRA — Resistencias de 1KS2, 1/4W0 ‘se ornare de sta 4 SRRATY RD altos 300 1 iw fede oe 00 VA" Un macro es una seuencia de coman- i to fesse 100,14 dos de netuccones en esamblad Ex 1 (eres tn Drow ce psceres un bloqu de programa que real ura tae fear ac 2 i Lector binario de 4 bits Ensamblaje del proyecto Aunque este proyecto es simple yemplea pocos componentes, el proceso de ensamblae se ‘be hacer de una forma técnica contando con fs erramientas béscas tales como et aut, as peas, carat el pelacables yl soliadura de estafo; usar la gua de ensambaj jada sobre la cara de los components en eccuto pres, y guendo culadosamente estos pases: Paso ‘Figura 1.12 En a figura se nwestrae! Conjunto de componente eectrénicos, elementos electromecsnicos y accesorios, que se requieren para Figura 1.13 Usandoatambre teleéinico censamblar elector bnario de 4 bts desnudo mime 24, construya con as pinzas los dos puentes de alambre y suldoos al vel dl supercede a tae Paso ¢ Paso 4 i Paso 5 f ‘Figura 1.14 Ubique y suede Figura 1.18 Suelde a ‘Figura 1.16 Fe afore con Fgura 1.17 Suck ol egutacer todas las resistencias ye! dodo contnuacién las bases ylos _soldada los condensactres (C3, el puisador $2, | rectfcador. dlodos LED, orientando carémens primer, uego el ——_iteruptr too DIP ye cuidadosamente el nooo yel _condensadreecraltco ye! canector de entrada, cétodo, sta de 4 Me Figura 1.18 En a fotografia, se muestra el _aspaco de proyecto nama, Figura 1.19 Con una batera fuente de 9V CC, alimente fa tarjeta sn ef ‘microcontolador y mia con un ‘maitimetoe! voltae entre los pines 14 y 5 de fa base del ‘microcontrolador (101), et cual debe ser +5V CC, sielcircuto esta regulando bien. Figura 1.20 stale en su base e! microcontroador 16F84 programed; zliment of Circuito y commute cada uno de ics interuptoes da interuptr tipo DP (AB,C.D), y ‘abser que cada uno de los diodos LED se enciendan o anaguen en respuesta a fa _accién sobre su correspondiente interuptor ST esto acu, el ciculta est trabajando ‘len Sino esas, revise muy bien l psicén dels componentes, todas les soldaduras {yel programa det micracontoladar. Curso prictco de Microcontrotadores @ fcr: CONTADOR DECIMAL DE PULSOS Por medio de este proyecto, tendremos un circuito que cuenta, de 0 a 9, los pulsos provenientes de un pulsador y los muestra en un display 0 indicador de siete segmentos. Aprenderemos a manejar rutinas de retardo y conoceremos el funcionamiento de un os- cilador RC para un microcontrolador. Caracteristicas * Lectura de una sefial de entrada proveniente de un pulsador. Este elemento puede ser en un momento dado un sensor u otro sistema de deteccién. * Cuenta los pulsos que se originan en la entrada. curse prdcteo sore Mcroconoedores CAYPCAT.: © 3 TU ELM eo nsec) Funcionamiento En este segundo proyecto, aprenderemos concep- tos y técnicas muy importantes para el desarrollo de aplicaciones con microcontroladores PIC. Este montaje tiene por objeto visualizar en un display de siete segmentos el conteo de las veces que se acciona un pulsador ($1). Como por ahora tra- bajaremos con un solo display, visualizaremos el 1€0 desde cero (0) hasta nueve (9) y luego iaremos de nuevo. Muchas veces, cuando desarrollamos circui- {0s pricticos con microcontroladores y distintas clases de sensores, nos encontramos en la situa- cidn de tener que detectar senales digitales de corta duracidn. Para estos casos, existen algunos métodos que nos permiten leetlas correctamen- te, los cuales trataremos en esta ocasién al tener como entrada al sistema un pulsador. En la figu- ra 2.1 observamos el diagrama de bloques de este proyect; la unidad de entrada la conforma el pulsador $1, la unidad de proceso es un micto- controlador PICI6F84, el cual hemos seleccio- nado por las ventajas que tenemos al trabajar con un dispositive con memoria EEPROM y final- mente, la unidad de salida esté compuesta por un circuito decodificador de BCD a siete seg- mentos y un display de siece segmentos, en el cual observaremos el resultado del conteo En la figura 2.2 se muestra el diagrama es- quemético del circuiro. La entrada de $1 se ha conectado a una linea del puerto A, en este caso a RAO (pin 17) y las seftales para el display salen por los pines RBO, RBI, RB2 y RB3 del puerto B. Enestos cuatro pines se origina el eédigo BCD Unidad de ‘entrada Unicad de proceso Unigad de sada Figura 2.1 Diagram de bloques dt contador de pusas ov fs a [3 vpasoa 4 —B shai] gl ‘Teele? 32a] Mame 2 [2 yw0 z + LESAN BIO_2 3s 7 apa = a oe L a = a Circuito de ret 10% a —_|f Ke score scr ak “51 ° vs reser 3 is Figura 22_Diagrame esquemtico del circu. correspondiente al mimero; el RC, con una resistencia de 10 Circuito integrado TTL7447 se KQyuncondensador de 20 pk. cencarga de traducir este eédigo Esto se hace para que el sistema y entregar la representacién en sea mds econémico y teniendo cl formato de siete segmentos. en cuenta que este tipo de osci- Esta es una técnica sencilla que _lador se puede utilizar en apli- nos permite ahorrarlineas (pues _caciones donde no se requiere sélo necesitamos cuatro lineas mucha velocidad o precisién de para manejar los siete segmen- tiempos. Al incorporar esta red tos) al trabajar con este tipo de RC como cireuito oscilador, se visualizadores debe configurar esta eleccién en el momento de programar el mi- Notemos que el pulsador cracontrolador, habilitando la SI tiene una resistencia de 1 opeidn que indica que este tipo KQ conectada al positivo dela de oscilador es el que se va a uti- pura 25 Desimactn obs sogmentos fuente de alimentacién; por _lizar, figura 2.3. dal display y eumeracin sus terminals sca razén, cada vez que el pul- sador $1 se oprime, se origina Esta opcién forma parte deca en la figura 2.5. La mayorfa un estado Iégico bajo (0 vol- los “fusibles” de programacién, —incluyen un LED adicional que tios) en la entrada de la prime- los cuales son las opciones con _ sirve como punto decimal racompuerta (pin 1);delocon- las que se le dice al software pro- trario, dicha entrada siempre gramador que grabe el progra- _Los displays pueden ser de permaneceri en estado Idgico ma. En la figura 2.4 se indican _énodo o de cétodo comin, de- alto (5 voltios) las frecuencias deoscilacién que pendiendo de como estén co- originan en el microcontrolador, nectados internamente los seg- Circuito de reloj distintos valores deRyC. —_mentos. El utilizado en este Todo circuito con este tipo de proyecto es de énodo comin. microcontrolador, y en general En este caso, todos los énodos con la gran mayoria de ellos, de los LED estén conectados debe llevar un citcuito externo : entre si, formando un énodo de reloj que puede ser un cris- E comiin, y todos los cétodos es- allan tocar Gia’ xd Re awa or tin libres. En un display de c4- tema que se explicars amplia- pigyra 24 Frecuencias do osciaciin t0d0 comin, sucede todo lo mente en la seccién de teorfa. orginada por dstntos vabres en ared AC contrario, En este caso se ha utilizado como circuito oscilador una red El display de 7 Notemos que externamen- segmentos te disponemos de 10 termina- Es un dispositivo semicondue- les de conexién: dos para el tor que se utiliza para visualizar_4nodo comtin (COM), siete los ntimeros del 0.al 9, asi como para los cétodos de los segmen- algunas letras y simbolos espe-_tos (a, b, ¢ d, e, f g) y uno ciales. Los segmentos, cada uno para el cétodo del punto deci- de los cuales estd formado por mal (P). Los terminales se nu- Figura 23 Hebiltacén do osclador AC aun LED con forma rectangular, meran del 1 al 10 como se in- ‘momento de programar el icrocontolade”. oseén, organizados en forma de dica en la figura 2.5. Para vi- st open fora pane ces tastes ae 4 ; programactin quese deven cniguar “8” y se designan como se indi- sualizar un carécter, por ejem- plo el niimero 4, deben encenderse ciertos seg- mentos (b, ¢ Fy g, en este caso) y mantenerse apagados los demés, El color de la luz emitida porlos segmentos del display puede ser rojo, ama- tillo, verde y naranja, dependiendo del disefio y la referencia del mismo. El decodificador de siete segmentos 17447 es un cireuito integrado digital TTL di- sefiado para manejar directamente un display de 7 segmentos de énodo comin; por ello, cada uno de sus pines de salida, destinados a operar los segmentos del display, es una fuente de corriente con capacidad para manejar hasta 10mA por seg- mento. Para manejar el display, el circuito inte- grado tiene las salidas a, b, c, d, ¢, Fy g, que se deben conectat a través de resistencias limitado- ras de corriente con cada uno de los segmentos. Para formar cualquiera de los niimeros de- cimales a través de los segmentos del display, el decodificador cuenta con cuatro entradas bina- rias (A, B, C y D) en las cuales se representa el niimero deseado por medio del cédigo BCD. Por cjemplo, para visualizar cl ntimero 5, las en- tradas del decodificador deben ser: A=1, BO, C-ly D-0. El circuito eliminador de rebotes Los interruptores mecdnicos generan unas sefia- les no deseadas de conexibn y desconexi6n que originan falsas lecturas cuando se conectan como entradas en los circuitos con microcontrolado- res. Estas sefiales se denominan “de rebote” ya que se originan cuando dos piezas metélicas se acercan o alejan, o rebotan entre si. En este proyecto, el circuito climinador de rebo- tes esti compucsto por dos compuertas tipo schmitt srigger contenidas en el circuito integrado 7414, y tn filtro pasabajos formado por la red R2 y C2. El propésito del circuito es amortiguar las conmuta- 1) goto” etd Sino did cero, puedo continior } increnentondo el contador goto etl jst aid cero, reinicto el proceso y | borro et contador et2 _novF_contar,w } cargo w con el valor del conteo mow portb ”” ; Tlevo al puerto 8 dicho valor goto Ciclo} regreso a Teer de nuevo el pulsodor ene Figura 2.7 Cécigo fuente del programa LEKI: 00:0 18cco ste werocntoooes 1010. Esta situacién nos permite co- nectar directamente el decodificador 7447 a los pines RBO, RBI, RB2 y ae (que son los bits del puerto B) isualizar el resultado correcto en a eeplaseiectegmetee Ahora podemos verficar si se ha pulsado SI; esto se hace en el bloque F del programa y en los numerales 6, 7 y8 del diagrama de flujo. Podemos notar que se hace una primera lecru- ra del puerto RAO; si no existe nivel légico bajo, se retorna a la etiqueta ciclo para que siga leyendo ese pin si hha detectado efectivamente un nivel bajo, se llama a una subrutina de re- tardo y luego se chequea de nuevo si 1 nivel bajo permanece; numeral 8 del diagrama de flujo. Este tipo de chequeo de seguri- dad es necesario en casos donde se Jean pulsadores debido a la estruc- tura fisica de estos dispositivos. Como ya lo mencionamos, en estos elementos es comtin que se origine tuna serie de contactos involuntarios 0 rebotes antes de la pulsacién real y atin después de soltar el pulsador. Para evitar este problema, ade- més del circuito antirebote de la en- ada, cuando detectamos un nivel Iégico bajo esperamos un espacio corto de tiempo (del orden de los mi- lisegundos) y leemos de nuevo para corroborar que el nivel Idgico bajo se mantiene y que en realidad se tra- ta de una entrada del pulsador y no tuna sefial accidental. Para incorporar el tiempo de espera entre las dos lecturas del puerto, acudimos a una subrutina de retardo. Una subrutina es una par- te especial del programa que efectiia una funcién especifica y que puede ser llamada en cual- quier momento mediante una sola instruccién. En este caso la rutina retardo es, como su nom- bre lo sugiere, un retardo de tiempo del orden de los milise- gundos que utilizamos para in- corporar una espera antes de calificar como valido el nivel bajo leido en el puerto A. PARA SABER MAS ‘ubrtina un fragmento de instruccones qu a- imamos denito de un programa, Norma mente se coloca ura subutin dentro de un programa para une separacio gic de ‘na func del rest cio fuente. Con «ste recurso podemos econamizar espacio ‘de mamora puns slo se scribe una vz ot ‘tug de instrucciones necesaris. La estructura de una subrutina es fa siguiente: Etqueta Instuccion 4 Instuccién 2 Instruocion 3 Instruccién retw Etiquetas nombre dla subrutina el cal uizames paraimocara desde cualquier pun- {to del programa através dea crectiva CALL. ‘A final do cada subrtna debe aparcer la instrocion RETIW para que la CPU pueda re ‘tesa ala eecucin de las instuccones que _seguian eno programa después del CALL Sial hacer la segunda lectu- radel puerto A desaparece el ni- vel légico bajo, asumimos que se wataba de un rebote, pero si se manticne el nivel bajo, tendre- 1mos la certeza de que se trata de una pulsacién en SI ¢ inmedia- tamente se incrementa el conta- dor de pulsaciones; numeral 10 del diagrama de flujo. Como este contador no puede pasarde nue- ve, estamos el contenido del con- tador del contenido del registro limite, es decir, de 10 (numeral 11 del diagrama de flujo). Chequeando la bandera de cero (Z) del registro de estado, nos damos cuenta si contador haa llegado a diez; si no ha llega- do podemos mover directamen- te el contenido de contador al puerto B. Si contador ha llega- doa diez se salta a etl donde se borra el contador y se reanuda el conteo. La subrutina de retardo Una subrutina que proporcione un tiempo de retardo, es muy titil en una gran cantidad de apli- caciones con microcontrolado- res. En el bloque D del eédigo fuente, observamos la subrutina de retardo desarrollada la cual pasamos a analizar: “retardo” es el nombre o ctiqueta que indica el inicio de las instrucciones de la subrutina que seré llamada desde el programa principal En este caso, el retardo de tiempo se logra ejecurando mi- les (0 millones) de instrucciones que en realidad no hacen nada. Como la ejecucién de una instruccién emplea cierto tiem- po, dependiendo del procesa- dor y del circuito oscilador que posea, al introducirnos en un ciclo que consuma miles de instrucciones y que no pueda continuar con el programa has- ta que esa cantidad sea cjecu- tada, obtendremos un espacio de tiempo que nos sera itil para nuestro programa, Este tipo de retardo se denomina retardo por software y lo tinico que hace es que, cuando invo- ‘amos la subrutina, se entra en un perfodo de espera que pue- de ajustarse segiin las necesida- des del sistema. Observamos en el progra- ma que el registro loops se cat- gacon el ntimero decimal 100 y el registro loops2 con el ni- mero decimal 110. El retardo se inicia en la subrutina top2; alli se empieza a decrementar el registro loops2 y hasta que no llegue a cero, el programa Dentro de ese ciclo se re- corren unas instrucciones NOP (no operacién), que sim- plemente no hacen nada, solo ayudan en la rutina a incre- mentar el numero de instruc- ciones que se deben ejecutar. ‘Cuando loops? ha llegado cero, se decrementaen una uni- dad el registro loops y se carga De esta manera, logramos que se ejecute 100 veces el de- cremento coral de loops2. Has- ta que loops no sea igual a cero, larutina se continuara ejecutan- do y no se retornaré al progra- ‘ma principal. anoritosinnwntnnin cgicre: i> Contador decimal de pulsos Ensamblaje del proyecto a cat mt ten se Wn 8 Bethe: pe sora i 8 Deseo Be agape oi 747 : 8 Ganga ca eg Te i oR Dect ase rons Ono ace 1 Blas Serie seen era 1g ncn sca i 8 Sea tes 0 1 as. i 8 Scien Sooners ot bo Row Racer tne ae $ Btemsemomen feces Sot i 8 Seeese iia Fgura2.8 Aquiso musta c/comuniode =? SL ss aes nies en components elecroncs y bs Sect re a ne peer ete Sane ae Sefer cre npn 9 ‘ensarbar proyecto Ser eee ees, Figura 29 ove y sve todas as estenoas (17) ye dodo rectificador Dt Paso3 Figura 2.11 lnsale y suede ahora ol display de sete segmentos. Figura 2.12 instale y suede los dos intrryptores (bserve la pasion corecta cel punto decimal, e cual debe pulsadore yo trminal para a alimentaci. ‘quedarabaio ala derecha Paso 5 Paso 6 ‘Figura 2.13 sale ara, con sodacua, el cendensazer cerimico Figura 2.14 Istale an su base ol microcontaadr PC 1684 ‘primero, y beg os dos condensedoes elactotics observando _programadoy los circuits integradas 7447 y 7414 observando su poaridad para cada uno, la posicin corecta dl pin No.1 Paso 7 Prueba fal ara probar el cicuft, alméntelo con una fuente requad de 5 volts ypresione el pulsador RESET; of splay debe Ind\car 0. Presione lego et interuptr St; observe que cada vez que se presiona ef dsply debe incremental conteo on 1. Sesto ocure, ef ccuito est tabalando bien. Sino es as revse muy bien la posicin de los componentes, todas las soldadurasy el programe del microcontalador ® BINT 610 2100 se Merocoravaoes SECUENCIADOR DE 8 CANALES En esta ocasidn construitemos un dispositivo que origina secuencialmente una serie de datos de 8 bits. Este circuito puede usarse en juegos de luces 0 en el control secuencial de algtin proceso 0 aparato. La salida se visualiza por medio de diodos LED, pero puede adaptarse a una tarjeta de potencia con tiris- tores para activar bombillas de mayor voltaje. Caracteristicas * Secuenciador de ocho bits u ocho salidas * Configuracién de la velocidad con que se ori- gina la secuencia: cuatro posibilidades * Configuracién de la secuencia: ocho posibilidades * Cada secuencia es de ocho pasos * Salida por medio de diodos LED e interfaz hacia circuitos de potencia cree petetio sate Memcecrentres CAGRCTEC: ® Secuenciador de 8 canales Funcionamiento Un secuenciador de luces es uno de los proyectos que todo aficionado a la electrénica ha querido fabricar alguna vez, Por esta raz6n y por la utili- dad prictica que puede tener un dispositivo de esta naturaleza, hemos querido presentarles este ircuito, el cual se puede ampliar o acomodar segiin sus necesidades. Un secuenciador, como su nombre lo sugiere, es un aparato que a través de sus salidas puede enviar varios datos digitales ‘uno tras otro, cumpliendo con una secuencia es- tablecida. Por Jo general, una secuencia se com- pone de un mimero determinado de datos alma- cenados en una tabla que constituyen los pasos de la secuencia. El proceso empieza tomando el primer dato de la tabla y llevandolo al puerto de salida, donde permanece por un tiempo decer- 1ado. Luego se repite el proceso con el segun- aE Unidad de Unidad de proceso sala Figura 3.1 Diagrama de bloques del secuenciador Unidad de entrada do dato, luego con el tercero y asf sucesivamente hhasta recorrer todos los datos de la tabla. Cuan- do se ha terminado con el iltimo dato, se llama otra vez al primero, volviendo a iniciar el proce- so en una especie de ciclo continuo. Este secuenciador permite por medio de un interruptor tipo dipswitch, seleccionar la velocidad ‘con que se envian los datos sccuenciales al puerto, es decir el tiempo que cada uno de ellos va a per- manecer en la salida. De igual manera permite se- leccionar la secuencia 0 tabla que se va a trabajar, Oo A ‘cr were) | Ceo [mel a : So ct ConT 10003 gig Se + i aI ' R2") RS] RA) RS RB a Ne “led e3| | eS ff ok = . “e Reo | e INTERFAZ DE opi] 9A on on on i POTENGI ‘sciader ie Figura 3.2 Diagrama esquemstico de secuenciador entre ocho posibilidades que se han establecido dentro del programa.En otras palabras exis- ten ocho rablasdistinaa, cada una de ocho pasos y ocho bits, entre las cuales se escoge una para esta- bleverlasecuencia, Ela figura 3.1 tenemos el diagrama de bloques general del proyecto, en el se ob- serva al dipswitch como dispositi- vo de entrada, un microcontrola- dor PICIGF84 comoclemento de procesamiento y ocho diodos LED como elementos de salida. En la figura 3.2 se ilustra el diagrama esquemético del circui- to. El aipsvitch es de cuatro pines y se ha conectado a los terminales RAO, RAI, RA2 y RA3 del mi- crocontrolador, el puerto B se ha utilizado como salida de la secuen- cia; porlo tanto, allf van conecta- doslos ocho diodos LED cada uno deloscuales se activa con un nivel bajo en lasalida del puerto. Como oscilador se ha utilizado una red RCy para laalimentacién se utili- 26un regulador 78105 con un cir- cuito de fitrado. Configuracion del sistema Podemos seleccionar entre cua- tro velocidades y ocho tipos de Figura 3.3 Modos de fucionamienio de sistema secuencias distintas, odo con un dipswitch de cuatro pines. Este sistema se ha disefiado para que funcione en dos formas © mo- dos: el modo “programacién” y ‘el modo normal o “RUN”. La eleccién del modo de trabajo se hace a través del pin 4 del dipswiteh conectado al pin RA3; si este interruptor se encuentra abierto, en RAB se leerd un nivel alto y el sistema entenderd que std en modo “programacién’; y sil intcrruptor se encuentra ce- rrado, en RA3 se leerd un nivel bajo y el sistema entrar en modo “RUN”, figura 3.3. ‘Cuando estamos en el modo de programacién, podemos esta- blecer la velocidad del secuencia- dor leyendo los dipswitch | y 2.co- nectados a los pines RAO y RAL, teniendo en cuenta la Tabla 3.1. En el momento que activamos el pin 4 del dipswitch en RA3 se lee un nivel bajo y entramos a modo RUN, La velocidad seleccionada yase ha almacenado y ahora po- demos seleccionar la secuencia 0 efecto que se visualizaré en los diodos LED. La seleccién de la secuencia depende del dato origi- nado por los pines 1, 2 y 3 del dipswitch conectados a los termi- nales RAO, RAI y RA2, con los quese selecciona una entre las ocho tablas que se han construido. En la figura 3.4 se mucs- tran los dos primeros efectos que se originan cuando se han scleccionado las tablas 1 y 2. Cuando nos encontremos en modo RUN podemos cam! en cualquier momento el tipo de secuencia a enviar por el puerto, pero no podremos cam- biar la velocidad; si se desea cambiar la velocidad, se debe abrir el pin 4 del dipswitch y darle un reset al sistema por medio del pulsador S2. En ese momento, entramos de nuevo al modo de programacién. Descripcion del programa Antes de analizar en detalle el programa, analicemos como trabajar con tablas en lenguaje ensamblador, lo cual es una he- rramienta de gran utilidad en el Tabla 3.1 Configuracén 6 la velocidad caro pete etre Merconvatteree CARCI: ® Sea e mee ee) oy desarrollo de aplicaciones y que se utilizaré en - ee: repetidas ocasiones en este proyecto. Existen varios métodos para accedera las po- siciones de memoria denominados métodos de di- reccionamiento, Uno de ellos corresponde al di- reccionamiento relativo el cual basicamence altera el contenido del contador de programa (PC). De esta manera se logra saltar a alguna posicién des- de el punto donde se encuentra el PC hasta una Figura 3.5 Manejo de tables Figura 3.4 Solecién do fa secuencia posicién determinada. En la figura 3.5 observa- ‘mos la estructura bésica del manejo de una tabla localizada dentro de la memoria de programa, Inicialmente se carga el registro de trabajo (W) con el valor indice o la posicién de la tabla que queremos acceder; luego se llama la subru na TABLA en donde al PC se le suma el conteni- do de W y por lo tanto la CPU se ditige a la posicién en la tabla dada por W (03 en este ejem- plo). Cada una de las posiciones de la tabla tiene Ja instruccién RETLW, la cual causa que el regis- tro W se cargue con el valor ubicado a continua- ‘cidn en Ja misma linea y se alga de la subrutina. Cuando se regresa al flujo normal del programa, ‘W viene cargado con el nuevo dato tomado de la tabla (53 en este ejemplo) y ese nuevo dato es el que se envia por el puerto. En la figura 3.6 observamos el diagrama de flujo del programa yen la figura 3.7 cl cddigo fuente del mismo. En el bloque A del programa se estable- ce que se va a trabajar con un PIC16F84; que el formato por defecto es el hexadecimal, se asignan las posiciones de las variables en memoria RAM y se establecen las ditecciones de RESET y del inicio del programa, dentro de la memoria de programa del microcontrolador. La forma como se hacen es- tas asignaciones ya se explicé en los dos proyectos anteriores. En el bloque C del cédigo del programa yenel numeral 2 del diagrama de flujo, se establece el funcionamiento de los puertos A y B; el puerto B se configura como salida y el puerto A se configura ‘como entrada. De igual manera, en esta porcién del cédigo se limpia el contenido de los registros VALOR y PORTB para no correr el riesgo de que ‘Curso préctco sobre Microcontroladores algiin daro parisito 0 aleatorio se cargue en estas posiciones de memoria En el bloque D y numeral 3, se selecciona el modo de operacién del sistema; si cl pin RA3 lee un nivel ato entra al modo de programacién y si lee un nivel bajo, entra al modo RUN. En el modo FUNGION de programacién, bloque E, el puerto B se pone en 0H para que todos lo diodos LED se enciendan y el usuario pueda asegurarse que esté en este modo de operacién. En el modo “programacién” se esta- blece la velocidad con que salen al puerto los datos de la secuencia dependiendo de la lectura de los pines RAO y RAI del puerto A. Se lee el puerto Ay ‘se valor se lleva a una operacidn ldgica AND con el ntimero 03H (0000 0011) el cual se ha almace- nado en el registro TEMPORAL esta operacién se hhace para enmascarar o permitir que sdlo queden los bits RAO y RAL con el valor lefdo del puerto, los dems bits quedan en cero; numerales 5 y 6 del dliagrama de flujo. Finalmente el valor enmascara- does llevado al registro VALOR, quien configura la velocidad de la secuencia, numeral 7. Después de que se ha cargado VALOR, se retorna a la etiqueta FUNCION para determi- nar si en el pin RA3 ya se ha dado la sefial de habilitacién del modo RUN; mientras esto no cocurra, el programa entra en un ciclo de lectura y enmascaramiento del puerto A, para determi- nar valor definicivo del registro VALOR. Cuan- do finalmente se ha detectado un nivel bajo en RA3, entramos al modo RUN, bloque F del cé- digo. Ahora leemos de nuevo el puerto A y esa lectura la movemos al registro TDT (Tipo De Tabla) en el cual se enmascaran los tres primeros bits que corresponden a RAO, RAI y RA2, nu- merales 9 y 10. El valor almacenado en TDT servird para llamar la tabla correspondiente a cada tipo de efecto, numeral 11 Enel bloque Ges donde se establece cual tabla sevaa llamar entre las 8 posibles. Por ejemplo, para determinar sila lectura fue uno, al valor cargado en TDT see resta O1H, siesta resta da cero, significa que en TDT hay O1H también, y si eso ocurre, la FUN, Figura 3.6 Diagram de Mj del programe bandera Z del registro de estado (STATUS REGIS- TER) se pondri en nivel alto. Por eso se puede uti- liza esa bandera para verificar la igualdad. Este pro- ceso se repite para cada valor entre cero y ocho, y en el momento que se determine el valor exacto de ‘TDT se lamaré ala tabla correspondiente. Cuando se ha determinado cual es la tabla correcta, se llama la rutina correspndiente en el bloque H (TABLA_x), numeral 14. El registro INDI que como su nombre lo indica, es el cane wictoste menconiires GIT: @ cae ocr ce. Sint evrsc oe Ticeeetee AUTIQA,DE RERTARCO,DEPEAOE_DEL_RECTSTRO VALOR, el CR Rely Aaa esti velo ot stcucan, St Exciooe Tobe ct Puso € Fone pied MBLC QR Este CHD | P a-a0eaao* "cane Tewona. cov eu TENPORAL | PABA EMMASCARAR EL DATO LEIDO PORTAN | Caco. EL BUERTD AEN W TEMPORAL, waScARO LOS DoS PRIMERS + ITs aoa vwawor 3 AU LECRURA De 14 veLocrono doa UEOR EW VALOR runcton REGRESO'A GEER EL OID OR a erecta og 8 pasos FINES QUTEN 08 EL LIMITE Pana fe rweena00 2 RMGEALE sre secasimg 5 DETERMDAR ST SE HA LETDO CERO imap srago,2. } SE SE, Lee cego, evonces TABLA} Shutams a ta fasta 2 + HA LENDD uno fy EL xP? i, LED 095 ex, xP 2 sh'stilee 00s, ewTONces ShLIMOS ATRTARLA i LEIO0 TRES En EL OIP? sist lee TRES, ENTOMCES. Shutamds.A'UA TABLA mane} AR | tor @ fiers: cor prt sre Meco BUM n hove au tome uw ne eces2 oro on pa He THUS HOV sone wove ca rove ca nee ecesz coro ARLAB ACOH 8 4 3A LEZOD CUATRO EN EL DIP? Estago,2 °;'sr'se tee CUATRO, ENTONEES TaBURLS | SALTaNOS ALA TABLES @31"" 5 HA LETDD CINCO EN et OIF? $Soo,2 ° SP Se Lee Cinco, eaTowces THURLE” | SAvTaws a UA Thala uM oie" 5 MA Letoo sexs en et orp? Estaoo,2 {ST Se tee Sers,‘eatonces TC? | SAUTAMOS WEA Table on" e100 SITE en cL oP? Estaoo,2 *, St Se tee Sieve, “EMTONCES TABU | SALTIVOS ALA TABLAS oH CAscaas 1MOTCE COW LA PRIMERA Sworce | *, Gosteton be Ua fasts MDICE,W | TNDENAMDS'LA-POSTCION EN LA Thai Tagua 2 [tibos Ua aaa poms Leltecrunk uA satiotias aL Pues 8 nevagoo 7] VISE DJA cunayTe wn 11200 DOC, | Se ihtiekta CL AOXCE OE LA FM VISE DeCREMENTA EL REGISTRO Linn, n SEN 4 LLEGADO A CERO SE erate ty paoceso co SEUIMITE CLEGR A CERO SALIIDS De LA RUTINA PCat compat ESTES A TABLA 2, CONDE. SE Smee! | akcsrban ts vALosts Gt se FE OLt0an00" | MMNDARAN SECUENCIALMENTE. POR rvoLteopo" | EL PUERTO E foe1s009" 083203" 9000118" 709090011" 5° 2o000001" eH 5 CARGAUOS INBTCE CON LA PRIMERA INOICE |; POSICION OF LA TABLA TNOICE, + TAgetaS LX FORECZOW ew UA aguas} Lists vA TABLA 3 pore’ tA-tecruRa La + Plegro 8 feranoo YE Dela ounawre ww r1e960 MOLE 3 nee Soke De TAA Fn YEE becnenta et wecsra0 Te} Sr'noha cA00 a CERO se kN Sr'thware (LeeA 8 ceRo SALI0S Foe Uta Best aaj ESTES LA TABLA 8, oon se SSitogiii"y ecustiam Los Valores que se S-sigogort:*; Nanoueay SECuENCIAGIENTE Pon YF et Puerto 8 Sinie0nt" enna ‘Figura 3.7 Coo fuente del proyecto indice que nos va a servir para recorrer toda la tabla. Este INDICE se establece inicialmente en 00H que corresponde a la primera posicién en la tabla. El contenido de este registro se lleva a W y luego se llama a la rutina TABLA que es donde se ubican los datos de la secuencia. Cuando en W se ha recuperado el dato de la tabla indicado por INDICE, este dato se envia al puerto B para que se visualice en los diodos LED; enseguida se invoca la rutina RETARDO, la cual permite que el dato permanezca en el puerto durante deter- minado tiempo. Después de cumplido el tiempo de retardo, se incrementa el registro INDICE para direccionar la siguiente posicién en la tabla y se decrementa el registro FIN, numerales 16, 17 y 18 del diagrama de flujo. Este iltimo registro es tuna especie de contador iniciado con 07H en el bloque F, que impide que INDICE direccione posiciones inexistentes en la tabla, esto es, como cada una de las tablas solo tiene ocho posiciones, INDICE no debe direccionar por ejemplo, la posicién diez de la tabla; si se da este caso, se presentard un error. De esta manera INDICE sélo se incremen- tard siete veces, mientras FIN llega a cero, Ten- ga en cuenta que inicialmente INDICE toma el valor de 00H; con este valor se direcciona la primera posicién de la tabla y por lo tanto slo debe ser incrementado siete veces para hacer el barrido completo. La rutina de retardo, bloque B, produce un retardo por sofiware directamente proporcional al contenido del registro VALOR, cl cual recorde- mos, se establecié en la fase de programacién, La dependencia consiste simplemente en que al valor de los registros que se decrementan, se le adiciona el contenido del registro VALOR. De esta manera dl tiempo que permanece un dato en el pucrto depende de la configuracién inicial Cada uno de los datos de la tabla selee- cionada se van sacando uno a uno por el pucr- to B, cuando ha salido el tiltimo, el programa retorna a la etiqueta RUN, bloque F, para reanudar el proceso y leer de nuevo la secuen- cia seleccionada, la cual pudo haber suftido algiin cambio. Nota: Por razones de espacio en muchas ocasiones ‘no podremos publicar el cédigo completo de los pro- \gramas. Todos ellos estan disponibles en nuestra| pagina: wwu.cekit.com.co. El byte de potencia El circuiro puede manejar cargas de mayor potencia, a través de una interfaz que hemos denominado el “byte de potencia”. El circuito con referencia K-79 de CEKIT, es una interfaz. optoacoplada con triacs, que se utiliza para efectuar la conmutacién segura de cargas CA que se alimentan con 110V 0 220V y ‘consuumen hasta 10A. Fl circuito se ha diseftado con ocho médulos iguales, tal como se muestra en el diagrama esquematico simplificado de la figura 3.8. Cada médulo tiene ala entrada de CC un oprotriac (MOC 3021) que se encarga de aislar los niveles de tensidn de la carga y del crcuito de control, y activar por medio de la luz emitida por un diodo LED, un pequefio triac de disparo dptico. Este, a su vez, hace dlisparar el triac de potencia y la carga conectada ad. Las salidas de los triacs se conectan a diferentes cit- ccuitos con bombillos o kimparas incandescentes. an Cac Shae roe neue oma 10 ssa 20 eh a on rs te cura ep te Figura 3.8 Diagrama esquemitico dol byte de potencia awe pret sete taroconevinioe AQRCET: ® Ca Ra Osserpen , oe Regt ode 0D, 78.06 @ Miznomtmaas POF premade oR reer 1k NO © tebrateoe Dds LE oe de Sn te Si ED oe @ Cotes esi dou SW & (Gvsnatr deeaice 100 = 0 Py ‘anna ram e298 50" 8 Rivasasie eae ge'70- ar & RERRRARSRByR Ress de Ok 1 8 Imraprup OF ¢pncnes 18 Pca geno does, para e nges 1 ou (acer EAC Figura 3.9 Estes el coniuto de componenteseectrinicas | COA Saco a 8 pee st los accesarios que se requieren para ensamblar el 7 i Seupuscteavlengeissaseenes royecto 1 ee Figura 3.11 Suet a contimacn lo dlodes LED teiendo en ‘cuenta su polariad fanodoy cit) Figura 3.10 Ubique ysuols tds fas resistencias (15) yas ‘puentes de aambre Paso Figura 3.12 instal y suede ahora la base para el Figura 3.13 instaley suede los dos iteruptores ‘microcontroador (C2) (@bspsmtcn ye pulsador 52), puente recticador ye regulador de votje It. Paso 5 Figura 3.14 instal ara ls cuatro condensadoresabservanda la Figura 3.15 Instaleen su base e/ microcontolador PIC T6F84 olarldad de os elecvottcas (Cy C3), lego as conectores de _programado, absarvando la poscin corecta dl pin No.1 ‘alimentacin ye de sla para ef custo de ptencia(CON2) ‘Paso 7. Prueba fa! Para probare ict, aliénelo con una fuente reguada ono, hasta de 12 vos ypresiane at pulsador RESET; weg sia as Intruccones de operaciéndescrits anteriomente ye cute debe mastar la secuencia en la dlodos LED; sino esas, revise muy ‘bien las conexiones y verfaue que el programa esté grabado en el microcontrlado. IIT 150 prictc0 sore wicroconreadores ALARMA PARA EL HOGAR En este proyecto construiremos una alarma bésica para el hogar utilizando un microcon- trolador Motorola 68HC08. Es un disposi- tivo sencillo, si lo comparamos con las alar- mas que oftecen las empresas especializadas en seguridad, pero puede ser de gran utili- dad en nuestro propio hogar u oficina. Caracteristicas * Salida por medio de relevo * Diodos LED indicadores del estado de la alarma * Distintas zonas de operacién cars prict sabre bcwcontlaoes: GCE: 4 Alarma para el hogar Funcionamiento Uno de los problemas més grandes que affonta- mos actualmente es la inseguridad y los sitios f2- voritos de los amigos de lo ajeno son las casas y oficinas que permanecen solas gran parte del dia o de la noche. Afortunadamente, la deteccién elec- trénica de estas intromisiones no es muy compli- cada. Por otro lado, la tecnologta de los micro- controladores hace que el circuito que se requiere para llevar a cabo tal funcién sea lo més pequefio posible, con una eficacia y seguridad que lo con- vvierten en una excelente opcidn. El sistema de alar- ma de nuestro proyecto es muy sencillo y précti- co, figura 4.1. Para entenderlo mejor, es necesario definir algunos términos y funciones: Amado. Estado en el cual el sistema esté vigi- lante y se puede generar una condicién de alar- ma al detectar alguna anormalidad. Desarmado, Estado en el que no se puede gene- rar una condicién de alarma ya que la unidad no se encuentra vigilante. Zona. Es un circuito de sensores que se encarga de vigilar un sector del sitio que se desea prote- {gers se conecta al sistema de seguridad y Ic indica a éste si se detecta alguna violacién. ‘Sensor. Es un dispositivo que detect alguna condi- i6n particular de intromision y le indica ala unidad central que debe generar una condicién de alarma, Este sistema consta de dos zonas: Zona temporizada (Zona 1). En ella se deben conectar los sensores que vigilan el acceso al lu- aon co) Figura 4.1 Diagrama de bloques de la alarma gar que se protege; su funcién es detectar una intromisién y activar un estado de prealarma du- rante unos 20 segundos, tiempo durante el cual se debe desactivar el sistema o de lo contrario se iniciaré una condicién de alarma. Zona inmediata (Zona 2). Una intrusién en esta zona genera una condicién de alarma en forma ins- rantinea, Existen varios tipos de sensores para detec- tar las intromisiones indeseadas en los sitios que se encuentran protegidos por un sistema de se- guridad. Entre ellos se cuentan los infrarrojos, que permiten detectar movimientos en un tea de cubrimiento determinadas os sensores de rup- tura, que se ubican en las ventanas y detectan cuando se rompe un vidrio; los magnéticos, que se instalan en las puertas y devectan el momento en que se abren, etc. En este caso cn particular se hha asumido que las zonas poseen una configura- cidn de sensores en serie y en paralelo como se ‘muestra en la figura 4.2 En ka figura 4.3 observamos el diagrama es- quematico del circuito. El corazén del proyecto es ‘un microcontrolador Motorola 68H1C908)K35 los dos diodos LED indicadores se han concetado por los pines 10 y 12, que corresponden a los pines 6 del puerto D y 3 del puerto Bs la salida del sistema esté por el pin 9 que es el pin 7 del puerto D; finalmente los sensores de la alarma de la zona 1 sehan conectado por el pin 2 del puerto B y los de a zona 2 por el pin 1 del puerto B. El dispositivo que da la salida para indicar la condicién de alarma es un relevo, el cual tiene ‘Sensores on serie ‘ormalmente Zona 2 Figura 4.2 Contiguracion de las senseres @ Ser: eee + sus contactos normalmente abiertos y se cierran en el momento que se debe sefializar. Los apara- tos que se usan para indicar una alarma son ge- neralmente sirenas, bombillos o discadores tcle- fénicos. La sada de relevo es de libre utilizacién; a manera de ejemplo, en la figura 4.4 se muestra como seria la conexién de una sirena de 12 voltios CCy de una sirena de corriente alterna. Sefializacién del sistema El sistema de alarma se controla con un pulsador (S1) el cual da la sefial de armado/desarmado al = wo Figura 43 Dagrama esquomdtico dee atrma microcontrolador. Cuando se pulsa $1, se acti- van los dos diodos LED (LZ1 y LZ2) indicando que se dispone de un corto tiempo para salir del lugar. Este tiempo se conoce como tiempo de sa- lida, después del cual se entra a una verdadera condicién de alarma. Uno de los sensores de la Zona 1 debe ser el de la puerta principal para poder entrar y salir antes de que se active la alar- ma. Cuando sc ha terminado el tiempo de sali- da, se tiene el estado de armado de la alarma en el cual se detecta permanentemente el estado de los sensores de cada una de las zonas; cuando se are prt sot Nicrcontwiatres AICI: PEE e ee Rn ‘SIRENA DE CORRIENTE ALTERNA ‘10/220 Vea SIRENA DE 12V CC Sy Ce 4 — | Figura 4.4 Ejempo de conexién de sirenas produce alguna anomalia, se activa el relevo y a través de los diodos LED se indica a cual de las zonas pertenece el sensor que se activ6, fi- gura 4.5. Cuando se activa el estado de armado existen varias opciones: * Una deteccién en alguna de las zonas inme- dliaras generaré una condici6n de alarma. Por lo tanto, la salida que consiste en los contac- tos del relevo se cerrard y podra activar el dis- positivo sefializador que se haya instalado. + Una dereccién en la zona temporizada hard que se inicie una condicién de prealarma y los dos diodos LZ1 y LZ2 se activarin, indi- cando que se cuenta con algunos segundos para desarmar el sistema usando el pulsador SI. Sino se ejecuta esta operacidn, se genera- réuuna condicién de alarma. El microcontrolador Antes de continuar con la explicacién del fu DIODOS LED INDICADORES DE ZONA © 0 ZONAL: Zona emporzacal © _@ _ZONA2: Zona inmedata Figura 4.5 Sefalzacién 00 los dodos LED cionamiento de este proyecto, analicemos bi ‘vermente ls caracterstcas del microoontrolador ado, Se trata del 68HC908)K3 de Motorola, cuya dlistibucién de pines se muestra en la figura 4.6, Sus principales caracterstcas son: CPU de 8 bits 4 Koytespara memoria de programa (FLASH) 128 bytes de memoria RAM. 10 canals para conversién de andlogo a digital de8 bie 15 pines de entrada/salida 2 temporizadores de 16 bits * 8 fuentes de interrupcic Arquitectura intema de! 68HC908JK3 y modelo de programacion Enla figura 47 se muestran ls registro internos dela CPU 08 mediante los cuales se procesan ls instruc- ciones, los operands los resultados. La funcién basi- ca de cada uno de ellos se describe a continuacién. Acumalador (A) Es un registro de 8 bits de propésito general usado en Jas operaciones aritmeéticas y lgicas. Registro indice (H: sun registro de 16 bits utlizado como apuntador en el modo de direccionamiento indexado. Puntero de pila (SP) Esun registro de 16 bits que contiene la direccién dela posicién disponible en la pila Contador de programa (PO) Es un registro de 16 bits que contiene la direc- cidn de la siguiente instruccién u operando que va a ser procesado. imo sci sca Pras Cerra) aiggge Figura 46 istibucén de pines del mirocontrolador 68HC208,K3 @ Seicrr: eee ° riables que vamos utiliza, En el bloque B y nume- CTT TL) snr ral 2 del diagrama de flujo, configuramos los puertos COOeCOCCCE) array Dy Bdel microcontrolador segiin la funcién de cada uno de sus pines, de acuerdo a lo establecido en el CCC TIE wntrs pies diagrama esquematico de a figura 4.3. Encl caso de los microcontroladores Motorola, se debe tener en GES ee ee ‘cuenta que un pin de salida se configura con un “1” = 4 yun pin de entrada se configura con un “0”, es decir, et det que se configura de manera inversa a como se confi- guran los microcontroladores PIC. En el bloque C ane fe scareo rograma y numeral 3 del diagrama, se verifica la — del programa y numeral 3 del diagrama, se verifca hee en pte te erage 100 —> aaa Poets y ane te acre me sae Tis oe an reo - Figura 4.7 Estructura de los registro internos y ubicacton de las banderas = seca» 7a Registro de banderas (CCR) sour >| “Cantrat® Es un registro de 8 bits que contiene el Bit de en- = ‘mascarado general de interrupciones y 5 banderas stom >| deestado, las cuales indican ciertas condiciones ori- po sn ginadas por la instruccidn previamente ejecutada. tae ea Mapa de memoria —— En ka figura 4.8 observamos el mapa de memoria Poa completo del 68HC908JK3, Alli se encuentran las fooraraesssitt. direcciones de los registros internos, la posicién que oud at) cocupa la RAM y la parte asignada al programa de sera | ei usuario, De igual manera, se observa la zona en la a) cual se encuentra almacenado el programa de fie Tee brica (ROM MONITOR) que nos permite hacer ‘Wo usado simulacién, depuracién y programacién del micro- sonar tee on suid le ae eee rh cmt emer yoers cof “eer fF encuentra la direccién (2 bytes) con la cual se carga ’ Tie al 3 contador de programa (PC) cuando se presenta sr >| alguna de las interrupciones. Tou too) i lguna de pci Tie inal 0€) Descripcién del programa eel = En la figura 4.9 esté el diagrama de flujo y en la ei figura 4.10 una parte del c6digo fuente. El progra- aL ‘ma completo lo puede obtener de nuestra pagina: sec >| moe 69 www.cekit.com.co ‘ntorupién SH) Enel bloque A del programa establecemos las direc- sit | TH ciones del inicio y final de las memorias RAM y tn ROM, de acuerdo a lo indicado en el mapa de la figura 4.8, al igual que definimos el mapa de las va- Figura 48 Kapa de memoria intoma de merecontolacer arse prbctice sobre Mirocontoinieres, CAGICHTY.: ® Alarma para el hogar activacién del pulsador de inicio (S1). Esto se hace con la instruccién brelr PBO,PORTB,ZONA2, la cual podemos interpretar como: cheque si existe tun cero en dl pin PD4 (definido como 4) del puerto Dy de ser asf, salte a ZONA2. Cuando se ha detectado la sefal de acivacién dela alarma, el programa ala ala etiqueta ZONA2, bloque F, numeral 4 donde se hace la deteccidn de los sensores. La Zona 2 es la denominada zona de deteccién inmediata, por lo tanto, debe leerse per- manentemente. Todo lo contrario ocurre con la Zona 1; en ésta debemos esperar un tiempo para que cl sistema entre en estado de armado, es decir, pendiente de cualquier sensor. Para logratlo, se ha acudido a un truco muy sencillo: simplemente es- tablecemos un retardo por programa el cual se eje- uta un determinado ntimero de veces antes de que Figura 49 Diagrama de fy del programa cr: ‘Curso préctico sobre Microcontroladores se active la deteccidn de la Zona 1. Cada vez que se llama la rutina RETARDO y ella se ejecuta, el pro- grama saltaala Zona 2 para ler los sensores ubica- dos en ella y generat a sefial de alarma si es necesa- rio, Cuando se termina el tiempo de espera, el siste- ‘ma queda completamente armado y pendiente de cualquier anomala en el sitio vigilado, Si no detec- ta seftal de algtin sensor de la Zona 2, se sata a la etiqueta ER, numeral 10, donde se decrementa la variable VBLE1 quien contiene el nero de veces ‘que se ¢jecuta la rutina de retardo, Lucgo se lama a RETARDO y se salta a la etiqueta ZONA2 para hacer el chequeo correspondiente, bloques D y E. En este programa hemos incluido un registro denominado BANDERA en el cual establecemos algunos bits como “testigos” de que se han presenta- do ciertos eventos. El bir cero de este registro se pone en alto en el momento que la alarma de la zona in- mediata se ha activado, es decir, se ha detectado la activacién de un sensor. El bit uno se pone en alto cuando se ha detectado un intruso en la zona tem porizada y el bit dos de BANDERA se pone en alto cuando se ha terminado de invocar los tiempos de temporizacién de la zona 1. Por esta razin, en el blo- que D, después de que se ha terminado de decre- mentar el registro VBLEI, se activa ese bit Cuando termina de invocarse la rutina de re- tardo, las dos zonas quedan en estado de armado, es decir, en permanente vigilancis si alguna se dis- para, se enciende el LED correspondiente de acuer- doa la figura 4.5 y el programa se dirige a la rutina DESACTIVAR, bloque G, numeral 7 del diagra- ma de flujo. Alli se chequea de nuevo la existencia de una sefial proveniente del pulsador $1; en este caso para apagar la alarma y borrar la seftalizacién. La rutina de retardo Recordemos que un retardo por programa es una rutina que se encarga de ejecutar una serie de inscrucciones (que no llevan a cabo ninguna fun- cién importante) encerradas dentro de un ci- clo, un ntimero determinado de veces. De esta manera se logra un espacio de tiempo que po- demos utilizar dentro de otras rutinas. INICIO: clr cao: clr reir bro ZONAL: beset ber betr jer bra Rone 1 bretr jr jer ete zone: ‘bret rete bro barr bset bset bro DESACTIVAR: rete bra beet bet nm betr cir coma Biome; configura pues 0 islome | Gnrigire poets B Rome, 2 Alpe SPU BANDERA 5 Limpio et wages, ee penn, roma | eae seta ot | paar prints acto 2 0008R21 5 i se ha aiplico et Se Ses, reson Sate Si Meroe} sto, ego lo 2 | eather oe | Stalaacten re | Sassy on ot | pees a ts veustszoua | Serenents et ners ; Steere 2umoe | vive bit camn- ‘oe eum ifo soon 1 Reson £92 rRrs nt; Sistem aro ea | SRS Sitar a camo |W ieactia E | Slam’ ese remo | reall ae | Sonat pore serimoo | erat a8 dn Ls ferro | Sitcees dn fx fesiroe—; sctivar te de sont rvrore | Seta Saeed | Slam exter oesicrivin | gltaee Ptine de 1 Stetina 7s PRT ond: Se chen Lo | Seated eit sow aawornsn | Severs gine Te ae oe a | Sieme i ee | Swine, sate oa sawose | Canals eteta'n [aie gt eet pos.roro | seating el tad de ia vos, |e detctivg el Led 1 atone vor Sot atta saat {kone eto vestcrvae | 5 SAS a e desoctivacin se cheauea de numvo ft putsogor 51 ¥'st se oprine Je cpagan tos ted G Se deeactive Uo Store ¥'Se retorna a inicto ora sjeciner ee | few el prograoe Figura 4.10 Céigo fuente del proyecto oe wise wire Moves AGREE: ® Figura 4.11 Este esol conjnto de componentes elsctrncos y fos accesoros qu se requieen para ‘ensamblar el proyecto Paso 1 Figura 4.12 Ubiquey svelce los puentes de alae, as resistencias (10), el iodo, ef puente BRS y la base para IC1 ‘lgura 4.13 instal y suede atora el reutador C2 (7808) y fos aod LED 1 y 2 observando su potaridad Paso Figura 4.14 instal bra los cinco condensadkeescerimicos ye! cristal de 5 MH = Ton i a, Snr enon oe O02 Paso4 Figura 4.15 Suelie a contact el resto de los components teniendo en cuenta lapotrad oe los condensadores Cy C3 Paso 5 st wut le Figura 4.16 instleen su base el microcontrolador BSHCOOBIKS ‘rogramado, observando la posicién correcta del pn No.7 Paso 8. Prusa inital Para proba el cicuit, aliméntelo con una fuente requlad ona, hasta de 12 vis y sia las instuciones de operaciéndescrtas anterorment. Conece un puente en fs terminaes de Zon I. Presone el pusador Sty verifique que la seiaizacén de os LED de la zona temporizad Sea correcta. Mentras esta sfialzacn se est dando, haga un puente en los contacto de fa Zona 2 y se debe generar una sali pr eleevo. Retire el puente de fa Zona 2, repita el procedimient, yretie el puene dea Zona. En ese ‘momento se debe prod la activacn dl rola y de la alarma. GICIT:: 01120 prictco sobre Microcontroadores AVISO LUMINOSO CON DIODOS LED eomnenteeetntey cieraeeentl Es una matriz de diodos LED de ocho co- lumnas y ocho filas, donde se pueden mos- trar textos 0 graficar algunas figuras que re- sultan muy simpaticas. Animese y cree sus propios patrones. Caracteristicas * Tablero de 8 x 8 diodos LED * Tres efectos de animacién diferentes den- tro del tablero arse pictco sore Mieroconvoiaores GREET: ® Aviso luminoso con diodos LED Este proyecto es muy interesante para todos los interesados en la experimentacién con micto- controladores. Se trata de un pequefio tablero ani- mado, con diodos LED, de 8 x 8 pixcles en don- de podemos conocer los principios basicos de este tipo de tableros, por supuesto més grandes, los cuales se encuentran en avenidas, estaciones de transporte, vitrinas de almacenes, ete, La matriz se monta sobre un circuito impre- so referencia K-208 de CEKIT, en el cual se in- cluyen todos los componentes y sus conexiones. Regulador de vltaje a © Funcionamiento Existen muchas técnicas para la elaboracién de este de dispositivos. Generalmente se utilizan re- gisttos de desplazamiento en cascada para habilitar secuencialmente las columnas ¢ ir enviando el dato adecuado a cada una de las filas por uno de los puer- tos, En este caso se ha optado por manejar todos los, LED desde un solo puerto, multiplexando secuen- cialmente el control de la flas y ls columnas. En. otras palabras, el puerto envia en un instante de tiempo el dato adecuado para las filas yal siguien- te instante envia el dato para las columnas. , R ee Fy ale F ae Re atte aR ‘ y ae eal ale HARA Le RRR ze [a Ble Figura 5:1 Diagrama esquemético Figura 5:2 Eectosgrficos ceados dentro dela mate El PICIGF84 no tiene su- ficientes Iincas de I/O para manejar todos los LED diree- tamente. El puerto B (lineas RBO a RB7), se usa como bus de datos tal como se muestra en la diagrama esquemético de la figura 5.1. Este se conecta a las entradas DO a D7 de dos flip-flops octales (74374). La salidas de estos flip-flops ma- nejan las Iineas de las filas y las columnas. Las lineas o pi- nes RAO y RAI se utilizan como salidas para las sefiales de reloj (generadas por programa) que sincronizan los datos en las Iineas de filas y columnas. Para configurar una fila 0 columna, al disefiar una figura, se deben enviar los datos desea- ha fil, (el birde la fila de la se debe poner en alto y las demas deben estar en bajo) en el puerto B, (Iineas BO a B7) y en- viar un flanco de subida por la linea RAI del puerto A para ac- tivar el reloj del flip-flop 74374. Lucgo se envian los datos de la columna por el mismo puerto B (ineas BO a B7) y se cenvia el pulso de activacién del ‘ip flop por \a linea RAO del puerto A. En este caso, cuan- do hay un 0 en una linea o bis, se enciende un LED y cuando hay un 1, esté apagado. Antes de pasara la siguiente ila, se debe enviar el dato FF (11111111) as de las columnas por las li para limpiar el display; de otra manera se presentatian proble mas al pasar de una fila a la siguiente, Debe tener cuidado en el programa para no seleccionar va- tras filas simultaneamente; de lo contrario, se sobrecargari la co- Jumna, y por lo tanto, la capaci- dad del circuito integrado des ministrar corriente (fan ou!) sera excedida, ocasionando que algu- nos 0 todos los LED disminu- yan el nivel de su iluminacién. Por esto se deben co figurar ‘cuidadosamente las frecuencias de aparicién y rotacién de los dibujos. Al trabajar con un display de 8 x 8, inevitablemente sa- len a relucir fi memoria en el PI aciones de 16F84, Por eso, para un proyecto similar con més capacidad, serfa u buena préctica,disefiar un avi- so con un microcontrolador de mis memoria. Otro asunto que debe tener en cuenta es que el flip-flop que mejor se ajusta en cuanto a ca- pacidades eléctricas de consumo y suministro de potencia, carac- teristicas de tiempos, y rango aceptable de alimentacién, es el 74HC374 de Motorol: bargo, si no tiene este disposit vo, puede utilizar cualquier otro circuito integrado de la misma familia 74XX374, Sin em- Efectos graficos Se han incluido dentro de esce tablero algunos efectos grificos sencillos; sin embargo, se pue- den crear muchos més efectos si utiliza un microcontrolador con tuna memoria de programa de mayor capacidad, arse préctico sobre Merocontolaeres AGRA: @ Aviso luminoso con diodos LED El primer efecto es la palabra CEKIT que apa- rece en la pantalla y que rota secuencialmente hacia arriba; después de éste, aparece el dibujo parpadeance de una cara feliz y finalmente, una csfera que rebora dentro del tablero. Esta secuen- ia se repite indefinidamente, figura 5.2. Descripcién del programa Debido a la extensién del programa de este proyecto, solo publicamos sus partes princi- pales, pero el eédigo completo se encuentra disponible en nuestra pagina de internet: www.cekit.com.co En la figura 5.3 se muestra el diagrama de flu- jo del proyecto y en la figura 5.4 parte del cé- digo fuente. El programa se ha dividido en una serie de subrutinas, cada una de las cuales cumple con una funcién especifica y lucgo retorna al punto desde donde fue invocada. Esas rutinas se encargan de cargat los datos que conforman el dibujo, de des- plegarlo en la pantalla y de rotarlo En los bloques A, B y C del programa, se hacen las asignaciones correspondientes a las direcciones en la memoria RAM para cada una de las variables. En el bloque D se hace un Ila- mado a la subrutina ShowVersion, la cual des- pliega un letrero inicial que no se repice. més adelante y que sirve para mostrar la versién de la tarjeta; es decir, esta serfa la versién 1. ShowVersion esté resefiado con la letra I; alli se cargan los datos del letrero de versién en Figura 5.3 Diagrama de fo dela matiz ‘ocho posiciones de memoria RAM, empezan- do desde la 10H, donde se encuentra el regis- tro Screen0. Luego se invoca la subrutina Repita- Dibujo cn la cual se lama ala rutina DisplayDibu- jo, bloque G, la cual hace aparecer en el tablero los datos cargados durante un tiempo determinado. PARA SABER MAS El modo de direccionamiento indirecto de la me- moria de datos se utiliza cuando las direcciones jen esa memoria no son fijas. Un registro especial se utiliza como apuntador a las posiciones de la memoria de datos que van a ser leidas 0 escritas. Como este apuntador esta en la RAM, sus conte- inidos pueden modificarse por programa. Esto es |muy Util para el manejo de tablas de datos. El funcionamiento en realidad es muy sencilo: et registro especial de que hablabamos hace un mo- mento se denomina FSR (File Select Register. Re- gistro de seleccién de archivo). El valor que espe- Cifica ese registro es una direccién que contiene un dato ese dato es almacenado automaticamente en otro registro denominado INDF. En otras pala- bras, cualquier instruccién que utilice e! registro INDF; tiene acceso al registro apuntado por FSR. <> exc F<. Curso préctco sobre Microcontroladores. oe 8 Poneron SSE SraTus, Ro woven i: MOWWF TRISB ;Configura todos tos bits ‘el PORTB como selicas Wome TRISA iConetguea fodos Tos bits _OFLoop {eet PORTA camo sal tcos D GALL Stewersion | Le prinera visua- zaclon gue se tiene see 18 versisn del proyecto, MOvLN "10" ;Luego se hace visualzar jese patron 10 veces, CALL Repitopibure, 20 SCE STATUS,RPO :Se extoblecen tos velo- Hoven RATA DEMULTTPLEXACTON get dades. de Wttiptemota s rultiptesoctin oe G fowin Rarabr brauto';"Tos atbojoe Rotediba : CALL cekitLogo el priner efecto gra Hoven W0" ”” ico en et de el ron GALL" Repteaoibuje ; bre CEKIT rotando Savin Wo" "desde abajo heel CL Repteatotue | arriba GUL, stewart je Mone un, ratirg fein age? HS Nea tos E BLE feptcoiags | oor rotons GUL Hanser se soerpee Nev Hoe plea y pera irin BL metus Pretcarioer ctr aeereiatt een et i fein aT ratty eke eter cca eye tae Bin WAR DIRIND/Ej dere se: Far Rlttia tack Se nr woven 20" ; una bola rebotando en et ALL" Repttafota ; interior de lo ponta- Vio" una velociaad woven eaTA pe oxsiv0 determinede NOW Ratedibo Shoncorita eae) (tl 5 piel erties oro zo MESTRA EL MISH) D180 OF) P Sierurna fiepitedibuje MOF Scratch se cargon tos velores tezot CALL’ DisplayDtbujo ; sel efecto Decks2 Seratchd,t } correspondiente F Goto" iaeot;'y se trwoca ta rutina de visbattzacion’ : sew 0 Fmuestra et dibujo por un intervolo corto. En esta jstbrutina se boce un borrido de los valores cargodoe en Has'postctones donde se han configura tos dtstintos jpotrones graficos. Esto se hace etrectanando con el Hregistros FSR y Conondo et dato det regrstre INF I Bisptoydibujo MOVE Kateoibu,0 ; se cargo el numero Wownr RetDibujo. | de veces que se hace 5 eh berrido de Los da | foe de lor asbusoe DFOuterLoop — MIVLNALTURA_PANTALLA HOWE ConteDibu'"; Mimero de postciones ‘gue se deben barrer novi w'o1" |; para visualtzarse en NWF Tempoiba | £"pantatto. HEWN Screend ALTURAPAATALLA SK Nove "carga con et valor ms j alto de'ta tole woven Iniciotnente se dosha Nome alten toga toe fla Decr FSR. Empleca et barrigo, MOVE INOFo | de'arribe hacia ehajo. ovwe oer Se fone et aato ¥ Se 4 Neve" at puerto 8. Yawn sreqqooon'; Leg ae hebiLite F primero™coltna Er orden es," peinero al deto en eh puerto Sy tuege ta obilttocton Movwe PORTA” } Je ta‘columno en el 1 puerte A RLF Tenpbibu,t } Se rota foci ta derecho habits ce Tenpoibu,o | fador de columes, GALL ShortDelay, | $e espera un momento MOVeN B'1i11I111"; Se octiva toeo el MOVIE PORTE” '' | puerto B por un Movin Ye0b0G001"? mover ‘se desactiva wove Poets tpora evitar ot efecto ovLN 5700000000" So Fareconeo Se slounot SOVWE PORT: ACD. t decir que no Soviw Breeo%ee10"; qucden wei onamente SOWE PORTA} Geeivados, | contador de borriao 3 si'no Tega a cero, | Se direcctona lo | Stgmtente posicion, DECTSZ RetDibujo,1 ; se decrementa et nero de veces que Se debe hacer to $10, prowterton | brrise,ise pits j Megue a cero. ‘a corita feliz 5 @.parein de ta irecetén- del, registro sereend Toe bytes due saldrén Egor al puerto Prous cont guraren feta natrie de LED 1a gratica de to Cortta Felis an todos estos volo | es corgedos se | Tetonna de esta £ Subrotia’ ' batron binario de visualiza le versién onde’ se. cargon tes Bostetones 0 partir Be" Screen con toe dotos gue mostrardn | UeNversiGn get proyecte. | Beta grefica soto se ruestfa al inicte ae stSten y Tagg Aviso luminoso con diodos LED La rutina Cuando se invoca esta rutina desde cualquier parte del programa, debe cargar el registro W con ‘el ntimero de datos que van a salir en cada efecto grifico. Ese valor se almacena en el registro Ra- taDibu que es el que determina el ntimero de veces que se repite la rutina de visualizacién. En el registro ContaDibujo, se guarda el nti- mero de filas que tiene la matrizs porlo tanto, en cada visualizacién, no se puede exceder este va- lor. En la figura 5.5 se aprecia un diagrama del funcionamiento de esta rutina, y en la figura 5.6 el diagrama de flujo de la misma. La rutina empieza con el registro FSR di- reccionando la primera posicidn a partir de la cual se ha almacenado la figura que se preten- de desplegar en el tablero, numeral 2; esta es la 10H que corresponde al registro Screen0, El contenido de esta direccién es un dato (D8) que estd disponible en INDF y que se en- via por el puerto B para que sea el dato de las filas, numerales 5 y 6; inmediatamente se envia al puerto A el ntimero 01H para activar el bus de las filas y luego se pasa al registro TempDibu, el ‘cual contiene el ntimero para activar cada una de las columnas en el puerto B. Luego se envia el ntimero 02H al puerto A para habilitar Ia entrada de ese dato en las co- lumnas, bloque 9. El resultado cs la visualizacién del primer dato en la primera columna el ‘cual permanece durante un cor- to tiempo, numeral 11 En el numeral 10 se rota hacia la izquierda el registro TempDibu pata tener listo el valor que activaré la siguien- te columna. Esto se hace de- crementando el registro Con- taDibujo, numeral 17. inor 08, Port —e08 Pata —01 AFR —= TT tenpobu—eot ‘Mientras su valor no llegue a cero, el pro- grama tracré el siguiente dato de la memoria a través del registro apuntador FSR, el cual se decrementé previamente en el numeral 4. El proceso se repite, pero esta vex con el segundo dato (D7) desplegado en la columna 2, y contintia hasta completar el recorrido de los ocho datos. Cuando el registro ContaDibujo ha ega- do a cero, significa que se han mostrado to- dos los valores del grafico que se quiere vi- sualizar. En este momento, el flujo del pro- grama lo lleva al numeral 15, en donde se de- crementa el registro RetDibu el cual indica cuantas veces se va a repetir todo el proceso completo de visualizar todas las columnas de manera consecutiva. Cuando el proceso se ha repetido ese niimero de veces, se sale de la subrutina. En el bloque E del programa se invocan cada una de las figuras y en cada una de ellas se hace alusién a la rutina anterior, pero car- gando distintos datos. Recomendaciones para el montaje En las figuras 5.7 a 5.13 puede observar la gufa de ensamblaje de la tarjeta, los LED de set Potb— Tempoeu Pena 002 Figura 5.5 Funcionamlento dela rutina DspleyOibujo © Gicrr: ‘Curso préctico sobre Microcontroladores 5mm se han alineado y colocado de la ‘manera més cercana posible, al igual que los circuitos integrados, con el objeto de darle una apariencia mas compacta. De todas maneras se pueden utilizar los LED de 3mm, si se desea un tamafio ‘menor, Para montar el circuito, debe te- ner en cuenta que lo primero que debe hacer es soldar los puentes. La manera mis ficil de instalarlos es tomar un solo cable largo, y trenzarlo 0 “tejerlo” a lo largo de cada una de las li- neas de las columnas, después soldar en los puntos indicados y luego recortar el cable sobrante. Después de instalados los puentes, debe soldar los dems compo- nentes; sin embargo, es buena idea que empiece con los de bajo perfil, como las resistencias y luego, con las bases de los integrados y los dems componentes. En nuestro proyecto, la matriz ini- cia mostrando la palabra CEKIT, la cual rota hacia arriba, después aparece una cara feliz y luego una esfera dando botes dentro de la matriz. Estos son s6lo ejemplos de la infinidad de patro- nes que se pueden crear; el limite es suimaginaci6n. Usted mismo puede ccear sus propios patrones graficos para lo cual debe modificar el programa. En los sitios comerciales es comin encon- trar toda clase de motivos, algunos con disefios muy especiales. Al trabajar con este circuito usteda- prende muchas cosas tiles. Un buen programa debe ahorrarle la utilizacién de uno o varios circuitos externos. El hardware y el sofiware finales deben co- municarse con tal sincronia y exacti- tud, que précticamente se yuelvan una sola unidad. DispiayDibuo| F00p Figura 6.6 Diagrama de Nj de la ruta DisplayDibuio SST se) Ensamblaje '.¢ Conte de = rae ree papas canna Z Ps mcr ais serene — 10 eee aoe ensorba el wae fa cet, proeca i Eeithceeema ator sot aso 4 ree tear! Intl ste haga un tio para cdemés componentes cone etna, io pn oidbeoa eae senders (20. esa sle pare de basespara os Geicaa on eft tas sncanbige eet theta, regcer proyecto y debe hacerse Chee! ef ‘con mucho cuidado. ae a a Figura 5.8 reese ao? ; tones 05 tntres se dten Italy sed bs 64 sen cata tos LED oan on do sss coorores, cue poste entcar dels cue seo ean sola Conta, nose Foun 59 oncerde sito tel ceuto nes inde. pod Fiore 8.12 paso Paso 3 boo tly ve intl on 50s hsaenis mecca PC pune do 1eF94pamedo fant yes dems cretos 510 tgs ‘oth Figura 5.13 1} aso 7. Prue tna! Para probar el cicuto, aliméntelo con una fuente regulada 0 no, asta de 12 voltos. En ese momento deben aarecer Is efectos ‘mencionados on texto anterioc Sino es as revise muy ben las conexones y verique que el programa esté grabado en el ‘microcotratador CIT 00,8000 sora erecznieses CONTADOR DE EVENTOS Este circuito cuenta desde 0000 hasta 9999 en forma ascendente 0 descendente todo tipo de eventos. Aprenderemos a manejar técnicas de multiplexado para la presentacién de datos nu- méricos en visualizadores de siete segmentos y a utilizar macros en nuestros programas. Caracteristicas * Cuenta en un rango entre 0 y 9999. * Limite de cuenta programable, tanto en modo ascendente como descendente. * Generacidn automatica de una sefial de alarma cuando la cuenta llega a su limite prefijado. * Conexién externa para un dispositive de alarma. uso pict sobre Merocntassors ABACIT: & Well gla OS En muchos procesos industriales resulta muy Aitl un dispositive que Hleve la cuenta de algin evento fisico que ocurra con cierta frecuencia, por ejemplo, la cantidad de objetos que pasan por una banda transportadora; y genre al mis- ‘mo tiempo una sefial de control cuando esa cuen- ta llegue a un valor limite. Nuestro proyecto res- ponde a esta necesidad. El mismo, identificado con la referencia K-325 de CEKIT, cuenta las veces que se produce un evento externo, detecta- do mediante un pulsador u otro tipo de disposi- tivo de entrada, y presenta el resultado en cuatro visualizadores (displays) de siete segmentos. Adicionalmente, genera una sefial de con- trol o alarma cuando esa cuenta Hlega a un valor limite, previamente programado por el usuario. La direccién de la cuenta, ascendente o descen- dente, es también programable por el usuario. Funcionamiento En la figura 6.1 se muestra el diagrama esque- ‘mitico del contador de eventos CEKIT K-325. El corazén del sistema es un microcontrolador PICIGF84 (IC1), el cual controla cuatro displays de siete segmentos de cétodo comin (DISP1- DISP4) a través de un decodificador BCD (C2). El primer display (DISP1) representa el digito mas ificativo de la cuenta y el iltimo (DISP4) el menos significativo. Los cétodos de los displays se conectan y desconectan de tierra mediante ‘cuatro transistores NPN (Q1-Q4), controlados su vez por las Iineas 4, 5, 6 y 7 del puerto B. Las lineas 0, 1, 2-y 3 del puerto A, por su parte, pro- porcionan secuencialmente el dato que serd vi- sualizado en los displays, Para cada digito de la cuenta se utiliza un cédigo BCD de cuatro bits, donde el MSB (bie de mayor peso) es el RA3 (D) y el LSB (bit de ‘menos peso) es el RAO (A). Las cuatro lineas anteriores alimentan un circuito integrado 7448 (IC2), el cual hace la conversién de BCD a sicte segmentos. Las resistencias R1 a R7 tienen por objeto limitar la corriente que fluye a través de Jos segmentos de cada display a.un valor seguro. El microcontrolador recibe tres sefiales de entrada: una por el bit 2 del puerto B (pin 8), proveniente de un pulsador (S1), y dos por los bits 0'y 1 del mismo puerto (pines 6 y 7), pro- venientes de dos puentes o jumpers (1 y J2). La salida de alarma o fin de cuenta del sistema se hace a través del bie 3 del puerto B (pin 9). I cialmente, es necesario programar el valor limi te en el cual se genera esta seal de control. Para que esto sea posible, debe estar puesto el jum- ‘per JI, lo cual obliga al sistema a entrar en el ‘modo de programacién, Después de instalado J1, el contador sitia todos los displays en cero (0000) y queda listo para leer el dato que se va a programar como li- mite. Para fijar este tiltimo, el usuario simple- mente debe oprimir el pulsador $1 hasta que la cuenta observada en el display llegue al valor de- seado, por ejemplo 2345, Una ver se llega a este punto, debe especifi- carse la direccién de la cuenta, Para ello se utiliza el jumper J2. Si este tiltimo esta conectado, la cuenta se efectia en sentido descendente a partir del valor fijado, mientras que si esta desconecta- do, se hace en sentido ascendente a partir del mismo valor. Las funciones de los jumpers JI y J2 se resumen en la tabla anexa a la figura 6.1. En el modo ascendente, la cuenta en los div ‘playsseinicia con el valor 0000 y se incrementa en una unidad con cada pulso de entrada externo, hasta llegar al valor programado. Cuando esto su- cede, la sefial de control disponible en la linea RB3 (pin 9) se activa en alto y permanece asi por algu- nos segundos. Hecho esto, la cuenta retorna a 0000 para iniciar una nueva cuenta ascendente, En el modo descendente, por su parte, la ‘cuenta en los displays se inicia con el valor pro- gramado previamente y se decrementa en una unidad con cada pulso de entrada externo hasta Iegar a cero, Cuando esto sucede, nuevamente se dispara, durante algunos segundos, la salida de control de alarma. Hecho esto, la cuenta re- <> deter: aor beet ais mrvcmnbsoaed o 1 "| co T ot PBL gy 28 ole ss oC. leno 15 6. le le le le a F ApcoD ce [cc oC ce 7 Fr Re ro R10 RI 711/2/ | on 02 ‘03 4 + Figura 6.1 Diagram esquemético de proyecto tora al valor programado para iniciar una nue- deducir que cuando se tiene un nivel légico va cuenta descendente, alto en la base de cualquier cransistor, éste en tra en estado de conduccién y conecta dis Manejo de los displays de siete segmentos —micamente a tierra la linea de habilitacién del Por la configuracidn del circuito, es muy facil display correspondiente. Sininguno de los tran- * curso pricic sobre Meroconvosioes EMCAT.: ® Contador de eventos as Telelefe lata Habiltacion sC sistores tiene un nivel légico alto aplicado en sus bases, no se encenderd segmento alguno. Asi, por ejemplo, si se quiere mostrar el nti- ‘mero tres (3) en el segundo display menos signi- ficativo (DISP3), se deben seguir estos pasos: Deshabilitar todos los segmentos para evitar visualizaciones indeseadas . Colocar el niimero binario 0010 en el puerto que controla los transistores (RB7...4) Enviar el o6digo binario 0011 por el puerto que controla los segmentos (RA3...0) ay Para visualizar simulténeamente los datos en los cuatros displays, es necesario conectar os tran- sistores en forma secuencial mientras se envian, por-el puerto que controla los segmentos, los da- tos correspondientes a cada digito. Este proceso debe ser efectuado a una velocidad tal que engafie la retina y parczca que se realiza simultdneamente sobre todos los displays. El tiempo necesario para sostener el dato en cada display y producir esta sensacién vasia depen- diendo, entre otros factores, del valor de las resis- tencias limitadoras, del mimero de digicos que se tengan que mostrar y de las caractersticas propias del display. Acste proceso se le conoce como multi- plexaje o multiplexacién y es muy utilzado en los ircuitos con microcontroladores. Descripcién del programa Concepto de macro Una de las principales metas de todo programa- dor en lenguaje ensamblador es elaborar progra- t bisea ON <«l Figura 62 Esquema de habiltacién de un cisplay determinado ‘mas bien estructurados, modulares, 6primos y en lo posible “bonites”, es decir que respondan a un criterio estético. Una de las téenicas més conoci- das para lograr este propésito son los “macros”. Un macro es una secuencia de instrucciones que pueden insertarse dentro del cédigo de ensambla- dor en cualquier momento simplemente llamén- dolas a través de una instruccién CALL. El macro debe definirse primero antes de ser invocado. Dentro de un macro puede in- vocarse otro macro o invocarse a él mismo de Endl programa de este proyecto se han elabora- do algunos macros que cumplen con funciones es- pecificas. Por ejemplo, se han creado macros para HasTotsPt Maco ECF PorTs,4 cr PORT. act BSE PORTE, 7 No wacko act BC PORTS; act BSF PORTB6; exo macro ac ace ace BSF Exo DESHABILITO 154 DESHABILETO ISP DESHABILTTO DISP2 HABILITO DISP2 aex_orsp2 DESHABTLITO o1SP4 DESHABILETO D153 DESHARTLTTO D1SP2 HABILITO DISP2 as1_osP3 DESHABTLTTO DISP« DESHABILITO DISP2 DESHABILITO DISP2 RABTLETO ISPS. HABL_DISPS —vacko ace Ber ace BSF Exo DESHABTLITO O1SPI DESHABILTTO 07303 DESHABILITO OT5P2 RASTLITO DISP4 ‘Figura 6.3 Macros de habltacon de cad uno de fos splays CIM: ce :8280 sore meresarctos igh a) Figura 6.4 Diagrama de fujo dela visualizacién en los displays producir la sefial de habilitacién de cada uno de los displays. Cuan- do se pretende visualizar un dato en algtin display determinado, se debe habiltar ese display y desha- bilitar los demas, figura 6.2. Los ‘macros de la figura 6.3 hacen est tarea, de manera, que invocando wosTRAR MOVE G1, OWE PORTA’ HABT_OTSPI CALL RETARDITO Nov 0162,W MOWWE PORTA HABT-oTSP2 CALL” RETARDITO MOVE 0163, MOWE_poRTA' HABT_OTSP3. CALL RETARDITO Move o1ce.w NOW PORTA’ HART. DISPs CALL RETARDITO RETIN @ el macro HABI_DISP1 dentro del programa principal, seejecutan Jas instrucciones contenidas en 4. Para visualizar los datos adecuados en cada uno de los ‘SE PONE EL CONTENTOO. DEL DIGITO 1 EN ELPTO A MABILITO EL DISPLAY 2 ‘AGUAROAR UN MOMENTO ‘SE PONE EL CONTENTDO DEL DIGITO 2 EN EL PTO A HABILITO EL OISPLAY 2 “AGUAROAR UN MOMENTO ‘SE PONE EL CONTENTOO DEL DIGITO 3 EN EL PTO A HABILITO EL OISPLAY 3 AAGUAROAR UN MOMENTO ‘SE POME EL conTENTDO DEL DrarTO 4 eN EL PTO A HABTLITO EL OTSPLAY 4 “AGUAROAR UN MEMENTO + RETORNO OE LA SUBRUTINA Figura 6.5 Cédigo de la rutina MOSTRAR segmentos se utiliza una subru- tina denominada MOSTRAR. En la figura 6.4 podemos ver el diagrama de flujo de esta ruti- na, Su cédigo fuente se presen- caen la figura 6.5. i ———— rogue « — : PaavetpaL “GALL” sostmag UTI De visuaLtzacron CALL INEREMENTARLP | THVOCD RUTINR De FAINCREMENTO DEL HOMERD A A Procean CALL osTRAR —_; VISUALIZO De wEVO Goro GUARDAR =| GUARDO EL NUMERO sae BTrss ports, | GHEQUED EL 3UMPER 31 Goro pRINcHPaL | ST-No Se Ha QUETADD 5 AEGRESO Pama SECUTR AIMENTANOO Leo oro _wo00_RuN iSO 8 — INCREMENTARPRTPSC PORTB,2 ——_; CHEQUED EL PULSADOR OE 2 emmoe RETIN 0 4 eT@wa two ESTA pustoo B GALL RETARD | AGUARDO UN HOENTO, 3 SUALTZD Y CHEQUES oe uevo CALL wosTRAR PARA EVITAR BTrSc poRTB,2 | REEOTES iNoeseanos. GOTO. INCREVENTAR.p | SE ESTA PULSADD GALL SOSTRAR™ | THvREMENTO Los orcrros 1 YU Mrsuattzo pe nuevo. cau caLCULAR.tnc} EstALES LA | RUTIN DE caLcuto exacro DE CALL sosTEAR } COA‘Uno DE LOS DrGrTOS Rerun GUARDAR MOVE DTG4,N QUT ALMACEN CADA WHO Some Orcs! DE Los orarTos ex Move. Orcs.n | RectstnOs AURTLEARES ome ores" | UsrcAuos eN OTRAS Mov O1G2,W ——_} POSICTONES EN owe 162" sove™ oIGtw wome orc"? coro. SALE ‘Figura 6.6 Subrutina de programacin de valor te . Curso prdteo sore Meroconttadoes WE: © et a CTO Modo RUM Figura 67 Diagram de fj dela subrtia de programacién La rutina anterior es en realidad muy ser cilla, Su funcién consiste en tomar el conteni- do de los registros DIGI, DIG2, DIG3 y DIGS, los cuales contienen el dato completo que se debe entregar a cada uno de los displays, y en- viar el cédigo de cada digito, uno a la vez, al puerto A mientras habilita el display correspon- diente, Para ello recurre al macro asociado a ese display. En la figura 6.6 observamos la subruti na con la cual se programa el valor limite del contador y en la figura 6.7 se muestra su res- pectivo diagrama de flujo. En esta subrutina se lee el pulsador de entrada conectado al bit2 del puerto B (bloque B del c6di- g0). En easo de confirmarse una entrada extema, se invoca la subrutina CALCULAR_ING, la cual se encarga de asignar a cada uno delos registros DIG1 hasta DIGA, su valor exacto, Hecho esto, mediante la subrutina GUAR- DAR, los valores de los digitos se almacenan en <8 dase + MACRO QUE DETECTA BTFSC PORTB.O ; EL SENTIOO DEL GOTO’ ASCEND. CONTEO MEDIANTE EL DeScEN BSF BANDERA, ; CHEQUEO DE EL. REST_DIGITOS "BIT @ DEL PUERTO 6 GOTO” OUT; SEGIN €S0_LOS orGrTOS BCE BANDERA,@ {INICIAN EN @ 0 CON TINICIAR-DIGLTOS. | EL VALOR PROGRAMAOO Nor Evo LOE, Dom ‘ASC_DES SoTROAT a OND TFS” BANDERA, | ASCENDENTE. DESCEN. GoTo) DeRBeNTAR', SEGIN EL BIT 0 OF BANDERA, SALTO A ovo _orcREMNTAR | TNCREM, 0 DECREM, fommcmogue INCREMENTAR ” BTFSC PORTB,2 ; CHEQUEO DE EL PULSADOR DE ENTRADA ovo noma SE AGUARDA UN seTanoo 5 para ALL Evaro} EVITAR LECTURA DE E COLL MOSTRAR REBOTES DEL PULSATOR. Brrsc cor aut a ca ‘coro. DECRENENTAR BTFSC 8 Figura 6.8 Cécigo de a subratina qu ejecuta of funclonamiento ‘normal ce sistema registros auxiliares para ser utiizados mds adelante con el fin de verificar cuando debe generarse la se- fal de control. En el Bloque A del cédigo se efectia un ciclo continuo. Mediante este ciclo se muestran los datos programados actualmente, se determina si bay entrada externa y se guardan los datos nue- vos. Dicho ciclo se repite indefinidamente mien- tras el jumper J1 no sca removido. Cuando se r Curso prictico sobre Microcontroladores ‘Figura 6.9 Diagram de fj dela operacion en modo RUN JI, el programa entra al modo RUN o de ejecucién normal del sistema. Las acciones efectuadas por esta parte del programa podemos apreciarlas en el cédi- go dela figura 6.8 y en el diagrama de la figura 6.9. En el bloque D se lee el estado de J2 para deerminar si la cuenta va a ser efectuada en for- maascendente o descendente. En el bloque C se hace un macro el cual, segiin el estado de J2, hace que los valores de los registros DIG a DIG4 adopten el valor 0000 en caso de cuenta en modo ascendente, o el valor programado previamente si se ha seleccionado el modo descendente. Enel bloque E del programa se monitorea per- manentemente el estado de la entrada externa para hacer la cuenta Si, en un momento dado, se lee tuna entrada valida por este pin, se invoca la subru- tina CALCULAR_INC 0 CALCULAR_DEC para calcularel nuevo valor de los registros que guar- dan el valor de cada digito. A partir de este punto se entra en un nuevo cielo, en el cual se incrementan « decrementan los valores de los digitos, se mues- tran en los displays y se verifica si han legado al valor limite para disparar la alarma o sefial de con- trol, bloque F del programa. PARA SABER MAS eQué es un macro? Por definicidn, un “macro” se refiere a un ele- mento que se compone de varias partes mas equefias. Esta misma definicién se aplica a los macros del ensamblador, los cuales son con- juntos de directivas e instrucciones definidas por elusuario y que pueden ser incluidos dentro del digo al invocar el macro. ‘Los macros pueden escribirse de tal forma que acep- ‘tenargumentos, haciéndolos muy flexibles. Entre otras, . uso de maoros tiene las siguientes ventajas: © Proporcionan un alto nivel de abstraccién, ha- Ciendo los programas mas comprensibles ‘* Ofrecen soluciones consistentes a funciones que se realizan con cierta frecuencia ‘+ Simplifican los cambios Facilitan la prueba y depuracién del programa Lasaplicaciones mas frecuentes delos macros son: © Construccién de tablas complejas. * Creaocién de cédigos usados con frecuencia * Realizacién de operaciones complejas Definicién de un macro La definicién de un macro se divide en tres partes: la cabecera, el cuerpo y la terminacién. La cabecera de un macro posee la siguiente sintaxis: - MACRO [ [, ] ] donde es el nombre del macro y ‘ son los pardémetros que se le entregan al macro desde el punto donde se invoca. El ‘cuerpo del macro empieza inmediatamente des- ppués de la cabecera y continua hasta que se le dala terminacién. El cuerpo del macro se com- pone de una serie de lineas de codigo que cum- plen con una determinada labor. Ladirectiva ENDM termina la definicién del ma- cro. Ella debe existir antes de que se encuentre ‘otro nuevo macro. ro prion mice ccontctntoes RCT: & Contador de eventos Ensamblaje Figura 6.10 Connie as components R ceca yos Seale ea . pee } Sec tt 7 F requeen para ; Scores % 5 censamblar el 1 Sercsew saan ss -% a ‘ = Paso 1 t Secor Con un alambre delgadb, 1 Suceecmme epee fortrctriaee ' Sree arta uentes marcadas en el ' aetna ict impresa Figura 6.11 Paso 5 Insole os cuatro cancersacers cerimioas C1, C2, C4y 06 Paso 2 Figura 6.16 Leg intaey suele dodo 01. ' ‘nstale el cristal X71 y los Figura 6.12 en pat ‘condensadores electro Sea eaes fiowaei7 Paso 3 ae eat rae aoe iene poet) 2 ede) de atnotacen Figura 6.18 pa 4 = iio y sts cho = tenes en ro ee otsrand a postn cree srs en caret sus baes yes penis a siya ia Figura 6.19 pss It ys bs to play LE ‘regulador IC3 y el puente eta ot, Fw 815 ao 10 Pt na ‘Almente el cicuto can una fuente regulada ono, haste ce 12 vltos, Canecte las puentes J para actar el modo de programacitn y «2 para establecere| modo dela cuenta Con a puisador SY seleccione el mimero que Seva a conta, Rete el puente Jt ypresione 'S1 repetiamente, on ese momento se debe ncrementro decrementar el riimero segin el medo seleccionado. Sno 8s as, revise ‘muy bien les canexiones yverfque que el programa esté bien grabado en e micracontolador. 5) AEICIT: cur ricco vn erconrsies DECODIFICADOR DE TECLADO HEXADECIMAL En este proyecto se manejan simult4neamente un teclado y cuatro displays. Existen muchas aplicaciones del mundo real donde se requiere manejar estos dos elementos, por eso la im- portancia de entender bien este concepto. Caracteristicas * Lectura de teclado de 4x4 * Visualizacién de los datos en 4 displays de siete segmentos * Utiliza el microcontrolador Motorola 68HC908JK3 cre pritce ners ncrocervacass COMRCIT: Uno de los problemas que enfrentan con frecuencia los disefiadores y experimentadores de sistemas electrdnicos con microcontrolado- res es que algunas veces las lineas de entrada/ salida que tienen disponibles en un dispos vo, parecen no ser suficientes para una aplica- cién determinada. En ocasiones, algunas técnicas y trucos pueden ayudar a optimizar las funciones de los microcontroladores, reduciéndose el tamafio de los circuitos impresos y la necesidad de con- seguir circuitos integrados con mayor ntimero de lineas I/O; aspectos estos que, necesaria- mente, disminuyen los costos. Nuestro propé- sito en esta oportunidad, es proporcionarle al- gunas de estas técnicas que puedan ayudar a optimizar los disefios. La multiplexacién, que se define como una mpo para que dos o més sefiales se puedan transmi- tira la vex por un mismo medio conductor, es sin duda una gran herramienta (y en ocasiones Ja Ginica) para conseguir un mejor aprovecha- miento de un dispositivo. Esta técnica se utiliza ampliamente en comunicaciones (atin més con el auge dela fibra dptica). Usted la utilizaré para Ja lectura de teclados y la visual de displays de siete segmentos. forma de compartir secuencialmente el t En este proyecto se hari la lectura de un teclado de cuatro filas y cuatro columnas y po- dri visualizarse el resultado en cuatro displays de siete segmentos. Los displays muestran ini- cialmente el ndimero 0000 y luego muestran los datos que se van introduciendo por el teclado. ‘Como son cuatro displays, hay que entrar cua- to datos, cada uno de ellos se ingresa por el teclado y se da un enter para indicar que se ha aceptado el nimero y que se puede pasar al si- guiente display. En el reclado cualquier letra centre la “A” y la “E” sirve para dar la sefial de center y la lecea “F” sirve para borrat los displays. En otras palabras la rutina es la que se muestra cn la figura 7.1 © dex Tier T a a Clee Tec Hie [ ‘Figura 7.1 Rtn general para entrada y vsuaacin de os datos Funcionamiento Enh figura 7.2 puede apreciar el diagrama esque- ‘matico del circuito en el cual vemos que se utiliza tun microcontrolador Motorola 68HC908)K3. La salida de los datos hacia los displays se hace por los bits 4,5, 6 y 7 del puerto B, correspondientes a los pines 11, 8, 7 y 6, respectivamente. Los bits 1, 2 y 3 del puerto B y el Bit 6 del puerto D se configuran ‘como salidas y van conectados alas fila del teclado. Manejo de teclados La clave para manejar este tipo de teclados consis- te en enviar por las lineas de salida sélo un cero por vez; por ejemplo, si enviamos un cero por la Iinea PTD6 (pin 10), cuando oprimimos una te- cla en la primera ila (el 0, 1, 26 3), un nivel légi- co bajo se reflejaré en el pin correspondiente de las Ineas de entrada (PTD2, PTD3, PTD4 y PTDS respectivamente); asf, si se encuentra un | I6gico bajo en la linea PTDS se puede con- cluir que la tecla presionada fue el digito 3. ‘Curso prictco sobre Microcontroladores AIG AIS 1K Lbs Ft F to's Ris 1K R13 R12 1K +5V 0 a ‘ansa0e (213008 ne ac oO. DISPLAY 1 1K 2 ‘23906 Ac oO. DSPLAY4 —DSPLAY3—_—DISPLAY2 me ‘AO if ie ‘Mes | a4 “iY Lal 4 220 8) sof 1 vy a 7 se £7. Fon 2] 81 " - AYA § \ oe <2) 8 =a wl alele dadadad q | @ ga elalelra|2anly 2] 2] 2] 8] clei) Elon} o & i “ez Bak a aura 7.2 agra essence ‘ us pritia sore Meroconrolcors CEMCUT: @& Si se quiere explorar todo el teclado, bastard con rotar el cero circularmente, de tal manera que solamente un cero se encuentre en las filas del teclado, cuando se hacen las lecturas de las lineas de entrada (las columnas) como se mues- tra en la figura 7.3. Cuando el cero llegue a la fila més significativa del reclado, debe reingresar en la prdxima ocasidn por la menos significativa, reiniciando la exploracién del teclado. Un diagrama de flujo para este proceso, en donde el microcontrolador queda enclava- do leyendo el reclado hasta que se detecta la presién de uno de sus elementos, se muestra en la figura 7.4. Otro aspecto que no se puede olvidar, son los rebotes causados por la pulsacién de una tecla. Cuando una tecla se oprime, sus contactos actian como resortes, y la unién eléctrica no es estable, se generan una serie de uniones y desuniones meci- nicas durante un intervalo significativo de tiem- po. Estos rebotes pueden dar lugar a que, en una aplicacién real, cl programa los interprete como si hubieran generado muchas pulsaciones, si es que no se toman los correctivos del caso. Para ello existen soluciones por hardware y or software ; en este caso consideramos més inte- resance la segunda pues simplifica el dsefio, Alla solucién més obvia es que despues de la deteccién de la tecla pulsada, se genere un retardo en la lec- tura del dato, de tal manera que se ignoren los contactos subsiguientes debidos a los rebotes. Se tbh Lectura de ls eolummnas Figura 7.3 Secuencia paa a lectura de un teclado matricial ecodificador de teclado hexadecimal Figura 74 Digrama de fj para acura de un tatado mata Explicacion del programa El programa cuenta con un lazo principal que se ¢je- cuta de manera indefinida, compuesto por tres su- brutinas, figuras 7.5 y 7.6. La primera se denomina ActualiceDisplay y como su nombre lo indica, ac- tualiza y muestra datos en cada uno de los displays de siete segmentos; LeaTeclado se encarga de hacer el barrido de las columnas para detectar cual de los pulsadores se ha activado y AnaliceTecla se encarga de determinar el valor que se ha asignado a cada tecla {que se oprima. Los valores de los pulsadores se van acumulando y cada vez que se presiona una de las teclas de enter, se procede a su visualizacién. Debido a la configuracién de los transisto- res que van conectados al Anodo comiin, cuando se aplica un nivel cero a cada una de las bases, se habilita el display correspondiente. En la figura 7-7 se muestra el cédigo de la habilitacién de cada Figura 7.5 Diagrama de jo de azo Principal del programa uno de los display y en la figu- ra 7.8 sc mucstra su diagrama de flujo. En este eédigo puede observar la instruccién belr PB1,PORTB por medio de la ccual se lleva un cero al bir PBI del registro PORT. ara visualizar los datos en los displays, se sigue el mismo procedimiento que en el pro- yecto anterior; se carga el acu- muladorcon el dato que corres- pondeacada display, este se en- via por los pines 4, 5, 6 y 7 del puerto B y luego se habilita et display correspondiente. ‘#6 Inicio del prograna ol dar RESET Stare: jer oer ier 1o0pPpat jr jer isn ira El cédigo de esta opera {Enmascarar: técnica con la cién se muestra en la figura [cual se utiliza una “méscara’ 7.9 y el diagrama de flujo en }o rutina de inhibicién con el la figura En este procedimiento se observa como se lleva al acu- _|Nibble: grupo de 4 bits (me- mulador el dato asignado a |dio byte) operado como una cada uno de los displays De- |unidad. bido a que el dato debe salir por los cuatro bits mds altos _cararel nibble bajo e intercam- del puerto B, se debe enmas- _biar de po InteDisplay Initkey Tnitanatice ActuaticeDisploy LeaTectado AnaliceTecta ‘oopPpel prutina ce inictelizacion de 1a torea de display rutting: de inictelizacton de Ta tarea ide tecloco rutina de inictalizacton de 1a torea de oraltsis {loop principal que invica todas Las Htoreos del sisteno Hereo de dizpley Horeo tecloco HTarea de anlisis Figura 7.6 Cécigo fuente del azo principal de programa 7.10. fin de alterar o aislar ciertas posiciones de bit. n los nibbles EnobleDispl bel D6, PORTO set DORbe, 00RD RTs Enobledisp2 etr 82, PORTE. Det DORE, 0088 ars EnobleDisp3 bel a2, PORTS set DORE2,00RS ars. EnableDispt ele 83, PORTS. set OOR63, 0088 bbset PD6, PORTO set 00Rbs, 00RD TS. set P81, PORTS Disaboteo2 boset a3, poRTs set 00R83,00R8 ars + ConFiguro et bit 6 det puerto D } (Bin 10) cono saiide'y To pongo en cero, + Configuro el bit 1 del puerto 8 i Gein 14) como salida'y fo pongo en cero, Configuro el bit 2 del puerto 8 } (pin 13) cono satida'y To pongo en cero, + Configuro el bit 3 det puerto & (pin 12) camo sotida y To pongo en cero. § Gonfiguro et bit 6 del puerto D } @in 10) cono solide y To pongo en uno. ; Configuro el bit 1 det puerto 8 (pin 14) como solide y Lo pongo en uno. § GonFiguro e1 bit 2 del puerto 8 } (pin I) como setida'y To pongo en uno. + Configuro et bit 3 det puerto 6 } (@in 12) como satida y To pongo en uno. Curso practico sobre Microcontroladores WT: Figura 7.7 Cédlgo para te habitacin oe fs asplays * Decodificador de teclado hexadecimal Habittar aan alto y bajo el resultado se Ile- va finalmente al puerto B. tata Para ejecutar el procedi- dfsley2 nto de detectar la tecla pulsada en un momento dado, eas se debe enviar una sefial alta spay 9 por cada uno de los pines de las filas y leer el dato resultan- teen el puerto D. Naoitar arspleys Por ejemplo, en el momento cero), estamos detectando si se ha FO nents epee pulsado una tecla entre el Oy e3. Updatediset ae PORTE 3 Cargo el eeumstodor con et dato ona 50F que se vo e mandar por el puerto & Sto PORTE } Yo ewoscoro y to Tlewe de nuevo el puerto. {aa datodisa Cargo el dato del priver disploy 0 Antercaroio de posicion Los nibbles ‘ra PORTE alto y bajo y To rondo al puerto Sta PORTE Esto fe aebe a que se utilizen Tos jsr EnobleDispt | bits més altos del puerto 8 ele UPDATEL,dtspStatus } para mandar tos datos beet UPDATEZcispStotus ; Gt dsploy. Lego us $ hobitito et disot y se muestra el cto, Updotenisp2 ond #50 para el dato del display 2 Sea PORTE Se’ cerge ei sato correspondiente Ta aatooisz al segundo display, se te intercanbion ne fe poricten lor mobiee sits y 8030 ra porre para que saigan por Lot pines acecaados sta PORTE Gel puerto 8 y Finalmente’ se habitita el jsr EnableDisp2 __j display aos para mostrar el. resultado. Sein Upoarecspstatus } Estas dor altinas son bonderas Doet UPDATES dispStatis } que indican que se han ectuelizedo. as UndateDisp3 "i PORTE + EL procadininto se rpite para los stspleys nd SOF ‘res y acto, Oe mre qe on Ta meccion de Sto PORTS Stas suits seamrclelente, se achliaa ‘ie eatabis3 Y¥ habitiean coda uno de Tos displays. 80 Interconbio de nibbles. ra PORTE perecion Logica OR con el puerto 8. Sto PORTE EL resultodo se queda en el puerto 8. Sar Enabledisp3 Dele UPDATES, spstatus Se hobilita el display tres se aetivan las banderes Dset UPDATES dispStatus ¢ respective. ats Se sole de io subrutine UpdoteDisp “i PORTE 5 Este es To subrutine de actuolizocién ond 450F para el ultimo display. Sto PORTE Be revo se corga el dato del registro Ta datobist databist, se ernascara, se interemtion sa tos motes y et resultedo acondtctonado ora PORTE F se retorra al puerto 8. sta PORTE Litege se habiltta este disploy y Ser Enaoleoteps fe activen Las borders respectives Dele UPDATES dispStotus ? del registro dispstatus. Det UPDATEL otapseatus as @ fin Figura 7.9 Cécigo de la visualizacion dels datos en fs displays Curso préctico sobre Microcontroladores: Si ha pulsado la tecla nii- mero cero “0”, el puerto D debe leer el ntimero 00111000, de manera que si se compara la lectura con ese miimero y son iguales, se puede determinar que la tecla “0” fue la pulsada, figura 7.11. Al activar una fila se debe comparar el dato lefdo con to- das las posibilidades de cada una de las teclas, por lo tanto los datos para establecer la comparacién con cada una de las teclas se almacenan en una tabla, figura 7.12, La comparacién con los datos de la tabla se da para cada una de las filas. De ma- nera que cuando se lee el mis- mo ntimero 00111000 pero se esté verificando la segun- Enmascaro acumulador imine Figura 7.10 Disrara defo de visual- zac de os datas ens slays da fila del teclado, se debe sa- ber que es un “4” y no un “0” En ba figura 7.13 se muestra 3 el eddigo que hace la verifcacién t de los posibles valores de la tecla cprimida para cada una de las f- las, Sehace una comparacién con Jos niimerosestablecdosen la ca- bla, Debido al poco espacio dis- FID2=0 PIDS=1 PID4=1 PIDS=1—ePr _ponible, solo se ha colocado la lectura de la primera fila, ~- EERE TD De acuerdo a la teda ops mida se realiza la accién corres- pondiente. Si es la tecla de bo- rrar, simplemente se borran los re- gistros donde sealmacenan los da- ‘columns Figura 7.11 Dato lio al pulsar a tela “0” TECAL eau SO0L10108 Yetedot | = TTEGLAZ equ sa0i81100 Jetecla2 tos delos splays. Sies un mime- TECLAS es 400013100 loteclas 9 eda Sh wortiowe 10, es0s registros se actualizan y si TECLAS equ 400110100, n lor i- fe eee esun enter se establece el valor fi URGA? equ nal de cada uno de los digitos TECLAS equ #00111 TEAS equ ooT10100 (Tes aetes ne Como siempre, recuerde TTEGAC equ ¥00113000 Ta tecla ¢ que el cédigo fuente completo TECLAD qu 30310100 1o teeta ee “TECLAE equ ¥90181100 la tecla E estd disponible gratuitamente eres eens en nuestra pagina en la intern TRMTER equ S8E wwow.cekit.comeo a — I enel enlace de este curso, Figura 7.12 Tabla que permite establocer qué tcl fe a que se pus Leateclaritad 7 se detecta ‘ide PORTD 5 Corgo en el ocumutedor set o,newrecte ; 1a fecla 1. De nuevo se ond asoniiie0 | el deto del puerto 9. ceivan Tos Gip HNOLTECLA j ¥ enpiezo a Comparar con nov #i,tecla } benderas 9 s¢ cargo ome noteyt Tos" datos deta eabla 1 Recto con a: é cap erecta} St ol cmparar con el beq tsTecloo dato que indica que no isTecla2 ap HTECLAL jay ninguna teclaoprimida ‘set Iynastecte ; Las banderas que se fea fsrectet —/ eresta'filo, se sole pora | ackiven sirven ap FTeGiAz” —} Chequear ta: Siguiente. bset ONewTecta j pora indicor qe se ha bea tsTectaz | se compara’ con cade nimero | Gevectogo Gop FTECLAS, posible y se salto gla rutina mov #2,teclo tna tecle oprinida. Es eq tsTeclas | Correspondtente csondo se ho | poro'senatszocvon okeyt RTS estableciao uno igual. ars fn otras portes del (rettoo prograra. bset inwastecto ; Esto es Lo prinera, se trate |istecles set @erTecla 3 de lo deteccton de te ‘set IynasTecla. ; Esta es 1a ultina 5 tecla &. j subrutina en 1a" eval ov #0,tecla_} Se-activan los banderas boset O,Nentecte ; Se detecta To pulsacién 5 respectivas, de lo tecla 3. as 5 yise conga el registro tecla ov #3,tecta Se carga teclo con el Elon 5 mero 3 tstectan mrs bset LywosTecla j Esta es la rutina cvondo Figura 7.13 Gilgo de lectura ydeteccién de la tea oprimida cure prictcs soto menconroaiors MERCI: © Ensamblaje : Figura 7.14 oN rr Gann de components fectnessy bs 3 accesorios que 2 s requiren para ‘ensamblar el proyects Paso Gon un alambre delgado, instaley uelde las puentes ‘marcados on ocircuto moreso. Fgura 7.15 Paso 2 ‘Lwago instal y suede las resistencias (16). Figura 7.16 Paso 3 Insta y suede las bases o sockets para los dos crcuitos itegrados. Figura 7.17 Insley suelde ls cuatro transstores PNP yas tetas que forman e telado hexadecimal (16), observando su posicién comecte. Figura 7.18 Paso 8 Pra fal a PTC om kee die Celuel rhe Tecan Te erate or HCO 1 Decoders ogni roe com, 2447 1 Rap fp ge s5V 374 08 4 Gh,ca.cayot Tareas da pep earl PP, 20905, 4 Dsruyr aorta Daye et sgnent nds Setn 2 tye anemones Ge 2-501 io Cann octet 100 250 2 Chyos Cadena ees de = 8 a) Cann doce 2160 1 om Cite are dae 1m fuse aw 7 Rane se 7200-18 & mame fovea ce 10 te sass Pads grandes eis par ceut meso Kae roa apron COT : Commer eve se paaeeunoga o 20 ps se parce gat 6 es Paso 5 Insta y suid o regulador C3, epuenterectntcador BRT y ‘el conector de almentacion CA/CC. Figura 7.19 Paso 6 Installs cuatro asplys y los cuatro condensadores carémicns C1, C2, C4y 06. Fgura 7.20 Paso 7 Instale of cristal X71 y os condonsadores elecrottcas C3 105 observando su pasion Figura 7.24 Instale ls circus integrads. Almente el crcuito con una fuente regulada no, hasta de 9 voles. Los displays se deben actvarincicando el nimero 0000. Deno ser asi, asegirese de que ls integrados estén bien ubcads y que as ives de votaje estén corectos Puls alguna tect y observe su vsualizacin, or WY WT: curso prictico sobre Microcontroladores SISTEMA DE DESARROLLO PARA MICROCONTROLADORES MOTOROLA MC68HC908JK3/JK1 Esta tarjeta de desarrollo para microcontro- ladores Motorola permite editar, ensamblar, simular y programar los microcontroladores 68HC908JK3, y asf construir proyectos de maneta sencilla, rapida y econémica. EI MC68HC908]K3 es uno de los miembros de la familia 08 de Motorola, caracterizados por su bajo costo y alto desemperio, Dentro dels principa- les caracterstcas de estos microcontroladores tene- ‘mos su. memoria Flash (borrableyy programable elé- tricamente), diez canales de conversi6n de anal6gico a digital (ADC) y, tal vez lo més importante, un blo- que de memoria denominado ROM MONITOR, cn el cual se almacena un programa de fbrica que permite establecer comunicacién con un programa de computadora y hacer simulacién, depuracién y programacién del microcontrolador. Funcionamiento El proyecto que construiremos consiste en un sis- tema de desarrollo que soporta los microcontrola- dores JK3 y el MC68HC908]K1 (JK1) de la fa- milia 08 de MOTOROLA. Este proyecto se pue- de adquirir bajo la referencia K-218 de CEKIT El sistema consta de un programa (sofiware) y de una tarjeta en la cual se inserta el microcon- trolador con los elementos bésicos para su fun- cionamiento; el diagrama esquematico de esta tarjeta se puede apreciar en la figura 8.1. En la figura 8.2 podemos apreciar una guia de ensamblaje que nos serviri como referencia al ins- talarlos elementos. La tarjeta posee entrada para alimentacién de CC, conversores de nivel TTL.a RS-232 que permiten conexién serial a una com- putadora para simulacién y programacién, cuito oscilador basado en cristal yun LED in- dicador de alimentacién. El jumper] selecciona el modo de fanciona- miento. En la posicién «PROG» el sistema arran- ca en modo SIMULACION-PROGRAMA- CION, permitiendo mediante el programa insta- Jado, hacer simulacién y posterior programacién del chip. JI en la posicién «APP» permite que el sistema arranque en modo aplicacién; es decir, ee ‘cute el programa grabado por el usuario. SW1 cs un interruptor tipo corredera de dos polos y dos posiciones, que permite remover la ali- ‘mentacién completa del sistema cuando el progra- ma de la PC asf lo solicite para validar el digo de iyo ey eres Tece Te Le Meee ee eee ce) seguridad interno del microcontrolador. El pulsa dor RST esté conectado a la sefial de reset del crocontrolador permiciendo el control por el usua- rio de esa funcidn. En el circuito de alimentacién, se deben ins- talar preferiblemente reguladores tipo 78L05 y 78L08 con encapsuladoTO-92, figura 8.3a, orien- tados como se muestra en la figura 1. Siva a utili- zar reguladores con encapsulado TO-220, figura 8.3b, debe hacer los puentes correspondientes en- treel regulador y el circuito impreso, para que cada uno de los pines quede ubicado correctamente. J, JA y JS. corresponden a tres de los pines del microcontrolador (PTB3 PTB2 y PTB1); para poder entrar al modo simulacién-programacién, ellos deben tener instalado el jumper respectivo. Si usted utiliza estos pines en su aplicacién final, de- berd remover los jumpers cuando arranque el sis- tema en modo aplicacién (Jl en posicién APP). La tarjeta posee un conector en linea macho de 3 pines (CN2), el cual permite la conexién directa a la PC (para simulacién-programacién) y mediante los conectores en linea CN3, CN4 y CNS se tiene acceso a todos los pines del chip, con los cuales puede conectar el sistema de desa- rrollo a su aplicacién final. Adicionalmente, el sistema cuenta con un LED verde conectado a uno de los pines del microcontro- lador (PD7) yun jumperque conmuta entce +VDD_ y terra conectado al pin PBS; mediante estos dos ele- ‘mentosilustraremos el manejo de entradas y salidas. Enel momento del ensamblaje, tenga a pre- caucién de soldar primero los componentes de bajo nivel, tales como resistencias y condensado- res; después puede continuar con los transistores y-demis elementos. Al finalizar, remueva los ex- ‘cesos del fundente della soldadura eon algiin lim- piador electrénico de contactos @ con thinner, y construya el cable de interfaz con la computado- ra, haciendo los puentes como se ilustra en la figura 8.4 (en el conector DB9: el pin 4 unido con el pin 6 y el pin 7 unido con el pin 8). ICM: 0x) s0 sor eerste Figura 8.1 Diagram esquemstico curs price str Mroconttadores CECH: & Oe Nola EE Tee) Ee Re Oviontacén correcta de los reguiadores Conector en linea do 3 pines Pruebas iniciales de la tarjeta Para hacer las pr de seguir el siguiente procedimiento: eras pruebas a la tarjeta, pue- 1. Sin el microcontrolador JK3, alimente el cir- cuito con un adaptador de 12V CC con ter- minacién redonda. Tenga precaucién con la polaridad: el terminal externo debe ser el posi- tivo (4) y el terminal interno, cl negativo (-) 0 conexidn de tierra 2. Mida el voltaje entre TP4 (GND) y TP3 (5V), debe ser alrededor de 5 VCC; delo conttario revise el montaje del circuito, Mida el voleaje entre TP4 (GND) y TP2 (IRQ), debe ser al- rededor de 8 VCC; de lo contrario revise el montaje del circuico, 3. Remueva la alimentacién de la tarjeta y colo- que el microcontrolador JK3 en la base. Software de desarrollo El programa mediante el cual se puede hacer edicién, ensamblaje, simulacién, programacién y debug es gratuito y puede ser descargado de la Entrada Interuptor tipo ECSU OLE) LY Doblar corredera Figura 8.2 Guia de ensemble dela tarjta internet visitando la pagina www.pemicro.com (link: Motorola M68HC908 Kits). La docu- mentacién del microntrolador y las notas de aplicaci6n para el manejo de todos los médulos internos del procesador, se pueden encontrar en www.mot-sps.com. Para manipular este sistema, tenga en cuenta el siguiente procedimiento: 1. Instaleel programa ICSJL de www:pemicro.com. 2. Para verificar el funcionamiento de la tarje- ta con el programa ICSJL, conecte el cir- cuito al puerto serial de la computadora (DB9) y ejecute el programa ICSO8JLZ De- velopment Kit > WinIDE Development Environment. Allf se accede el segundo ico- no de izquierda a derecha (In-Cireuit Si- mulator (EXE1)), figura 8.5. 3, En ese momento se crea una nueva ventana de configuracién figura 8.6, en la cual se de- ben establecer las siguientes opciones: * Target Hardware Type (Class IIT - Viestom Board (no ICS) with MONOB serial pore circuitry buile in. * PC serial port configuration Port: COM1(Com2) Baud: 9600 > 7 P Tera * Target MCU Security bytes sida sala“ Attempt All Know security codes Terra» Entrada in order Figura 8.3a Encapsulado 10-92 Figura 8.3b Encapsulado TO-220 ®) dauerr: (are pei te uromtrclberos Pro cer una comunicacién sati través de un conjunto de factoria. El programaempie- _ comandos establecidos, ra aensayar diversoscédigos cya lista se encuentra en de seguridad, y antes deen- el menti de ayuda. sayar cada uno, se debe apa- garyencenderlatarjetame- 5. Parailustrar la evaluacién del diante el interruptor SW1, hardware con la ayuda del om ge oa para lo cual el programa —_ software ICSJLZ, el circuito muestra una nueva ventana —_provee una salida (LED D2) Figure 24 cable que seconeciaa) ue itidica el momento en _y una entrada (Jumper J2). ‘puerto serial de la PC para comunicarse que esta operacién se debe Coloque y remueva el jum- con la tarota realizar, figura 8.7. perJ2 dela tarjeta. Este cam- bio debe verse reflejado en En caso de problemas deco- 4, Alobtenercomunicaciéncon Ja zona de puertos del pro- nexién, active el recuadro: el circuito, debe aparecer en _grama (esta es la forma como Ignore security failure and \a pannalla una nueva inter- se puede evaluar que las en- enter monitor mode. fazen la quese tienen venta- _tradas de su proyecto funcio- nas de puertos, zonas de nen adecuadamente). Para Con la configuracién dis- memoria y programa en en- evaluar la salida acceda a la puesta de esta manera, se samblador (assembler), el Iinea de comandos del pro- puede proceder a establecer cual puede ejecutarse paso grama (inferior izquierda) y contacto con esta tarjeta, por paso en la tarjeta, figu- modifique el estado del haciendo clicen Contact tar- ra 8.8. Una de las princi puerto D del MCU pin get with this settings. pales herramientas con que PDD7; para esto debe poner cuenta este entorno de si- el pin como salida colocan- Ahora debe iniciar el proce- _mulaciémesunaventanade do en el registro DDRD del so de verificacién del cédigo _comandos, en la cual usted MCU el valor $80 (hexade- de seguridad interno del mi- puede dar drdenes ¢ inte- _cimal), (comando: DDRD crocontrolador para estable- ractuar con el programa a0) y acontinuacién, el va- Ensambla/oomplar Simulador ene cieuto Programador Dent enel Ventana de edlcon del programa Simulacion Figura 85 Eatorno Win IDE corse prt sob mcnconroaoes EMCI: o ener lecol Une emer elCm Lge ey Seleccionar lassi ‘Seleccionar puerto seri: Esta opcién permite buscar el cédigo de seguridad Establecer comunicacién con a tareta Figura 8.7 Ventana de sefaizacién do encendd y apagado del tarjeta lor del pin en el registro PORTD del MCU en el es- tado requerido (para nuestro caso en “1” légico), (coman- Estado de fa CPU Ventana de estado Entrada de comancos Configurar a 9600 baudis Figura 8.6 Entrada al programa simulador del sistema y configuracin del tarjeta do: PORTD 80). Después de la ejecucién de estos dos comandos, el LED D2 debe encenderse, indicando la co- nexién adecuada (de mane- ra similar se pueden evaluar las demas salidas del proyec- to en particular), Lasimulaci6n de programas puede hacerla sin la co- nexidn del circuito, acce- diendo al botén SIMULA- TION only (csta simula- cidn es recomendable para zonas de programa que no tengan interaccién directa con el hardware) Programa ejemplo El ejemplo que ilustramos a continuacién consiste en un sencillo programa que varfa la frecuencia de oscilacién de en- cendido del LED D2, depen- diendo del estado de la entra- Comportamiento de las variables Mapa de a memoria Ventana del cidigo ‘SInclude ‘i13regs.inc’ FLASHLSTART_IKS equ $ECOO RESET VEC au SFFFE jdefinicton de bits coro ‘equ por equ? Pas equ ‘org. FLASH. START. JIG Stare sp Bset_ COPD, CONFIG Ber init_Led Loopo: Bret PBS, PORTB,Hal ft so #2ssr fra Bly? Half: La #707 Diyt: Bsr Detoy Deca Brset P85, PORTE,HoL‘2 “da #2557 “Bra Dly2, | Walr2: La #707 _Diy2: Bsr Delay Deca Bre Dly2 Sr Led OFF ra Loop) Led. oF clr POT, PoRTD RIS. “Led. jsubrutina de retardo bésica Delay Td aSFFFE oop Abe 5-1 | ox Bne Loopt RTS. Init Led! set 07,0080 Bele PO7|PORTO rs, (rg RESET_vEC De Start Botin para accede al entorno e programacion [arg sArehivo de deFinicion de registros Hdirecetén de inicio de lo Flash Edireceién del vector de reset bit de CONFIGL para habilitor/ Edeshabilitor et notchdog Pott ce conexton @ le solida (Led 02) ott de conten de Io entrada (Jumper 12) sintcializa stack pointer deshabilito el. COP Cratchdog) freatiza Tlamado a Ya" subrutina de estodo inicial del Led sverifFica el estado de to entrada 32 carga el AccA con el valor 255 decinal {32 colocado, Se carga et AccA con un valor mener Nrwoce”subrutina de retardo Hdecrenenta el heck seneiende Led 02 vertfica el estado de to entrada 32 jearga el Acc con el valor 255 decieol 22 eolocado. Se carga el Ach con valor menor Hivoce subrutina de retardo Jaecremental el eck apaga Led 02 ;P07 en @ 507 en 3 searaa registro doble H:X con velor inicial Hdecromenta et registro H% compara con @ ist no ha LULegado continua el retardo retorma del tlonado jestablece el pin PO7 det MCU como sala jopage el led 02 Fretorna de la subrutina yal dorse reset solta a Start Figura 8:9 Programa efemo Ventana que indica ‘que se est levando 2 cabo el ensambiaje Figura 8.10 Ensambiale de programa da J2 (jumper puesto, menor frecuencia de oscilacién), figu- ra 8.9. Para la programacién del MCU con el programa ejemplo, utilice los pasos que siguen a continuacién. 1, Digite el programa en el edi- tor del WinIDE. 2. Ensamble el programa ha- ciendo clic en el primer icono (de izquierda a de- recha) de la barra de herra- mientas, figura 8.10. 3. Acceda el tercericono del pro- grama WinIDE Develop- ‘ment environment (program- mer (EXE2)). 4, Antes de grabar cualquier programa en la memoria del microcontrolador, éste se debe borrar. Al entrar al soft ware de programacién debe escoger entre el modo borrar y el modo programar. Esto se logra haciendo clic en el menti device>algoritm, fi- guras 8.11 y 8.12. 5. Borrar el MCU presionando elicono 6 (de izquierda a de- recha el icono con borrador sobre el chip), figura 8.13. 6. Cargue en memoria el algo- ritmo de programacién del MCU JK3 (908_JK3.08), figura 8.14. 7. Especifique el archivo que va a programar mediante el ico- no 7 (de inquierda a derecha, licono con disquet), Figura crommmene cre: EW ele TES) erect DL LEC Lk Anes sa proce te ‘mirocontelador Motorola, (se se debe boar entar Aorta doprogamaconse debe selecionarelagortmo (que se ve uta sendo as ‘pone borary program. Haciendo cic en este mend ‘egmoseltpo de sgortma, 8.15. Los archivos binarios que se graban en el microcontrolador poseen la extensién s19. 8. Programar el chip presionando el icono 8 (de izquierda a derecha el icono de rayo sobre el chip), figura 16. 9, Para ensayar el programa en la tarjeta, cambie el jumper JI de la posicién 2-3 (PROG) a la posicién 1-2 (APP); desenergice y energice la tarjeta nuevamente para proporcionar un reset. 10.Para volver al modo simulacién in-circuit y programacién, cambie J1 de la posicién 1-2 (APP) a la posicién 2-3 (PROG), remueva Ia alimentacién y conéctela nuevamente. Este indicadornos dice que se ha cargado of lgontmo 4 borado, ‘Al momento de borrar, en esta ventana se muestra el ‘aumento progresivo de ‘este procedimienta en el ‘microcontrolaor. Esta ventana de estado informa qué algortmo se hha cargado ylasacciones ‘que se ejecutan sobre el ‘microconrolador. Este es el algoritmo que se debe seleccionar para borar el micro- conlador. El primer paso ena pro- sramacio, Figura 8.12 Satecctn de algertimo que ‘8 va.a trabajar niciaimente el de borrado Haciendo cc en este icono -damcs inicio al proceso de borrado Sel algoritmo de borrado no se selecion6 previamente, este icono estar desactvado para el ‘usuario. Figura 8.13 Borrado del mirocontolador @® eur: Curso practico sobre Micracontroladores Figura 8.14 Seleccén del algoitmo de rogramacién Seleccidn del archivo S19 Borado del micecontolador (Prova selecoin del ako smo de bora) ‘Una vez borad ef microcontrolador lo puede programar Para iniciar este proceso debe cambiar el algoritmo ‘de borrado por el de pragramacién selecionanda la opcin que se mu- ‘stra en esta figura. A ella puede Haciendo clic en el icono del cisquete, puede cargar el archive binaro resultante {e ensambiar ol cigo fuente, ye cual se ve a grabar en la memoria Flash del mmicrocontrolador. Los microcontroladores Motorola manejan un formato "19 para accederenelment Device>>Choase sus archivos binrlos. En este momento algorithm. seleccione ol archivo que va a trabajar en esta ventana, el cual tiene el mismo nombre que el del cio fuente, Haciendo cc enesteicono se entra a programar el ‘mcracontrolador \eifcain de quel micro- conto ha queda xo ramado corectamente Figura 8.15 Seeccon dl archivo binario (ue se va a grata en el mirocontoacor Lectura de la memoria del mirocontrolador Alnacer clic nl icono del rayo, el sistema grab of archivo $19 selecionad en el paso anterior dentro dela memoria del merocontrelader. Una ‘vez niiado este proceso en la ventana de estado se visuliza el porcentale progresivo en que se ‘ve cumpliendo el proceso de programacién, Figura 8.16 Programsacén del microcntrolador El entorno ICSO8JLZ De- velopment Kit, proporcionado gratuitamente por la empresa Pemicro (wwepemicro.com),¥ sus programas de edicién, en- samblaje, simulacién y progra~ macién, constituyen herra~ mientas muy importantes que pueden ser utilizadas por todos los interesados en iniciarse en la tecnologia de los microcon- troladores Motorola. A pesar de que dicha simu- lacién dentro del circuito es un proceso que ejecuta lentamen- te cada una de las instruccio- nes escritas en un programa, si Jo comparamos con un progra- ma de emulacién, sigue sien- do muy importante para el usuario, quien puede visualizar cl funcionamiento de sus algo- ritmos al ser aplicados dentro del circuito externo, Aprovechando la ROM Monitor de estos microcontro- adores, estos programas le per- miten hacer no solo la tradicio- nal simulacién fuera de linea, sino también la simulacién dentro del circuito. Con esta poderosa caracteristica pode- mos depurar répidamente nuestros programas, detectar errores y mirar el funciona- miento de la aplicacién final cur pict seve merecaroators AGACIT:: Sistema de desarrollo para microcontroladores Motorola Ensamblaje : ia ——— is =. ie aaa 1 gs =a + om fine IO TW i woe Se i aaa tl x Soest ctisdr nonin ae aT aire a readenmiuecsbupnigcseatespions | ti oe roa : a me i 3. Sarees cated atic fe Eee ce op ea 1 eed rena ty set ime ea Sie oeacc ies i Seem ircvesteantea nye Seesren manele i, Seu e = erent see = LED, jos transistores (Q1 y 02) y ees ewe reposicién (RST) y el interruptor de Ea Tr rao ero 9, fae Figura 8.19 mas rao fal eee fasta rc Sele dimer CACC ET os rena Rasa Figura 8.23 rut Instale y suede los dos Paso? condensadores electrolitcos (C1 ‘stale y suede po timo os dos C8) y ol cristal de evarzo de 5 ‘conectores en nea CN y CNS, ‘Mite (X), Figura 8.24 Figura 8.21 aso 8. Pruebas finales ‘Almentar a taneta medlente un adaptador de 12 VCC y sine! micracontrolador JK3. La media de votae entre TP4 yTP3 debe ser alrededor de ls 5V y entre TP4 yTP2 alrededor de fos 8 Instale el microcontoladr@ inteteejecutarel programa de simutacén Centro de! creuto configurando adecuadamente le ventana de entrada al como se explicéanterirmente QD GIT: ores torsos PROGRAMADOR “In Circuit" DE __MICROCONTROLADORES PIC EI desarrollo de sistemas electrénicos con micro- controladores requiere de tres pasos fundamenta- les: escribir el programa, ensamblarlo para crear un archivo binario, y un programador que tome ese archivo y lo almacene en la memoria del mi- crocontrolador para que éste Ileve a cabo las ta- reas dispuestas por el usuario. En este proyecto se construird un programador de microcontrolado- res PIC y se analiza paso a paso su manejo. En general este procedimiento es muy similar para cualquier programador de cualquier marca. oxratvinmnneame cre: PASE TE Tele gad CC a Core EeSg Caracteristicas + Interfaz interactiva * Acepta la variedad de microcontroladores PIC 16Cxx y 12Cxx * Lectura y escritura de archivos en formato IN8HEX * Chequeo de memoria vacfa * Lectura de memoria de programa y de la pa- labra de configuracién * Programacién “in circuit”, dentro de la aplicacién Este es un programador que puede consti- tuirse en una importante herramienta de tra- bajo en cualquier equipo de laborarorio o de desarrollo electrdnico. Dentro de las especifi- caciones dadas por Microchip para la progra- macién de sus microconcoroladores, se desta- can dos técnicas de programacién: la paralela y la serial 0 “in circuit’, es decir, dentro del Circuito o aplicacién final. Un programador “in circuit” se caracteriza por enviar el programa directamente a la me- moria del PIC en cualquier sitio en donde se encuentre ubicado; de esta manera un aparato ‘que se tenga previamente programado dentro de algiin circuito, puede reprogramarse sin ne- cesidad de removerlo del sitio donde hace su trabajo. Asi el PIC puede estar soldado en for- ma permanente (sin base), simplemente conec- tando adecuadamente la tarjeta programadora al microcontrolador: Esa es la principal diferencia con respecto a os programadores “STAND ALONE”, indepen- dientes 0 paralelos, los cuales cuentan con una base tipo ZIF en la cual se inserta el PIC en el momento de programarlo, luego deben retirarlo del programador c inscrtarlo dentro del circuito. Para utilizar este programador debe tener a disposicién el prototipo montado, en el cual se conecta la tarjeta programadora, tal como se muestra en la figura 9.1, El diagrama esquemtico del circuio lo puede apreciaren la figura 9.2; alli puede ver un microcon- trolador PICIGF84 quien controla la comunicacién ‘con la computadora y todas las funciones de los de- mis circuitos. Tenga en cuenta que este microcon- trolador es parte fijae indispensable del circuit, su programa debe ser entendido como un firmuare, el cual no debe ser alterado por el usuario, Los microcontroladores PIC que se van a programar pueden conectarse de dos maneras: la primera es a través de las bases maquinadas pre- sentes en el circuito impreso y la segunda es co- nectando la tarjeta al prototipo mediante un « nector de seis pines, cada uno de los cuales debe ser conectado con el PIC objetivo, asi 1. MCLR. Debe conectarse al pin de reser del microcontrolador que se va a programar. 2. DATA. Por este pin van los datos de progra- macién y debe conectarse al pin RB7 del PIC objetivo. 3. CLOCK. Es la sefal de reloj, debe conectarse al pin RBG del PIC que se va a programar. 4, GND. Es la tierra del programador, debe co- nectarse a la tierra del prototipo. GND. Tierra. 6. VCC. Salida de 12V. Figura 9.1 Esquema de canexén del programador > deer: ero Ses at serve BASE ZIF 40 pines 3 n ges ie LH am ; i ' E Figura 92 Diagrama esquemético del programador “in circuit” casi rece ett wiriicninans: NCTE ® ‘Nimentacén dea tata i corer D8 facta ne) lou eal de é ia computadra gQ #O PSS EIEIO aT eer a Ae ROO ag fae Reguladores e vltajo wag je | Conector con ts puntos BL] ce said nacia los FT| micocontoiadores para 7] programacién in circuit Tabla sfalizadora d os [ines para programacién in Creut Dios LED nde, Mrocontlador is operaciones ese PACieF 84 cone ace sobre l mcrocono- frmuara tanta Tor acura estrur) fase maquinada para = mercado te inh 28 y 40 pines 71 Base maquinada para i 7 meroontrdores auxiliares para programar le| | s {os microcontoladores das entrada teeta, a CEKIT K=224 En la figura 9.3 observe la guia de montaje de la tarjeta que sirve de modelo para instalar adecuadamente todos los componentes. El im- preso cuenta con dos bases: una para los micro- controladores de 8 y 18 pines y otra para los microcontroladores de 28 y 40 pines; cada base cuenta con marcas para indicar la correcta posi- cién en que se deben ubicar los PIC para su programacién. Las bases se han instalado para brindar la posibilidad de programar también dentro de la tarjeta y no sélo mediante el co- nector de salida. Este programador funciona a través del puer- to scrial de una computadora a una velocidad de ‘Figura 9.3 Guia de montaje ce programador 9600 bps; para esto se debe hacer una conexién, como se muestra en la figura 9.4, en donde el pin 2.de conector viene del pin 14 (Tx) del MAX232 Figura 8.4 Conexién com la computadera QD LIE: or ran tte a ae Figura 85 igual que en cualquier programader comercial canvencional,s existe elgin problema en fa detecitn de ka yel pin 3 del conector viene del pin13 (Rx) del MAX232. Sin embargo, para que usted se des- preocupe de esta conexién, ella yaviene hecha en el DimB9 ins- talado en la tarjeta; de esta ma- nera el cable de conexién entre la tarjetay la compuradoraes un cable DB9- DB9 normal conec- tado uno a uno. Instalaci6n del software y guia rapida de programacion El software del programador ese escrito en lenguaje C para DOS yl ejecutable es un archivo por batch); debe ejecutarlo desde un prompt linea de co- mandos DOS. El programa puede trabajar en maquinas que lotes Contiguracion del puerto serial PC acuament selacionado, El programa inicia por ‘electo con ol PICTEFEA Meni principal tayeta, ef programa no funcionara tengan los sistemas operativos DOS, Windows 3.1/95/98 6 OS/2; y en méquinas que po- sean procesadores Intel del 386 en adelante. Parainstalarel programa sslo basta copiarlo en alguna carpeta del disco duro de la computado- 1; no altera ningtin registro del sistema operativo y de la misma manera, para retirarlo s6lo basta borrar el archivo. Para ejecutar el programa debe digitar en el simbolo indi- cador (promps) del DOS: > progra /eom] (0 com2, si giin cl puerto donde lo renga conectado) Si la tarjeta no se encuentra co- nectada al puerto serial o el fir- mare ha sido alterado, no se es- acién y el pro- gramano se cjecutara, figura 9.5. tableceri comunic: Si la conexién entre la PC y la tarjeta, al igual que el cable serial estén bien instalados, el firmware del microcontrolador podri llevar acabo un proceso de reconocimiento (hand-shaking) podrd entrar a la pantalla inicial del programa, figura 9.6 En esta pantalla se indican: PIC actualmente seleecionado, lcontenido del buffer de memo: ria (si éte atin no se ha cargado aparecerd el aviso de “no defini- do”), la palabra de configuracién yun ment de opciones. Para se- Jeccionar cada una de las posibi- lidades de este menti, basta con teclear a letra que se encuentra a Ja iaquierda de cada opcién entre paréntesis; analicemos cada uno de los item de este ment Aliniciare programa no — existe ningin archivo hexadecimal cargado en Con a tet se oe el mmicrocantolador (Conf teca Le carga un {_" srctivo hexadecimal desde o disco Con la tecia Tse sleciona ‘el microcontrolaor que se ve programar Figura 86 ino exste ningin problema en as conexiones, ‘el programa init su operacién es pater a soars AICTE PRP AU ue eer cea Referencias de os distntos micracontoladores aceptados por a tretaA través del tocado se van mostrando secuencialmente las cistintas posblidades. En esta linea tiene el tipo de PIC seleccionado en el ‘momenta, Maciendo cit ena tecla entero seleccionamos GEICIT cx ricco mon nercorossne Sidesea cancelar la ‘operacién de cargar Un archivo, puede pulsar la tecla ESC Figura 9.19 Carganco el arctive hexadecimal desde e disco Figura 9.12 Configuracién de los fusibles de programecion Si ha ocurrido un error en Finalmente es posible una prueba que siempre se en- la programacién de algunas de _lizar una verificacién total del contraré en cualquier progra- las posiciones de memoria, apa- programa grabado en el micro-. mador y que le servird para recerd un asterisco (*) ensegui- controlador, comparndo este _comprobar que el PIC ha que- da de la posicién donde se ha _tltimo con el buffer de memo- dado programado correctamen- presentado la fala ria mantenido en la PC. Estaes te, figura 9.14. ‘Figura 9.132 Viswalizacon do nado de fa memoria EPROM aN YY curso pict sobre Merocontoladores: CAMERCATE: Panel de pruebas del hardware Con esta opcién se practican una serie de pruebas para comprobar que la tarjeta esta funcionando correctamente. Aqui entra a un roa Figura 9.196 Visuaizacién do nuevo meni en el cual le permi- te variar los voltajes del conec- tor que va hasta el PIC objeti figuras 9.15a,9.15b y9.15c. En esta presentacién se muestran cinco tipos de pruebas distintas EL Clade lenado dela memoria EEPROM las cuales modifican los voltajes en cada uno de los pines del co- rector; leyendo con un mulkime- tro los voltajes en cada uno de ellos, puede detectar alguna falla Figura 9.14 Verticacén de un comecto proceso de programacitn . GWENT cx ricco sore mierocnttasores CEKIT S.A Figura 9.15a Presentecn do pane de pructas del hharcware al pulsar la toca 0 ‘Figura 9.15b Presentacién del panel de pruebas del hardware al pulsar a tela 5 a * Curso practico sobre Microcontroladores exar: Hee ee a a re ee re eet Cease Pulsando la tecla V ejecuta la tercera prueba, que se ha denominado MODO DE PROGRAMAR. En ella el pin MCLR se toma el voltae de programa: CEKIT S.A én y las lineas de CLOCK y DATA se cee te rector + eer sn van a nivel l6gico bajo. Este es ol voltale de progra macion de un microcontrola- dor. Esta lect multimetro, 0 nuevo entre los pines GND y MCLR, y coincide con Io indicado por el programa de la computadora. AA\ pulsar la letra V cambian de nuevo los voltajes del conector de salida de la tarjeta y de nuevo cambian los voltales indicadores ubicados en la parte ieaioroaldaane tel oar Figura 9.15e Presentacin del panel de pruebas del harcware a pulsar fa tecta V Dy MCLR, apreciar un ment y una ilus- _ mento de presionar cada u En esta pantalla se puede pines de Imo- do las conexiones nee de tre los pines de la tarjeta pro- y los pines del cir de la tarjeta. En cl menti apa- ment, lalecturaen el multime- cuito integrado. recen unos caracteres a la iz- tro cambiard inmediatamente. quierda ({0), [5], [V], (C], Después de esto, conecte {D}), cada uno de los cuales Sin lugara dudas, usted pen- el jumper en modo RUN; de hace cambiar los voltajes de sari quese vanadesperdiciarmu- esta manera los pines quedan salida del conector. Cada que chos pines del microcontrolador libres para que se conecten con oprime alguna de estas teclas, que pueden ser vitales dentro de los dispositivos externos de- los pines cambian de estado de _laaplicacién. Para ev seados. Algunos microcontro- acuerdo a las indicaciones da- _tratiempo la solu- das por el texto que le sigue a cidn es muy senci- cada uno de esos caracteres y Ia: basta colocar en en el diagrama del conector se el prototipo final reflejan estos cambios. Si los _unaserie dejumpers voltajes no coinciden con los con los cuales se se- lefdos en el conector, puede _ lecciona el modo de cexistiralgiin problema en el cir- trabajo dela tarjeta; cuito de potencia (transistores es decir, cuando va QI, Q2 y Q3) de la tarjeta. a programarlo hay que colocar el jum: En las figuras 9.15a, by ¢ per en modo pro- seha tomado lalecturaentre los gramacién, hacien- GRICIT: 0100 1800 00 merconrtateres tracién del conector de salida las opciones presentes en el _gramador: este con: Figura 9.16 Crédtos ladores con el 16F87x poseen la opcidn de programacién «in cireuit», ella se caracteriza por- que el microcontrolador slo de dos pines CLOCK y DATA para ser programa- dos. Cuando lleve a cabo pro- gramacién dentro del circui- to, debe tener mucha precau- cién si va a cambiar las fun- ciones de los puertos, para evi- tar que se pueda presentar al- atin cortocircuito que deterio- raria la estructura del micro- controlador. En esta primera versién del programador in circuit para mi- crocontroladores PIC, el pro- ¢grama de la computadora se ha desarrollado en Turbo C para DOS. Para instalar adecuada- mente el programa en su com- putadora, debe crear en su dis- co duro una carpeta con el nombre CEKITP y dentro de cllacopiar los dos archivos que vienen en el disquete. Ellos corres- ponden al nombre de progra.exe y egavga.bgi. Si estos archivos no se han copiado dentro de una carpera con el nombre de CEKITP, el programa no fun- cionard, ya que él esté compi- Jado para buscar los archivos en tuna carpeta ubicada en la uni- dad C, dentro de una carpera con el nombre mencionado (C\CEKITP). Es posible que su compu- tadora no cuente con un puerto serial del tipo DB-9 disponible para trabajar con la tarjeta, pero que si cuente con un puerto serial en co- nector DB-25 (COM2), es decir, que posea un médulo de conexién como el que se muestra en la figura 9.17. Este tipo de presentacién es muy comiin en computado- ras tipo PC, en donde por lo general el conector DB-9 co- rresponde al puerto COMI y el DB-25 corresponde al puerto COM2. Sieseesel caso, tiene dos op- ciones: desconectar el ratén de la computadora, conectar alli la tar- jeta y configurar la inicializacién (COMPUTADORA | z 3 4 5 8 a 8 a Tabla 2 Conersiin seria DB-25 a 08-9 Figura 9.17 En les computadoras tivo PC es comin encontrar en le ‘parte posterior del aparato un conectar pars los puertos seriales en ‘donde existe un conector DB-9y un ‘canector 8-25 CConector 08-8 (vista ronta) Conector 08-25, (Mista front Figura 8.18 Distibucitn y nomenclatura {e os pines en fos conectores DB-9 (armba)y 08-25 fabajo) dela computadora para que sélo trabajecn ambiente DOS, o bien, inicalizar Windows normalmen- te (pero sin conectar el ratén) y cjecutar el programa desde una ventana del DOS. La segunda op- cién es construir usted mismo el cable de conexién hacia el puer- to rial con un conector DB-25; dentro de este kit se han anexado un conector DB-25 y un concc- tor DB-9 adicionales para que us- ted mismo construya su interfxz de comunicacién. Sélo debe ha- cerun cableado entre los pines de Jos dosconectoressiguiendolaco- rrespondencia indicada en la ta- bla 2. La configuracién de los pi- nes de estos dos tipos de conce- tores la puede apreciar en la figu- 29.18, con ella puede guiarse fi cilmente para construir su pro- pio cable de conexién, cusp sre Miconcaoes CARCI: © a Programador “In Circuit” de microcontroladores PIC Ensamblaje Te somone nem tment iE ooo Soneka 1 ie ear Be Soainie Be = aaa : a steam, Este proyecto debe tomarse como una heramienta de laboratorio con la cual puede vara cabo un sinniimeo de actdades y royectos. Pr su naturaleza de heramienta de tabaio, nos hemas enfocado en explicar su manejo sin profurdiaren la celaboracién det fhmware y de programa dela computadora. Esperamos que él sea de mucha utiidad en su desempafo por el ‘mundo del microcontoadores. Para el ensambaie de todos los componente en el circuit imoreso del programador, use la guia de montsje que se ha albyjaco sobre la cara de fos componentes def mismo, lal como se muestra en a gua 9.79, tenga cuidad con a ubleanén de todos fos ‘componente polarzados. CConectorCA/CC para el fe es Este esol conector desde adaptador que suministra = 1 ual salen los hilos laalimentacién al crcuito hasta ol PIC que se va a e rogramar in cicuit CConectorDB-9 para ta comunicacion via RS-232 con la computadora zn esta taba encuentra seflzados cada uno de Jos pines cel conectr 3. En él exsten dos pines tera y una sada avila de 120 Fmware dela tarjeta ue permite manear la Diots LED insicadores| comunicaién on a PCy la el funclonamiento dele ‘apa de potencia que va tarjeta hacia el PI objetivo. Nunca retire este cut integrado e su sitio Base ZF para instal Base ZIF para instalar microcontroladores de 8 y merocontroladores de 28 y 1Bpines 40 pines Figura 9.19 Aspect final de programador' Circuit" de micracontoladores PIC (Curso prictco sobre Microcontroladores PUNTA LOGICA Simplifique la prueba y la reparacién de sistemas digitales construyendo esta prictica punta légica. Detecta niveles alto, bajo y de alta impedancia; su elemento principal para el proceso ¢s un micro- controlador PIC16F84. Caracteristicas * Punta légica de tres estados * Detecta estados de alto (1), bajo (0), alta impe- dancia (Hi-Z) y entrada de pulsos (P) Sefializacién a través de un diodo LED y un display de siete segmentos Genera una sefial PWM para uno de los tipos de sefializacién Tamafio reducido Sefial audible de cada uno de los estados Curso préctic sobre Microcontroladores ei Una punta ligica es uno de los elementos mas utilizados dentro de un laboratorio de elec- trdnica digital, microprocesado- reso microcontroladores. Ella fa- cilia el proceso de construccién, prueba, reparacién, manteni- 0 ¢instalacién de toda cla- se de sistemas digitales Utilizando una punta 16- gica se puede determinar ficil- mente el estado de una entra- dao salida digital y confirmar Ja presencia en ese punto de un nivel l6gico alto o bajo, un esta- do de alta impedancia (Hi-Z) 0 una entrada de pulsos a una alta frecuencia Las puntas légicas para uso profesional son instrumentos relativamente costosos y, por la misma raz6i accesibles a todos los presupues- tos. Esta punta légica es un ins- trumento portétil de buena ca- lidad y bajo costo. no estan siempre Funcionamiento general El circuito utiliza un diodo LED y un display de7 segmen- tos para informar el estado Ié- gico de la entrada digital. Si el LED esta encendido quiere de- cir que en la entrada existe un uno (1) Idgico o nivel alto (high), y si el LED esté apaga- do, significa que tenemos un + cero (0) ligico o nivel bajo (low) en la entrada. Si en la entrada existe un estado de alta imp dancia, se mostrar en un dis- ppllay de siete segmentos la letra H (Hi 2) y se generaré una se- fial de PWM sobre el diodo LED para que se ilumine al 50% de su capacidad; esto gra- cias a una interrupcién por el temporizador interno (timer0). Una interrupeién es un evento externo que obliga al microcontrolador a invocar 0 lamar una rutina denom da rutina o servicio de int rrupcidn, para lo cual, en este caso, se ha habilitado al cem- a f Pp t at apes Rio Figura 10.1 Diagram esquertico dela punta ligica porizador interno del micro- controlador (simer0) para que cuente los pulsos internos de reloj de la méquina y genere una interrupcién cada vez que este registro se Ilene y provo- que un sobreflujo. Cuando se ha detectado un estado ligico alto 0 bajo, se en- viard por el pin RB4 (pin 10) tuna sefial en una frecuencia de- terminada (el nivel légico bajo tendrs una frecuencia més baja) para que el usuario tenga una seftal audible del nivel que esté detectando. Adicionalmente se ha dispuesto un display de siete segmentos en el cual se puede observar una letra o un ntime- 10 por cada estado que se pre- sente, Cuando hay un nivel 1é- gico bajo se visualizara un cero (0), cuando es nivel alto se vi- sualizard un uno (1), cuando se encuentre en estado de alta im- pedancia se visualizaré una H, y cuando entre una sefil de pul- ‘sos sc presentard una P. Diagrama esquematico El diagrama esquematico de este proyecto lo puede apre- ciar en la figura 10.1. Cons- ta de una entrada de alimen- tacién, un diodo LED indi- cador de estado, un transdue- tor piezoeléctrico miniatura (buzzer), un display de siete segmentos y un microcontro- lador PIC 16F84. La entrada de alimenta- cién esté conformada por unos bornes de conexién (co- nector de entrada) destinados a recibir los cables de alimen- tacién, el diodo rectificador de proreccién D1, y los conden- sadores C1 y C2 que se com- portan como filtros y cuya funcidn es estal sién de alimentacién aplicada al circuico y limitar la entrada de sefiales de alta frecuencia izar la ten- hasta el microcontrolador. Para garantizar la ejecucién continua del programa por par- te del microcontrolador y el jonamiento de todos internos de apoyo (cemporizadores, buffers, regis- tos, contadores y circuitos de reset, entre otros), es necesario quelaalimentacién que se le su- ministre, esté dentro de los li- mites permitidos por su tecno- logia de fabricacién en cuanto a su magnitud CC y CA (riza- do), los cuales establecen que los microcontroladores PIC pueden ser alimentados por vol- tajes que van entre 3 y 6VCC y con un factor de rizado inferior © igual al 10% de su valor CC. Para suministrar la cnergia al circuito de la punta légica, se usa la propia fuente de alimen- Perc) rey oe tacién del eixcuito bajo prucba, y para ello se usa un cable de alimentacién con dos caimanes ‘miniatura en uno de sus excre- mos, que se conecta a los bor- nes de entrada del circuito im- preso. Para evitar que se induz- can sefiales eléctricas ruidosas y gue la magnicud de la tensién de alimentacién sea atenuada, &te cable debe mantenerse con una longitud inferior a Lm. Por las caracteristicas de la tecnologia de fabricacién del PIC y debido a la caida de ten- sién ocasionada por el diodo de proteccién D1 en polaridad di- recta, el voltaje de alimentacién de la punta légica debe estar entre 3.5 y 6.5V, es decis, que puede utilizarse para probar el estado légico de circuitos digi- tales TTL y CMOS con bajo ni- vel de alimentacién. El diodo rectificador de propésito general D1 que abre o cierra el paso de la corriente hacia el circuito, dependiendo de la polaridad entre sus ter- minales (dnodo y cétodo), se ha incluido en la entrada como una proteccién para el circuito ° a-ha Figura 10.2 Diagrama de bloques del programa rn Mire: Pat emo arn ast ‘hn A wow ‘evn reve oer i st te ee oop NOP PULSO TESS: coro PULSO_ALTO CALL BrFSC coro oro PuLso_8a30 CALL, TFs, ovo EST_PULSO SF F BF ar Biss ar acF ocr ack de la punta légica; su propési- Descripcién del co es evitar los dafios perma- programa nentes que se pueden ocasio- En la figura 10.2 puede naren el PIC como consecuen- _observar el diagrama de cia de una inversién prolonga-_ bloques general con las da en la polaridad del voltaje _ finciones que hace el dis- ESTADO, 5 Porrs, 1 PORTA, PorTA2 Porre, PorTe,2 Porrs,s Porrs,4 oop Figura 10.3 Ciigo que detec la exstencie de entrada de pisos de alimentacién. Para limitar y proteger el cuencia de pulsos alta en diodo del paso de corrientes laentraday visualiza una excesivas a través de él yade- Psisedaesecaso (nume- mis evitar que los puertos del ral 1). Elsegundo pasoes microcontrolador se dafien, — detectar la existencia de se han instalado en serie con un estado de alta impe- cada segmento del display y el dancia en la entrada, vie LED unaserie de resistencias _sualizaunaHyenviauna (R2-R9) que limitan la co- sefialdePWMalLEDde rrientea menos de 10mA por salida (numeral 2) Si no cada uno. CONMUTA.A LA PAGINA 2 ‘SE CONFUGHA EL FUNCTOMMTENTO DE Los PINES De ACUERDO A LO DISPUESTO EW EL DIAGRAMA ESQUENATICO, SOLO HAY UNA ENTRADA, “EL | PIN NOMERO SEIS DEL PUERTO 8. } COMFTGURO EL TIER COMD TEMPORIZADOR BORRO BANDERA DE INT. DEL THRO } HABTLITADOR GLOBAL DE INT. WELVO A LA PAGINA 0 EL PRIMER PASO ES DETERVINAR SI EXISTE LA ENTRADA UNA FRECUENCIA DE PULSOS EL METODO ES MUY SENCILLO, SOLO SE LEE A ENTRADA RG, Y-SE VERIFICA QUE ESE NIVEL PERVANEZCA DURANTE CTERTO PERTOOO De TEEWO, EL CUAL ES DETEANINADO: POR {LA RUTINA’RETAROO. CAMBLANOO EL VALOR OE Sa RUTINA, CAMBTAMOS LA FRECUENCTA DE DeTECcION. BN ESTA LINEA ESTAWOS LEYENDO DE NUEVO RBG ‘ESPUES OE UN RETAROO PARA CONSTATAR QUE SIGUE EXISTTENOO UN NIVEL LOGICO 6430. STAUM EXISTE SIGNTFICA QUE NO HAY ENTRADA DE PULSOS Y PODEMOS CONFIMUAR EL PROGRAMA SESE HA DETECTADO UNA ENTRADA De” PULSOS, ACTIVAMOS LOS PINES DE. LOS PUERTOS (CGHREVODTENTES Path QE SE VISALICE UA LETRA PARA TNDICAR QUE ESTA ENTRANOD A'LA Punta Locrca ‘UNA SERIE DE PULSOS A UNA FRECUENCTA DETERINADS. (CUANDO SE VISUALIZA LA P, REGRESANOS A Us ETrQuETA, ‘Loop PARA OBSERVAR EN QUE MOMENTO NOS SALIMOS De ESTE ESTADO. positivo. Inicialmente detecta si existe una fre- hhaocurtido alguno delos © descr: Curso préctco sobre Microcontroladores dos eventos anteriores se pasa al tercer paso, en el cual se detecta qué nivel Idgico existe en la punta deprueba y envia una sefal enfre- cuencia para activar el zumbador y tener asi una indicacién audible dela medicién. El primer paso es verificar sien la entrada existe una sefial de pulsos, el cédigo de esta fun- cin se observa ena figura 10.3 y su diagrama de flujo en la fi gura 10.4. Para resolver este problema se pensé en una solu- cidn muy sencilla: se lee la en trada, se espera un tiempo de- terminado y de nuevo se vuelve a leer pai leido inicialmente permanece alli o ha cambiado. Si el nivel ha cambiado se puede concluir que es una sefial que se mueve a. una frecuencia considerable, peto siel nivel lefdo permanece se puede decir que se est leyen- do un nivel que no cambia tan verificar si el nivel Figura 10.4 Diagrama de fo de la deteccién de pusos PORTS, PH2 ; RET AWORE ESTA EN BAJO... PORTS, PPRUES } PRUESO ST RBG ES TGUAL A'RB7 none Porta, pe; PORTS, PPRUES one Bane, oars, 0 Porras Porras 2 Porras PORTA’ ORTA,2 PORTAS = ¥ LUEGO PONGO EN ALTO PRUEBO ST RBG ES TOUAL A R87 SE LA ENTRADA eS HZ } SE ACTIVA EL BIT 1 DEL REGISTRO 4 BANDERA PARA PODER RECONOCER 4 ESTE ESTADO DENTRO DE LA INTERRUPCION FY MIWOAR'LA FRECUENCTAADECUADA, PAL MISWO TTENPO SE ACTIVA LA LETRA H } EN EL DISPLAY DE SIETE SEGMENTS. 4} EINADMENTE ACTIVO Lk INTERRUPCION 3 VOY ALA PAGINA T P MABILITO INT. POR TwR@ E WuELvo'& LA'Pacrna'a ahs 8CE BANOERA,£ 5 SE LA CNTRADA MO ESTA EN ESTADO De ALTA 2 cr ponte, bie Povad EL PIN Rar EN 240, Pana PmUREAS D } posresiowes TESS ponrs, 6 | LED FINALMENTE ex PIN 6 DEL PUERTO 8 care, bao Haar dana camtsooorbre 9 8) ALTO BSF PORTE, FLED; SE_LA ENTRADA ESTA EW ALTO, LED # ENCENOTDO FULL. ACTIVO EL BIT @ DEL REGISTRO BANDERA PARA RECONOCER ESTE ESTADO DENTRO DE LA P INTERRUPCION. Lego WABILTTO Los PINES ADECUADOS QUE PERMETIRAN } VISUALIZAR EL MINERO 1 EN EL DISPLAY DE SIETE SeGuenTos, 4 FINALMENTE HABTLTTO EL. FUNCTONAMTENTO 4 DE LA-INTERRUPCTON POR EL THRO P Vora LA PAGINA 1 ggagganeaaaas Figura 10.5 Detecidn y operacién ante un estado de alta impedancia ripidamente. En los blo- ques 4, 6 y 9 del diagrama de flujo y parte B del programa, se hace esta operacién. Observe que el tiempo de espera esti dado por una rutina de tiempo denominada RETARDO y que si ha encontrado este estado, debe visualizar en el display de siete segmentos la letra P. En la porcién A del cédigo seconfigurael simerOcomo tem- porizador (para quese incremente con los pulsos internos de la mé- quina) y no como contador, po- niendo en cero el bit 5 del regis- tro OPCION. También se borra a bandera que indica una inte- srupcién debido al simer0 (lo cual esobligacién del programador) y se activa el bit habilitador global de interrupciones (GIE). Ahora dl sistema debe deter- minar si en la punta de prueba existe una condicién de alta im- pedancia, Para determinar la exis- tencia de este estado siga un pro- cedimiento muy sencillo: remita- seal cédigo de fa figura 10.5 y al diagrama de flujo dela figura 10. El pin 7 del puerto B esti conec- tado a través de una resistencia de 100K a la entrada de prueba (RBO); si en el pin RB7 se coloca un cero (bloque 10 del diagrama de flujo, parte C del programa) inmediatamente se lee el pin RBG (bloque 11) y allf se detecta cero, esposible que hayan ocurrido dos cosas: la primera es que la punta de prueba en ese momento esté leyendo un cero légico el cual no se afecta con el cero proveniente > Cy Figura 10.6 Diagrama defy de a detecctn de ata impedancia xvas cre: Figura 10.7 Operacién cuando se detecta ata moedanca del RBO; la segunda, es que estd en estado de alta impedancia y en realidad al cero que sc lee en el puerto RBG sea cxactamente el mismo que envid por RB7; es de- cir, que la sefial externa no afecté para nada la lectura del PIC. Ob- serve que si en este preciso mo- ‘mento la punta lee una seal bgi- ca alta, no habré ningiin proble- ma de cortocircuito gracias a RL. Para estar seguro de que en realidad si es un estado de alta impedancia, se procedea poner un estado alto en RB7 (bloque 12) ¢ inmediatamente se le RBG para determinar si también se encuen- ie o i= pt ‘o-- ~ Figura 10.8 Operacén cuando no se ‘etecta estado de ata impedancia RG ox000 swector de reset ‘GOTO MAIN RG x00 5, vector de interrupeton BTFSS GANDERA,1 — CHEQUED BANDERA DE QUE SE Wa ‘GOTO UNCERO’ —_jPRESENTADO UN ESTADO DE ALTA IMPEDMICIA. ress ST ESE ES EL CASO, CADA QUE BSE (UREA UNA INTERRUPCION, SE ORIGINA TESS POR LOS PINES 6 Y 5 OEL PUERTO 8, 5 UA SENAL DE pW, GENERADA CAMBLANDO Bresc ACTERNADSMENTE ESTADO DE-ESTAS BE DOS LINEAS, LAS CUALES CORRESPONDEN Bresc ‘AL DIOOO LED INDICADOR Y AL ZLMBADOR. ace BSE ESTADO, 5 BCE TNTCOR, 2 Scr ESTADO, 5 YOY A LA PAGINA 1 RRO LA BANDERA DE INTER. EL TARO ‘WELVO A LA PAGINA @ NOW 0x29 ‘CONFTGARO EL PORCENTDE DE CICLO UTIL. HOWE THRO } EV EL TEMPORIZADOR Two, RETFTE Figura 10.9 Clgo de fa interrupcién para et estado de alta impedancia tra en alto (bloque 13). Si las dos pruebas son Rutina de interrupcién positivas, entonces se puede condluir que tie- neunestado dealtaim- pedancia, figura 10.7. En ese momento ®, seponeun uno en el dit 1 del registro BANDE- RA (logue 14), 56 po- g nen en los puertos los bits necesatios para vi- sualizar la letra H_y se habilita al timerO para que genere su interrup- cidn (bloque 16), esto schace en el programa al activar el bie2 del re gistro INTCON. rey Misc err interrupcin X mvs mad Sialgunadelas dos condiciones no se cum- ple, puede esperar un estado légico normal, figura 10.8, sc poneen cero el bie | del registro BANDERA (bloque 17) y secoloca de nue- vo RB7 en cero para que el sistema funcio- Figura 10.10 Diagrama de jo dela ne normalmente. ‘tin de interupcién > AGHAT: jie sare wovcoriaes Ahora puede evaluar el esta do dela punta de prueba (bloque 18) preguntando porel estado del pin RB6, esto se hace en la see- cién D del programa; segtin el es tado de ese pin, el programa lo conduce a la rutin ALTO (i la entrada esté en alto) o a a rutina BAJO silo que detects fue un cero légico, bloque 19. En cada una de «sas rutinas se activa o desactiva cl LED indicador y se genera una se- ital en frecuencia PWM que ac- ional zumbador: Finalmente re- ges ala rutina loop para que se repita el proceso completo. Rutina de interrupcién La rutina de interrupcién se en- carga de generar la frecuencia de salida paral zumbador y el LED indicador. Ella se puede dividir cen tres partes: una para el estado légico alto, otra para cl estado bajo y otra para el estado de alta impedancia. Cada una de estas partes debe generar una frecuen- cia distinta, La porcién para el «estado de alta impedancia la pue- de apreciar en el e6digo de la fi- gura 10.9 y en el diagrama de flujo de la figura 10.10 se en- ccuentra el esquema general de esta rutina, La primera opera- i6n que debe hacer es pregun- tar por el estado del bit 1 del re- gistro BANDERA (bloque 20) para determinar sise ha entrado a esta rutina después de haber ocurrido un estado de alta im- pedancia (recuerde que cuando se detects el estado de alta im- pedancia este biese puso en uno). Cuando se ha detectado un estado de alta impedancia se ac- INOCERO BTFSC. BANDERA, coro wo Banners BYFSS porre, ¢ BSF PORTE, & BTFSC PORTS, 4; CERD > hac Bcr Porrs, + ast ESTADO, 5 BCE INTCON, 2 Scr ESTADO, 5 woven 0x71, Mowe THRO RETFIE SI NO HAY ESTADO DE ALTA IMPEDANCIA, Se VERIFICA EL BIT 0 DEL REGISTRO PARA DETEROINAR SI SE HA LEIO0 UW CERO ‘OLUN UNO. ‘ST SE HA LETDO UN CERD CAT 1), SE WANDA UNA SERAL DE Pt FEL ZUMBADOR A UNA FRECUENCIA MENOR 3 QUE LA DE Ha. F NOY ALA PaGina 1 { BORRO LA BANDERA DE INTER. EL TwRO 4 WUELVO AA LA PAGINA 0, F CONETGURD UN PORCENTADE DE CrCLO UTIL EN EL TENPORIZADOR THRO Flgura 10.11 interupcion para el estado egico bajo tiva el timerO para que cuente los pulsos de reloj internos de Ja méquina; después de un tiem- po determinado, el rimer0se lle- na y se desborda, originando el llamado a esta rutina y la acti- vacién de la bandera TOIF (bie 2 del registro INTCON). Cada que ocurre este Hena- do el programa invoca esta ruti- na en la cual se cambia el estado de la salida en los pines 4 y 5 del puerto B, y se limpia la bandera TOIF (bloque 22) para que la rutina de interrupcién pueda ser invocada de nuevo. Debidoa que Ja interrupcién se da tan ripida- ‘mente esta rutina se invoca a una rata muy alta, de esta manera se origina una sefial cuadrada lama wo Porte, PLED ; WuELvo. da PWM. Si el bir 1 del regis- tro BANDERA no esta en uno, el programa lo lleva a la etiqueta UNOCERO en don- de se detecta sila interrupcisn se provocé para un estado lé- gico alto o para un estado I6- ico bajo. Esto se hace pregun- tando por el bir cero del regis- tro BANDERA, el cual fue configurado previamente para cada estado antes de activar la interrupcién (bloque 23). Para cada uno de los dos casos debe enviar un PWM a distintas frecuencias, borrar la bandera TOIF y luego retor- nar al programa, bloques 23- 26 del diagrama de flujo y fi- guras 11 y 12. 5 SL SE Wa DETERMMNADO UN ESTADO LOGtCO ALTO, 'SE_MANOA UNA NUEVA SERAL DE PWM HACIA EL ‘TIMBADOR,, A UNA NUEVA FRECUENCTA MAYOR A A ENVIADA PARA EL ESTADO DE ALTA TMPEDANCIA, NOTE QUE ESTA RUTINA DE INTERRUPCION SE | DIVIDIDD OX RES SLERUTINS, ‘ADK UNA OE LAS ‘CUALES. SE ENCARGA DE ENVIAR UNA FRECUENCTA DISTINTA PPARTTENDO DE UW SOLO TENPORIZADOR. YOr A LA PAGINA 7 ‘BORRO LA BANOERA DE INTER, DEL THRO 'A LA PAGINA 0 ‘CONFTGURO EL. PORCENTAJE DE CICLO UTIL EN EL TEMPORIZADOR THRO Figura 10.12 interupcién para el estado gio alto ‘ {bus prictico sobre Microcontotadores ex @

También podría gustarte