Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo: Las y los alumnos analizarán el set de instrucciones del PIC16F84 para posteriormente
utilizarlo en la realización de programas en lenguaje ensamblador.
Desarrollo:
Sintaxis ADDLW k
Descripción
Agrega el valor de la variable k al valor de W
simplificada:
Número de
Se realiza en 1 ciclo
ciclos:
ADDLW 0x15
Before Instruction
Ejemplo:
W = 0x10 After
Instruction
W = 0x25
Sintaxis ANDWF f,d
Es una operación lógica, que tiene una operación AND entre el registro f y w, s
Descripción
el valor contenido en d es igual con 0, entonces se guarda el resultado en W,
simplificada:
sino se guarda en f.
Número de Se realiza en 1 ciclo
ciclos:
ANDWF FSR, 1
Before Instruction
Ejemplo:
W = 0x17 FSR = 0xC2
After Instruction
W = 0x17 FSR = 0x02
Sintaxis CLRF
Descripción
El contenido del registro “f” se pone en ceros: 0x00
simplificada:
Número de
1
ciclos:
Sintaxis CLRW
Descripción
Borra el registro W, se carga con 00h y el flag de Z se activa.
simplificada:
Número de
1
ciclos:
Sintaxis DECF
DECF 2,0->W = 1
Ejemplo: DECF 2,1 -> F = 1
Número de
1(2)
ciclos:
simplificada:
Número de 1
ciclos:
Número de 1(2)
ciclos:
Sintaxis IORWF
Sintaxis MOVF
Número de
ciclos:
Ejemplo: W equ 0
f equ 1
Contador equ 10
MOVF Contador,W ; mueve una copia del contenido del ; Contador al
acumulador
Sintaxis MOVWF
Número de
ciclos:
Descripción Esta instrucción no hace nada durante un ciclo. Se puede ocupar para realizar
simplificada: retardos.
Número de
ciclos:
Ejemplo:
Sintaxis RRF
Descripción Rota el contenido del registro f una posición a la izquierda. El bit se rota a través
simplificada: de la bandera “carry” . La bandera carry esta en el bit 0 del registro STATUS, que
se localiza en la posición 0x03 de la memoria del microcontrolador. Cada vez
que se ejecuta la instrucción los bits se rotan una posición a la izquierda, el bit
menos significativo es ocupado por el contenido de la bandera carry y el bit más
significativo pasa a ocupar el lugar de la bandera carry.
_________________________________-
Los contenidos del registro “f”, son rotados un bit a la derecha a través de la
bandera de acarreo, si “d” es 0, el resultado es colocado en el registro W. Si “d”
es 1, el resultado es colocado de nuevo en el registro “f”.
Número de 1
ciclos:
Ejemplo: W equ 0
f equ 1
STATUS equ 0x03
C equ 0
Contador equ 10
BCF STATUS,0 ; carry a 0
MOVLW b’11111111’
MOVWF Contador ; Contador b’11111111’
RRF Contador,f ; Contador b’11111110’
rlf Reg1,W
Antes de instrucción:
(Reg1)= b’1110 0110’
(W) = ¿?
C = 0
Después de instrucción:
(Reg1)= b’1110 0110’
(W) = b’0111 0011’
C = 0
Sintaxis RLF
Descripción Rota el contenido del registro f una posición a la izquierda. El bit se rota a través
simplificada: de la bandera “carry” . La bandera carry esta en el bit 0 del registro STATUS, que
se localiza en la posición 0x03 de la memoria del microcontrolador. Cada vez
que se ejecuta la instrucción los bits se rotan una posición a la izquierda, el bit
menos significativo es ocupado por el contenido de la bandera carry y el bit más
significativo pasa a ocupar el lugar de la bandera carry.
Número de 1
ciclos:
Ejemplo: W equ 0
f equ 1
STATUS equ 0x03
C equ 0
Contador equ 10
BCF STATUS,0 ; carry a 0
MOVLW b’11111111’
MOVWF Contador ; Contador b’11111111’
RLF Contador,f ; Contador b’11111110’
____________________-
rlf Reg1,W
Antes de instrucción:
(Reg1)= b’1110 0110’
(W) = ¿?
C = 0
Después de instrucción:
(Reg1)= b’1110 0110’
(W) = b’1100
Sintaxis SUBWF
Sintaxis SWAPF
Ejemplo: W equ 0
F equ 1
Contador equ 10
MOVLW b’11110000’
MOVWF Contador ; Contador b’11110000’
SWAPF Contador ; Contador b’00001111’
_________________________________
swapf Reg1,W
Antes instrucción:
(Reg1) = 0xA5 y (W) = ¿?
Después instrucción:
(Reg1) = 0xA5 y (W) = 0x5A
Sintaxis XORWF
Número de 1
ciclos:
Sintaxis BCF
Número de 1
ciclos:
BCF FLAG_REG, 7
Si antes de la instrucción el registro
FLAG_REG = C7 h = 1100 0111 b
Al ejecutarse la instrucción, el registro queda con el valor:
FLAG_REG = 47b = 0100 0111 b
Sintaxis BSF
Número de 1
ciclos:
Sintaxis BTFSC
Descripción Prueba el bit b del registro f .
simplificada: Salta la siguiente instrucción si bit b es 0.
Si el bit “b” del registro “f” es 0, se salta la siguiente instrucción, no se ejecuta y
se continúa con la ejecución del programa. Cuando se produce este salto, son
necesarios dos ciclos.
Número de 1(2)
ciclos:
_____________________________________-
HERE BTFSC FLAG,1
FALSE GOTO PROCESS_CODE
TRUE.
Si antes de la instrucción. PC = dirección HERE
Al ejecutarse:
if FLAG<1> = 0,
PC = dirección TRUE
if FLAG<1> = 1,
PC = dirección FALSE
Sintaxis BTFSS
Sintaxis ADDLW
Número de 1
ciclos:
Sintaxis ANDLW
Sintaxis CALL
Número de 1
ciclos:
Número de 1
ciclos:
Ejemplo: CLRWDT
Si antes de la instrucción:
WDT = OAh
Al ejecutarse:
WDT = OOh
Preescaler WDT = O
bit de estado TO = 1
bit de estado PD = 1
Sintaxis GOTO
Número de 2
ciclos:
_________________________________
Goto Bucle ;Bucle ->(PC)
Antes de la instrucción : (PC)=¿?
Después de la instrucción: (PC)= Dirección apuntada por la etiqueta “Bucle”
Sintaxis IORLW
Número de 1
ciclos:
Sintaxis MOVLW
Número de 2
ciclos:
Ejemplo: REFTIE 1
After Interrupt
PC = TOS
W = WS
BSR = BSRS
STATUS = STATUSS
GIE/GIEH, PEIE/GIEL = 1
Sintaxis RETLW
Número de 2
ciclos:
Número de 2
ciclos:
Ejemplo: RETURN
Después de la instrucción:
PC = TOS
Sintaxis SLEEP
Número de 1
ciclos:
Ejemplo: SLEEP()
Sintaxis SUBLW
Descripción Realiza la resta k – W
simplificada:
Número de 1
ciclos:
Sintaxis XORLW
3. Subir al canal de Teams, como publicación, el archivo con las tablas de cada una de las
instrucciones que les toco analizar en el equipo de trabajo.
4. De manera individual integrar un archivo con todas las tablas de funcionamiento de todas las
instrucciones. Haz las modificaciones que consideres pertinentes para que te quede más claro
cómo se utilizan las instrucciones y para qué sirve.
5. Sube en formato PDF el archivo que integraste como el resultado del punto 5. Recuerda que el
trabajo es individual y que este documento te servirá como referencia para la utilización de las
instrucciones durante la realización de los programas.