Microcontrolador PIC16F887-I/P

$130.00 Costo sin IVA

Microcontrolador poderoso, fácil de programar.

Disponibilidad: 19 disponibles

SKU: PIC16F887-I/P Categoría: Etiquetas: , ,

DESCRIPCIÓN DE PINES

La mayoría de los pines del microcontrolador PIC16F887 son multipropósito como se muestra en la figura anterior. Por ejemplo, la asignación RA3/AN3/Vref+/C1IN+ para el quinto pin del microcontrolador indica que éste dispone de las siguientes funciones:

RA3 Tercera entrada/salida digital del puerto A

AN3 Tercera entrada analógica

Vref+ Referencia positiva de voltaje

C1IN+ Entrada positiva del comparador C1

La funcionalidad de los pines presentados anteriormente es muy útil puesto que permite un mejor aprovechamiento de los recursos del microcontrolador sin afectar a su funcionamiento. Estas funciones de los pines no se pueden utilizar simultáneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento.

Las siguientes tablas se refieren al microcontrolador DIP de 40 pines.

UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

Con el propósito de explicar en forma clara y concisa, sin describir profundamente el funcionamiento de la CPU, vamos a hacer constar que la CPU está fabricada con la tecnología RISC ya que esto es un factor importante al decidir qué microcontrolador utilizar.

RISC es un acrónimo derivado del inglés Reduced Instruction Set Computer, lo que proporciona al PIC16F887 dos grandes ventajas:

  • La CPU cuenta con sólo 35 instrucciones simples. Cabe decir que para poder programar otros microcontroladores en lenguaje ensamblador es necesario saber más de 200 instrucciones.
  • El tiempo de ejecución es igual para casi todas las instrucciones y tarda 4 ciclos de reloj. La frecuencia del oscilador se estabiliza por un cristal de cuarzo. Las instrucciones de salto y de ramificación tardan ocho ciclos de reloj en ejecutarse. Esto significa que si la velocidad de operación del microcontrolador es 20 MHz, el tiempo de ejecución de cada instrucción será 200nS, o sea, ¡el programa ejecutará 5millones de instrucciones por segundo.

MEMORIA

El PIC16F887 tiene tres tipos de memoria: ROM, RAM y EEPROM. Como cada una tiene las funciones, características y organización específicas, vamos a presentarlas por separado.

MEMORIA ROM

La memoria ROM se utiliza para guardar permanente el programa que se está ejecutando. Es la razón por la que es frecuentemente llamada “memoria de programa”. El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM está fabricada con tecnología FLASH, su contenido se puede cambiar al proporcionarle un voltaje de programación especial (13V). No obstante, no es necesario explicarlo en detalles puesto que se realiza automáticamente por un programa especial en la PC y un simple dispositivo electrónico denominado programador.

MEMORIA EEPROM

Similar a la memoria de programa, el contenido de memoria EEPROM está permanentemente guardado al apagar la fuente de alimentación. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM se puede cambiar durante el funcionamiento del microcontrolador. Es la razón por la que esta memoria (256 localidades) es perfecta para guardar permanentemente algunos resultados creados y utilizados durante la ejecución del programa.

MEMORIA RAM

Es la tercera y la más compleja parte de la memoria del microcontrolador. En este caso consiste en dos partes: en registros de propósito general y en los registros de funciones especiales (SFR). Todos estos registros se dividen en cuatro bancos de memoria.

Aunque los dos grupos de registros se ponen a cero al apagar la fuente de alimentación, además están fabricados de la misma forma y se comportan de la manera similar, sus funciones no tienen muchas cosas en común.

REGISTROS DE PROPÓSITO GENERAL.- Los registros de propósito general se utilizan para almacenar los datos temporales y los resultados creados durante el funcionamiento. Por ejemplo, si el programa realiza el conteo (de los productos en una cadena de montaje), es necesario tener un registro que representa lo que en la vida cotidiana llamamos “suma”. Como el microcontrolador no es nada creativo, es necesario especificar la dirección de un registro de propósito general y asignarle esa función. Se debe crear un programa simple para incrementar el valor de este registro por 1, después de que cada producto haya pasado por el sensor.

REGISTROS DE FUNCIONES ESPECIALES (SFR).- Los registros de funciones especiales son también parte de la memoria RAM. A diferencia de los registros de propósito general, su propósito es predeterminado durante el proceso de fabricación y no se pueden cambiar. Como los bits están conectados a los circuitos particulares en el chip (convertidor A/D, módulo de comunicación serial, etc), cualquier cambio de su contenido afecta directamente al funcionamiento del microcontrolador o de alguno de los circuitos.

Por ejemplo, el registro ADCON0 controla el funcionamiento del convertidor A/D. Al cambiar los bits se determina qué pin del puerto se configurará como la entrada del convertidor, el momento del inicio de la conversión así como la velocidad de la conversión.

Otra característica de estas localidades de memoria es que tienen nombres (tanto los registros como sus bits), lo que simplifica considerablemente el proceso de escribir un programa. Como el lenguaje de programación de alto nivel puede utilizar la lista de todos los registros con sus direcciones exactas, basta con especificar el nombre de registro para leer o cambiar su contenido.

BANCOS DE LA MEMORIA RAM.- La memoria RAM está dividida en cuatro bancos. Antes de acceder a un registro al escribir un programa (para leer o cambiar su contenido), es necesario seleccionar el banco que contiene ese registro. Los SFR utilizados con más frecuencia tienen la misma dirección en todos los bancos, lo que permite accederlos con facilidad.

PILA

Una parte de la RAM utilizada como pila consiste de ocho registros de 13 bits. Antes de que el microcontrolador se ponga a ejecutar una subrutina (instrucción CALL) o al ocurrir una interrupción, la dirección de la primera siguiente instrucción en ser ejecutada se coloca en la pila (se apila), o sea, en uno de los registros. Gracias a eso, después de ejecutarse una subrutina o una interrupción, el microcontrolador “sabe” dónde continuar con la ejecución de programa. Esta dirección se borra (se desapila) después de volver al programa, ya que no es necesario guardarla, disponiendo automáticamente esas localidades de la pila para un uso futuro.

Cabe tener en mente que el dato se apila circularmente. Esto significa que después de que se apile ocho veces, la novena vez se sobrescribe el valor que se almacenó al apilar el dato por primera vez. La décima vez que se apile, se sobrescribe el valor que se almacenó al apilar el dato por segunda vez etc. Datos sobrescritos de esta manera no se pueden recuperar. Además, el programador no puede acceder a estos registros para hacer escritura/lectura. No hay ningún bit de estado para indicar el estado de desbordamiento o subdesbordamiento de pila. Por esta razón hay que tener un especial cuidado al escribir un programa.

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “Microcontrolador PIC16F887-I/P”

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Shopping Cart
Escribenos por WhatsApp