Vous êtes sur la page 1sur 8

Microcontrolador Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su memoria.

Est compuesto de varios bloques funcionales, los cuales cumplen una tarea especfica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y perifricos de entrada/salida. DIFERENCIAS:

La configuracin mnima bsica de un Microprocesador esta constituida por un Micro de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 Pines;

Microcontrolador incluye todo estos elementos del Microprocesador en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificacin de circuitera.

El costo para un sistema basado en Microcontrolador es mucho menor, mientras que para del Microprocesador, es muy alto en la actualidad.

Los Microprocesadores tradicionales se basan en la arquitectura de Von Newmann, mientras que los microcontroladores trabajan con arquitectura de harvard.

El tiempo de

desarrollo

de

su proyecto electrnico

es

menor

para

los

Microcontroladores.

Se puede observar en las grficas # 2 y 6, que la principal diferencia entre ambos radica en la ubicacin del registro de trabajo, que para los PICs se denomina W (Working Register), y para los tradicionales es el Acumulador (A).

En los microcontroladores tradicionales todas las operaciones se realizan sobre el acumulador. La salida del acumulador esta conectada a una de las entradas de la Unidad Aritmtica y Lgica (ALU), y por lo tanto este es siempre uno de los dos operandos de cualquier instruccin, las instrucciones de simple operando (borrar, incrementar, decrementar, complementar), actan sobre el acumulador.

En los microcontroladores PIC, la salida de la ALU va al registro W y tambin a la memoria de datos, por lo tanto el resultado puede guardarse en cualquiera de los dos destinos.

La gran ventaja de esta arquitectura(Microcontroladores ) es que permite un gran ahorro de instrucciones ya que el resultado de cualquier instruccin que opere con la memoria, ya sea de simple o doble operando, puede dejarse en la misma posicin de memoria o en el registro W, segn se seleccione con un bit de la misma instruccin . Las operaciones con constantes provenientes de la memoria de programa (literales) se realizan solo sobre el registro W.

