Está en la página 1de 90

Microprocesadores y

Microcontroladores

Microprocesadores - Introducción

Ing. Daniel Galarza Q.


Introducción
• El microprocesador (𝜇𝑃) es la unidad de proceso fundamental de un
tipo de computador conocido como microcomputador (𝜇𝐶)
• El 𝜇𝑃 es un circuito integrado LSI con dimensiones reducidas pero de
gran complejidad.
• Posee todas las características de programabilidad presentes en
computadoras grandes.
• Con la aparición del 𝜇𝑃 se han creado nuevos componentes, técnicas,
y aplicaciones que han permitido la solución de problemas de
ingeniería.
• Antes de la aparición del 𝜇𝑃 el uso de computadores estaba
destinado para aplicaciones muy especializadas.

Ing. Daniel Galarza Q.


• EL 𝜇𝑃 puede presentarse como un recurso cuya versatilidad y potencia
supera la de cualquier dispositivo electrónico digital.
• Las principales razones de confirmarlo como versátil recaen en tres
factores fundamentales:
• Son de bajo costo y la posibilidad de ser programados permiten su inclusión en una
gran variedad de aplicaciones
• Su uso en el diseño de sistemas digitales disminuye en forma significativa el número
de componentes necesarios.
• El tiempo de ingeniería empleado en el desarrollo de sistemas se acorta en forma
drástica
• En la actualidad todos los sistemas cuya complejidad esté por debajo del
nivel de minicomputadores, se diseñan en base a 𝜇𝑃s

Ing. Daniel Galarza Q.


Historia del Computador - Precursores del
computador moderno
• Blaise Pascal (1623 - 1662) diseña en el siglo XVII (1642) una calculadora
mecánica basada en rodamientos dentados con engranajes para sumar y restar
• Gottfried Wilhelm Leibniz (1676-1716) desarrolló una versión de la calculadora
más eficiente y precisa.
• Realizaba sumas, restas multiplicaciones y divisiones
• Joseph Marie Jacquard (1752-1834) introdujo el concepto de almacenamiento
para el control de cálculo.
• Tenía un diseño de telar automático que utilizaba placas delgadas perforadas para
seleccionar un hilo de tela de acuerdo con el patrón de tejido
• Charles Babbage (1792 - 1871) y Augusta Ada Byron inventan la máquina
diferencial que tenía una estructura programable.
• Herman Hollerit en 1880 presenta el diseño de tarjetas perforadas para procesar
datos.
• Los datos eran interpretados por sensores eléctricos.

Ing. Daniel Galarza Q.


El computador Digital
• George Boole propone la fusión de la lógica matemática basándose en la
lógica de Aristóteles de verdadero (1) y falso (0)
• Con esto se crea la base de la sintaxis de los programas de computación actuales
• Claude Elwood Shannon entrega una investigación sobre la teoría de
conmutación usando la proposición de Boole
• Los primero sistemas digitales se crean usando válvulas de vacío como
componentes básicos haciendo uso como lógica, el álgebra de Boole.
• La primera generación de computadoras usó válvulas de vacío
• Creación de la computadora gigante ENIAC (Electronic Numerical Integrator
and Calculator)

Ing. Daniel Galarza Q.


Primera Generación
• El ENIAC fue el primer computador
programable
• Se alojaba en un gabinete de 30 metros
de altura y 1 metro de profundidad.
• Constituido por 18000 tubos de vacío
• Consumía 150 KW
• Necesitaba toneladas de equipos de aire
acondicionado para evitar el
sobrecalentamiento
• Usaba la arquitectura Harvard que usa
unidades de memoria separadas para los Computador ENIAC
datos e instrucciones
Ing. Daniel Galarza Q.
• La arquitectura de ENIAC usa distintos buses para para la transferencia de datos e
instrucciones.
• Se usaban acumuladores para almacenar operandos y dos unidades aritméticas
para ejecutar divisiones, productos y extracción de raíces cuadradas.
• La operación y sincronización global del sistema la realizaba la unidad de control.
• La unidad de almacenamiento estaba constituida por tambores magnéticos que
podía almacenar 20 números decimales de 10 dígitos
• El programa en lenguaje de máquina se realizaba con cableado externo
• Los datos se introducían por medio de tarjetas perforadas.
• Una operación de suma lo realizaba en 200 us y una multiplicación en 2.8 ms.

Ing. Daniel Galarza Q.


Estructura del computador ENIAC
Ing. Daniel Galarza Q.
• Se crearon otras megacomputadoras como el Colossus en 1943 y el
Hardvard Mark 1.
• John Von Neuman (1903 - 1957) introdujo el concepto de máquina de
programa almacenado que sentó las bases del computador.
• Presentó el primer computador que funcionaba con el programa almacenado
en memoria EDVAC( Electronic Discrete Variable Computer) basado en una
arquitectura que usaba memoria común para datos e instrucciones
• En 1950 el computador abandonó los centros académicos y de
investigación para pasar a ser una máquina comercial.
• UNIVAC 1 fue la primera en operar comercialmente entregadas por Sperry
Rand Corporation e IBM.
• Luego le precedieron las UNIVAC II, la UNIVAC 1100 y la UNIVAC 1103.

Ing. Daniel Galarza Q.


Segunda Generación
• IBM también sacó los modelos 604 y 701 con un costo de casi un millón de
dólares.
• Estos computadores fueron programados con lenguajes de máquina.
• No tenían sistema operativo
• La velocidad máxima era de 40 mil operaciones por segundo.
• La segunda generación usó como base los transistores.
• El transistor ofreció un dispositivo amplificador y conmutador de estados
con menores dimensiones, precio más bajo y una mejor eficiencia que los
tubos de vacío.
• Incluso las máquinas se actualizaron a un menor precio, mayor
confiabilidad y menor consumo de energía
• Con transistores discretos podía realizar hasta 200 mil operaciones por
segundo

Ing. Daniel Galarza Q.


