Está en la página 1de 13

1

1


MICROCONTROLADOR PIC 16 F 628 A
PROF: Ariel Caccia Rev. 2014-0

INTRODUCCION GENERAL.
MICROCONTROLADOR:
Es un dispositivo electrónico (circuito integrado) programable, con todos los componentes de
un computador.
Se emplea para controlar el funcionamiento de una tarea determinada, gracias a su tamaño
reducido posee la ventaja de poder ser ubicado en el dispositivo a gobernar, por ese motivo se
lo denomina controlador incrustado (embedded controller).
Un microcontrolador es un computador completo con prestaciones limitadas, contenido
dentro de un chip y se destina generalmente a gobernar una sola tarea.

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPROCESADOR:
Un microprocesador, es un sistema abierto, con el que puede construirse un computador,
pudiéndose ampliar el sistema modularmente, mientras que el microcontrolador es un sistema
cerrado formando un computador en sí mismo, y de prestaciones limitadas que no se pueden
modificar.
ESTRUCTURA DE UN SISTEMA BASADO EN MICROPROCESADOR









PERIFERICOS PERIFERICOS
Los microcontroladores, disponen de distintos bloques esenciales como la CPU, memoria de
datos, memoria de programa, clock (reloj), periféricos de entrada / salida entre otros.
MICRO.
BUS DE DATOS
BUS DE CTRL.
MICROPROC.
MEM.
DE PROG.
(ROM)
MEM.
DE DATOS
(RAM)

INTERFASE1 INTERFASE2

BUS DE DIRE.
2

2











La ventaja del microcontrolador es que no está compuesto por varios bloques ( varios
circuitos integrados), teniendo menor posibilidad de falla.

ARQUITECTURA BASICA DE UN MICROCONTROLADOR

Inicialmente, se utilizo la arquitectura clásica de VON NEUMANN, que se caracteriza
por disponer de una sola memoria principal, donde se almacenan datos e instrucciones de
forma indistinta.
En la actualidad, surge la arquitectura HARVARD, que dispone de 2 memorias distintas,
una que contiene solo instrucciones y la otra solo datos. Ambas disponen de sus respectivos
buses de acceso y es posible realizar operaciones de lectura / escritura simultáneamente en
ambas memorias.

ARQUITECTURA DE VON NEUMANN





La longitud de la memoria, está fijada por los 8 bits del bus, si el microcontrolador quiere
acceder a un dato o instrucción con longitud mayor de 8 bits, deberá hacer varios accesos.
Microcontrolador
Periféricos Periféricos
CPU MEMORIA DE
PROGRAMA Y
DATOS
8 BITS
3

3


ARQUITECTURA HARVARD






Otra desventaja de la arquitectura Von Neumann, es que limita la velocidad del CPU ya que no
se puede buscar en la memoria, una nueva instrucción antes de que finalicen las transferencias
de datos que pudieran resultar de una instrucción anterior.

CPU: Es el elemento más importante del microcontrolador, y determina sus principales
características, tanto a nivel hardware como software. Se encarga de direccionar la memoria
de instrucciones, recibir el código de operación de la instrucción en curso, su decodificación y
la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos
y el almacenamiento del resultado.
MICROPROCESADOR HIPOTETICO ELEMENTAL










ALU: Generalmente tiene 2 entradas, una recibe los datos de un registro llamado
acumulador y la otra denominado registro de datos. Dependiendo de la orden que reciba a
través de la línea de control, sumara, restara u operara lógicamente las 2 entradas,
almacenando siempre el resultado en el acumulador.
MEMORIA DE
PROGRAMA
(ROM)
MEMORIA DE
DATOS
(RAM)
CPU
8 bits 8 bits
ALU
ACUMULADOR
PC
REGISTRO DE DIRECCIONES
UNIDAD
DE CONTROL
DECODIFICADOR DE
INSTRUCCIONES
REGISTRO DE
DATOS
4

4



ACUMULADOR: Es el registro principal del microprocesador donde se guardan uno de
los datos antes de la operación a realizar y luego el resultado de dicha operación.
Este acumulador es utilizado por un gran número de instrucciones.

REGISTRO DE DATOS: Es un almacén temporal de los datos que llegan o se van del
microprocesador, es decir cuando una instrucción llega al microprocesador, el numero binario
que la representa permanece en este registro durante el tiempo de decodificación.
De la misma forma, un dato que venga a ser sumado al contenido del acumulador,
estará presente en el registro de datos durante toda la operación de la suma.

REGISTRO DE DIRECCIONES: Es un almacén temporal que guarda la dirección de la
posición de memoria de los datos que intervienen en la operación.


CONTADOR DE PROGRAMA (PC): Controla la secuencia en que se ejecutan las
instrucciones. Normalmente 0,1,2,3,……,A,B,C etc... En cualquier momento este indicador
mostrara la dirección de memoria donde deberá sacarse el siguiente byte de información, que
podrá ser un operando o una instrucción.


DECODIFICADOR DE INSTRUCCIONES: Cuando se saca una instrucción de la memoria
se sitúa en el registro de datos y se decodifica en este circuito que examina el código
correspondiente a la instrucción y determina que operación es la que tiene que realizar el
microprocesador.


