Los
PIC son una familia de
microcontroladores tipo
RISC fabricados por
Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de
microelectrónica de
General Instrument.
El nombre actual no es un
acrónimo. En realidad, el nombre completo es
PICmicro, aunque generalmente se utiliza como
Peripheral Interface Controller (controlador de interfaz periférico).
El PIC original se diseñó para ser usado con la nueva
CPU de 16
bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de
E/S, y el PIC de 8 bits se desarrolló en
1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba
microcódigo simple almacenado en
ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño
RISC que ejecuta una
instrucción cada 4
ciclos del
oscilador.
En
1985 la división de
microelectrónica de General Instrument se separa como compañía independiente que es incorporada como filial (el
14 de diciembre de
1987 cambia el nombre a
Microchip Technology y en
1989 es adquirida por un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con
EPROM para conseguir un
controlador de canal programable. Hoy en día multitud de PICs vienen con varios periféricos incluidos (módulos de comunicación serie,
UARTs, núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una
palabra corresponde a una instrucción en
lenguaje ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de la familia específica de PICmicro).
Arquitectura central
La arquitectura del PIC es sumamente minimalista. Esta caracterizada por las siguientes prestaciones:
- Área de código y de datos separadas (Arquitectura Harvard).
- Un reducido número de instrucciones de largo fijo.
- La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución (4 ciclos de clock), con ciclos de único retraso en las bifurcaciones y saltos.
- Un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no está especificado en la instrucción).
- Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemáticas y otras funciones.[1]
- Una pila de hardware para almacenar instrucciones de regreso de funciones.
- Una relativamente pequeña cantidad de espacio de datos direccionable (típicamente, 256 bytes), extensible a través de manipulación de bancos de memoria.
- El espacio de datos está relacionado con el CPU, puertos, y los registros de los periféricos.
- El contador de programa esta también relacionado dentro del espacio de datos, y es posible escribir en él (permitiendo saltos indirectos).
A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros.
Hay dos arquitecturas conocidas; la clásica de von Neumann, y la arquitectura Harvard, veamos como son...
Arquitectura Von Neumann Dispone de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).
Arquitectura Harvard Dispone de dos memorias independientes, una que contiene sólo instrucciones, y otra que contiene sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias, ésta es la estructura para los PIC's.
El procesador o UCP
Es el elemento más importante del microcontrolador. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, decodificarlo y ejecutarlo, también realiza la búsqueda de los operandos y almacena el resultado.
Esta vendría a ser la memoria de instrucciones, aquí es donde almacenaremos nuestro programa o código que el micro debe ejecutar. No hay posibilidad de utilizar memorias externas de ampliación. Son 5 los tipos de memoria. pero sólo describiré dos:
- Memorias EEPROM. (Electrical Erasable Programmable Read Only Memory - Memoria de sólo lectura Programable y borrable eléctricamente) Común en el PIC 16C84. Ésta tarea se hace a través de un circuito grabador y bajo el control de un PC. El número de veces que puede grabarse y borrarse una memoria EEPROM es finito aproximadamente 1000 veces, no es acaso suficiente...?. Este tipo de memoria es relativamente lenta.
- Memorias FLASH. Disponible en el PIC16F84. Posee las mismas características que la EEPROM, pero ésta tiene menor consumo de energía y mayor capacidad de almacenamiento, por ello está sustituyendo a la memoria EEPROM.
La memoria de programa se divide en páginas de 2,048 posiciones. El PIC16F84A sólo tiene implementadas 1K posiciones es decir de 0000h a 03FFh y el resto no está implementado. (es aquello que se ve en gris)