Tercera Generación: Circuitos Integrados
• Las tarjetas de circuitos digitales que usaban transistores tenían un proceso
tedioso y difícil para su fabricación.
• En 1959 se fabrica el primer CI con la tecnología de la microelectrónica.
• En 1965 las computadoras hacen uso de esta tecnología así promoviendo la
tercera generación de computadores.
• Los CI permitieron la reducción del costo y las dimensiones de las máquinas
que usaban semiconductores
• En esta generación IBM lanzó el sistema 360 que es el más destacado de
esta generación
• El 360 de 1960 incorporaba tecnología de circuitos integrados y garantizó el dominio
en el setenta por ciento del mercado por parte de IBM.

Ing. Daniel Galarza Q.


• En 1965 IBM lanzó cinco modelos del sistema 360.
• Los modelos fueron el 30, 40, 50, 65 y 75, los cuáles se adaptaron de mejor manera a
los usuarios y mejoraron los requerimientos de procesador.
• El 360 fue diseñado de modo que un programa determinado pudiese ser
ejecutado por cualquiera de los modelos.
• El modelo 75 poseía ya una memoria máxima de 512Kbytes
• A estos modelos ya se los consideraron como minicomputadores.
• El PDP – 8 fabricado por la empresa DEC dio una solución al altísimo costo
de la 360
• Llegó a costar hasta 16000 dólares que era una fracción de los cientos de miles que
costaba la 360

Ing. Daniel Galarza Q.


Cuarta Generación: Microprocesadores
• La transición hacia esta generación no la distingue la introducción de
un nuevo computador.
• Está transición ocurre cuando aparece la tecnología LSI (Integración a Larga
Escala) resultado de la densidad de integración de circuitos digitales.
• Esta tecnología condujo a la fabricación de dispositivos que tenían un
encapsulamiento de decenas de miles de interruptores digitales.
• Cada año a partir de la década de del 60 se duplicaba la cantidad de
interruptores contenidos en un CI.
• Gordon Moore, uno de los fundadores de INTEL predijo el
comportamiento de fabricación de chips de memoria, hoy esta es
conocida como la ley de Moore.
• Cada dos años se duplica el número de transistores en un microprocesador.

Ing. Daniel Galarza Q.


• El perfeccionamiento en las técnicas de integración permitió la
construcción de sistemas procesadores más pequeños.
• Con menor duración del ciclo de instrucción y costo más bajo.
• En 1971 el microprocesador es inventado por una modesta empresa de
nombre INTEL, hasta entonces solo fabricaba dispositivos de memoria.
• Las investigaciones para dispositivos de menor tamaño y bajo consumo
resultó en la creación de la tecnología de integración a muy grande escala
(VLSI)
• El primer microprocesador Pentium alojaba cerca de tres millones de
transistores en el encapsulado.
• Actualmente el i9 posee un total de 2600 millones de transistores.
• Uno de los primeros microprocesadores fue el 4004 dedicado para
desarrollo de sistemas electrónicos de cálculo

Ing. Daniel Galarza Q.


• En 1971 se crea el microprocesador 8008 que poseía 3500 transistores y una
memoria de 16 Kbytes.
• En 1974 aparece el primer microprocesador de segunda generación, este fue
denominado 8080.
• Fabricado con 6000 transistores y tecnología PMOS.
• Además compatible con los programas del 8008 y un espacio de memoria de 64Kbytes
• Podía ser acoplado con componentes de la familia lógica TTL
• Con esto la mayoría de compañías que producía Cis se apresuraron para fabricar
sus propios microprocesadores.
• En 1977 Intel introduce el microprocesador 8085 como una versión mejorada del
8080
• El 8085 formó parte de la tercera generación de microprocesadores además del
MC6802 de Motorola y el Z80 de Zilog, todos siendo procesadores de 8 bits.

Ing. Daniel Galarza Q.


• En 1976 aparece el primer microcomputador de propósito general llamado Apple
I.
• Modelo inicial de una empresa de fabricación de microcomputadoras conocida como Apple
Computer Inc y creador de las computadoras MAC.
• Con esto aparecieron ya computadoras domésticas y de oficina de diferentes
marcas como el MITS Altair 8800 (8080), Atari 400 (R6502B) y el Apple II (6502)
• Con velocidades que superaban los 3MHz y una capacidad de memoria de 64Kbytes.

Microcomputador APPLE II Ing. Daniel Galarza Q.


Quinta Generación: Tecnología VLSI
• A medida que los computadores evolucionaban hacia máquinas de
menores dimensiones y con alta potencia de procesamiento, el software
devino en un factor para medir el desempeño del sistema.
• Se pensó en la creación de un nuevo microprocesador debido a la
complejidad de nuevos programas de procesamientos de datos, como
procesadores de palabra.
• Estos exigían una memoria superior a 64Kbytes
• En abril de 1978 INTEL libera el 8086, un microprocesador de 16 bits de
gran potencia construido con 29000 transistores y tecnología HMOS.
• Luego en 1979, aparece el 8088 compatible con el 8086 que reduce el
costo de producción y se adapta al primer IBM PC
• El 8086 ejecuta una suma 3.25 veces más rápido que el 8085

Ing. Daniel Galarza Q.


• El 8086 y el 8088 pueden considerarse los primeros
microprocesadores modernos
• Estos fueron evolucionando hasta disponer de numerosos
procesadores internos que ejecutan tareas independientes.

Características de los microprocesadores Intel


Ing. Daniel Galarza Q.
Hardware Básico de un Sistema
Computacional

Estructura básica simplificada de un computador


Ing. Daniel Galarza Q.
Sistema Básico Computacional
• Un computador es un sistema digital que resulta de la combinación de:
• Una unidad secuencial sincrónica de control programable
• Una unidad para la ejecución de operaciones lógicas aritméticas
• Una sección de memoria
• El sistema es capaz de realizar una tarea determinada por medio de una
secuencia de micro operaciones elementales determinada por la ejecución
de un programa.
• La unidad de control es programable
• Recibe un programa en forma de una sucesión de instrucciones almacenadas con
antelación en la memoria del sistema
• Las instrucciones indican a la sección de control que micro operaciones debe realizar
para la ejecución de cada instrucción particular.