Memoria de Datos (RAM) Cada banco se extiende hasta la direccion 7Fh (128 bytes). Memoria de Datos Se encuentra en dos zonas bien diferenciadas: 1- Memoria tipo RAM (SRAM): Se divide en 4 bancos o paginas de 128 registros de 8 bits cada uno, aunque no todos los registros estn implementados fsicamente (Los bits RP1 (STATUS(6)) y RP0 (STATUS(5)) son usados para la seleccin del banco. . Los registros se dividen en:

Registros especiales: Cada uno tiene una funcin especfica que se analizar ms adelante. Registros de uso general: Son los registros que le permiten al usuario almacenar valores temporalmente (variables) durante la ejecucin del programa.

2- Memoria de datos tipo EEPROM: esta compuesta de por 128 registros de 8 bits cada uno. Este tipo de memoria es capaz de guardar la informacin mas de 40 aos. Memoria de Programa La memoria de programa es del tipo flash. La memoria flash es una memoria no voltil, de bajo consumo que se puede escribir y borrar elctricamente. Es programable en el circuito como la EEPROM pero de mayor densidad y ms rpida.

El PIC 16F873 posee una memoria de 4K palabras, es decir permite hasta 4096 instrucciones de 14 bits cada una. TIMER0 Temporizador/contador con las siguientes caractersticas: El temporizador/contador dispone de 8 bits, puede escribirse y leerse Preescaler programable por Software de 8 bits Puede trabajar con el reloj interno o con una seal de reloj externa Dispone de una interrupcin por desbordamiento al pasar de FFh a 00h Seleccin de flanco ascendente o descendente para el flaco del reloj externo

Registro W Este registro de 8 bit es utilizado por el microcontrolador como registro principal para todas las instrucciones del grupo operaciones matemticas y lgicas. El contenido de este registro es uno de los trminos involucrados en todas las operaciones, el otro trmino proviene de la memoria de registro o de un dato asociado a la instruccin. El resultado de la operacin puede ser guardado en este registro de trabajo (W) o en la memoria de registros (f) de acuerdo al formato de la instruccin programada. Registro de trabajo Recibe los resultados de las operaciones ejecutadas por la ALU Puede ser escrito Se usa para las transferencias indirectas entre registros y ubicaciones de memoria Por ejemplo: Puede usarse para transferir datos a la pila y ejecutar un Push o un Pop STACK O PILA El stack o pila es una pequea memoria interna inaccesible al programador, separado del resto de las memorias (registros, programa y EEPROM). Su tamao es de 8 celdas de 13 bit cada una. El stack es utilizado para guardar en forma temporal el contenido del contador del programa incrementado (PC+1). Cuando se produce una interrupcin del programa principal o un salto a una subrutina, se debe preservar el contenido del

contador de programa (PC), para que el microcontrolador pueda retornar, luego de la interrupcin o de la subrutina, a la siguiente instruccin del programa principal. Como en toda memoria del tipo pila, los datos son accedidos de manera tal que el ultimo que entra es el primero que sale (LIFO). Las ocho (8) posiciones del stack, representan en cierta medida, una limitacin de estos microcontroladores, ya que no permite hacer uso intensivo del anidamiento de subrutinas (Llamar una subrutina desde otra subrutina). Esto de hecho impone una traba para el programador y adems parece impedir o dificultar la programacin estructurada, sin embargo es una buena solucin de compromiso ya que estos microcontroladores estn diseados para aplicaciones de alta velocidad en tiempo real, en las que demoras adicionales por un excesivo anidamiento de subrutinas son inaceptables. Por otra parte existen tcnicas de organizacin del programa que permiten mantener la claridad de la programacin estructurada, sin necesidad de utilizar tantas subrutinas anidadas. Si por error se llaman en secuencia continua mas ocho (8) subrutina, el ultimo contenido ser cargado en el primer lugar del stack, borrando el contenido anterior (primer valor del PC+1 para el retorno) lo cual producir un error de software. Es importante tener en cuenta que las interrupciones tambin utilizan el stack y pueden producirse en cualquier sector del programa. Los PIC16F83 tienen cuatro posibles fuentes de interrupcin: Una interrupcin consiste en una detencin del programa en curso para realizar una determinada rutina que atienda la causa que ha provocado la interrupcin.

1. Interrupcin externa provocada al activar el pin 6 (RB0/INT) del puerto B 2. Desbordamiento del contador TMR0 (FFh a 00h). 3. Cambio de estado en los pines 10 al 13 (RB4, RB5, RB6 y RB7) del Puerto B 4. Finalizacin de la escritura en la EEPROM.

La alimentacin Los C de la familia 16F87X se alimentan con 5 VCC pero con 3,5 V tambin funcionan consumiendo un poco ms de corriente. La corriente mxima que puede circular por el terminal VDD (donde se conecta el positivo de la fuente de 5 V) es de 250 mA y por cada salida no se debe hacer circular ms de 25 mA.

La arquitectura Von Neumman Es la arquitectura tradicional de computadoras y microprocesadores.En este esquema, la unidad central de proceso (CPU), est conectada a una memoria nica que contiene las instrucciones del programa y los datos. Este esquema tiene ciertas limitaciones: El tamao de la unidad de datos o instrucciones queda determinado por el ancho del bus de la memoria. Un microprocesador de 8 bits con un bus de 8 bits que lo conecta a la memoria, manejar instrucciones y datos de de 8 bits (1 byte). Cuando deba acceder a una instruccin o dato de mayor longitud, deber realizar ms de un acceso a la memoria. El uso de un nico bus limita la velocidad de operacin del microprocesador, debido a que no puede buscar en memoria una nueva instruccin muentras no termine de procesar la anterior.

La arquitectura Harvard La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU esta conectado a dos memorias a travs de dos buses independientes (y no necesariamente deben tener el mismo ancho). Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa) y la otra almacena los datos (Memoria de Datos).

Con este esquema, se resuelven las limitaciones propias de la aqrquitectura Von Neumman: Al no estar relacionado el tamao de las instrucciones con el de los datos, la memoria de programa puede disearse para que cualquier instruccin ocupe una sola posicin de la misma. Esto permitir escribir programas ms compactos y de ejecucin ms veloz. Al ser los buses independientes, el CPU puede estar accediendo a los datos para completar la ejecucin de una instruccin, y al mismo tiempo estar leyendo la prxima instruccin a ejecutar.

Los microcontroladores PIC utilizan la arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria de programa que, segn el modelo, puede ser de 12, 14 o 16

bits. El registro STATUS est formado por 8 bits: R/W-0 R/W-0 R/W-0 R-1 IRP bit 7 RP1 bit 6 RP0 bit 5 R-1 R/W-x R/W-x R/W-x Z bit 2 DC bit 1 C bit 0

