Está en la página 1de 75

Universidad

de Oviedo

6. Microcontroladores. PIC

Introduccin

Tecnologa Electrnica

Universidad
de Oviedo

6. Microcontroladores. PIC

Microcontroladores

Son circuitos integrados que incorporan todos los


bloques funcionales de un Sistema
Microprocesador en un nico encapsulado.

Necesitan una tensin continua (5V, 3.3V, 2.5V,


1.5V...) y un oscilador para funcionar.

Interpretan (decodifican) combinaciones de bits


(instrucciones) y generan seales digitales
internas y/o externas.

Ejecutan de manera continua una secuencia de


instrucciones (programa) que permite controlar
un sistema o subsistema electrnico.

Tecnologa Electrnica

Universidad
de Oviedo

Sistema mnimo
El
microprocesador
Elsistema
sistemamnimo
mnimoest
estbasado
basadoen
enla
laestructura
estructurade
devon
vonNewman.
Newman.
Sus bloques bsicos son los siguientes:

6. Microcontroladores. PIC

Sus bloques bsicos son los siguientes:

CPU, Central Process Unit o


Unidad Central de Proceso.
Formada por dos bloques:
Unidad de Control y Unidad de
Proceso.
Memoria, donde residen las
instrucciones del programa y
sus datos.
Mdulos E/S, elementos
encargados de recibir y entregar
informacin al exterior.

Bus de Direcciones
CPU

MEMORIA

UDS. E / S

Bus de Datos
Bus de Control
Reloj

Los tres mdulos estn conectados entre s por medio de los Buses de
Comunicacin. Cada bus est formado por un conjunto de conductores por
los cuales se transmite la informacin digital.
Tecnologa Electrnica

Universidad
de Oviedo

Microprocesadores y
microcontroladores

6. Microcontroladores. PIC

Sistema Microprocesador (varios C.I. en una PCB)

Microcontrolador (nico C.I.)

Tecnologa Electrnica

Universidad
de Oviedo

Microprocesadores y
microcontroladores

6. Microcontroladores. PIC

Tarjeta de Sistema
Microprocesador para
control

C.I. Microcontrolador
Tecnologa Electrnica

Sistemas empotrados

Universidad
de Oviedo

Sistemas que incorporan microcontroladores (o microprocesadores)


para una tarea especfica pero que no son programables
directamente por el usuario

6. Microcontroladores. PIC

Los microcontroladores de 8 bits dominan en la mayora de las


aplicaciones
El microcontrolador es el ncleo del sistema electrnico verstil de
bajo coste y reducido tamao que es capaz de detectar las seales de
entrada y generar las salidas de un equipo, sistema o instrumento
Por su reducido tamao y coste permiten la fcil implantacin de
sistemas deinteligencia distribuida a lo largo de sistemas ms
complejos
Los microcontroladores son los semiconductores ms abundantes
de todos en la actualidad.
Tecnologa Electrnica

6. Microcontroladores. PIC

Sistemas empotrados

Evolucin Microprocesadores:
Computadores

75
MillonesElectrnica
Microprocesadores/ao
Tecnologa

Universidad
de Oviedo

Evolucin Microcontroladores:
Sistemas Empotrados
o
a
/
es
r
o
lad
o
r
nt
o
c
ro
c
i
sM
e
n
il lo
M
0
250
7

Universidad
de Oviedo

Microcontroladores PIC

Arquitectura Harvard: buses internos separados para memoria de


datos (8 bits) y de programa (12, 14 16 bits depende de la familia)

6. Microcontroladores. PIC

Microprocesador RISC: juego de instrucciones reducido


Estructura pipe-line: durante la ejecucin de una instruccin, se est
accediendo a la memoria de programa para traer la siguiente
instruccin a ejecutar. (salvo un salto o llamada a subpr.)
Todas las instrucciones ocupan una posicin de memoria de programa
Todas las instrucciones se ejecutan en un ciclo de instruccin = 4
ciclos de reloj (salvo las instrucciones de salto)
Ortogonalidad de los registros: se opera entre el registro de trabajo W
y cualquier otro registro, el resultado puede almacenarse en W
Tecnologa Electrnica

Universidad
de Oviedo

6. Microcontroladores. PIC

ARQUITECTURA HARVARD

El tiempo de acceso se mejora respecto a la arquitectura


von Neumann donde programa y datos se traen a la CPU
usando el mismo bus.
La arquitectura Harvard tiene memoria de programa y
memoria de datos separadas y se accede a ellas a travs de
buses separados.
Tecnologa Electrnica

Microcontroladores PIC.
Caractersticas

Universidad
de Oviedo

Eficiencia del cdigo: permiten gran compactacin de programas


Rapidez de ejecucin: a f de 20MHz 5 millones de instr./seg.

6. Microcontroladores. PIC

Seguridad en acceso: Separa memoria de datos y de programa


Juego reducido de instrucciones
Compatibilidad de pines y cdigo entre dispositivos (familias)
Gran variedad de versiones en distintos encapsulados (8 - 84 pines)
Herramientas de desarrollo software y hardware abundantes y de bajo
coste

Tecnologa Electrnica

10

Familias de PIC

Universidad
de Oviedo

6. Microcontroladores. PIC

Familia PIC16C5X
Encapsulados de 14, 18, 20 y 28 pines
Instrucciones de 12 bits
Juego de 33 instrucciones
Es la familia base de partida de los PIC
Familia PIC16CXXX/16FXXX
Encapsulados desde 18 hasta 68 pines (DIP, SSOP, PLCC,
QFP)
Instrucciones de 14 bits en Memoria de Programa
Juego de 35 instrucciones
Gran variedad de mdulos integrados
Tecnologa Electrnica

11

Familia
PIC16CXXX/16FXXX
Puertos de Entrada/Salida

Universidad
de Oviedo

Puerto Esclavo Paralelo (PSP)

6. Microcontroladores. PIC

Temporizadores/contadores (TMR0, TMR1, TMR2)


Captura / Comparacin / PWM (CCP1 y CCP2)
Conversin Analgica / Digital (A/D)
Transmisor Receptor Asncrono Sncrono Universal (USART)
Puerto Serie Sncrono (BSSP MSSP)
Memoria EEPROM de datos
FLASH EEPROM de programa modificable desde el cdigo
Tecnologa Electrnica

12

8K x 14

Microcontrolador
Microcontrolador
PIC16F877
PIC16F877
(gama
(gamamedia)
media)