Ing. Daniel Galarza Q.


• La sección de cálculo y la unidad de control se agrupan en un bloque
único, el cual se denomina unidad central de proceso o CPU.
• El modelo de Von Newmann propone estos componentes básicos del
computador:
• La Unidad Central de Proceso (CPU)
• La unidad Lógica Aritmética (ALU)
• La unidad de Control (CU)
• La Memoria
• La Unidad de Entrada/Salida, y
• El Generador de Reloj

Ing. Daniel Galarza Q.


Unida Central de Proceso
• Es la esencia del sistema
• Controla la interpretación y ejecución de las instrucciones y todas las acciones
que realice el computador
• Trabaja bajo la dirección del programa almacenado en memoria en forma de una
secuencia de instrucciones
• Toda CPU está compuesta de la Unidad Lógica Aritmética y la Unidad de Control
• La ALU es la encargada del procesamiento de los datos de origen externo e
interno.
• La mayor parte de cómputos con los datos son hechos a través de la unidad de
control
• Las operaciones aritméticas y lógicas requeridas por la instrucción son ejecutadas
por la ALU

Ing. Daniel Galarza Q.


• Las operaciones se realizan con lógica programada que incluye suma,
sustracción, multiplicación y división.
• También se realizan las funciones lógicas: AND, OR, NOT, XOR,
desplazamientos y rotaciones.
• Los operandos necesarios así como el resultado son almacenados en
registros internos de la CPU.
• Los registros internos pueden conectarse a la entradas de la ALU.
• Dentro de la CPU existen también un grupo de registros de propósito
específico.

Ing. Daniel Galarza Q.


Unidad de Control
• Dirige la secuencia de operaciones del sistema
• Controla la búsqueda, transferencia a la CPU, decodificación y ejecución de
las instrucciones del programa almacenado en la memoria del sistema.
• Según como se interprete la instrucción, la CU envía señales de control
internas que sincronizan la transferencia de datos entre registros, y la ALU.
• Genera señales de control externas dirigidas a las restantes unidades del
sistema.
• La CU también controla el flujo de datos por las líneas de interconexión del
sistema e interpreta las señales de control que llegan del CPU.

Ing. Daniel Galarza Q.


Memoria
• Contiene las instrucciones del programa que debe procesar la CPU.
• Los datos necesarios para la ejecución del programa y los resultados de la
ejecución también son almacenados en la memoria.
• El CPU debe sincronizar la transferencia de datos desde y hacia la unidad de
memoria del computador.
• Una memoria puede interpretarse como un arreglo de biestables organizados en
celdas de 1, 4, 8 o 16 bits
• Cada una de las celdas tiene una dirección específica.
• Existen diferentes tipos de memoria de acuerdo con el tipo de acceso y la
tecnología usada en la fabricación.
• La memoria principal en computadores es de tipo de acceso aleatorio (RAM)
• En estos dispositivos, el almacenamiento el tiempo de acceso a una posición determinada es
independiente de la localización del dato.
• El tiempo que espera el procesador es el mismo para cualquiera de las 1024 posiciones.

Ing. Daniel Galarza Q.


Unidad de entrada/salida
• Representan el canal de comunicación del computador con el mundo
exterior.
• A través de las E/S se intercambia información con dispositivos
periféricos conectados al computador.
• Los datos y comandos provenientes de un teclado llegan a la CPU
desde la unidad de entrada, en forma de un código interpretable por
la CPU.
• Los resultados de la ejecución de un programa pueden ser dirigidos a
una impresora por medio de la unidad de salida.

Ing. Daniel Galarza Q.


Generador de reloj
• Constituye la base de tiempo maestra del sistema.
• La CU la utiliza para sincronizar la secuencia de operaciones del
computador
• Genera todas las señales necesarias para la transferencia interna y externa de
información y para el funcionamiento de la ALU.
• La comunicación entre la unidad central de proceso y las restantes
unidades del computador se realiza por líneas de interconexión que se
denominan buses.
• Los buses se distinguen por el tipo de información que circula por estos.
• Un bus es una representación de un grupo de líneas independientes que
tienen funciones comunes.
• Existen tres tipos de buses: direcciones, datos y control

Ing. Daniel Galarza Q.


• Por el bus de direcciones circulan las direcciones de la fuente o destino de
la información que se transfiere.
• El bus de control lo forman las señales necesarias para el control de la
máquina
• El intercambio de información con los periféricos lo hace el bus de control.
• Por ejemplo, la entrada de reset y las salidas de lectura y escritura
• La ejecución de un programa implica la participación de todas las unidades
del computador.
• La CPU busca las instrucciones en la memoria, las decodifica y genera
señales de control del sistema
• Si el programa lo requiere, ejecuta operaciones aritméticas y lógicas.

Ing. Daniel Galarza Q.


Instrucciones del computador
• La ejecución de toda instrucción se realiza en dos fases
fundamentales:
• Búsqueda y ejecución
• Durante la fase de búsqueda, el computador obtiene la instrucción
almacenada en memoria y la traslada a la CPU para su posterior
decodificación

Fases de ejecución de una instrucción

Ing. Daniel Galarza Q.


• Al inicio de la fase de ejecución se realiza la decodificación de la
instrucción
• Luego se informa a la unidad de control la secuencia de
microinstrucciones que se debe realizar para la activación de las
señales internas y externas que permiten la ejecución propiamente
dicha.
• Durante la fase de ejecución, la instrucción va al interior del
procesador, culminada la fase de ejecución se inicia la búsqueda de la
instrucción siguiente.
• El tiempo que el CPU dedica al procesamiento de una instrucción
depende del tipo de instrucción.

Ing. Daniel Galarza Q.