UNIDAD DE CONTROL: Cuando recibe la señal o señales generadas por el
decodificador de instrucciones, la unidad de control se encarga de generar todas las señales de
control necesarias para realizar la operación determinada por la instrucción.
También determina la secuencia en la que se deberán realizar las diferentes
operaciones de una instrucción.

5

5



SET DE INSTRUCCIONES: Es el conjunto de instrucciones que acepta el
microprocesador o microcontrolador para cumplir órdenes especificas.




EJEMPLO GENERICO:

MNEMONICO
(Instrucciones) DESCRIPCION CODIGO DE OPERACIÓN

LDA CARGA ACUMU. 0X86
LADOR CON MEMO.
RIA.
ADDA SUMA ACUMU. 0X8B
LADOR Y MEMO.
RIA.

BRK INTERRUPCION 0XA9
OBLIGADA.
(BREAK)






6

6


BUSQUEDA Y EJECUCION DE UN PROGRAMA

El microprocesador es secuencial. El proceso de ejecución de una instrucción se repite
indefinidamente. Para ello el programa debe estar almacenado en la memoria
correspondiente y las instrucciones deben colocarse en el orden en que han de ejecutarse. El
microprocesador sacara de la memoria una a una las instrucciones y las ejecutara, es decir
mientras no se ejecuta una instrucción, no sacara la siguiente.
Cuando se pone en funcionamiento un procesador, se inicia un ciclo de búsqueda, y
cuando termina este ciclo se inicia automáticamente el de ejecución, y al terminar el de
ejecución se inicia el próximo de búsqueda y así sucesivamente.
Durante la fase de búsqueda, el microprocesador saca de la memoria el código de una
instrucción y lo decodifica. Durante la ejecución el microprocesador realiza la operación
definida por el código correspondiente a la instrucción.
En la fase de búsqueda, la CPU siempre hace el mismo trabajo, con lo cual el tiempo
que dura la operación es siempre fijo, esto no sucede en la fase de ejecución, las operaciones
realizadas dependerán del tipo de instrucción por lo que el tiempo de ejecución será variable.

EJEMPLO CON UN PROGRAMA SENCILLO
Realizar el diagrama de flujo y el código correspondiente a un programa que se
quieren sumar los números 7 y 10 (en hexa), dejando el resultado en el acumulador, utilizando
el set de instrucciones disponible.




(W es el acumulador)






Inicio
W 0x07
W W + 0x0A
Fin
7

7



CODIGO:

LDA 0x07 ; cargo el acumulador (reg. W) con el numero 7
(literal).

ADDA 0x0A ; sumo el literal A con el contenido del acumulador
(7), el resultado queda en el acumulador


BRK ; fin del programa.


CODIGO MAQUINA

LDA 0x07 1000 0110 (op code 86)
0000 0111 (operando 7)
ADDA 0x0A 1000 1011 (op code 8B)
0000 1010 (operando A)

BRK 1010 1001 (op code A9)







8

8












Posición memoria
0 1000 0110
1 0000 0111
2 1000 1011
3 0000 1010
4 1010 1001




FASE DE BUSQUEDA
Lo primero que hace el microprocesador, es transferir el contenido del PC al registro de
direcciones, para así seleccionar la primera instrucción. (Siempre el PC al iniciarse el sistema,
contendrá la dirección de la primera instrucción).
Una vez que la dirección hexadecimal 00 está en el registro de direcciones, se incrementa en 1
unidad el valor del PC, pasando a ser 01.
El contenido del registro de direcciones, se transfiere por el bus de direcciones, hasta la
memoria, la cual decodifica esta dirección y selecciona la celda 00.
A través del bus de datos, se transfiere al registro de datos, el contenido de la celda
seleccionada (LDA), luego esta instrucción pasa al decodificador de instrucciones y este
reconoce que se trata de una instrucción LDA y que su longitud es de 16 bits, por lo que
PC
Reg. De direcciones
Alu
Acumulador
Uc
Decodificador
de instrucciones
Reg. De datos

Adress bus
Data bus
9

9


enviara a la unidad de control las señales adecuadas para que genere los pulsos
correspondientes a la ejecución de esta instrucción.
FASE DE EJECUCION
Con el código de operación ya decodificado, la CPU sabe que es una instrucción LDA de 2
bytes, con lo cual para ejecutarla, deberá sacar de la memoria el byte siguiente y situarlo en el
acumulador. Recordemos que el PC se había incrementado en 1, en la fase de búsqueda, ahora
dicho valor pasara al registro de direcciones que a su vez lo manda a través del bus de
direcciones, hasta el decodificador de la memoria que encuentra la celda correspondiente con
el dato 07(pos 1).
El PC se vuelve a incrementar en 1 pasando el dato 07 a través del bus de datos, hasta el
registro de datos, y de este pasa al acumulador finalizando la ejecución de LDA.
De manera similar se realiza la fase de búsqueda de la instrucción ADDA que llegara al registro
de datos para pasar al decodificador de instrucciones que de esta manera interpreta que tiene
una longitud de 2 bytes preparando al mismo tiempo a la ALU.
Luego se ejecuta la instrucción trayendo el dato de la posición 3 de memoria al registro de
datos y realizando la suma correspondiente con el acumulador (operación realizada por la alu).
Guardándose el resultado en el acumulador.