368 x 8

Puertos de E/S

6. Microcontroladores. PIC

Familia
PIC16CXXX/16FXXX

Universidad
de Oviedo

Temporizadores

Puerto Esclavo
Paralelo

Mdulos CCP SSP

Tecnologa Electrnica

256 x 8

Conversor A/D
USART

13

Universidad
de Oviedo

PIC. Proceso de diseo

6. Microcontroladores. PIC

Diseo software: el micro sin un programa cargado en su memoria no


hace nada, cuando el micro est grabado con un programa eficiente
el conjunto empezar a funcionar
Diseo del programa y escritura del cdigo fuente en
ensamblador o en C
Pruebas, verificacin y modificacin del cdigo: Simulacin
del programa (puro software) o emulacin dentro del circuito de
aplicacin (software y hardware)
Grabacin del cdigo mquina en la memoria del
microcontrolador
Emulacin o
Depuracin sobre
PCB
Edicin del cdigo,
1 depuracin y
Tecnologa
Electrnica
simulacin

Grabacin del micro

14

6. Microcontroladores. PIC

Universidad
de Oviedo

PIC 16F877
ORGANIZACIN DE LA
MEMORIA

Copyright ATE

Tecnologa Electrnica

15

Universidad
de Oviedo

Organizacin de la memoria
El PIC16F877 dispone de tres tipos de memoria:

Memoria de programa

6. Microcontroladores. PIC

Consta de 8192 posiciones (8Kwords) y contiene el programa


con las instrucciones que gobiernan la aplicacin. Es no voltil.

Memoria de datos RAM

Guarda las variables y datos. Est formada por registros de 8


bits. Es voltil.

Memoria EEPROM de datos

Es una pequea rea de memoria de datos de lectura y escritura


no voltil que permite garantizar que determinada informacin
estar siempre disponible al reiniciar el programa.
Tecnologa Electrnica

16

Universidad
de Oviedo

Memoria

Memoria de datos RAM

6. Microcontroladores. PIC

Memoria de programa

Memoria EEPROM
Tecnologa Electrnica

EEPRO
M
156 X 8

17

Memoria de programa

Universidad
de Oviedo

6. Microcontroladores. PIC

La informacin contenida en esta memoria se


graba previamente mediante un equipo
(programador o grabador).
Almacena todas las instrucciones del programa
en ejecucin, y queda grabada de forma
permanente.
En el PIC16F877 esta memoria es no voltil del
tipo ROM Flash y admite unas 1000 grabaciones.
Est organizada en palabras de 14 bits cada
una.
Todas las instrucciones ocupan una posicin de
memoria de programa
Tecnologa
A la posicin
0 se accede tras un RESET y a la
Electrnica

18

Universidad
de Oviedo

6. Microcontroladores. PIC

Memoria de programa.
Contador de programa, PC.

Para acceder a la memoria de programa de los


PIC16FXXX se utiliza un registro de 13 bits que
acta como puntero de la instruccin que se debe
ejecutar en el siguiente ciclo de instruccin.

Este registro es el Contador de Programa PC que


permite direccionar 8K posiciones de memoria de 14
bits (recordar que cada posicin corresponde a una
instruccin) por tanto, el PC es capaz de direccionar
8K instrucciones.

Resulta fcil saber si un PIC tiene memoria de


programa suficiente para una determinada
aplicacin.

Tecnologa Electrnica

19

Universidad
de Oviedo

Memoria de programa.
Contador de programa, PC.

6. Microcontroladores. PIC

Lneas de direcciones (direccionamiento)

Lneas de
datos
de la
memoria
de programa

ACCESO
ACCESOAALA
LAMEMORIA
MEMORIADE
DE
PROGRAMA
PROGRAMA
Tecnologa Electrnica

20

Universidad
de Oviedo

6. Microcontroladores. PIC

Memoria de programa.
Contador
de programa, PC.
Los 8K de memoria de programa
disponible estn divididos en 4
pginas de
2K cada una (0h7FFh, 800h-FFFh,
1000h17FFh y 1800h-1FFFh). Esto se debe a
que las instrucciones de salto y
llamada a
subprograma permiten cargar slo 11
bits
en el PC (desplazamiento en 211 = 2K)
Si se estn ejecutando instrucciones
secuencialmente, el contador de
programa
pasar de una pgina a otra.
Para saltar entre pginas de la
memoria

Tecnologa Electrnica

21

Universidad
de Oviedo

Memoria de programa.
Contador de programa, PC.

6. Microcontroladores. PIC

CONTADOR DE PROGRAMA
El contador de programa (PC) es un
registro de 13 bits que se descompone en
2 registros: PCH y PCL
El byte bajo PC<0:7> se denomina PCL y
est disponible en la memoria de datos.
Es un registro que se puede leer y escribir
directamente desde el programa.
El cuasibyte alto PC<12:8> se
denomina PCH y no est disponible en la
memoria de datos. Este registro no se
puede leer ni escribir directamente. La
escritura debe realizarse usando como
registro intermedio el registro PCLATH que
s es un registro de 8 bits accesible en la
memoria de datos del microcontrolador. El
contenido del registro PCLATH se
transfiere a la parte alta del PC en el
momento en que se escribe en el registro
PCL. Tambin aporta dos bits al PC en los
saltos o llamadas a subprogramas.

Tecnologa Electrnica

22

Universidad
de Oviedo

La pila

6. Microcontroladores. PIC

La pila permite almacenar las direcciones a donde debe


retornar el programa cuando se finaliza una llamada a una
subrutina
o cuando se finaliza la ejecucin de una rutina de interrupcin.
Los microcontroladores de la familia PIC16 tienen una pila de
8
niveles x 13 bits, que por tanto permite como mximo 8
llamadas a subrutinas (CALLs) o ejecuciones de rutinas de
interrupcin (salto a 0004h).
El espacio de memoria para la pila no forma parte de la
memoria de
programa ni de la memoria de datos que tiene el
microcontrolador.
Es un Electrnica
espacio de memoria totalmente independiente. El
Tecnologa

23

Universidad
de Oviedo

Memoria RAM de
datos
La memoria de datos est distribuida en 4 posibles bancos de 128
6. Microcontroladores. PIC

bytes cada uno. Por tanto, la mxima cantidad de memoria