• La cadena de bits que constituye la instrucción porta información vital
usada por la unidad de control para realizar con propiedad las tareas
fijadas por el programa.
• Se necesita una CPU con estructura interna muy compleja para el
procesamiento adecuado de la instrucción.
• El procesador necesita que el número de bits por instrucción sea
reducido.
• Para lograr esto se elimina algunas o todas las zonas del campo de dirección.
• Cada instrucción supone que ocupa 5 posiciones de una memoria de
celdas de 16 bits y se asume que la CPU es capaz de distinguir la
dirección de inicio de cada instrucción

Ing. Daniel Galarza Q.


a. Cuatro direcciones b. Tres direcciones c. Dos direcciones d. Una dirección e. Sin dirección
• Si es necesario romper la secuencia normal del programa para ejecutar una
instrucción en otra área de memoria, el computador dispone de una instrucción
de salto
• En el campo de dirección se especifica la dirección del salto.
• El efecto de la ejecución de tal instrucción es sustituir el contenido del contador
de programa por el campo de dirección.
• La reducción a una zona del campo de dirección de la instrucción fue uno de los
factores determinantes para el desarrollo del microprocesador, como un
dispositivo programable.
• Las instrucciones que no hacen referencia a la memoria del computador se
denominan instrucciones sin dirección.
Ing. Daniel Galarza Q.
Microprocesador Intel 8086
• Es uno de los primeros microprocesadores de 16 bits diseñados por
Intel
• Fueron el inicio y uno de los primero miembros de la arquitectura x86
• Encapsulado DIP de 40 pines
• Bus de direcciones de 20 bits: 1 Mbyte
• Bus de datos de 16 bits
• Conjunto de 89 instrucciones
• No contiene un coprocesador
• Tiene una cola de 6 bytes para instrucciones

Ing. Daniel Galarza Q.


• Tecnología HMOS. Canal N
• Voltaje de alimentación de 5V
• Velocidad de 5Mhz
• 14 registros de 16 bits
• 24 modos de direccionamiento
• Aritmética binaria o decimal, de 8 y 16 bits con o sin signo
• Interfaz de sistema compatible con multibus
• Tipos de datos: ASCII, BCD, enteros con signo, enteros sin signo y
cadenas (secuencia de bytes o palabras)

Ing. Daniel Galarza Q.


Arquitectura Interna del 8086

Arquitectura Interna del Intel 8086 Ing. Daniel Galarza Q.


Intel 8086

Distribución de Pines del Intel 8086

Ing. Daniel Galarza Q.


Ing. Daniel Galarza Q.
Ing. Daniel Galarza Q.
Ing. Daniel Galarza Q.
Direccionamiento de la memoria en el 8086
• El 8086 tiene registros de 16 bits y un bus de direcciones que le
permite direccionar 1Mb de RAM.
• Debe usar una técnica especial para poder direccionar un mega ya que el
máximo número que puede guardar un registro de 16 bits es 64k.
• Para superar este límite se utilizan dos registros para hacer referencia a una
dirección:
• Segmento
• Desplazamiento
• La dirección completa se calcula como:
• (16 x Segmento)+Desplazamiento = (10H x
Segmento)+Desplazamiento

Ing. Daniel Galarza Q.


• Realmente no se multiplica por 10H sino que se desplazan 4 bits a la
izquierda del registro de segmento
Segmento = XXXX0(Hex)
Deplazamiento = YYYY(Hex)+
--------------
Dirección = ZZZZZ (Hex)
• La dirección completa es de 20 bits, que es la longitud del bus de
direcciones.
• De esta manera es posible direccionar entre las direcciones:
[0 – FFFFF Hex]

Ing. Daniel Galarza Q.


• Cada segmento puede ser de hasta 64Kb de longitud y comienza en
una posición que es múltiplo de 16.
• Esta dirección se llama también párrafo del segmento
• Una dirección completa con sus dos componentes se expresa de la
siguiente manera:
[Segmento: Desplazamiento]
• Y también:
Segmento: [Desplazamiento]
• Este método de direccionamiento se denomina direccionamiento
segmentado

Ing. Daniel Galarza Q.


• Una dirección en memoria se puede expresar de distintas maneras.
• Por ejemplo las siguientes direcciones (en hexadecimal) son equivalentes:
100:50 = 1050 = 105:0 = 0:1050 = 10:950
• Esto implica que puede haber un gran número de posibilidades de
solapamiento de direcciones segmentadas.
• Algunas direcciones físicas pueden ser representadas por hasta (212 )
direcciones segmentadas.

Ing. Daniel Galarza Q.


Almacenamiento inverso de palabras
• A pesar de que la memoria del 8086 está direccionada en unidades de bytes de 8
bits, muchas operaciones introducen palabras de 16 bits.
• En la memoria, una palabra de 16 bits se almacena en dos bytes adyacentes de 8
bits.
• El byte menos significativo de la palabra se almacena en la posición de memoria
más baja, y el más significativo en la posición de memoria más alta.
• Debido a la apariencia inversa de este esquema de almacenamiento es
denominado algunas veces como “almacenamiento inverso de palabras”.
• Por ejemplo:

Ing. Daniel Galarza Q.


Recuperación y ejecución de instrucciones en
el 8086
• El ciclo de ejecución de las instrucciones de un programa consta de dos
fases.
• La primera fase consiste en la recuperación de una instrucción.
• La segunda fase es la ejecución de la misma.
• Para optimizar este proceso, el microprocesador posee dos unidades
separadas:
• Para recuperación de instrucciones: BIU (Bus Interface Unit)
• Para ejecución de instrucciones: EU (Execution Unit)
• Existe una comunicación entre la BIU y la EU
• Cada instrucción recuperada por la BIU pasa a la EU para que la ejecute.
• Mientras se ejecuta la instrucción, la BIU recupera la siguiente en la memoria, que
será la que se ejecute a continuación.

Ing. Daniel Galarza Q.