/TO /PD bit 4 bit 3

R/W significa que el bit correspondiente se puede leer y escribir, mientras que R significa que solamente puede ser ledo. Tambin se indica el estado que se establece tras un reset.

Bit 7, IRP: Seleccin del banco en direccionamiento indirecto. Este bit junto con el de ms peso del registro FSR sirven para determinar el banco de la memoria de datos seleccionado. En el PIC16X84 al disponer de dos bancos no se usa y debe programarse como 0. Bit 6 y 5, RP0 y RP1: Register Bank Select. Seleccin de pgina o banco de la memoria con direccionamiento directo. Cada pgina contiene 128 bytes. Como el PIC16X84 slo tiene dos bancos nicamente se emplea RP0 de forma que cuando vale 0 se accede al banco 0 y cuando vale 1 se accede al banco 1. Despus de un reset, RP0 se pone automticamente a 0. RP1 debe mantenerse a 0. El bit RP1 deber ser puesto a cero, ya que si no nos saldramos del rango de memoria. Bit 4 (flag), TO: Time Out (Tiempo acabado) o 1. Se pone a 1 tras conectar la alimentacin o al ejecutar CLRWDT o SLEEP. o 0. Se pone a 0 por desbordamiento del Perro Guardin WDT. Bit 3 (flag), PD: Power Down (Apagado). o 1. Se pone automticamente a 1 tras conectar la alimentacin Vdd o ejecutar CLRWDT, que resetea el contador WatchDog. o 0. Se pone a 0 al ejecutar la instruccin SLEEP. Bit 2 (flag), Z: Cero o 1 = El resultado de una operacin aritmtica o lgica es 0. o 0 = El resultado es distinto de 0. Bit 1 (flag), DC (Digit Carry). Acarreo en el 4 bit de menos peso. Funciona igual que el bit de Carry descrito a continuacin. De inters en operaciones en BCD Bit 0 (flag), C (Carry). Acarreo en el 8 bit o bit de mas peso. Es el bit de "acarreo" en operaciones de suma AADWF y ADDLW as como tambin el bit de "llevada" en las instrucciones de sustraccin SUBWF y SUBLW. Tambin lo emplean las instrucciones RLF y RRF de rotacin de bits. o Suma

1. Se pone a 1 cuando se ha producido acarreo en la suma en el bit de mayor peso con las operaciones AADWF y ADDLW. 0. Se pone a 0 si en la suma no se ha producido acarreo. 1. Se pone a 1 si en la resta no se ha producido llevada. 0. Se pone a 0 cuando se ha producido llevada en la resta con las operaciones SUBWF y SUBLW.

Resta

Arquitectura Ortogonal: Cualquier instruccin puede utilizar cualquier elemento de la arquitectura como fuente o destino. SUBRUTINAS Cuando en un programa se repite en dos o ms sectores un conjunto de instrucciones es conveniente emplear el llamado a subrutinas (CALL) para eliminar estas copias, optimizar el uso de la memoria y clarificar el programa. Una subrutina se construye trasladando las secuencias repetida, con el agregado de una ultima instruccin de retorno, a un lugar de memoria predeterminado, normalmente al final del programa principal. De este modo, cada vez que es necesario ejecutar esta secuencia de instrucciones se realiza un salto, por medio de la instruccin CALL, desde la secuencia principal al lugar de memoria donde se instalo la rutina. Luego de ejecutarse este conjunto de instrucciones el retorno (RETxx) final devuelve el programa a la prxima instruccin posterior al salto, continuando as la secuencia normal de ejecucin. Debido a que el uso de subrutinas es normal en la programacin de procesadores, dentro del set de instrucciones se incorporan, al menos, dos instrucciones para el manejo de rutinas: CALL nn : Salto a subrutina. Donde nn es el nmero del lugar de memoria donde se encuentra la rutina. RETURN: Retorno de subrutina. Retorna a la instruccin siguiente al llamado de subrutina (CALL). Al ejecutarse la instruccin CALL el numero existente en los registros que forman el contador del programa se incrementa (PC+1) y es transferido al STACK. Al finalizar la rutina, este valor (PC+1) es recuperado para continuar con el programa principal, en la instruccin siguiente al llamado a la subrutina (CALL).

10