disponible
en los microcontroladores PIC16 es de 512 bytes. No obstante, no
estn implementadas todas las posiciones de memoria en todos los
bancos.
Por ejemplo, un PIC16F876 slo tiene implementadas 368
posiciones de
memoria de datos.
A cada posicin de memoria se le denomina
registro.
La memoria de datos se organiza en bancos
de 128 bytes porque cuando se indica una
direccin de operando fuente, slo se pueden
incluir 7 bits en la codificacin: 2 7=128 bytes

Tecnologa Electrnica

24

Universidad
de Oviedo

Memoria RAM de
Sirve para almacenar todos los datos que se manejan en un
datos
programa.
6. Microcontroladores. PIC

Se distinguen dos tipos de registro:


Registros de funciones especiales: Son los primeros registros.
Cada uno de ellos cumple un propsito especial en el control del
PIC.
Registros de propsito general: Se pueden usar para guardar
datos temporales. El PIC16F877 dispone de 368.
Cuenta con cuatro bancos de memoria: Bancos 0, 1, 2 y 3.
Los registros de funciones especiales aparecen de la direccin
00h a 1Fh del Banco 0, de 80h a 9Fh del Banco 1, de 100h a 10F
en el Banco 2 y de 180h a 18Fh del Banco 3. Algunos son
accesibles desde dos o ms bancos.
Tecnologa Electrnica

Los registros de propsito general ocupan 368 posiciones de

25

STATUS

STATUS

STATUS

STATUS

PORTB

6. Microcontroladores. PIC

PORTB

La memoria de datos

Universidad
de Oviedo

Tecnologa Electrnica

26

Memoria de datos

Universidad
de Oviedo

MODOS DE DIRECCIONAMIENTO

6. Microcontroladores. PIC

La memoria de datos est distribuida en 4 posibles bancos de 128


bytes cada uno.
Existen 2 modos de direccionamiento para acceder a cualquiera
de las posiciones de la memoria de datos:
Direccionamiento directo
Direccionamiento indirecto
Direccionamiento directo: La posicin de memoria con la que se
trabaja viene directamente definida en el cdigo de la instruccin.
Direccionamiento indirecto: La posicin de memoria con la que se
trabaja viene definida por el contenido del registro FSR (Posicin
04h, 84h, 104h o 184h), es decir, el registro FSR acta como
puntero de la posicin de memoria con la que se pretende operar.
Tecnologa Electrnica

27

Memoria de datos:
Direccionamiento.

Universidad
de Oviedo

6. Microcontroladores. PIC

DIRECCIONAMIENT
O
DIRECTO

Tecnologa Electrnica

BANCO

RP1:RP0

00

01

10

11

28

Universidad
de Oviedo

6. Microcontroladores. PIC

Direccionamiento indirecto
1)

SE LEE EL REGISTRO CONTENIDO EN EL CODIGO DE LA INSTRUCCIN.

2)

SI EL REGISTRO ES DISTINTO DEL CORRESPONDIENTE A INDF (00h,80h,100h


180h) LA INSTRUCCIN SE EJECUTA SOBRE EL REGISTRO INDICADO EN LA
INSTRUCCIN COMPLEMENTADO CON LOS BITS RP1:RP0 DEL REGISTRO
STATUS (DIRECCIONAMIENTO DIRECTO)

3)

SI EL REGISTRO CORRESPONDE A LA POSICION DE INDF (00h,80h,100h 180h),


LA INSTRUCCIN SE EJECUTA SOBRE EL REGISTRO INDICADO EN EL
REGISTRO FSR COMPLEMENTADO CON EL BIT IRP DEL REGISTRO STATUS

Sencillo
ejemplo
de
direccionamiento indirecto
donde se limpian las
posiciones de memoria de
datos comprendidas entre
la posicin 20h y la 2Fh
(ambas incluidas)
Tecnologa Electrnica

NEXT

BCF STATUS, IRP


MOVLW 0x20
MOVWF FSR
CLRF INDF
INCF FSR,F
BTFSS FSR,4
GOTO NEXT

CONTINUE
:

; dir. Indirecto, bancos 0/1


; Inicializa puntero a RAM
;
; limpia registro INDF
; Inc puntero
; Todo limpio?
; NO, limpia siguiente
;
; SI, continua

29

6. Microcontroladores. PIC

Registro de estado

Universidad
de Oviedo

Tecnologa Electrnica

30

6. Microcontroladores. PIC

Registro option

Universidad
de Oviedo

Tecnologa Electrnica

31

6. Microcontroladores. PIC

Registro
intcon

Universidad
de Oviedo

Tecnologa Electrnica

32

6. Microcontroladores. PIC

PIE1

Universidad
de Oviedo

Tecnologa Electrnica

33

6. Microcontroladores. PIC

PIR
1

Universidad
de Oviedo

Tecnologa Electrnica

34

6. Microcontroladores. PIC

Universidad
de Oviedo

CARACTERSTICAS
ESPECIALES DE LOS PIC

Tecnologa Electrnica

35

Universidad
de Oviedo

CARACTERSTICAS ESPECIALES DE LOS


PIC
Estas caractersticas suelen ser los aspectos que ms distinguen la CPU
de estos dispositivos con otros microprocesadores.

6. Microcontroladores. PIC

Oscilador: ms simple y con menos elementos adicionales necesarios

Resets y Watchdog: seguridad en el arranque, reinicio y


autovigilancia
Sleep: modo de bajo consumo para aplicaciones con bateras
Interrupciones: lgica de mscaras y eventos y posicin comn del
PTI
Proteccin de cdigo: para evitar la copia de programas grabados
ICSP e ICSP LVP: (In-Circuit Serial Programming) programacin en
serie
ya en la tarjeta de la aplicacin y a baja tensin (Low Voltage Program)
Modo depuracin ICD: (In-Circuit Debugger) modo especial que
permite
depurar el cdigo pero ya con el MCU conectado con el resto del
circuito.
Tecnologa Electrnica

36

PALABRA DE
CONFIGURACIN

Universidad
de Oviedo

6. Microcontroladores. PIC

Todos los microcontroladores PIC tienen una posicin de


memoria denominada palabra de configuracin en la que
cada bit tiene un significado y configura las caractersticas
especiales.
Los bits de configuracin estn fuera del espacio de memoria
de
programa de usuario por lo que slo son accesibles durante la
programacin del micro y no durante la ejecucin de un
programa.
Las herramientas que ofrece MICROCHIP nos dan dos
alternativas para fijar los valores de estos bits de
configuracin:
a
travs
del
men
Configure
>
Configuration_Bits del entorno MPLAB mediante la inclusin
de una directiva de configuracin en el cdigo del programa.
Tecnologa Electrnica

