Escolar Documentos
Profissional Documentos
Cultura Documentos
2
2.1 Conjunto de Instrucciones
2.2 Modos de direccionamiento
2.3 Registros de trabajo
Clasificacin de instrucciones
Formato general
Ciclo de instruccin
Modos de direccin
Instrucciones orientadas a byte
Instrucciones orientadas a bit
Instrucciones con literales y de control
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Cdigo de operacin
f (direccin)
si d=0 el destino es W
si d=1 el destino es f
f es la direccin de 7 bits del registro
El formato de todas las instrucciones consiste de una palabra de 14 bits dividida en un
cdigo de operacin que especifica el tipo de instruccin de uno o ms operandos.
En esta pgina y las siguientes se muestra los tres formatos generales que las
instrucciones pueden tener.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
si d=0 entonces: f w
si d=1 entonces: f f, en este caso se utiliza para saber si el
contenido de f es cero.
En estas instrucciones f representa un registro SFR (ej: PORTA)
o el nombre de una variable RAM (TEMP1), que sirve como
operando fuente o destino.
d representa al operando destino: si d=0 el destino es el
registro W, si d=1 el destino es el file f especificado en la
instruccin.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
10 9 8 7
f (direccin)
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
As: BSF f, 5
realiza 1 f5.
En estas instrucciones b representa un campo de 3
bits que selecciona el nmero de bit afectado en la
operacin, mientras que f representa el registro en el
cual el bit est localizado.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Cdigo de operacin
Literal k
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
11
Cdigo de operacin
10
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Ciclo de instruccin
Como ya se ha dicho debido a la tubera y al
solapamiento de la fase de ejecucin de una
instruccin con la fase de bsqueda de la siguiente,
la mayora de las instrucciones de los PIC demoran
un ciclo de instruccin.
La excepcin son las instrucciones de salto o
ramificacin, donde al no poder solapar su ejecucin
con la bsqueda de la siguiente, son necesarios los
dos ciclos de instruccin.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
EJEMPLOS:
PARA fosc= 4 MHz:
CI =4Q= 4Tosc = 4(1/4MHz) = 1 seg
Para fosc = 20 MHz
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Instrucciones Limpiar/mover
CLRW
CLRF
MOVLW
MOVWF
MOVF
MOVF
SWAPF
SWAPF
TEMP1
D 10
TEMP1
TEMP1, W
TEMP1, F
TEMP1, F
TEMP1, W
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Incremento/Decremento/Complemento
INCF
INCF
DECF
DECF
COMF
COMF
TEMP1, F
TEMP1, W
TEMP1, F
TEMP1, W
TEMP1, F
TEMP1, W
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Suma/Resta
ADDLW
ADDWF
ADDWF
SUBLW
SUBWF
SUBWF
5
TEMP1, F
TEMP1, W
5
TEMP1, F
TEMP1, W
;W 5 - W
; TEMP1 TEMP1-W
; W TEMP1 - W
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Instrucciones Lgicas
ANDLW
ANDWF
ANDWF
IORLW
IORWF
IORWF
XORLW
XORWF
XORWF
RLF
RLF
RRF
RRF
B 00000111
TEMP1, F
TEMP1, W
B 00000111
TEMP1, F
TEMP1, W
B 00000111
TEMP1, F
TEMP1, W
TEMP1, F
TEMP1, W
TEMP1, F
TEMP1, W
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
BCF
BSF
BCF
BTFSC
BTFSS
DECFSZ
DECFSZ
INCFSZ
INCFSZ
PORTB, 0
STATUS, C
TEMP1, 5
TEMP1, 3
TEMP1, 3
TEMP1, F
TEMP1, W
TEMP1, F
TEMP1, W
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
GOTO
CALL
RETURN
RETLW
RETFIE
ALLI
; salto a una etiqueta
TAREA1 ; llamado a una subrutina
; para retornar de una subrutina
5
; carga el literal 5 en w retornando del
; llamado a una subrutina
; sirve para retornar de una
; interrupcin
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Miscelnea
CLRWDT
SLEEP
NOP
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Direccionamiento inmediato
Ocurre en instrucciones con literales que forman parte de la instruccin.
Es decir que el dato se encuentra en la misma instruccin. En el cdigo
de mquina est embebido el dato.
Direccionamiento directo
Ocurre en las instrucciones que contienen la direccin del dato
requerido. En el cdigo de mquina est embebido la direccin del dato.
Direccionamiento indirecto
Ocurre cuando en la instruccin se tiene una operacin con el registro
INDF, lo cual indica que el valor del dato se encuentra en la direccin
guardada en el registro FSR (7-BITS menos significativos).
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Direccionamiento Indirecto
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
Ejemplo de Direccionamiento
Indirecto
Programa que limpia las localidades de la RAM
desde la posicin 20H hasta 2FH.
NEXT
CONTINUE XXXX
BCF
MOVLW
MOVWF
CLRF
INCF
BTFSS
GOTO
XXXX
STATUS, IRP
0X20
FSR
INDF
FSR, F
FSR, 4
NEXT
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
STATUS
OPTION REG
PCON
PC = PCLATH & PCL
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
R(W
R
(0)
(1)
Bit de lectura/escritura
Bit de lectura solamente
Despus de un RESET, se hace cero
Despus de un RESET, se hace uno
Banco activo
Bank0
Bank1
Bank2
Bank3
TO Bit de Time-out.
1 Despus de encender el microcontrolador o despus de ejecutar la instruccin
CLRWDT que resetea el WDT o la instruccin SLEEP (modo de bajo consumo de
energa).
0 Cuando se desborda el perro guardin.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
PD Bit de Power-down.
1 Despus de encender el microcontrolador o despus de ejecutar la
instruccin CLRWDT que resetea el WDT .
0 Al ejecutar la instruccin SLEEP que permite entrar en el modo de bajo
consumo.
Z - Bit de Zero
1 Cuando el resultado de una operacin aritmtica o lgica es cero.
0 Cuando el resultado de una operacin aritmtica o lgica es diferente de
cero.
DC - Bit de carry/borrow este bit cambia durante las operaciones de adicin y
sustraccin si ocurre un desbordamiento (overflow) o prstamo (borrow).
1 Cuando ocurre un desbordamiento del cuarto bit.
0 Cuando no ocurre un desbordamiento del cuarto bit.
C - Bit de Carry/Borrow cambia durante las operaciones de adicin o sustraccin si
ocurre un desbordamiento (overflow) o prstamo (borrow), i.e. si el resultado es
mayor a 255 or menor que 0.
1 Cuando ocurre un desbordamiento del bit ms significativo.
0 Cuando no ocurre un desbordamiento del bit ms significativo.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
El registro PCON contiene dos banderas para diferenciar entre: POR,BOR,MCLR y WDT
reset. As como tambin un control para Ultra low power reset y un habilitador por
software del BOR.
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
El tamao de la memoria ROM del microcontrolador es de 8K. Es decir 8.192 posiciones para
almacenar programas. Por esta razn el contador de programa debe ser de 13 bits de ancho
(2^13 = 8192), conformado por 8 bits del registro PCL y 5 bits del registro PCLATH.
El contador del programa cuenta normalmente hasta 2K por esta razn la memoria ROM se
divide en cuatro pginas de 2K. Para saltar entre pginas es necesario programar los bits 4 y 5
de PCLATH (que son los indicadores de pgina).
En llamadas a subrutinas o ejecuciones de saltos (instrucciones CALL y GOTO), el
microcontrolador es capaz de proveer solo 11-bits de direccionamiento. Por esta razn en
forma similar a la memoria RAM dividida en bancos, la memoria ROM se divide en cuatro
pginas de 2K cada una. Las instrucciones ejecutadas dentro de una pgina no tienen
problema pero para saltar entre pginas es necesario programar los bits 4 y 3 de PCLATH (que
son los indicadores de pgina) como se observa en la prxima diapositiva. Cuando las
subrutinas alcanzan las instrucciones RETURN, RETLW o RETFIE retornan al programa principal
y el microcontrolador simplemente contina con la ejecucin del programa a partir de la
direccin almacenada en la PILA o STACK
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S