Cuando ocurre un Reset, el contador de programa (PC) apunta a la dirección 0000h, y el micro se inicia nuevamente. Por esta razón , en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo (por ejemplo, la configuración de los puertos...).
Ahora, si ocurre una interrupción el contador de programa (PC) apunta a la dirección 0004h, entonces ahí escribiremos la programación necesaria para atender dicha interrupción.
Algo que se debe tener en cuenta es la pila o Stack, que consta de 8 posiciones (o niveles), esto es como una pila de 8 platos el último en poner es el primero en sacar, si seguimos con este ejemplo, cada plato contiene la dirección y los datos de la instrucción que se está ejecutando, así cuando se efectúa una llamada (CALL) o una interrupción, el PC sabe donde debe regresar (mediante la instrucción RETURN, RETLW o RETFIE, según el caso) para continuar con la ejecución del programa.
Tiene dos zonas diferentes:
1. RAM estática ó SRAM: donde residen los Registros Específicos (SFR) con 24 posiciones de tamaño byte, aunque dos de ellas no son operativas y los Registros de Propósito General (GPR) con 68 posiciones. La RAM del PIC16F84A se halla dividida en dos bancos (banco 0 y banco 1) de 128 bytes cada uno (7Fh)
Antecedentes e historia de los microcontroladores.
En el año 1969, un equipo de ingenieros japoneses de la compañía BUSICOM llegó a Estados Unidos con una idea, ellos deseaban usar para sus proyectos pocos circuitos integrados de los que se usaban en las calculadoras. La proposición se hizo a INTEL, y Marcian Hoff era el responsable del proyecto. Ya que él era quien tenia experiencia trabajando con una computadora (PC) PDP8, se le ocurrió pensar en una solución fundamentalmente diferente en lugar de la construcción sugerida. Esta solución presumía que la función del circuito integrado se determinaría por un programa almacenado en él. Eso significaba que la configuración sería más simple, pero que requeriría mucho más memoria de lo que requería el proyecto que propusieron los ingenieros japoneses.
Después de un tiempo, aunque los ingenieros japoneses probaron soluciones más fáciles, la idea de Marcian ganó, y el primer microprocesador nació. Para transformar esta idea en un producto ya fabricado, Federico Faggin, se unió a INTEL, y en sólo 9 meses tuvo éxito. INTEL obtuvo los derechos para vender este "bloque integrado" en 1971. Primero, compraron la licencia de la compañía BUSICOM, que no tenía idea del tesoro que poseían. Durante ese año, apareció en el mercado un microprocesador que se llamó 4004, este fue el primer microprocesador de 4 bits con velocidad de 6 000 operaciones por segundo. No mucho tiempo después de eso, la compañía americana CTC pidió a INTEL y Texas Instruments que hiciera un microprocesador de 8 bits. Aunque después a CTC no le interesó mas la idea, Intel y Texas Instruments siguieron trabajando en el microprocesador y el primero de abril de 1972, el microprocesador de 8 bits
aparece en el mercado con el nombre de 8008. Podía direccionar 16 Kb de memoria, con un set de 45 instrucciones y una velocidad de 300 000 operaciones por segundo. Este microprocesador es el predecesor de todos los microprocesadores de hoy. Intel mantuvo sus desarrollos y saco al mercado el procesador de 8 bits bajo el nombre 8080, el cual podía direccionar 64Kb de memoria, con 75 instrucciones, a un precio de 360 dlls.
En otra compañía americana, Motorola, comprendieron rápidamente lo que estaba sucediendo, así que ellos sacaron al mercado su microprocesador de 8 bits, el 6800. Su constructor principal era Chuck Peddle, y junto con el procesador, Motorola fue la primera compañía en hacer otros periféricos como el 6820 y el 6850. En ese momento muchas compañías reconocieron importancia de los microprocesadores y empezaron sus propios desarrollos. Chuck Peddle
abandonó Motorola para unirse a la Tecnología MOS y se mantuvo trabajando intensamente en el desarrollo de los microprocesadores.
Un evento muy importante tuvo lugar en la historia de microprocesadores en una exhibición de WESCON en 1795 en Estados Unidos. La Tecnología MOS anunció que estaba comercializando los microprocesadores 6501 y 6502 a 25 dlls. cada uno, y que los compradores podrían adquirirlos inmediatamente. Esto era tan extraordinario, que algunas personas creyeron que era un escándalo, considerando que los competidores estaban vendiendo el 8080 y el 6800 a 179
dlls. cada uno. Intel y Motorola bajaron sus precios en el primer día de la exhibición como una respuesta a su competidor, 69.95 por microprocesador. Motorola reclama a la Tecnología de MOS y a Chuck Peddle el haberles copiado su 6800. La Tecnología MOS suspende la fabricación del 6501, pero siguen produciendo el 6502. Los 6502 eran microprocesadores de 8 bits, 56
instrucciones y la capacidad de direccionar 64Kb de memoria directamente. Para reducir el costo, el 6502 se vuelve muy popular, así que se instala en las computadoras tales como: KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra, y muchas otras. Y muy pronto aparecieron varios fabricantes del 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, y Comodore quienes toman la Tecnología MOS) el cual estaba en su momento de apogeo y se vendía a una velocidad de 15 millones de procesadores por año. Otros, sin embargo, no se rindieron. Federico Faggin deja Intel, y empieza su propio Zilog Inc.
En 1976, Zilog anuncia el Z80. Durante la fabricación de este microprocesador, Faggin toma una decisión giratoria. Sabiendo que ya se han desarrollado muchos programas para 8080, Faggin sabia que muchos se quedarían fieles a ese microprocesador. Así que decide diseñar un nuevo
procesador que pueda ser compatible con 8080, o que sea capaz de desarrollar todos los programas que ya se habían escrito para el 8080. Además de estas características, se agregaron muchas otras para que el Z80 fuera un microprocesador muy poderoso. Podía direccionar 64 Kb de memoria, tenía 176 instrucciones, un gran número de registros, una opción para refresco de
memoria dinámica de la RAM, mayor velocidad de trabajo etc. El Z80 fue un gran éxito y todos cambiaron del 8080 al Z80. Puede decirse que el Z80 fue el microprocesador comercializado más exitoso de ese tiempo. Además de Zilog, también aparecieron otros nuevos fabricantes como Mostek, NEC, SHARP, y SGS. Z80 estaba en el corazón de muchas computadoras como en Spectrum, Partner, TRS703, Z-3 etc.
En 1976, Intel propone una versión mejorada del microprocesador de 8 bits, al cual nombró 8085. Sin embargo, el Z80 era tan bueno que Intel perdió la batalla. Aunque más procesadores aparecían en el mercado (6809, 2650, SC/MP etc.), ya todo estaba decidido. Ya no había grandes mejoras departe de los fabricantes para hacer algo nuevo, así que el 6502 y el Z80 junto con el
6800 permanecieron como los representantes principales de los microprocesadores de 8 bits de ese tiempo.
Aunque en toda esta historia, se mencionan erroneamente microprocesadores, la realidad, es que las primeras PCs, emplearon microcotroladores, los cuales, como ya vimos, cuentan con un procesador y memoria. Posteriormente, se dio el paso a los microprocesadores, que no cuentan con la memoria, en el mismo circuito integrado, y los microcontroladores, tienen su aplicacion en aparatos electrodomesticos automoviles, en la industria, entre otros.
En 1980 aproximadamente, los fabricantes de circuitos integrados iniciaron la difusión de un nuevo circuito para control, medición e instrumentación al que llamaron microcomputador en un sólo chip o de manera más exacta