Sie sind auf Seite 1von 59

U.T.N. - F.R.Re.

Arquitectura de Computadoras.

Assembler de Microcontroladores
PIC 16c84
Introducción.

Un microcontrolador es un circuito integrado programable


que contiene todos los elementos de una computadora, con
la diferencia que su capacidad es menor y generalmente se
lo destina a una tarea determinada.

Debido a su reducido tamaño se lo incorpora al propio


dispositivo que gobierna, esta característica le da el nombre
de “EMBEDDED CONTROLLER” (Controlador incrustado).
Un microcontrolador es un procesador “dedicado”.
Esto significa:

• Existe un solo programa cargado en memoria destinado a


gobernar una aplicación determinada.
• Sus líneas I/O soportan el conexionado de los sensores y
actuadores del dispositivo a controlar.
• Todos los recursos complementarios disponibles tienen como
unica función atender a los requerimientos del dispositivo.
• Una vez que se programa y configura el microcontrolador
solamente sirve para gobernar la tarea asignada.
Microprocesador – Microcontrolador
Diferencias

Un microprocesador es un sistema abierto con el que


puede construirse una computadora con las características
que se desee, utilizando los módulos necesarios.

Un microcontrolador es un sistema cerrado que en sí


es una computadora completa de prestaciones limitadas que
no se pueden modificar.
Arquitectura del microcontrolador.

1.- Procesador.
2.- Memoria no volátil para almacenar el programa.
3.- Memoria de Lectura / Escritura para guardar los
datos.
4.- Líneas I/O para los controladores de periféricos:
Transmisión en Paralelo.
Transmisión en Serie.
Diversos ports de comunicación
Arquitectura del microcontrolador.

5.- Recursos auxiliares:


Circuito de Reloj.
Temporizadores.
WatchDog.
Conversores (AD y DA)
Comparadores analógicos.
Protección ante fallas de alimentación.
Estado de reposo o de bajo consumo.
Características de la Arquitectura de los
microcontroladores PIC 16C84.

Procesador tipo RISC.


Posee un juego de instrucciones reducido y simple, de
manera que CASI todas las instrucciones se ejecutan en
un solo ciclo de instrucción.
Procesador segmentado.
Se pueden realizar simultáneamente las dos fases en que
se descompone la instrucción, es decir que mientras se
está desarrollando la fase de ejecución de una
instrucción se realiza la fase de búsqueda de la siguiente.
Características de la Arquitectura de los
microcontroladores PIC 16C84.

Arquitectura HARDVARD.

En este tipo de Arquitectura existen dos memorias


separadas, una para instrucciones y otra para datos y
cada una posee su sistema de buses para el acceso. Esto
permite además del paralelismo de operación, que las
memorias de instrucciones y datos puedan tener los
tamaños adecuados (el caso particular de este modelo es
14 bits para instrucciones y un byte para datos).
Arquitectura de un
microcontrolador.
Ciclo de instrucción

Un ciclo de Instrucción está dividido en cuatro


partes llamadas ciclos “Q” (Q1, Q2, Q3, Q4).

Para la búsqueda y la ejecución de una instrucción


necesitan dos ciclos de instrucción.

Pipeline: permite ejecutar una instrucción en un


solo ciclo ( la búsqueda se solapa con la
ejecución).
El ciclo de búsqueda comieza con el incremento del contador en
Q 1.
En el ciclo de ejecución, la instrucción sacada de memoria es
colocada en el registro de instrucción en Q1, y en Q2, Q3, Q4 se la
decodifica y ejecuta. Específicamente, la lectura del operando
desde la memoria de datos se hace en Q2 (operand read) y la
escritura durante Q4 (destination write).
Organización de las memorias

Existen dos bloques de memoria en el PIC 16C84:


la memoria de programa y la memoria de datos.

Cada bloque tiene su propio bus, lo que permite


acceder a cada bloque durante el mismo ciclo de
instrucción.

Los microcontroladores PIC 16XXX tienen un


contador de programa de 13 bits capaz de
direccionar 8 K palabras de 14 bits.
Organización de las memorias

El 16C84 implementa solamente 1K palabras de


14 bits (0000h – 03FFh).

Acceder a una posición superior produce el acceso


a la posición de los 10 bits menos significativos.
Ej: acceder a la posición 44h, 444h, 844h, C44h,
1044h, 1444h, 1844h o 1C44h es obtener la
instrucción ubicada en la posición 44h.

La memoria de datos está dividida en dos zonas


“General Purpose Register” (GPR) y “Special
Functions Registers” (SFR).
Memoria de
Programa

El contador de
programa está
implementado sobre
la memoria de datos.

Se ignoran los tres


bits más
significativos.
Memoria de Datos

La memoria de datos está


organizada en dos bancos
(0 y 1) de 128 bytes, los
cuales contienen los
registros GPR y SFR.

El banco 0 se selecciona
reseteando el bit RP0 (bit
5 del registro de estado) y
al banco 1 se accede
seteando el mismo bit.
Registro de Estado.
Direccionamiento de la memoria de
datos.
Ejemplo de operación con un
literal.
Ejemplo de operación con la memoria de
Datos (Direccionamiento Directo).
Ejemplo de operación con la memoria de
Datos (Direccionamiento indirecto).
Ejemplo de Direccionamiento indirecto.

BORRAR LA RAM (Pos. 20h; 2Fh) MEDIANTE


DIRECC.INDIRECTO

:
:
movlw 0x20 ; w = 0010 0000
movwf FSR ; FSR = (w)
NEXT clrf INDF ;clear ((FSR))
incf FSR ;FSR = (FSR) + 1
btfss FSR,4 ;Testea bit 4 de FSR. Si es 1 salta 1
instrucción
goto NEXT ;Si no se cumple la condición ejecuta
NEXT
CONTINUE
:
Set de instrucciones. Generalidades.
Suma literal y W.
Suma registro y W.
AND lógico literal y W.
AND lógico registro y W.
Resetear un bit de un registro.
Setear un bit de un registro.
Salto condicional si el
bit de un
registro es cero.
Salto condicional si
el bit de un
registro es uno.
Llamada a Subrutina.
Poner a cero un registro.
Poner a cero W.
Complementar el contenido de
un registro.
Decrementar el contenido de un
registro.
Decrementar el contenido
de un registro y saltar si
es igual a cero.
Salto incondicional.
Incrementar el contenido de un
registro.
Incrementar el
contenido de un registro
y saltar si es igual a 0
OR (inclusivo) lógico literal y W.
OR (inclusivo) lógico registro y W.
Mover el contenido de un registro a
W
Mover un literal a W.
Mover el contenido de W a un registro.
Sin operación.
Retornar de una Interrupción.
Retornar de una Subrutina.
Rotar hacia la
izquierda el
contenido de un
registro a través del
bit de Carry.
Rotar hacia la derecha
el contenido de un
registro a través del bit
de Carry.
Restar W a un literal.
Restar W a un registro.
Intercambiar Bytes.
OR (exclusivo) lógico literal y W.
OR (exclusivo) lógico registro y W.
Resumen de instrucciones orientadas a
operaciones de Byte.
Resumen de instrucciones orientadas a bits.
Resumen de instrucciones orientadas a
operaciones de literales
y de control.
Fin de la
presentación
de la parte teórica.

Das könnte Ihnen auch gefallen