37

Universidad
de Oviedo

OSCILADO
RLos PIC16F87X pueden funcionar con 4 modos
6. Microcontroladores. PIC

distintos de oscilador. El usuario puede programar


dos bits de configuracin para seleccionar uno de
estos 4 modos:
LP Low Power Crystal (cristal de cuarzo
resonador cermico hasta 200KHz)
XT Crystal/Resonator (cristal de cuarzo
resonador cermico hasta 4MHz)
HS High Speed Crystal/Resonator (cristal de
cuarzo entre 4MHz y 20MHz)
RC Resistor/Capacitor (red RC externa hasta
4MHz)

Tecnologa Electrnica

38

Universidad
de Oviedo

CICLO DE
INSTRUCCIN
Un ciclo de instruccin es el tiempo que se tarda en

6. Microcontroladores. PIC

ejecutar una instruccin (salvo saltos) en el


microcontrolador. En los PIC16, un ciclo de instruccin
dura 4 ciclos de reloj (Q1, Q2, Q3, Q4).
En una primera etapa, la instruccin es trada a la CPU.
Esto lleva un ciclo de instruccin.
En la segunda etapa se ejecuta la instruccin. Esto lleva
otro.
No obstante, debido al solapamiento (pipelining) de traer
la instruccin actual y ejecucin de la instruccin previa,
una instruccin se trae y otra se ejecuta cada ciclo de
instruccin.
Se produce un ciclo de instruccin de retardo si el
resultado de ejecutar la instruccin anterior modifica el
contenido del Contador de Programa (Ej: GOTO CALL).

Tecnologa Electrnica

39

Universidad
de Oviedo

MODO
SLEEP
Los microcontroladores PIC pueden trabajar en dos modos

6. Microcontroladores. PIC

distintos:
Modo Normal: ejecutando las instrucciones
Modo Dormido o de bajo consumo: se suspende la ejecucin
El consumo de un microcontrolador depende de su
frecuencia de trabajo, a ms frecuencia ms consumo.
El modo dormido supone un ahorro de consumo porque el
oscilador del microcontrolador deja de oscilar, por tanto no
se ejecutan instrucciones.
En este modo dormido se entra por software cuando se
ejecuta la instruccin SLEEP

Tecnologa Electrnica

40

6. Microcontroladores. PIC

MODO SLEEP

Universidad
de Oviedo

Al entrar en modo dormido, el bit PD (STATUS<3>) se pone a 0 y el bit TO


(STATUS<4>) se pone a 1, estos bits indican que se entr en ese modo
para conocimiento posterior en tiempo de ejecucin.
A continuacin el oscilador deja de oscilar. Los pines asociados a Puertos
de
Entrada/Salida mantienen el valor previo a la ejecucin de la instruccin
SLEEP.

Si est habilitado el WATCHDOG (en la palabra de configuracin), su


temporizador se pondr a cero al ejecutar la instruccin SLEEP, pero se
mantendr corriendo y podra desbordar ya que el Watchdog tiene un
oscilador RC independiente del propio del microcontrolador.

El microcontrolador puede salir del modo de bajo consumo por alguno de


los siguientes motivos:

1. Un RESET externo provocado en el pin MCLR.

2. Desbordamiento del WATCHDOG.

3. Interrupcin provocada por algn evento de los perifricos que


pueden generarlos sin la presencia del oscilador.

Tecnologa Electrnica

41

RESET DEL
MCU

Universidad
de Oviedo

Los PIC16F87X tienen 6 posibles fuentes de RESET del MCU:

6. Microcontroladores. PIC

Power-on Reset (POR) -> Reset de Alimentacin del Microcontrolador


MCLR Reset durante funcionamiento normal -> Activacin del pin de
Reset en modo normal
MCLR Reset durante SLEEP -> Activacin del pin de Reset en modo de
bajo consumo
WDT Reset (durante funcionamiento normal) -> Desbordamiento del
Watchdog en modo normal
WDT Wake-up (durante SLEEP) -> Desbordamiento del Watchdog en
modo de bajo consumo
Brown-out Reset (BOR) -> Reset por cada temporal de la
alimentacin
La mayora de los registros del mapa de memoria de datos no se ven
afectados por ningn tipo de RESET. No obstante, hay muchos otros
registros que son reseteados a un valor determinado si se produce
un POR, un MCLR Reset WDT Reset durante funcionamiento normal,
un MCLR Reset durante SLEEP un BOR.

Tecnologa Electrnica

42

Universidad
de Oviedo

6. Microcontroladores. PIC

PERRO GUARDIN O WATCHDOG

El temporizador Watchdog es un temporizador existente en el


microcontrolador basado en un oscilador RC interno, independiente del
oscilador del microcontrolador

Este oscilador RC interno no tiene nada que ver con un posible


oscilador RC externo conectado a la patilla OSC1/CLKI.

Si est activo, durante el funcionamiento normal del microcontrolador,


un desbordamiento ( time-out) del Watchdog provoca un Reset del
microcontrolador (Watchdog Timer Reset).

Para que no se desborde, cada cierto tiempo y antes de que llegue al


lmite, se debe ejecutar una instruccin CLRWDT que limpia el
Watchdog y le hace comenzar una nueva cuenta desde cero.

Si el dispositivo est en modo dormido, un desbordamiento del


watchdog provoca que el micro despierte y continue con el
funcionamiento normal (Watchdog Timer Wake-Up) con la instruccin
que sigue a SLEEP.

El bit TO del registro STATUS se pone a cero tras un desbordamiento


del Watchdog.

Tecnologa Electrnica

43

Universidad
de Oviedo

6. Microcontroladores. PIC

PERRO GUARDIN O WATCHDOG

Un preescaler es un divisor de frecuencia que puede hacer que se


cuente antes el nmero de desbordamientos del WDT y hacer as
que el tiempo que tarda en resetear al microcontrolador sea ms
largo. Ese divisor de frecuencia est compartido con el TMR0 y
por tanto, si se usa para el TMR0 no se puede usar para el
WATCHDOG y viceversa.

El divisor de frecuencia del WATCHDOG viene definido por unos


bits del registro OPTION:
PSA: a quin se le asigna el divisor.
PS2-PS1-PS0: cul es el factor de divisin de la frecuencia:
000:
001:
010:
011:

1:2 para TMR0 / 1:1 para WDT.


1:4 para TMR0/ 1:2 para WDT.
1:8 para TMR0 / 1:4 para WDT.
1:16 para TMR0 / 1:8 para WDT.

Tecnologa Electrnica

100:
101:
110:
111:

1:32 para TMR0 /


1:64 para TMR0 /
1:128 para TMR0
1:256 para TMR0

1:16 para WDT.


1:32 para WDT.
/ 1:64 para WDT.
/ 1:128 para WDT.

44

6. Microcontroladores. PIC

INTERRUPCIONES

Universidad
de Oviedo

Los PIC16F87XA tienen hasta 15 posibles fuentes de interrupcin, entre


otras:

Escritura o lectura del puerto esclavo paralelo (PSPIF)

Desbordamiento del TMR0

Desbordamiento del TMR1

Desbordamiento del TMR2

Captura de un mdulo CCP (CCPxIF).

Comparacion del modulo CCP en modo disparo de evento especial.

Mdulo SSP al detectar un bit de START STOP

Mdulo SSP al transmitir o recibir en modo esclavo

Mdulo USART al RX o TX (modo sncrono) (RCIF TXIF).

Al finalizar una conversin A/D

Al completar una escritura en EEPROM (EEIF).

Al modificarse el estado de salida de alguno de los comparadores


(CMIF).

Interrupcin externa por flanco en el pin RB0/INT (INTF).

Interrupcin por cambio en los valores de los pines RB4 a RB7 del
PORTB (RBIF).
Tecnologa Electrnica

45

6. Microcontroladores. PIC

INTERRUPCIONES

Universidad
de Oviedo

Se dispone de un bit de habilitacin de interrupciones global GIE


(INTCON<7>) que permite deshabilitar todas las interrupciones (si est a
0). Cuando el bit GIE est a 1, si una interrupcin tiene su flag a 1 y sus
bits de habilitacin a 1, el microcontrolador terminar la instruccin que
se est ejecutando en ese instante y, a continuacin, pasar a ejecutar la
posicin 4 de la memoria de programa que corresponde a la posicin del
vector de interrupcin y que es el mismo para todas las interrupciones.
Las fuentes de interrupcin pueden deshabilitarse individualmente
utilizando sus mscaras o bits de habilitacin (bits acabados en E).

El bit GIE se pone a 0 tras un RESET. Por tanto, al principio las


interrupciones estn desactivadas.

Al producirse el salto a la rutina o programa de tratamiento de la


interrupcin, el bit GIE se pone a 0 deshabilitando el resto de
interrupciones, salvo que por software se vuelva a poner a 1 ese bit GIE.
El retorno del programa de tratamiento de interrupcin (RETFIE) coloca
en la mscara global GIE el valor 1, adems de recuperar el PC de la pila
hardware.

Los bits de flags pueden ponerse a 1 independientemente de que sus


bits de habilitacin estn o no a 1, ya que indican eventos.
Tecnologa Electrnica

46

6. Microcontroladores. PIC

Lgica de interrupciones

Universidad
de Oviedo

Tecnologa Electrnica

47

Universidad
de Oviedo

6. Microcontroladores. PIC

SALVANDO EL CONTEXTO

Cuando se produce una interrupcin slo se guarda en la pila


hardware interna el valor del PC.

Normalmente, se debern salvar algunos otros registros para no


perder su
contenido al regresar al programa principal y tras haber pasado por la
rutina de interrupcin, mxime cuando se ignora cundo se va a
producir el salto a ese programa de tratamiento de la interrupcin
(PTI) desde el programa principal.

Estos registros son al menos el W y el STATUS

Tambin puede resultar interesante guardar el registro PCLATH,


especialmente
si en la rutina de interrupcin se cambia de
pgina de memoria de programa.

Como no hay pila en RAM, hay que reservar posiciones de memoria


en RAM que habitualmente denominaremos W_TEMP, STATUS_TEMP y
PCLATH_TEMP donde se guardan los valores de W, STATUS y PCLATH
al entrar en la rutina de interrupcin para luego recuperarlos al salir.

Tecnologa Electrnica

48

SECUENCIA PARA SALVAR EL


CONTEXTO DEL PROG. PCPAL.

Universidad
de Oviedo

;Para salvar el contexto no podemos emplear la instruccin


MOVF ;ya que afecta al registro STATUS (al bit Z), para
evitarlo ;empleamos la instruccin SWAPF

6. Microcontroladores. PIC

Siempre se debe hacer as o de una manera similar (si se guardan ms


registros) al principio de un PTI

movwf W_tmp
swapf STATUS,W
bcf STATUS,RP0
bcf STATUS,RP1
movwf STATUS_tmp
movf PCLATH,W
movwf PCLATH_tmp

Tecnologa Electrnica

;Salvamos el registro W
; y el registro STATUS "girado" en W
;Aseguramos el paso al banco 0
;poniendo a 0 los dos bits de seleccin de
;banco
;Guardamos en el banco 0 STATUS girado
;Salvamos tambin PCLATH en W
;y ahora en una posicin auxiliar del
;banco 0
49

Universidad
de Oviedo

SECUENCIA PARA RECUPERAR EL CONTEXTO


DEL PROG. PCPAL.

6. Microcontroladores. PIC

;Para recuperar los registros salvados no podemos usar


MOVF ;porque modifica a STATUS, para evitarlo usamos
la instruccin ;SWAPF
movf PCLATH_tmp,W
;Recuperamos PCLATH
movwf PCLATH
;directamente
swapf STATUS_tmp,W
;Recuperamos el registro STATUS con
;un SWAPF
movwf STATUS
;ahora estamos en el banco de partida
swapf W_tmp,F
;Recuperamos tambin el W con dos
;SWAPF
swapf W_tmp,W ;para evitar la instruccin MOVF
retfie

;Ahora ya podemos retornar del PTI

Tecnologa Electrnica

50

6. Microcontroladores. PIC

Universidad
de Oviedo

Programacin en
ensamblador

Copyright ATE

Tecnologa Electrnica

51

6. Microcontroladores. PIC

Ensamblador

Universidad
de Oviedo

El lenguaje ensamblador expresa las instrucciones de una


forma ms natural al hombre que el lenguaje mquina (0 y
1) a la vez que muy cercana al microcontrolador, ya que
cada una de esas instrucciones se corresponde con otra en
cdigo mquina.

El lenguaje ensamblador trabaja con nemnicos, que son


