Vous êtes sur la page 1sur 9

Tecnolgico de Estudios Superiores de Cocalco.

Matricula: Microcontroladores Temas: Interrupciones de un Micro Programacin del Microcontrolador Convertidor, ADC y DAC Puertos seriales y memoria EEP !M Pro"esor: Alumno: Arturo A#peitia Cervantes $rupo: %&'(

Interrupciones de un Microcontrolador Mane)o de interrupciones


*na interrupcin es un evento +ue ,ace +ue el microcontrolador de)e de e)ecutar la tarea +ue est- reali#ando para atender dic,o acontecimiento y luego regrese y continue la tarea +ue esta.a reali#ando antes de +ue se presentara la interrupcin. El pic (/0/'1 2y el (/0/'1A3 tiene (4 "uentes de interrupcin, si las interrupciones est-n ,a.ilitadas cada ve# +ue una de estos acontecimientos se presente el pic de)ar- de e)ecutar el programa para ir a atender la interrupcin y al termino de la misma continuar- e)ecutando el programa donde lo ,a.5a de)ado. 6os tipos de interrupcin son: Interrupcin e7terna 849I:T Interrupcin por cam.io lgico en el puerto 8 2pines 8& a Interrupcin por des.orde del timer 4 2TM 43 Interrupcin por des.orde del timer ( 2TM (3 Interrupcin por comparacin e7itosa e7itosa en TM ' Interrupcin del comparador Interrupcin del transmisor del *SA T Interrupcin del receptor del *SA T Interrupcin del mdulo CCP Interrupcin del EEP !M

8;3