• La BIU lleva una cola de las 4 instrucciones que le siguen a la que se
ejecuta en la EU
• La cola se va cargando mientras la EU está ejecutando una instrucción.
• Cuando la EU deja de ejecutar la instrucción pasa a leer la primera de
la cola y la ejecuta
• Pero si la instrucción que se ejecutó es una instrucción de salto, la cola se
vacía y la BIU recupera la primera instrucción de la dirección especificada en
la instrucción de salto y se la pasa a la EU para que la ejecute.
• Mientras tanto prepara la cola con las instrucciones que siguen.

Ing. Daniel Galarza Q.


Registros Internos del 8086
• Los registros internos son 14, todos de 16 bits.
• Los bits se numeran de derecha a izquierda.
• El bit 0 es el menos significativo.

• Existen:
• Cuatro registros de datos o almacenamiento temporal
• AX = Acumulador
Es el registro principal utilizado en las operaciones aritméticas
• BX = Base
Se utiliza para indicar un desplazamiento (Offset)

Ing. Daniel Galarza Q.


• CX = Contador
Se utiliza para contador en los ciclos y en las operaciones de tipo repetitivo
• DX = Dato
Se usa también en operaciones aritméticas
• Es posible referirse al byte superior (más significativo) o al byte
inferior (menos significativo) en los registros AX, BX, CX, DX

Ing. Daniel Galarza Q.


• Cuatro registros de segmento
• Contienen la dirección de comienzo de ciertos segmentos de memoria
• CS = Registro de segmento de código (code segment)
Contiene la dirección del segmento de código, es decir, las instrucciones del programa.
• DS = Registro de segmento de datos (data segment)
Contiene la dirección del segmento de datos, es decir el área de memoria donde se encuentran
los datos del programa.
• SS = Registro de segmento de pila (stack segment)
Contiene la dirección del segmento de pila.
• La pila es un espacio de memoria temporal que se utiliza para almacenar valores de 16 bits.
• ES = Registro de segmento extra (extra segment)
Contiene la dirección del segmento extra, que es un segmento de datos adicional que se utiliza
para superar la limitación de 64 Kb del segmento de datos y para hacer transferencia de datos
entre segmentos.

Ing. Daniel Galarza Q.


• Dos registros punteros de pila
• SS = Puntero de pila (stack pointer)
Contiene la dirección relativa al segmento de pila.
• BP = Puntero base (base pointer)
Se utiliza para acceder a los elementos de la pila.
• Dos registros índices
• Se utilizan como desplazamiento relativo a un campo de datos.
• SI = Índice fuente (source index).
• DI = Índice destino (destination index)
• Un registro puntero de instrucciones
• IP = Puntero de instrucción (Instruction pointer)
Contiene el desplazamiento de la próxima instrucción a ejecutarse.
En conjunción con el registro CS, indica la dirección completa de la siguiente instrucción a
ejecutar, es decir [CS:IP]

Ing. Daniel Galarza Q.


• Un registro de banderas (flags)
• Contiene información del estado y de control de las operaciones del
microprocesador.
• De los 16 bits del registro se utilizan solo 9 y cada uno de estos representa
una bandera.
• Existen:
• Seis banderas de estado
• Registran el estado del procesador, normalmente asociado a una comparación
o a una instrucción aritmética:
• CF – (Carry Flag) Bandera de acarreo
Indica acarreo en las instrucciones aritméticas.
• OF – (Overflow Flag) Bandera de desbordamiento aritmético

Ing. Daniel Galarza Q.


• ZF – (Zero Flag) Bandera de resultado cero o comparación igual.
• SF – (Sign Flag) Bandera de resultado o comparación negativa.
• PF – (Parity Flag) Bandera de paridad
Utilizada en la verificación de la transferencia de bytes entre dos componentes de la
computadora.
• AF – (Auxiliar Flag) Bandera auxiliar.
Indica si hay necesidad de ajuste en las operaciones aritméticas con números BCD.

• Tres Banderas de control


• Registran el modo de funcionamiento de la computadora
• DF (Direction Flag) Bandera de dirección
Controla la dirección (hacia adelante o hacia atrás) en las operaciones con cadenas de
caracteres incrementando o decrementando automáticamente los registros índices (SI y DI)

Ing. Daniel Galarza Q.


• IF (Interrupt Flag) Bandera de interrupciones
Indica si están disponibles o no las interrupciones de los dispositivos externos.
• TF (Trap Flag) Bandera de atrape
Controla la operación modo paso a paso (usada por el programa DEBUG).
• Las posiciones de las banderas dentro del registro son:

Ing. Daniel Galarza Q.


La unidad de control
• Es la encargada de decodificar las instrucciones almacenadas en la cola de
instrucciones y generar las señales de control necesarias para su ejecución.
• Ejemplo: Instrucción AND AX, CX realiza un AND lógico entre los registros AX y CX
almacenando el resultado en el registro AX.
• Señales de control:
• Poner el contenido del registro AX en el bus de datos de la ALU.
• Poner el contenido del bus de datos de la ALU en el primer registro temporario de la
ALU.
• Poner el contenido del registro CX en el bus de datos de la ALU.
• Poner el contenido del bus de datos de la ALU en el segundo registro temporario de
la ALU.
• Realizar la operación AND en la ALU.
• Poner el contenido del bus de datos de la ALU en el registro AX.

Ing. Daniel Galarza Q.


La cola de instrucciones
• Mientras la unidad de ejecución ejecuta las instrucciones, la unidad
de interfaz de bus está buscando la siguiente instrucción y las va
colocando en una cola de 4 instrucciones.
• De esta manera cuando la unidad de control termina la ejecución de una
instrucción no hace falta que la siguiente instrucción se busque en memoria,
sino se la toma de la cola de instrucciones.
• Este mecanismo no es eficiente si tenemos instrucciones de salto.

Ing. Daniel Galarza Q.


Modos de direccionamiento
• Modo registro
• El operando es un registro.
• Modo inmediato
• El operando es una constante.
• Modo directo
• El operando es una dirección efectiva (explícita)
• Modo registro indirecto:
• Similar al anterior pero la dirección efectiva está contenida en un registro (BX, BP, SI, DI)
• Modo relativo a base:
• La dirección efectiva se encuentra sumando un desplazamiento a BX o BP.
• Modo indexado directo:
• Igual al anterior usando SI o DI.
• Modo indexado a base
• Combinación de los dos anteriores.
• La dirección efectiva se calcula como la suma de un registro base, un registro índice y, opcionalmente, un desplazamiento.