grupos de caracteres alfanumricos que simbolizan las
rdenes o tareas a realizar.

La traduccin de los nemnicos a cdigo mquina la realiza


un programa ensamblador: MPASM.
El programa escrito en lenguaje ensamblador se denomina
cdigo fuente (*.asm). El programa ensamblador proporciona
a partir de este fichero el correspondiente cdigo mquina,
que suele tener la extensin *.hex.

Tecnologa Electrnica

52

Cdigo
fuente

6. Microcontroladores. PIC

Universidad
de Oviedo

Est compuesto por una sucesin de lneas de texto.


Cada lnea puede estructurarse en hasta cuatro campos o columnas
separados por uno o ms espacios o tabulaciones entre s.
Campo de etiquetas. Expresiones alfanumricas escogidas por el
usuario para identificar una determinada lnea. Todas las etiquetas
tienen asignado el valor de la posicin de memoria en la que se
encuentra el cdigo al que acompaan.
Campo de cdigo. Corresponde al nemnico de una instruccin, de
una directiva o de una llamada a macro.
Campo de operandos y datos. Contiene los operandos que precisa el
nemnico utilizado. Segn el cdigo puede haber dos, uno o ningn
operando.
Campo de comentarios. Dentro de una lnea, todo lo que se
encuentre
a continuacin de un punto y coma (;) ser ignorado por el programa
ensamblador y considerado como comentario.

Tecnologa Electrnica

53

Campo de cdigo

Universidad
de Oviedo

6. Microcontroladores. PIC

Puede estar ocupado por:

Instrucciones: son aquellos nemnicos que son convertidos por el


ensamblador en cdigo mquina que puede ejecutar el
microcontrolador. Cada nemnico se convierte en una palabra en
la memoria de programa.

Directivas: Pseudoinstrucciones que controlan el proceso de


ensamblado del programa, pero no son parte del cdigo. Son
indicaciones al programa ensamblador de cmo tiene que generar
el cdigo mquina.

Macros: Secuencia de nemnicos que pueden insertarse en el


cdigo
fuente del ensamblador de una manera abreviada mediante una
simple
llamada.
Tecnologa Electrnica

54

Universidad
de Oviedo

Campo de operandos y
datos

6. Microcontroladores. PIC

TIPO

SINTAXIS

Decimal

D<valor>

d<valor>

.<valor>

Hexadecima
l

H<valor>

h<valor>

0x<valor>

<valor>H

<valor>h

Octal

O<valor>

o<valor>

Binario

B<valor>

b<valor>

ASCII

A<carcter>

Cadena

a<carcter>

<carcter>

<cadena>

Las constantes hexadecimales que empiecen por una letra deben ir


precedidas de un cero para no confundirlas con una etiqueta.
Tecnologa Electrnica

55

Universidad
de Oviedo

Juego de instrucciones

6. Microcontroladores. PIC

Es un juego reducido de 35 instrucciones muy simples y rpidas .


La mayora de las instrucciones se ejecuta en 4 ciclos de reloj;
los saltos se ejecutan en 8.
Todas las instrucciones tienen la misma longitud: 14 bits.

Instrucciones de CARGA
NEMNICO

clrf

clrw
movf

f,d

DESCRIPCIN

FLAGS AFECTADOS

00 (f)

00 (W)

(f) (destino)

movlw k

k (W)

Ninguno

movwf f

(W) (f)

Ninguno

Tecnologa Electrnica

56

Universidad
de Oviedo

Juego de instrucciones
Instrucciones de BIT

6. Microcontroladores. PIC

NEMNICO

DESCRIPCIN

FLAGS AFECTADOS

bcf

f,b

Pone a 0 el bit b del registro f

Ninguno

bsf

f,b

Pone a 1 el bit b del registro f

Ninguno

Instrucciones ARITMTICAS
NEMNICO

DESCRIPCIN

FLAGS AFECTADOS

(W) + k (W)

C DC - Z

addwf f,d

(W) + (f) (destino)

C DC - Z

decf

f,d

(f) - 1 (destino)

incf

f,d

(f) + 1 (destino)

sublw

K - (W) (W)

C DC - Z

subwf

f,d

(f) - (W) (destino)

C DC - Z

addlw

Tecnologa Electrnica

57

Universidad
de Oviedo

Juego de instrucciones
Instrucciones LGICAS
NEMNICO

FLAGS AFECTADOS

(W) AND k (W)

andwf f,d

(W) AND (f) (destino)

comf

f,d

(/f) (destino)

iorlw

(W) OR k (W)

iorwf

f,d

(W) OR (f) (destino)

rlf

f,d

Rota (f) a izquierda (destino)

rrf

f,d

Rota (f) a derecha (destino)

swap

f,d

Intercambia nibbles (f) (destino)

xorlw

(W) XOR k (W)

xorwf

f,d

(W) XOR (f) (destino)

andlw

6. Microcontroladores. PIC

DESCRIPCIN

Tecnologa Electrnica

Ninguno

58

Universidad
de Oviedo

Juego de instrucciones

6. Microcontroladores. PIC

Instrucciones de SALTO
NEMNICO

DESCRIPCIN

FLAGS AFECTADOS

btfsc

f,b

Salta si el bit b de f es 0

Ninguno

btfss

f,b

Salta si el bit b de f es 1

Ninguno

decfsz f,d

(f) - 1 (destino) y salta si es 0

Ninguno

incfsz

f,d

(f) + 1 (destino) y salta si es 0

Ninguno

goto

Salta a la direccin k

Ninguno

Tecnologa Electrnica

59

Universidad
de Oviedo

Juego de instrucciones

6. Microcontroladores. PIC

Instrucciones de manejo de SUBRUTINAS


NEMNICO

call

retfie
retlw
return

DESCRIPCIN

FLAGS AFECTADOS

Llamada a subrutina

Ninguno

Retorno de una interrupcin

Ninguno

Retorno con un literal en (W)

Ninguno

Retorno de una subrutina

Ninguno

Tecnologa Electrnica

60

Universidad
de Oviedo

Juego de instrucciones

6. Microcontroladores. PIC

Instrucciones ESPECIALES
NEMNICO

DESCRIPCIN

FLAGS AFECTADOS

clrwdt

Borra Timer del Watchdog

/TO - /PD

nop

No operacin

Ninguno

sleep

Entra en modo de bajo consumo

/TO - /PD

Tecnologa Electrnica