Aun+ue el pic cuenta con (4 "uentes distintas de interrupcin solamentetiene un vector de interrupcin por lo +ue si se ,a.ilitan varias interrupciones al momento de presentarse cual+uiera de ellas el programa saltara a la misma rutina de interrupcion y es responsa.ilidad del programador crear una rutina +ue identi"i+ue la "uente de la interrupcion. 6os registros asociados con las interrupciones son el registro de control de interrupcion I:TC!:, el registro ,a.ilitacion de interrupciones de peri"ericos PIE( y el registro de interrupciones de peri"ericos PI (. En el registro I:TC!: se encuentra el .it de ,a.ilitacion glo.al de interrupciones $IE, el .it de ,a.ilitacion de interrupcion por peri"ericos PEIE y los .its de ,a.ilitacion de algunas interrupciones como la interrupcion e7terna del pin 84 2I:TE3, la interrupcion por cam.io de estado en los pines 8; a 8& 2 8IE3 y la interrupcion por des.orde del timer 4 2T4IE3, asi como las .anderas correspondientes a cada interrupcion 2I:T0, 8I0 y T4I03. En el registro PIE( se encuentran los .its de ,a.ilitacion de las demas interrupciones y en el registro PI ( se encuentran las .anderas asociadas con cada interrupcion. Para ,a.ilitar las interrupciones se de.en seguir los siguientes pasos: (. '. <a.ilitar el .it correspondiente a cada interrupcion. 6impiar la .andera correspondiente a la interrupcion ,a.ilitada para evitar "alsas interrupciones. =. En caso de ser necesario ,a.ilitar el .it PEIE del registro I:TC!: 2necesario para todas las interrupciones con e7cepcion de I:TE y 8IE3. ;. <a.ilitar el .it de ,a.ilitacion glo.al de interrupciones $IE del registro I:TC!:.

En el codigo tam.ien es necesario indicar ,acia +ue rutina de.e saltar el programa al presentarse la interrupcin. >a se di)o +ue el vector de interrupcin est- en la direccin 474; por lo +ue es necesario agregar las lineas org 474; y goto IS al programa, donde IS es la rutina de servicio de interrupcin y puede, desde luego, tener cual+uier otro nom.re. 6a venta)a de utili#ar interrupciones es +ue mientras se espera a +ue se presente el evento +ue produce la interrupcin el microcontrolador puede estar e)ecutando cual+uier otra tarea. De ese modo el micro no esta ciclado en una sola tarea sino +ue puede seguir tra.a)ando en otras ,asta +ue una interrupcin ,aga +ue el programa salte y e)ecute la tarea +ue se +uiera y al terminarla el programa continuara su e)ecucin en el punto en el +ue se encontra.a en el momento de presentarse la interrupcin. En el e)emplo pasado se vi como leer .otones e interruptores, a,ora se va a reali#ar el mismo programa pero ,aciendo uso de interrupciones y para +ue se aprecie +ue el microcontrolador puede reali#ar otra tarea mientras se espera la interrupcin el programa ,ar- +ue parpadee el puerto A cada medio segundo. Por lo demas el programa sera igual, tendra ; .otones conectados a los pines 8; a 8& y ; leds conectados a la parte .a)a del puerto 8. Se ,a.ilitar-n las interrupciones y de ese modo los .otones se leer-n solamente al ser presionados. ?eamos el siguiente e)emplo:

Ese es el cdigo del programa principal. Se comien#a declarando el vector de reset y el vector de interrupcion, despu@s se con"iguran los puertos, el puerto A como salida, la parte .a)a del puerto 8 como salida y la parte alta del puerto 8 como entrada. <asta a,5 lo Anico nuevo es la declaracin del vector de reset. Despu@s se con"iguran las interrupciones: Primero se habilita el bit RBIE del registro INTCON +ue es el correspondiente a la interrupcin por cam.io de estado en los pines 8; a 8&, despu@s se pone a cero el bit RBIF del mismo registro para poner la .andera de interrupcin en cero y as5 evitar entrar a la rutina de servicio sin +ue e7ista una interrupcin, y por Altimo se habilita el bit GIE para ,a.ilitar las interrupciones. De esta manera la interrupcin +ueda con"igurada y ,a.ilitada. Es muy importante siempre limpiar las .anderas de interrupcin antes de ,a.ilitar el .it GIE. Despu@s de con"igurar las interrupciones se pasa al programa principal +ue lo Anico +ue ,ace es poner a ( todos los pines del puerto A, esperar medio segundo, poner a 4 todos los pines del puerto A, volver a esperar medio segundo para iniciar de nuevo el ciclo y as5 el programa se repite una y otra ve#. 6a tarea de encender los leds correspondientes a cada .otn +ueda en manos de la rutina de interrupcin:

6a rutina es muy parecida a la del programa del e)emplo anterior con algunos cam.ios pe+ueBos. 6o importante en la rutina es +ue al entrar a la misma se deshabilitan las interrupciones al poner a 0 el bit GIE, con esto evitamos +ue se produ#ca otra interrupcin mientras se est- atendiendo una. Despu@s de ,acer eso el programa simplemente identi"ica la tecla pulsada y enciende el led correspondiente. >a +ue se encendi el led la rutina continua ,acia la eti+ueta SALIDA_ISR donde primero se limpia la bandera de interrupcin poniendo a 0 el bit RBIF y despu@s se vuelve a habilitar la interrupcion poniendo a 1 el bit GIE, am.os del registro INTCON. Para terminar la rutina y regresar al programa principal se utili#a la instruccin retfie 2RETurn From IntErruption3. 6a rutina de servicio de interrupcin siempre de.e terminar con esa instruccin.

Programacin del microcontrolador


El microcontrolador e)ecuta el programa cargado en la memoria 0las,. Esto se denomina el cdigo e)ecuta.le y est- compuesto por una serie de ceros y unos, aparentemente sin signi"icado. Dependiendo de la ar+uitectura del microcontrolador, el cdigo .inario estcompuesto por pala.ras de (', (; o (/ .its de anc,ura. Cada pala.ra se interpreta por la CP* como una instruccin a ser e)ecutada durante el "uncionamiento del microcontrolador. Todas las instrucciones +ue el microcontrolador puede reconocer y e)ecutar se les denominan colectivamente Con)unto de instrucciones. Como es m-s "-cil tra.a)ar con el sistema de numeracin ,e7adecimal, el cdigo e)ecuta.le se representa con "recuencia como una serie de los nAmeros ,e7adecimales denominada cdigo <e7. En los microcontroladores PIC con las pala.ras de programa de (; .its de anc,ura, el con)unto de instrucciones tiene =% instrucciones di"erentes. 6engua)e ensam.lador. Como el proceso de escri.ir un cdigo e)ecuta.le era considera.lemente arduo, en consecuencia "ue creado el primer lengua)e de programacin denominado ensam.lador 2ASM3. Siguiendo la sinta7is .-sica del ensam.lador, era m-s "-cil escri.ir y comprender el cdigo. 6as instrucciones en ensam.lador consisten en las a.reviaturas con signi"icado y a cada instruccin corresponde una localidad de memoria. *n programa denominado ensam.lador compila 2traduce3 las instrucciones del lengua)e ensam.lador a cdigo m-+uina 2cdigo .inario3. Este programa compila instruccin a instruccin sin optimi#acin. Como permite controlar en detalle todos los procesos puestos en marc,a dentro del c,ip, este lengua)e de programacin todav5a sigue siendo popular. Ventajas de lenguajes de programacin de alto nivel A pesar de todos los lados .uenos, el lengua)e ensam.lador tiene algunas desventa)as: Incluso una sola operacin en el programa escrito en ensam.lador consiste en muc,as instrucciones, ,aci@ndolo muy largo y di"5cil de mane)ar. Cada tipo de microcontrolador tiene su propio con)unto de instrucciones +ue un programador tiene +ue conocer para escri.ir un programa *n programador tiene +ue conocer el ,ardCare del microcontrolador para escri.ir un programa