10

10


MEMORIA DE PROGRAMA
En esta memoria, se almacenan todas las instrucciones del programa de control. Este
programa a ejecutar será siempre el mismo, por lo tanto debe estar grabado de forma
permanente. Esta característica de no volatilidad garantiza que se mantenga su contenido sin
alimentación también y con esto lograr que el programa no necesite volver a ser cargado en el
sistema cada vez que se utilice.
La información contenida en esta memoria debe ser grabada previamente mediante un equipo
físico denominado programador o grabador.
El tipo de memoria que se utilizara en nuestro microcontrolador se denomina ROM flash,
permitiendo esta, una grabación sencilla, rápida y con muy bajo consumo de corriente.
MEMORIA DE DATOS
En esta memoria, se almacenan los datos que se manejan en un programa. Estos datos varían
continuamente, por lo cual, la memoria debe ser de lectura y escritura. Se utiliza la del tipo
RAM, volátil, es decir que los datos se borran en caso de que desaparezca la alimentación.
Se cuenta también con una memoria no volátil denominada EEPROM de datos, con lo que ante
un corte de suministro en la alimentación, no se ocasiona la perdida de la información
guardada previamente.

CONCEPTO DE PROCESADOR SEGMENTADO O PIPELINE
Un procesador segmentado o pipeline, realiza simultáneamente la ejecución de una
instrucción y la búsqueda del código de operación de la siguiente instrucción, de esta manera
se puede ejecutar una instrucción en un ciclo.
Si tenemos en cuenta que para nuestro microcontrolador cada ciclo de maquina equivale a 4
ciclos de reloj, tendríamos por ejemplo:

PROGRAMA 1º CICLO 2º CICLO 3º CICLO 4º CICLO 5º CICLO

1 XXXXXXXXX Busca 1 Ejecuta 1
2 XXXXXXXXX Busca 2 Ejecuta 2
3 XXXXXXXXX Busca 3 Ejecuta 3
4 XXXXXXXXX Busca 4 Ejecuta 4





11

11


OSCILADOR

PC








Este sistema acompañado de una arquitectura Harvard, permite que las instrucciones se
ejecuten en un solo ciclo de máquina, salvo en el caso de las instrucciones de salto de
programa.
TIPOS DE PROCESADOR
Las CPU atendiendo al tipo de instrucciones que utilizan, pueden clasificarse en:
CISC: (COMPLEX INSTRUCTION SET COMPUTER). Son procesadores con un juego de
instrucciones complejo, su repertorio es elevado y algunas de ellas son muy sofisticadas. Estas
instrucciones complejas, algunos procesadores requieren de muchos ciclos de reloj para ser
ejecutadas.
SISC: (SPECIFIC INSTRUCTION SET COMPUTER). Estos procesadores, poseen un juego de
instrucciones específicos para cada aplicación. Están destinadas aplicaciones muy concretas.
RISC: (REDUCED INSTRUCTION SET COMPUTER). Son microprocesadores con un repertorio de
instrucciones reducido. Las instrucciones son muy simples y suelen ejecutarse en 1 ciclo de
máquina.
Los procesadores RISC, generalmente son con estructura pipeline y ejecutan todas las
instrucciones en aproximadamente el mismo tiempo. El PIC 16F628A es microcontrolador RISC
con 35 instrucciones.



Busca inst 1 (PC)
Ejecuta inst (PC-1) Busca inst 1 (PC+1)
Ejecuta inst (PC)
Busca inst 1 (PC+2)
Ejecuta inst (PC+1)
CRONOGRAMA DE TIEMPO DE UN PROCESADOR SEGMENTADO
PC PC+1 PC+2
12

12


ARQUITECTURA ORTOGONAL
En un microprocesador con arquitectura ortogonal, una instrucción, puede utilizar cualquier
elemento de la arquitectura como fuente o destino.










ALU ALU






La principal diferencia entre ambos, radica en la ubicación del registro de trabajo, que para los
PIC se denomina REGISTRO W y para los tradicionales se denomina acumulador.
En los microprocesadores tradicionales, todas las operaciones se realizan sobre el acumulador,
la salida de este, se conecta a una de las entradas de la ALU, o sea que siempre será uno de los
operandos de cualquier instrucción.
Luego, la salida de la ALU va solamente a la entrada del acumulador, dejando siempre el
resultado en este.
En los PIC, la salida de la Alu puede ir al registro W y también a la memoria de datos, así el
resultado puede depositarse en uno de estos 2 lugares.
Mem de
datos
ACUMULADOR
W
Mem de
datos
Microprocesador
Tradicional.
Microcontrolador
Pic .
13

13


La ventaja de esta arquitectura, es que se ahorra una buena cantidad de instrucciones, ya que
el resultado de cualquier instrucción que opere con la memoria, puede dejarse en la misma
posición de dicha memoria o en el registro W