61

6. Microcontroladores. PIC

Directivas

Universidad
de Oviedo

Controlan el proceso de ensamblado del programa, pero no son


parte del mismo (tambin se conocen como
pseudoinstrucciones).

Hay ms de 50 directivas reconocidas por MPASM. A continuacin


veremos algunas de las ms utilizadas.

END
Es la nica directiva obligatoria. Indica al ensamblador dnde debe
detener el proceso. Debe colocarse en la ltima lnea del programa.

<etiqueta> EQU <expresin>


El valor <expresin> es asignado a <etiqueta>. Estas directivas se
suelen colocar al principio del programa y habitualmente se usan
para definir constantes y direcciones de memoria.

[<etiqueta>] ORG <expresin>


Las instrucciones del cdigo fuente que siguen a esta directiva se
ensamblan a partir de la posicin indicada por <expresin>.

Tecnologa Electrnica

62

Directivas

Universidad
de Oviedo

__CONFIG <expresin> [& <expresin> & ... & <expresin>]


Permite indicar la configuracin elegida para la grabacin del PIC.
Ejemplo: __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

6. Microcontroladores. PIC

LIST P=16F877
Indica el tipo de microcontrolador utilizado.
INCLUDE <p16F877.inc> o INCLUDE p16F877.inc
Incluye en el programa un fichero donde se definen las etiquetas
con las que se nombra a los diferentes registros y sus bits. Este
fichero se encuentra en el directorio principal del programa
ensamblador. Puede usarse esta directiva para incluir cualquier
otro fichero (El fichero de inclusin no puede terminar con
una directiva END).

Tecnologa Electrnica

63

6. Microcontroladores. PIC

Universidad
de Oviedo

MANEJANDO LAS
INSTRUCCIONES

Luca Marcos

Tecnologa Electrnica

64

Universidad
de Oviedo

Registros FSR ms utilizados y


bancos donde se ubican en la
RAM
Banco 0:
Banco 1:

6. Microcontroladores. PIC

PORTA
PORTB
PORTC
PORTD
PORTE
TMR0
STATUS (en los dos bancos)
INTCON (en los dos bancos)
PCLATH (en los dos bancos)

TRISA
TRISB
TRISC
TRISD
TRISE
OPTION_REG

Despus del RESET de encendido, estamos en el banco 0.


La seleccin de banco se realiza mediante los bits RP0 y
RP1 que se encuentran en el registro STATUS
Tecnologa Electrnica

65

6. Microcontroladores. PIC

Inicializacin

Universidad
de Oviedo

La secuencia a seguir en el inicio es:


LIST P=16F877
;Tipo de procesador
include P16F877.INC ;incluye fichero de smbolos y etiquetas
;se pueden incluir otros ficheros
;aqu reservamos las posiciones de memoria de datos que necesitemos a partir
;de la posicin 0x20
org 0x00
;inicio en el vector de Reset (posicin 0 de la ;memoria de
programa)
goto Inicio ;va a la primera instruccin del programa
; si se van a producir interrupciones, debemos tener en cuenta que el vector de
; interrupcin se encuentra en la posicin 4 de la memoria de programa, por lo
; que habr que aadir:
org 0x04
; vector de interrupcin
goto trata_interrupcin
; va al programa de tratamiento de la
;interrupcin

Tecnologa Electrnica

66

Universidad
de Oviedo

6. Microcontroladores. PIC

Configuracin de los puertos

Los puertos (que estn en el banco 0) tienen unos registros


asociados, TRIS (en el banco 1) que permiten configurar
cada una de sus patillas como entrada o salida.

Despus del RESET de encendido, estos registros TRIS


tienen todos sus bits a 1 (los puertos correspondientes
estn configurados como entradas).

Ejemplo: Queremos que los bits del puerto A <7:5> sean salidas y
los bits
<4:0> sean entradas
bsf
movlw
movwf

STATUS,RP0
b'00011111'
TRISA

Tecnologa Electrnica

;pasamos al banco 1
;configuramos PORTA<7:5> como
;salidas y PORTA<4:0> como entradas,
;aunque esto ltimo no es necesario.

67

Universidad
de Oviedo

Operaciones con literales

6. Microcontroladores. PIC

Todas las operaciones con literales se realizan con el registro W.


Para cargar, sumar, etc. un registro F con un literal se debe
hacer en dos pasos:

1- Se realiza la operacin con W

2- Se carga W en el registro F.

Ejemplo 1: cargar el registro OPTION_REG con 0000 0110.


movlw b'00000110'
;cargamos el registro option_reg...
movwf OPTION_REG
;...con el valor indicado

Ejemplo 2: sumar dos valores inmediatos (p.e. los decimales 12 y 7)


movlw 0x0C
;carga el 1er. sumando en W
addlw
0x07
;le sumamos el 2 sumando
movwf Resultado
;guardamos el resultado
;antes hemos reservado una posicin de memoria RAM para el resultado, a partir d
la 0X20 (banco 0 en este caso) con la directiva EQU o bien con la directiva CBLOK.
; con EQU:
Resultado EQU 0x20
;con CBLOK:
CBLOK 0x20
Resultado
ENDC

Tecnologa Electrnica

68

Universidad
de Oviedo

Obtener parte de un registro

6. Microcontroladores. PIC

Se hace una AND con 1s.


Ejemplo :
Queremos quedarnos con la parte alta del registro REG.
MOVF
ANDLW
parte alta

REG, W
0xF0

;pasamos el contenido del registro a W


;hacemos la AND con F0 para obtener la
;de REG, el resultado queda en W

0xF0
REG, 0

;cargamos W con el literal F0


;hacemos la AND entre W y REG y dejamos el
;resultado en W

Otra forma:
MOVLW
ANDWF

Tecnologa Electrnica

69

Universidad
de Oviedo

Comprobar si dos registros


son iguales

6. Microcontroladores. PIC

Se utiliza la instruccin XORWF, por lo que se hace la XOR entre W y uno de los
registros.
Ejemplo: saber si el registro CONTADOR que es un registro que se inicializa a 0 y se
va
incrementando es igual al registro FIN, en cuyo caso se termina el
programa; si no, incrementamos CONTADOR.
MOVF CONTADOR,W ; cargamos W con el contenido de CONTADOR
XORWF FIN ; hacemos la XOR entre W y FIN
BTFSS STATUS,Z
; miramos si el resultado ha sido cero;
INCF CONTADOR
; si no, se incrementa CONTADOR
GOTO END
; si s, salta la siguiente instruccin y va a GOTO END
Otra opcin es restar ambos registros utilizando el registro W; en este ejemplo slo
nos
interesa saber
si son oW
no son iguales.
MOVF
CONTADOR,
;cargamos W con el valor de CONTADOR