Programa escrito en C 2 *n mismo programa compilado al cdigo ensam.lador3:

6os lengua)es de programacin de alto nivel 28asic, Pascal, C etc.3 "ueron creados con el propsito de superar las desventa)as del ensam.lador. En lengua)es de programacin de alto nivel varias instrucciones en ensam.lador se sustituyen por una sentencia. El programador ya no tiene +ue conocer el con)unto de instrucciones o caracter5sticas del ,ardCare del microcontrolador utili#ado. >a no es posi.le conocer e7actamente cmo se e)ecuta cada sentencia, de todas "ormas ya no importa. Aun+ue siempre se puede insertar en el programa una secuencia escrita en ensam.lador. Si alguna ve# ,a escrito un programa para un microcontrolador PIC en lengua)e ensam.lador, pro.a.lemente sepa +ue la ar+uitectura ISC carece de algunas instrucciones. Por e)emplo, no ,ay instruccin apropiada para multiplicar dos nAmeros. Por supuesto, para cada pro.lema ,ay una solucin y @ste no es una e7cepcin gracias a la aritm@tica +ue permite reali#ar las operaciones comple)as al descomponerlas en un gran nAmero operaciones m-s simples. En este caso, la multiplicacin se puede sustituir con "acilidad por adicin sucesiva 2a 7 . D a E a E a E ... E a3. >a estamos en el comien#o de una ,istoria muy larga... :o ,ay +ue preocuparse al utili#ar uno de estos lengua)es de programacin de alto

nivel como es C, por+ue el compilador encontrar- autom-ticamente la solucin a @ste pro.lema y otros similares. Para multiplicar los nAmeros a y ., .asta con escri.ir aF..

