Instituto Tecnolgico Superior de Ciudad Hidalgo Arquitectura de un mi-
crocontrolador M.C Gabriel Casarrubias Guerrero Introduccin
Un microcontrolador es un dispositivo electrnico capaz de llevar a cabo procesos lgicos. Estos procesos o acciones son programados en lenguaje ensam- blador por el usuario, y son introducidos en este a travs de un programador. Esto suena un poco complicado, pero slo es un resumen de 3 lneas. A lo largo de este tutorial veremos algunas de las reglas y trucos de este lenguaje complicado por su sencillez. Objetivo El presente trabajo tiene la nalidad de mostrar los temas de la unidad nmero dos, Arquitectura interna de un microcontrolador. As se podr cono- cer ms acerca de los microcontroladores para nosotros poder hacer un uso adecuado de ellos. ndice Introduccin 2 Objetivo 2 2.1 Componentes del microcontrolador 4 2.1 Reg- istros internos 8 2.3 Tipos y distribucin de las memorias internas 9 2.4 Per- ifricos Internos 13 2.5 Las instrucciones del Microcontrolador 18 Bibliografa 19 2.1 Componentes del microcontrolador A continuacin pasamos a describir los elementos ms comunes en todo tipo de microcontroladores y sistemas. El procesador Es el elemento ms impor- tante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instruc- ciones, recibir el cdigo OP de la instruc- cin en curso, su decodicacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y fun- cionalidad de los procesadores actuales. CISC: Un gran nmero de procesadores usados en los microcontroladores estn basa- dos en la losofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones mquina en su repertorio, Figura 1: Dia- grama de bloques del microcontrolador PIC16F84 algunas de las cuales son muy sosticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instruc- ciones complejas que actan como macros, es decir, que si las tuvisemos que implementar con instrucciones bsicas, acabaramos con dolor de cabeza. RISC: Tanto la industria de los computadores comerciales como la de los microcontro- ladores estn decantndose hacia la losofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten opti- mizar el hardware y el software del procesador. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especco, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta losofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especco). Memoria En los micro- controladores la memoria de instrucciones y datos est integrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el 1 programa de instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables y los cam- bios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memo- ria, pero, los dis- eadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los microcontro- ladores, la aplicacin y utilizacin de los mis- mos es diferente. Se describen las cinco versiones de memoria no voltil que se pueden encontrar en los microcon- troladores del mercado. ROM con mscara: Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios procesos similares pero ms complicados se consigue fabricar los transistores y diodos micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te acostars sin saber una cosa ms. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP: El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Pro- grammable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. EPROM: Los microcontroladores que dispo- nen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su supercie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cp- sulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. EEPROM, E2PROM o E2PROM: Se trata de memorias de slo lectura, programables y borrables elc- 2 tricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el pro- pio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la supercie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que coneren una gran exibilidad y rapidez a la hora de realizar modicaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es nito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y mod- icar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta, como ya veremos ms adelante. FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEP- ROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incor- poran puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modi- carse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. Puertas de Entrada y Salida: Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control. Reloj principal: Todos los microcontro- ladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que congura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa y de calor generado. 3 2.1 Registros internos Un registro o una celda de memoria es un circuito electrnico que puede memorizar el estado de un byte. REGISTROS SFR A diferencia de los reg- istros que no tienen ninguna funcin especial y predeterminada, cada micro- controlador dispone de un nmero de registros de funciones especiales (SFR), con la funcin predeterminada por el fabricante. Sus bits estn conectados a los circuitos internos del microcontrolador tales como temporizadores, conver- tidores A/D, osciladores entre otros, lo que signica que directamente manejan el funcionamiento de estos circuitos, o sea del microcontrolador. Imagnese ocho interruptores que manejan el funcionamiento de un circuito pequeo den- tro del microcontrolador. Los registros SFR hacen exactamente lo mismo. En otras palabras, el estado de los bits de registros se ja dentro de programa, los registros SFR dirigen los pequeos circuitos dentro del microcontrolador, estos circuitos se conectan por los pines del microcontrolador a un dispositivo perifrico utilizado para... Bueno, depende de usted. 2.3 Tipos y distribucin de las memorias internas La unidad de memoria es una parte del microcontro- lador utilizada para almacenar los datos. La manera ms fcil de explicarlo es compararlo con un armario grande con muchos cajones. Si marcamos los cajones claramente, ser fcil acceder a cualquiera de sus contenidos al leer la etiqueta en la parte delantera del cajn. De manera similar, cada direccin de memoria corresponde a una localidad de memoria. El contenido de cualquier localidad se puede leer y se le puede acceder al direccionarla. La memoria se puede escribir en la localidad o leer. Hay varios tipos de memoria dentro del microcontrolador: MEMORIA ROM (READ ONLY MEMORY) - MEMORIA DE SLO LECTURA La memoria ROM se utiliza para guardar permanen- temente el programa que se est ejecutando. El tamao de programa que se puede escribir depende del tamao de esta memoria. Los microcontroladores actuales normalmente utilizan el direccionamiento de 16 bits, que signica que son capaces de direccionar hasta 64 Kb de memoria, o sea 65535 localidades. Por ejemplo, si usted es principiante, su programa exceder pocas veces el lmite de varios cientos de instrucciones. Hay varios tipos de memoria ROM. Rom de mscara (enmascarada) - MROM La ROM enmascarada es un tipo de ROM cuyo contenido es programado por el fabricante. El trmino de mscara viene del proceso de fabricacin, donde las partes del chip se plasman en las mascaras utilizadas durante el proceso de fotolitografa. En caso de fabricacin de grandes series, el precio es muy bajo. Olvide la idea de modicarla... OTP ROM (One Time Programmable ROM) - ROM program- able una sola vez La memoria programable una sola vez permite descargar un programa en el chip, pero como dice su nombre, una sola vez. Si se detecta un error despus de descargarlo, lo nico que se puede hacer es descargar el programa correcto en otro chip. UV EPROM (UV Erasable Programmable ROM) - ROM programable borrable por rayos ultravioleta El encapsulado de este microcontrolador tiene una ventana reconocible en la parte alta. Eso per- mite exponer la supercie del chip de silicio a la luz de ultravioleta y borrar el programa completamente en varios minutos. Luego es posible descargar un nuevo programa en l. La instalacin de esta ventana es complicada, lo que por 4 supuesto afecta al precio. Desde nuestro punto de vista, desgraciadamente, de manera negativa... Memoria Flash Este tipo de memoria se invent en los aos 80 en los laboratorios de la compaa INTEL, como forma desarrollada de la memoria UV EPROM. Ya que es posible escribir y borrar el contenido de esta memoria prcticamente un nmero ilimitado de veces, los microcontroladores con memoria Flash son perfectos para estudiar, experimentar y para la fabri- cacin en pequea escala. Por la gran popularidad de esta memoria, la mayora de los microconroladores se fabrican con tecnologa ash hoy en da. Si usted va a comprar un microcontrolador, ste es en denitiva la opcin perfecta! MEMORIA RAM (RANDOM ACCESS MEMORY) - MEMORIA DE AC- CESO ALEATORIO Al apagar la fuente de alimentacin, se pierde el contenido de la memoria RAM. Se utiliza para almacenar temporalmente los datos y los resultados inmediatos creados y utilizados durante el funcionamiento del micro- controlador. Por ejemplo, si el programa ejecuta la adicin (de cualquier cosa) es necesario tener un registro que representa lo que se llama suma en vida cotidiana. Con tal propsito, uno de los registros de la RAM es denominado suma y se utiliza para almacenar los resultados de la adicin. MEMORIA EEPROM (ELECTRICALLY ERASABLE PROGRAMMABLE ROM) - ROM PROGRAMABLE Y BORRABLE ELCTRICAMENTE El con- tenido de la EEPROM se puede cambiar durante el funcionamiento (similar a la RAM), pero se queda permanentemente guardado despus de la prdida de la fuente de alimentacin (similar a la ROM). Por lo tanto, la EEPROM se utiliza con frecuencia para almacenar los valores creados durante el funcionamiento, que tienen que estar permanentemente guardados. Por ejemplo, si usted ha diseado una llave electrnica o un alarma, sera estupendo permitir al usuario crear e introducir una contrasea por su cuenta. Por supuesto, la nueva contrasea tiene que estar guardada al apagar la fuente de alimentacin. En tal caso una solucin perfecta es el microcontrolador con una EEPROM embebida. INTER- RUPCIN La mayora de programas utilizan interrupciones durante ejecucin de programa regular. El propsito del microcontrolador generalmente consiste en reaccionar a los cambios en su entorno. En otras palabras, cuando ocurre algo, el microcontrolador reacciona de alguna manera... Por ejemplo, al apretar el botn del mando a distancia, el microcontrolador lo registra y responde al comando cambiando de canal, subiendo o bajando el volumen etc. Si el micro- controlador pasar la mayora del tiempo comprobando varios botones sin parar - las horas, los das, esto no sera nada prctico. Por lo tanto, el microcontro- lador aprendi un truco durante su evolucin. En vez de seguir comprobando algn pin o bit, el microconrolador deja su trabajo de esperar a un experto que reaccionar slo en caso de que suceda algo digno de atencin. La seal que informa al procesador central acerca de tal acontecimiento se denomina INTERRUPCIN. UNIDAD CENTRAL DE PROCESAMIENTO (CENTRAL PROCESSOR UNIT - CPU) Como indica su nombre, esto es una unidad que controla todos los procesos dentro del microcontrolador. Consiste en varias unidades ms pe- queas, de las que las ms importantes son: Decodicador de instrucciones es la parte que descodica las instrucciones del programa y acciona otros circuitos 5 basndose en esto. El conjunto de instrucciones que es diferente para cada familia de microcontrolador expresa las capacidades de este circuito; Unidad lgica aritmtica (Arithmetical Logical Unit - ALU) realiza todas las opera- ciones matemticas y lgicas sobre datos; y Acumulador o registro de trabajo. Es un registro SFR estrechamente relacionado con el funcionamiento de la ALU. Es utilizado para almacenar todos los datos sobre los que se debe realizar alguna operacin (sumar, mover). Tambin almacena los resultados preparados para el procesamiento futuro. Uno de los registros SFR, denominado Registro Status (PSW), est estrechamente relacionado con el acumulador. Muestra el estado de un nmero almacenado en el acumulador (el nmero es mayor o menor que cero etc.) en cualquier instante dado. 2.4 Perifricos Internos BUS El bus est formado por 8, 16 o ms cables. Hay dos tipos de buses: el bus de direcciones y el bus de datos. El bus de direcciones consiste en tantas lneas como sean necesarias para direccionar la memoria. Se utiliza para transmitir la direccin de la CPU a la memoria. El bus de datos es tan ancho como los datos, en este caso es de 8 bits o lneas de ancho. Se utiliza para conectar todos los circuitos dentro del microcontrolador. COMUNICACIN EN SERIE La conexin paralela entre el microcontrolador y los perifricos a travs de los puertos de entrada/salida es una solucin perfecta para las distancias cortas - hasta varios metros. No obstante, en otros casos cuando es necesario establecer comunicacin entre dos dispositivos a largas dis- tancias no es posible utilizar la conexin paralela. En vez de eso, se utiliza la conexin en serie. Hoy en da, la mayora de los microcontroladores llevan incor- porados varios sistemas diferentes para la comunicacin en serie, como un equipo estndar. Cul de estos sistemas se utilizar en un caso concreto, depende de muchos factores, de los que ms importantes son: Con cuntos dispositivos el microcontrolador tiene que intercambiar los datos? Cul es la velocidad del intercambio de datos obligatoria? Cul es la distancia entre los disposi- tivos? Es necesario transmitir y recibir los datos simultneamente? Una de las cosas ms importantes en cuanto a la comunicacin en serie es el Protocolo que debe ser estrictamente observado. Es un conjunto de reglas que se aplican obligatoriamente para que los dispositivos puedan interpretar correctamente los datos que intercambian mutuamente. Afortunadamente, los microcontroladores se encargan de eso automticamente, as que el trabajo de programador/usuario es reducido a la escritura y lectura de datos. VELOCIDAD DE TRANSMISIN SERIAL La velocidad de transmisin serial (baud rate) es el trmino utilizado para denotar el nmero de bits transmitidos por segundo [bps]. Fjese que este trmino se reere a bits, y no a bytes! El protocolo normalmente requiere que cada byte se transmita junto con varios bits de control. Eso quiere decir que un byte en un ujo de datos serial puede consistir en 11 bits. Por ejemplo, si veloci- dad de transmisin serial es 300 bps un mximo de 37 y un mnimo de 27 bytes se pueden transmitir por segundo. Los sistemas de comunicacin serial ms utilizados son: I2C (INTER INTEGRATED CIRCUIT) - CIRCUITO INTER- INTEGRADO Circuito inter-integrado es un sistema para el intercambio de datos serial entre los microcontroladores y los circuitos integrados especializa- dos de generacin. Se utiliza cuando la distancia entre ellos es corta (el receptor 6 y el transmisor estn normalmente en la misma placa de circuito impreso). La conexin se establece por medio de dos lneas - una se utiliza para transmitir los datos, mientras que la otra se utiliza para la sincronizacin (la seal de reloj). Como se muestra en la gura, un dispositivo es siempre el principal (master - maestro), el que realiza el direccionamiento de un chip subordinado (slave - esclavo) antes de que se inicie la comunicacin. De esta manera un microcon- trolador puede comunicarse con 112 dispositivos diferentes. La velocidad de transmisin serial es normalmente 100 Kb/seg (el modo estndar) o 10 Kb/seg (modo de velocidad de transmisin baja). Recientemente han aparecido los sis- temas con la velocidad de transmisin serial 3.4 Mb/sec. La distancia entre los dispositivos que se comunican por el bus I2C est limitada a unos metros. SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE IN- TERFAZ DE PERIFRICOS Un bus serial de interfaz de perifricos es un sistema para la comunicacin serial que utiliza hasta cuatro lneas (normal- mente solo son necesarias tres) - para recibir los datos, para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comu- nica. Esto es la conexin full duplex, lo que signica que los datos se envan y se reciben simultneamente. La velocidad de transmisin mxima es mayor que en el sistema de conexin I2C. UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISOR-RECEPTOR ASNCRONO UNIVERSAL Este tipo de conexin es asncrona, lo que signica que no se utiliza una lnea especial para transmitir la seal de reloj. En algunas aplica- ciones este rasgo es crucial (por ejemplo, en mandar datos a distancia por RF o por luz infrarroja). Puesto que se utiliza slo una lnea de comunicacin, tanto el receptor como el transmisor reciben y envan los datos a velocidad misma que ha sido predenida para mantener la sincronizacin necesaria. Esto es una manera simple de transmitir datos puesto que bsicamente representa una con- versin de datos de 8 bits de paralelo a serial. La velocidad de transmisin no es alta, es hasta 1 Mbit/sec. OSCILADOR Los pulsos uniformes genera- dos por el oscilador permiten el funcionamiento armnico y sncrono de todos los circuitos del microcontrolador. El oscilador se congura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico para estabi- lizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como oscilador RC). Es importante decir que las instrucciones del programa no se ejecutan a la velocidad impuesta por el mismo oscilador sino varias veces ms despacio. Eso ocurre porque cada instruccin se ejecuta en varios ciclos del oscilador. En algunos microcontroladores se necesita el mismo nmero de ciclos para ejecutar todas las instrucciones, mientras que en otros el tiempo de ejecucin no es el mismo para todas las instrucciones. Por consiguiente, si el sistema utiliza el cristal de cuarzo con una frecuencia de 20 MHZ, el tiempo de ejecucin de una instruccin de programa no es 50 nS, sino 200, 400 o 800 nS dependiendo del tipo del microcontrolador. CIRCUITO DE ALIMENTACIN Hay que mencionar dos cosas dignas de atencin con relacin al circuito de la fuente de alimentacin de microcontroladores: Brown out es un estado poten- cialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentacin salga de unos mrgenes debido al ruido 7 elctrico. Como el microcontrolador dispone de varios circuitos que funcionan a niveles de voltaje diferentes, ese estado puede causar un comportamiento de- scontrolado. Para evitarlo, el microcontrolador normalmente tiene un circuito incorporado para el brown out reset. El circuito reinicia inmediatamente el mi- crocontrolador si el voltaje de alimentacin cae por debajo del lmite. El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo del microcontrolador al aplicar un cero (0) o un uno (1) lgico dependiendo del tipo del microcontrolador. En caso de que el circuito brown out no est incorporado, un simple circuito externo para el brown out re- set se puede conectar al pin MCLR. TEMPORIZADORES/CONTADORES El oscilador del microcontrolador utiliza cristal de cuarzo para su funcionamiento. Aunque no se trata de la solucin ms simple, hay muchas razones para uti- lizarlo. La frecuencia del oscilador es denida con precisin y muy estable, as que siempre genera los pulsos del mismo ancho, lo que los hace perfectos para medicin de tiempo. Tales osciladores se utilizan en los relojes de cuarzo. Si es necesario medir el tiempo transcurrido entre dos eventos, basta con contar los pulsos generados por este oscilador. Esto es exactamente lo que hace el tem- porizador. La mayora de los programas utiliza estos cronmetros electrnicos en miniatura. Generalmente son registros SFR de 8 o 16 bits cuyo contenido se aumenta automticamente con cada pulso. Una vez que se llena el registro, se genera una interrupcin! Si el temporizador utiliza el oscilador de cuarzo interno para su funcionamiento, es posible medir el tiempo entre dos eventos (el valor de registro en el momento de iniciar la medicin es T1, en el momento de nalizar la medicin es T2, el tiempo transcurrido es igual al resultado de la resta T2 - T1). Si los registros se aumentan con los pulsos que vienen de la fuente externa, tal temporizador se convierte en un contador. Esto es una explicacin simple de su funcionamiento. Es un poco ms complicado en prctica. 2.5 Las instrucciones del Microcontrolador Todas las instrucciones se ejecutan en un ciclo. La nicas excepciones pueden ser las instrucciones de ramicacin condicional o las instrucciones que cambian el contenido del contador de programa. En ambos casos, dos ciclos de reloj son necesarios para la ejecucin de la instruccin, mientras que el segundo ciclo se ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la ejecucin de la instruccin es 1mS. En cuanto a las instrucciones de ram- icacin, el tiempo de ejecucin de la instruccin es 2mS. Juego de instrucciones de los microcontroladores PIC de 14 bits: Instruccin Descripcin Operacin Bandera CLK * Instrucciones para la transmisin de datos MOVLW k Mover literal a W k -> w 1 MOVWF f Mover el contenido de W a f W -> f 1 MOVF f,d Mover el contenido de f a d f -> d Z 1 1, 2 CLRW Borrar el contenido de W 0 -> W Z 1 CLRF f Borrar el contenido de f 0 -> f Z 1 2 SWAPF f,d Intercambiar de nibbles en f f(7:4),(3:0) -> f(3:0),(7:4) 1 1, 2 Instrucciones aritmtico - lgicas ADDLW k Sumar literal a W W+k -> W C, DC, Z 1 ADDWF f,d Sumar el contenido de W y f W+f -> d C, DC ,Z 1 1, 2 SUBLW k Restar W de literal k-W -> W C, DC, Z 1 SUBWF f,d Restar W de f f-W -> d C, DC, Z 1 1, 2 ANDLW k AND W con literal W AND k -> W Z 1 ANDWF f,d AND W con f 8 W AND f -> d Z 1 1, 2 IORLW k OR inclusivo de W con literal W OR k -> W Z 1 IORWF f,d OR inclusivo de W con f W OR f -> d Z 1 1, 2 XORWF f,d OR exclusivo de W con literal W XOR k -> W Z 1 1, 2 XORLW k OR exclusivo de W con f W XOR f -> d Z 1 INCF f,d Sumar 1 a f f+1 -> f Z 1 1, 2 DECF f,d Restar 1 a f f-1 -> f Z 1 1, 2 RLF f,d Rotar F a la izquierda a travs del bit de Acarreo C 1 1, 2 RRF f,d Rotar F a la derecha a travs del bit de Acarreo C 1 1, 2 COMF f,d Complementar f f -> d Z 1 1, 2 Instrucciones orientadas a bit BCF f,b Poner a 0 el bit b del registro f 0 -> f(b) 1 1, 2 BSF f,b Poner a 1 el bit b del registro f 1 -> f(b) 1 1, 2 Instrucciones de control de programa BTFSC f,b Saltar si bit b de registro f es 0 Skip if f(b) = 0 1 (2) 3 BTFSS f,b Saltar si bit b de reg. f es 1 Skip if f(b) = 1 1 (2) 3 DECFSZ f,d Disminuir f en 1. Saltar si el resultado es 0 f-1 -> d skip if Z = 1 1 (2) 1, 2, 3 INCFSZ f,d Incrementar f en 1. Saltar si el resultado es 1 f+1 -> d skip if Z = 0 1 (2) 1, 2, 3 GOTO k Saltar a una direccin k -> PC 2 CALL k Llamar a una subrutina PC -> TOS, k -> PC 2 RETURN Retornar de una subrutina TOS -> PC 2 RETLW k Retornar con literal en W k -> W, TOS -> PC 2 RETFIE Retornar de una interupcin TOS -> PC, 1 -> GIE 2 Otras instrucciones NOP No operacin TOS -> PC, 1 -> GIE 1 CLRWDT Reiniciar el temporizador perro guardin 0 -> WDT, 1 -> TO, 1 -> PD TO, PD 1 SLEEP Poner en estado de reposo 0 -> WDT, 1 -> TO, 0 -> PD TO, PD 1 *1 Si un registro de E/S est modicado, el valor utilizado ser el valor presentado en los pines del microcontrolador. *2 Si la in- struccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser borrado. *3 Si la instruccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser borrado. Bibliografa Introduccin a microcontroladores, Paul Aguayo S., paguayo@olimex.cl 10 de noviembre de 2004 http://microcontroladoressesv.wordpress.com/algunos- microcontroladores/ 9