SUBWF
BTFSC
GOTO
GOTO
En este

FIN, W
STATUS,Z
Iguales
NoIguales
caso hemos utilizado la

; restamos FIN-CONTADOR y lo dejamos en W


; si Z=0, salta ya que no son iguales
; s, son iguales
; no son iguales
instruccin BTFSC.

Si la comparacin es entre un registro y un literal, se cargara W con el


contenido del registro y se hara la XOR entre W y el literal con la
instruccin XORLW
Tecnologa Electrnica

70

Interrupciones

6. Microcontroladores. PIC

Universidad
de Oviedo

En las interrupciones el proceso que se sigue es el que muestra la


figura.
Cuando se origina una interrupcin el bit GIE (habilitacin global de
interrupciones) del registro INTCON es puesto a 0, lo que impide
cualquier otra interrupcin.
El bit de flag correspondiente se
pone a 1 y debe borrarse por
software.
La habilitacin de una determinada interrupcin exige
poner a 1 el bit GIE y el correspondiente bit de habilitacin
de la interrupcin particular;
ambos se encuentran en el
registro INTCON.
La instruccin RETFIE vuelve
a poner GIE a 1.
El registro INTCON est
en el banco 0 y el 1

Tecnologa Electrnica

71

Universidad
de Oviedo

Interrupciones

6. Microcontroladores. PIC

PTI

Hay que tener en cuenta que al principio de la interrupcin hay que salvaguardar los
registros W y STATUS, a veces tambin el PCLATH.
movwf W_tmp
swapf STATUS,W
bcf STATUS,RP0
bcf STATUS,RP1
movwf STATUS_tmp
movf PCLATH,W
movwf PCLATH_tmp

;Salvamos el registro W
; y el registro STATUS "girado" en W
;Aseguramos el paso al banco 0
;poniendo a 0 los dos bits de seleccin de banco
;Guardamos en el banco 0 STATUS girado
;Salvamos tambin PCLATH en W
;y ahora en una posicin auxiliar del banco 0

Al final del PTI, antes de RETFIE hay que recuperarlos.


movf PCLATH_tmp,W
movwf PCLATH
swapf STATUS_tmp,W
SWAPF
movwf STATUS
swapf W_tmp,F
swapf W_tmp,W
retfie

Tecnologa Electrnica

;Recuperamos PCLATH directamente


;Recuperamos el registro STATUS con un
;ahora estamos en el banco de partida
;Recuperamos tambin el W con dos SWAPF
;para evitar la instruccin MOVF

72

TMR0

6. Microcontroladores. PIC

Universidad
de Oviedo

Es un registro que se encuentra en el banco 0 de la RAM.


Es un temporizador que se incrementa con cada pulso del oscilador
interno o con un reloj externo que se selecciona mediante el bit
T0CS del registro OPTION_REG que se encuentra en el banco 1: T0CS
=0 para el reloj interno.
Tambin tiene la posibilidad de aplicarle un divisor de frecuencia
(prescaler) de 8 bits que comparte con el WDT. El bit PSA
(OPTION_REG <3>) a 0 le asigna el prescaler al TMR0 y los bits PS2PS0 seleccionan por cunto se divide la frecuencia.
Se puede leer y escribir en TMR0 y cuando se desborda puede
producir una interrupcin.
Ejemplo: Se pretende que cada 200ms. se produzca un determinado
evento por interrupcin del TMR0 utilizando el oscilador interno de
4 MHz y sabiendo que cada ciclo de instruccin dura 4 ciclos del
oscilador.
Como un solo desbordamiento del TMR0 slo permite una
temporizacin de aproximadamente 65ms tendremos que hacer que
temp TMR0
= [(256
carga)
PSa+hacer
2] Tinstr
se desborde
varias
veces.
Vamos
que se desborde 20 veces
para lo
que tenemos
Elegimos
PS=128 que precargar el TMR0 para que se desborde a
los 10ms
Carga = 180
Hay que cargar el reg. OPTION_REG con el binario: 00000110
Para permitir las interrupciones el registro INTCON debe cargarse
con el
binario 10100000. (Mirar la configuracin de ambos registros)

Tecnologa Electrnica

73

Interrupcin RBI

6. Microcontroladores. PIC

Universidad
de Oviedo

Interrupcin RBI es una interrupcin producida por el cambio de estado en


alguna de las lneas RB4, RB5, RB6 o RB7. Hay que configurar esas lneas como
entradas y cargar el INTCON para permitir la interrupcin.
Ejemplo: Vamos a utilizar la interrupcin RBI para encender unos LEDs
conectados a los bits RB0, RB1, RB2 y RB3

BSF STATUS, RP0


;pasamos al banco 1 para configurar el puerto B
MOVLW 0XF0 ;RB<4,7> entradas, RB<0,3> salidas
MOVWF TRISB
BCF STATUS, RP0
;volvemos al banco 0
CLRF PORTB ;para inicializar el puerto (LEDs apagados)
MOVLW b10001000
;habilitamos las interrupciones generales
MOVWF INTCON
;y la particular poniendo GIE y RBIE a 1
Como en todas las interrupciones al principio del programa hay que poner:
ORG 0x04
GOTO PTI
Al principio del PTI hay que salvar los registros W y STATUS y al final del mismo hay
que recuperarlos y borrar el flag RBIF

Tecnologa Electrnica

74

Universidad
de Oviedo

Suma de valores inmediatos

6. Microcontroladores. PIC

;Escribir un programa que sume dos valores inmediatos (p.e. los


decimales 12 y 7)

Inicio
Stop

List
include

p=16F877
P16F877.INC

Resultado
org
goto
org

equ
0x00
Inicio
0x05

movlw
addlw
movwf
nop
end

0x0C
0x07
Resultado

Tecnologa Electrnica

0x20

;tipo de procesador
;incluye fichero de smbolos y
;etiquetas
;para almacenar el resultado
;vector de Reset
;saltamos el vector de
;interrupcin
;carga el 1er. sumando en W
;le sumamos el 2 sumando
;guardamos el resultado
;ponemos punto de parada
;fin del programa fuente

75

También podría gustarte