Ing. Daniel Galarza Q.


Microcontroladores – Qué es un
microcontrolador?
• Circuito integrado programable que contiene todos los componentes de un
computador.
• Se emplea para controlar el funcionamiento de una tarea determinada.
• Debido a su reducido tamaño, suele ir incorporado en el propio dispositivo
al que gobierna
• Por ello se lo suele llamar controlador incrustado.
• En su memoria sólo reside un programa destinado a gobernar una
aplicación determinada.
• Sus líneas de entrada/salida soportan el conexionado de sensores y
actuadores del dispositivo a controlar.
• Todos los recursos complementarios disponibles tienen como única
finalidad atender sus requerimientos.

Ing. Daniel Galarza Q.


• Un microcontrolador es un computador completo, aunque de limitadas
prestaciones, que está contenido en el chip de un circuito integrado y se
destina a gobernar una sola tarea.
• Una vez programado y configurado, el microcontrolador solamente sirve
para gobernar la tarea asignada.
• Casi todos los periféricos del computador, desde el ratón o el teclado hasta
la impresora, son regulados por el programa de un microcontrolador.
• También son usados en electrodomésticos como lavadoras, hornos,
lavavajillas y de línea marrón como televisores, videos, aparatos musicales,
etc.
• También usados en campos electrónicos como instrumentación y
electromedicina.

Ing. Daniel Galarza Q.


Diferencia entre microprocesador y
microcontrolador
• El microprocesador es un circuito integrado que contiene un CPU.
• Esta está conformada por la unidad de control que interpreta las
instrucciones, y el Camino de Datos, que las ejecuta.
• Las patitas del microprocesador sacan al exterior las líneas de sus
buses de direcciones, datos y control, para permitir conectarle con la
memoria y los módulos de E/S.
• De esta manera puede configurar un computador implementado por varios
circuitos integrados.
• Un microprocesador es un sistema abierto porque su configuración es
variable de acuerdo con la aplicación a la que se destines.

Ing. Daniel Galarza Q.


• Por tanto:
• Un microprocesador es un sistema abierto con el que puede construirse un computador con
las características que se desee, acoplándole los módulos necesarios.
• Un microcontrolador es un sistema cerrado que contiene un computador completo y de
prestaciones limitadas que no se pueden modificar.
• Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener muy
potenciados todos sus recursos para poderse adaptar a las exigencias de las
diferentes aplicaciones.
• La potenciación supondría en muchos casos un despilfarro.
• Existen varios modelos de microcontroladores, desde los más sencillos hasta los
más poderosos.
• Es posible seleccionar capacidad de memorias
• Número de líneas de E/S.
• Potencia de los elementos auxiliares
• Velocidad de funcionamiento

Ing. Daniel Galarza Q.


Arquitectura interna
• Un microcontrolador posee todos los componentes de un computador, pero con características
fijas que no puede alterarse.
• Las partes principales de un microcontrolador son:
• Procesador
• Memoria no volátil para contener el programa
• Memoria de lectura y escritura para guardar los datos
• Líneas de EIS para los controladores periféricos:
• Comunicación paralelo
• Comunicación serie
• Diversas puertas de comunicación (buses)
• Recursos auxiliares:
• Circuito de reloj
• Temporizadores
• Perro Guardián (watchdog)
• Conversores AD y DA
• Comparadores analógicos
• Protección ante fallos de la alimentación
• Estado de reposo o de bajo consumo

Ing. Daniel Galarza Q.


Características más representativas del
microcontrolador
• El procesador
• El microcontrolador emplea la arquitectura Hardvard en el procesamiento de
instrucciones.
• Esto se hace para conseguir elevados rendimientos del procesamiento de instrucciones
• En la arquitectura Hardvard son independientes la memoria de instrucciones
y la memoria de datos y cada una dispone de su propio sistema de buses para
el acceso.

Arquitectura Hardvard
Ing. Daniel Galarza Q.
• La dualidad de Hardvard además de propiciar paralelismo, permite la
adecuación del tamaño de las palabras y los buses a los requerimientos
específicos de las instrucciones y los datos.
• El procesador de los modernos microcontroladores responde a la
arquitectura RISC (Computadores de Juego de Instrucciones Reducido)
• Posee un repertorio de instrucciones de máquina pequeño y simple
• La mayor parte de las instrucciones se ejecuta en un ciclo de instrucción
• Posee paralelismo implícito
• Consiste en la segmentación del procesador (pipe - line), descomponiéndolo en
etapas para poder procesar una instrucción diferente en cada una de ellas y trabajar
con varias a la vez.
• Esto aumenta el rendimiento del computador

Ing. Daniel Galarza Q.


Memoria de programa
• El microprocesador está diseñado para que en su memoria de programa se
almacenen todas las instrucciones del programa de control.
• No hay posibilidad de utilizar memorias externas de ampliación.
• Como el programa a ejecutar es siempre el mismo, debe estar grabado de
forma permanente.
• Los tipos de memoria adecuados para soportar esta función admiten cinco
versiones diferentes:
• ROM con máscara
El programa se graba en el chip durante el proceso de su fabricación mediante el uso de
máscaras.
Se aconseja usar este tipo de memorias cuando se precisan series muy grandes.

Ing. Daniel Galarza Q.