Lenguaje C El lengua)e C dispone de todas las venta)as de un lengua)e de programacin de alto nivel 2anteriormente descritas3 y le permite reali#ar algunas operaciones tanto so.re los .ytes como so.re los .its 2operaciones lgicas, despla#amiento etc.3. 6as caracter5sticas de C pueden ser muy Atiles al programar los microcontroladores. Adem-s, C est- estandari#ado 2el est-ndar A:SI3, es muy porta.le, as5 +ue el mismo cdigo se puede utili#ar muc,as veces en di"erentes proyectos. 6o +ue lo ,ace accesi.le para cual+uiera +ue cono#ca este lengua)e sin reparar en el propsito de uso del microcontrolador. C es un lengua)e compilado, lo +ue signi"ica +ue los arc,ivos "uentes +ue contienen el cdigo C se traducen a lengua)e m-+uina por el compilador. Todas estas caracter5sticas ,icieron al C uno de los lengua)es de programacin m-s populares.

C!:?E TID! ES DI$ITA6 G A:A6H$IC! 6as dos operaciones E9S relativas al proceso de mayor importancia son la conversin de digital a analgico D9A y la conversin de analgico a digital A9D. 8-sicamente, la conversin D9A es el proceso de tomar un valor representado en cdigo digital 2cdigo .inario directo o 8CD3 y convertirlo en un volta)e o corriente +ue sea proporcional al valor digital. Este volta)e o corriente es una cantidad analgica, ya +ue puede tomar di"erentes valores de cierto intervalo. DAC de ;.its. IAJ es el 6S8 y IDJ es el MS8.

6as entradas digitales D, C, 8 y A se derivan generalmente del registro de salida de un sistema digital. 6os '; D (/ di"erentes nAmeros .inarios representados por estos ; .its se enlistan en la ta.la siguiente. Por cada nAmero de entrada, el volta)e de salida del convertidor D9A es un valor distinto. De ,ec,o, el volta)e de salida analgico ?out es igual en voltios al nAmero .inario 2no es as5 en todos los casos3. Tam.i@n podr5a tener dos veces el nAmero .inario o algAn otro "actor de proporcionalidad. 6a misma idea ser5a aplica.le si la salida del D9A "uese la corriente Iout.

C!:?E TID! ES A:A6H$IC! G DI$ITA6


*n convertidor A9D toma un volta)e de entrada analgico y despu@s de cierto tiempo produce un cdigo de salida digital +ue representa la entrada analgica. El proceso de conversin A9D es generalmente m-s comple)o y largo +ue el proceso D9A, y se ,an creado y utili#ado muc,os m@todos.?arios tipos importantes de ADC utili#an un convertidor D9A como parte de sus circuitos. En la "igura siguiente se muestra un diagrama de .lo+ue general para esta clase de ADC. 6a oportunidad para reali#ar la operacin es o"recida por la seBal del cronmetro de entrada. 6a unidad de control contiene los circuitos lgicos para generar la secuencia de operaciones adecuada en respuesta al comando ISTA TJ, el cual inicia el proK ceso de conversin. El comparador tiene dos entradas analgicas y una salida digital +ue intercam.ia estados, segAn +u@ entrada analgica sea mayor. Diagrama en .lo+ues de un ADC 6a operacin .-sica de los convertidores A9D de este tipo consta de los siguientes pasos: El comando STA T pasa a alto dando inicio a la operacin A una ra#n determinada por el cronmetro, la unidad de control modi"ica continuamente el nAmero .inario +ue est- almacenado en el registro. El nAmero .inario del registro es convertido en un volta)e analgico, ?aL, por el convertido D9A. 6as diversas variaciones de este es+uema de conversin D9A di"ieren principalmente en la "orma en +ue la seccin de control modi"ica continuamente los nAmeros contenidos en el registro. De lo contrario, la idea .-sica es la misma, con el registro +ue contiene la salida digital re+uerida cuando se completa el proceso de conversin.

Ar+uitectura interna El ADC tiene ' entradas analgicas de volta)e: ?I:2E3 y ?I:2K3. Estas entradas se conectan a un ampli"icador operacional interno del ADC, las cuales son entradas di"erenciales. Mstas Altimas se suman por el ampli"icador operacional para producir una seBal para el convertidor analgico digital

Vous aimerez peut-être aussi