Programacion 3 - Unidad 1
Programacion 3 - Unidad 1
Programacion 3 - Unidad 1
MICROCONTROLADORES
MICROPROCESADORES
Resulta evidente la enorme importancia que tienen los dispositivos digitales de cálculo en la
sociedad moderna; así, no es una exageración mencionar que el mundo sería muy distinto si estos
componentes no hubieran sido desarrollados. De hecho, la historia de los microprocesadores es
una larga sucesión de acontecimientos afortunados, iniciados por dos grandes empresas a
principios de la década de los setenta del siglo pasado: Intel y Busicom, la primera fabricante de
circuitos integrados, y la segunda de calculadoras electrónicas. Entre ambas empresas,
desarrollaron el primer microprocesador de la historia: el Intel 4004, un dispositivo de cuatro bits
que servía como “cerebro” de toda una línea de calculadoras de escritorio. Seguramente, quienes
diseñaron tan modesto dispositivo, el cual apenas contaba en su interior con poco más de dos mil
transistores, nunca imaginaron que en unas cuantas décadas se tendrían microprocesadores
corriendo a miles de millones de ciclos por segundo, y que en su interior contendrían cientos de
millones de transistores trabajando al unísono.
También existe un bus de control, que sirve para expedir o introducir instrucciones al
microprocesador, dependiendo de la operación que se vaya a realizar; por ejemplo, aquí se
encuentran las líneas que determinan si un dato se va a leer o a grabar en la memoria RAM,
también se ubican las líneas de interrupción para detener un programa que haya entrado en un
ciclo interminable, etc. Como su nombre lo indica, estas líneas de instrucción ejercen diversas
tareas de control desde el microprocesador hacia sus periféricos y viceversa, así que resultan
fundamentales para la correcta operación del dispositivo.
El bus de datos es la puerta de entrada y salida de los bits que se procesarán dentro del
microprocesador; por aquí se introducen las instrucciones de programación que le indican a cada
momento qué hacer al dispositivo, también entran los datos que se usarán para realizar los
cálculos deseados, y por ahí salen los resultados obtenidos para ser almacenados en memoria o
expedidos por el puerto correspondiente. Se puede decir que este bus es por donde circula toda la
información con la que trabaja el microprocesador, tanto la que entra como la que sale.
Finalmente, está el bus de direcciones, que sirve para que el microprocesador pueda leer su
memoria externa, o para determinar exactamente qué dispositivo externo se utilizará en un
momento dado. Por ejemplo, cuando se está leyendo un programa, normalmente se inicia la
operación desde cierta dirección de memoria, y luego el control interno del microprocesador va
leyendo celdillas consecutivas de la memoria para reunir todas las instrucciones necesarias para
ejecutar lo que desea el usuario, a menos que entre las instrucciones haya alguna que indique un
“salto” a otra dirección de memoria distinta.
Para funcionar, lo anterior necesita de una fuente de poder externa, y también de una señal de
reloj que sirva como referencia para la ejecución de todas las operaciones internas. Esta es la
estructura típica de un microprocesador sencillo, aunque con el enorme desarrollo que han tenido
últimamente estos dispositivos, en los microprocesadores más novedosos se han incrementado
considerablemente el número y variedad de bloques internos. Sólo como referencia, en la figura
anexa se muestra el diagrama a bloques de un microprocesador ARM-Cortex moderno, que se
utiliza en teléfonos inteligentes o en computadoras tipo tablilla.
Sin embargo, existen muchas aplicaciones en las que los requerimientos de entrada y salida de
datos están perfectamente identificadas, y que no se requiere de flexibilidad, sino de economía
(económica y de espacio).
Como ya se mencionó, los microprocesadores han invadido casi todos los aspectos de la vida
diaria; se encuentran en los televisores, en los equipos de audio, en los teléfonos celulares, en los
relojes de pulsera, en el control remoto, en las calculadoras de bolsillo, en fin, prácticamente en
cualquier aparato electrónico en el hogar o la oficina; sin embargo, estos aparatos tienen
necesidades tan específicas que resultaría un verdadero desperdicio colocar un microprocesador
convencional, con todos sus periféricos asociados, para realizar siempre las mismas tareas una y
otra vez; por ejemplo, en un control remoto, el microprocesador dentro de este dispositivo lo
único que tiene que hacer es monitorear su teclado, y cuando detecta que una tecla se ha
presionado, identifica cuál orden está indicando el usuario, de este modo, busca en su memoria el
código correspondiente a esta orden, y expide los pulsos correspondientes para que el LED
infrarrojo se encienda en cierta secuencia para enviar el comando hacia el aparato. Todo esto
puede hacerlo fácilmente un microprocesador, pero rodearlo de periféricos diversos para que
pueda funcionar haría que los controles remotos fueran grandes y estorbosos, además de poco
eficientes.
Bloques internos de un microcontrolador típico (El número y variedad de bloques cambia según)
Para evitar este desperdicio de recursos, se han diseñado los microcontroladores, que
básicamente son microprocesadores completos rodeados de ciertos bloques periféricos básicos,
de modo que en un chip único se puedan realizar muchas de las aplicaciones que normalmente
requerirían de un microprocesador, y por lo menos de dos o tres chips adicionales más. En la
figura anexa, se muestra el diagrama a bloques de un microcontrolador típico, en el centro se
ubica un microprocesador completo como el que se presentó en el apartado anterior, pero en el
mismo encapsulado también se encuentra un bloque de memoria de programación, donde se
puede almacenar el programa que se desee ejecutar en el micro; un bloque de memoria RAM para
guardar datos temporales; una serie de puertos I/O (entrada-salida) para conectar directamente
señales externas al microcontrolador, y para que éste pueda comunicarse con los elementos a su
alrededor; un generador de reloj interno, una serie de temporizadores, bloques de comunicación,
etc.
Todo esto se encuentra dentro de un chip sencillo, de modo que en el caso del control remoto que
se expuso como ejemplo, se puede hacer que las teclas lleguen hacia los puertos de entrada del
microcontrolador, y éste por medio de su programa interno reconozca la tecla que fue presionada,
y consulte su memoria para extraer el código correspondiente a la orden, y luego a través de uno
de sus puertos de salida envíe los pulsos necesarios para que se encienda el LED infrarrojo, y así
transmitir los deseos del usuario hacia el aparato en cuestión. Resulta evidente la conveniencia
que representa hacer todo esto con un chip único, en lugar de usar un micro tradicional rodeado
de todos los periféricos necesarios; y es por esto que se pueden encontrar microcontroladores en
prácticamente todos los aparatos electrónicos que posean controles digitales (televisores,
reproductores de DVD, equipos de sonido, hornos de microondas, teléfonos inalámbricos, ¡incluso
tu despertador digital de cabecera posee un pequeño microcontrolador en su interior! De hecho,
no resulta exagerado indicar que por cada microprocesador tradicional que se fabrica en el
mundo, se producen cientos o miles de microcontroladores para aplicaciones específicas, y es
precisamente, por lo económicos y convenientes que resultan estos últimos, que los controles
digitales han llegado a aparatos que antes se controlaban por medios electromecánicos, como
lavadoras, ventiladores, cafeteras, etc.
De hecho, estos dispositivos son tan convenientes, que el chip que se tomará como base para los
ejercicios de este libro, es precisamente un microcontrolador: el PIC16F628, fabricado por la
compañía Microchip, el cual es fácil de conseguir y muy económico, además de que su bloque de
programación interno está formado por celdas de memoria flash, esto significa que incluso si se
cometen errores en la programación, o si se ha terminado con alguna práctica y se comenzará la
siguiente, lo único que se debe hacer es grabarlo otra vez con el nuevo programa. Observa en el
recuadro, las características básicas de este dispositivo; más adelante se detallará el significado de
cada una y su utilidad en la programación.
Hay cinco tipo de memoria para soportar estas función, estas son:
o ROM. Se graba el chip durante su fabricación, implica costos altos y solo se
recomienda cuando se produce en serie.
o EPROM. Se graba con un dispositivo que es gobernado mediante un computador
personal,.
o OTP. Se graba por el usuario igual que la memoria EPROM, a diferencia de la EPROM la
OTP se puede grabar solamente una vez.
o EEPROM. La grabación es similar a la de las memorias EPROM y OTP, la diferencia es
que el borrado se efectúa de la misma forma que el grabado, o sea eléctricamente.
o FLASH. Posee las mismas característica que la EEPROM, pero esta tiene menor
consumo de energía y mayor capacidad de almacenamiento.
o Memoria de lectura y escritura para guardar los datos o Algunos microcontroladores
manejan la memoria RAM estática (SRAM), otros como el PIC16F84A disponen de una
memoria de datos del tipo EEPROM.
A excepción de dos pines para la alimentación, dos para el cristal de cuarzo y una mas para
provocar el Reset, los restantes pines de un microcontrolador sirven para soportar con los
periférico externos que controla,
RECURSOS AUXILIARES
• Circuito de reloj. Encargado de generar los impulsos que sincronizan el funcionamiento de
todo el sistema.
• Perro Guardián. Destinado a provocar una inicialización cuando el programa queda bloqueado
• Estado de reposo o de bajo consumo: En el que el sistema queda <> y el consumo de energía
se reduce al mínimo.
Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central,
probablemente mas potente, para compartir la información y coordinar sus acciones, como, de
hecho, ocurre ya habitualmente en cualquier PC.
DIFERENCIAS
La configuración mínima básica 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;
El costo para un sistema basado en Microcontrolador es mucho menor, mientras que para
del Microprocesador, es muy alto en la actualidad.
Se puede observar en las gráficas # 2 y 6, que la principal diferencia entre ambos radica en
la ubicación del registro de trabajo, que para los PIC’s se denomina W (Working Register),
y para los tradicionales es el Acumulador (A).