• EPROM
La grabación en esta memoria se realiza mediante un dispositivo físico gobernado desde un computador
personal, un grabador.
En la superficie del chip, existe una ventana para que pueda ser sometido a rayos ultravioletas, lo cual borra
el programa.
El coste unitario de estas es elevado.
• OTP (Programable una vez)
Solo se puede grabar una vez, utilizando el mismo procedimiento de la memoria EPROM.
No puede ser borrada.
Posee un bajo precio y sencillez pero es recomendable para prototipos finales y series de producción
cortas.
• EEPROM
La grabación es similar a las memorias OTP y EPROM, pero el borrado es más sencillo al poderse efectuar
de la misma forma que el grabado, osea eléctricamente.
Sobre el mismo sócalo grabador puede ser programada y borrada tantas veces como se quiera.
El PIC16C84 dispone de 1K palabras de memoria EEPROM para contener instrucciones y también tiene
algunos bytes de memoria de datos para evitar la pérdida de información cuando se quite la alimentación.

Ing. Daniel Galarza Q.


• FLASH
Es una memoria no volátil.
Es de bajo consumo.
Se puede escribir y borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor
capacidad que estas últimas.
El borrado sólo es posible con bloques completos y no se puede realizar sobre posiciones
concretas.
En las FLASH se garantizan 1.000 ciclos de escritura – borrado.
Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo
largo de la vida del producto.
Sustituye a la memoria EEPROM debido a sus mejores prestaciones para contener instrucciones.
Microchip comercializa dos microcontroladores prácticamente iguales que contienen memoria
EEPROM y FLASH
Estos son el PIC 16C84 y el PIC 16F84.

Ing. Daniel Galarza Q.


Memoria de Datos
• Se trata de la memoria RAM interna, la cuál maneja datos de los
programas variables que pueden ser escritos o leídos continuamente.
• La memoria RAM es la más adecuada para datos aunque sea volátil.
• Existen microcontroladores que usan para datos una memoria de
lectura y escritura no volátil de tipo EEPROM.
• De esta forma, un corte en el suministro de la alimentación no ocasiona la
pérdida de información.
• El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64 bytes de memoria
EEPROM para contener datos.

Ing. Daniel Galarza Q.


Líneas de E/S para los controladores
periféricos
• Sirven para soportar su comunicación con los periféricos externos que
controla.
• Las líneas de E/S que se adaptan con los periféricos manejan
información en paralelo y se agrupan en conjunto de ocho
• Reciben el nombre de Puertas.
• Hay modelos que soportan la comunicación serie
• Otros modelos disponen de conjuntos de líneas que implementan puertas de
comunicación para diversos protocolos, como el USB, etc.

Ing. Daniel Galarza Q.


Recursos Auxiliares
• Cada modelo incorpora una diversidad de complementos que
refuerzan la potencia y flexibilidad del dispositivo.
• Entre los recursos más comunes podemos ver:
• Circuito de reloj: Encargado de generar los impulsos que sincronizan el
funcionamiento de todo el sistema.
• Temporizadores: Orientados a controlar tiempos.
• Perro Guardián (watchdog): Destinado a provocar reinicialización cuando el
programa queda bloqueado.
• Conversores AD y DA, para poder recibir y enviar señales analógicas.
• Comparadores analógicos, para verificar el valor de una señal analógica.
• Sistema de protección ante fallos de la alimentación.

Ing. Daniel Galarza Q.


La Familia del PIC 16F877
• El microcontrolador PIC16F877 de Microchip pertenece a una gran
gama de microcontroladores de 8 bits.
• Tienen las siguientes características generales que los distinguen de
otras familias:
• Arquitectura Harvard
• Tecnología RISC
• Tecnología CMOS
• Es un dispositivo altamente eficiente en el uso de la memoria de
datos y programa.
• Posee una buena velocidad de ejecución

Ing. Daniel Galarza Q.


• Microchip ha dividido sus microcontroladores en tres grandes subfamilias
de acuerdo al número de bits en su bus de instrucciones:

• Ventajas principales:
• Los microcontroladores que produce Microchip cubren un amplio rango de
dispositivos cuyas características pueden ser:
• Empaquetado (desde 8 patitas hasta 68 patitas)
• Tecnología de la memoria incluída (EEPROM, ROM, Flash)
• Voltajes de operación desde 2.5 V hasta 6V.
• Frecuencia de operación hasta 20MHZ

Ing. Daniel Galarza Q.


Empaquetados
• Se pueden encontrar paquetes tipo PDIP (Plastic Dual In Line Package)
• PLCC (Plastic Leaded Chip Carrier) y
• QFP (Quad Flat Package)

Ing. Daniel Galarza Q.


Ing. Daniel Galarza Q.
Nomenclatura
• En el nombre específico del microcontrolador pueden aparecer
algunas siglas como se muestra:

• Las letras adicionales de la nomenclatura especifican los rangos de


voltaje estándar y extendido manejados por los dispositivos

Ing. Daniel Galarza Q.


Oscilador
• Los PIC de rango medio permiten hasta 8 diferentes modos para el
oscilador.
• El usuario puede seleccionar alguno de estos 8 modos programando 3
bits de configuración del dispositivo denominados:
• FOSC2
• FOSC1
• FOSC0
• En algunos de estos modos el usuario puede indicar que se genere o
no una salida del oscilador (CLKOUT) a través de una patita de
Entrada/Salida

Ing. Daniel Galarza Q.


• Los modos de operación se muestran en la siguiente lista:
• LP – Baja frecuencia (y bajo consumo de frecuencia)
• XT – Cristal/Resonador cerámico externos, (Media frecuencia)
• HS – Alta Velocidad (y alta potencia) Cristal/resonador
• RC – Resistencia/Capacitor externos (mismo que EXTRC con CLKOUT)
• EXTRC – Resistencia/Capacitor externos
• EXTRC – Resistencia/Capacitor externos con CLKOUT
• INTRC – Resistencia/Capacitor internos para 4MHz
• INTRC – Resistencia/Capacitor internos para 4MHz con CLKOUT
• Los tres modos LP, XT y HS usan un cristal o resonador externo, la
diferencia es la ganancia de los drivers internos, lo cual se ve reflejado en el
rango de frecuencia admitido y la potencia consumida.

Ing. Daniel Galarza Q.


• En la tabla se pueden apreciar los rangos de frecuencia así como los
capacitores recomendados para un oscilador en base a cristal.

• Cristal externo
• En los tres modos mostrados en la tabla se puede usar un cristal o resonador
cerámico externo

Ing. Daniel Galarza Q.


• En la figura se muestra la conexión de un cristal a las patitas OSC1 y
OS2 del PIC.

• Circuito RC externo
• En los modos RC y EXTRC el PIC puede generar su señal oscilatoria basado en
un arreglo RC externo conectado a la patita OSC1

Ing. Daniel Galarza Q.


• Este modo solo se recomienda cuando la aplicación no requiera una
gran precisión en la medición de tiempos.
• Rangos
• La frecuencia de oscilación depende no sólo de los valores Rext y Cext, sino
también del voltaje de la fuente Vdd.

Ing. Daniel Galarza Q.


• Los rangos admisibles para resistencia y capacitor son:
• Rext: de 3 a 100Kohms
• Cext: Mayor de 20pF
• Oscilador externo
• Se puede conectar una seña generada mediante un oscilador externo a la
patita OSC1 del PIC.
• Para esto, el PIC deberá estar en uno de los 3 modos que admiten cristal (LP,
XT o HS)

Ing. Daniel Galarza Q.


• Oscilador interno de 4Mhz
• En el modo INTRC, el PIC usa un arreglo RC interno que genera una frecuencia de 4
MHz con un rango de error calibrable de ±1.5.
• Para calibrar el error de oscilación se usan los bits CAL3, CAL2, CAL1 y CAL0 del
registro OSCCAL.
• Calibración del oscilador interno
• El fabricante ha colocado un valor de calibración para estos bits en la última dirección
de la memoria de programa.
• Este dato ha sido guardado en la forma de una instrucción RETLW XX.
• Si no se quiere perder este valor al borrar el PIC primero se deberá leer y copiar.
• Esto para versiones EPROM con ventana
• Es buena idea escribirlo en el empaquetado antes de borrar la memoria.

Ing. Daniel Galarza Q.


Características generales del PIC16F877
• Estas características las comparte con el PIC16F873, el PIC16F874 y el
PIC16F876.
• CPU RISC
• Sólo 35 instrucciones que aprender
• Todas las instrucciones se ejecutan en un ciclo de reloj, excepto los saltos
que requieren dos
• Frecuencia de operación de 0 a 20MHz
• Hasta 9k x 14 bits de memoria Flash de programa
• Hasta 368 bytes de memoria de datos (RAM)
• Hasta 256 bytes de memoria de datos EEPROM

Ing. Daniel Galarza Q.


• Hasta 4 fuentes de interrupción
• Stack de hardware de 8 niveles
• Reset de encendido (POR)
• Timer de encendido (PWRT)
• Timer de arranque de oscilador (OST)
• Sistema de vigilancia Watchdog timer
• Protección programable de código
• Modo SEP de bajo consumo de energía

Ing. Daniel Galarza Q.


• Opciones de selección del oscilador
• Programación y depuración serie “In-Circuit” (ICSP) a través de dos patitas
• Lectura/escritura de la CPU a la memoria flash de programa.
• Rango de voltaje de operación de 2.0 a 5.5 volts
• Alta disipación de corriente de la fuente: 25mA
• Rangos de temeperatura: Comercial, Industrial y Extendido
• Bajo consumo de potencia:
• Menos de 0.6mA a 3V, 4MHz.
• 20 uA a 3V, 32 KHz.
• Menos de 1uA corriente de stand by

Ing. Daniel Galarza Q.


Periféricos
• Timer2: Contador/Temporizador de 8 bits con pre-escalador de 8 bits
• Timer1: Contador/Temporizador de 8 bits con pre-escalador
• Timer0: Contador/Temporizador de 8 bits con pre-escalador y post-
escalador de 8 bits y registro de periodo.
• Dos módulos de captura, comparación y PWM
• Convertidor Analógico/Digital de 10 bits, hasta 8 canales
• Puerto Serie Síncrono (SSP)
• Puerto Serie Universal (USART/SCI)
• Puerto Paralelo Esclavo (PSP): de 8 bits con líneas de protocolo

Ing. Daniel Galarza Q.


Diagrama de Bloques del PIC16F877
• En las siguientes figuras podemos tener una visión interna y externa
del chip

Disposición de pines del PIC16F877


Ing. Daniel Galarza Q.
Diagrama de bloques del PIC16F877
Ing. Daniel Galarza Q.
Descripción de la CPU
• La CPU es la responsable de la interpretación y ejecución de la
información (instrucciones) guardad en la memoria de programa.
• Muchas de las instrucciones operan sobre la memoria de datos.
• Para operar sobre la memoria de datos, se requiere también realizar
operaciones lógicas o aritméticas, por lo tanto se requiere usar la
ALU.
• La ALU controla los bits de estado (Registro STATUS)
• Los bits del registro se alteran dependiendo del resultado de algunas
instrucciones.

Ing. Daniel Galarza Q.


Registros de la CPU
• Registro PC
• Registro de 13 bits que siempre apunta a la siguiente instrucción a ejecutarse.
• Registro de instrucción
• Registro de 14 bits.
• Todas las instrucciones se colocan en él para ser decodificadas por la CPU antes de
ejecutarlas.
• Registro W
• Registro de 8 bits que guarda resultados temporales de las operaciones realizadas
por la ALU
• Registro STATUS
• Registro de 8 bits
• Cada uno de sus bits (denominados Banderas) es un indicador de estado de la CPU o
del resultado de la última operación.

Ing. Daniel Galarza Q.


• Z – Este bit se pone en 1 para indicar que el resultado de la última
operación fue cero, de lo contrario se limpia (=0)
• C – Bit de acarreo/préstamo de la última operación aritmética (en el
caso de resta, se guarda el préstamo invertido)
• CD – Acarreo/Préstamo proveniente del cuarto bit menos
significativo.
• Funciona igual que el bit C, pero para operaciones de 4 bits

Ing. Daniel Galarza Q.

También podría gustarte