Escolar Documentos
Profissional Documentos
Cultura Documentos
PIC 16F87X
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Instrucciones Aritmticas
ADDWF f,d
ADDLW k
SUBWF f,d
SUBLW k
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Partes de un programa en
Directiva ORG:
ASM ORG <exp>
Sirve para indicar la direccin de memoria en la cual ser colocada el cdigo generado a continuacin. Ejemplo
ORG 0x04
nop
Indica que el siguiente nop se colocar en la direccin 0x04 de la direccin de programa.
DIRECTIVA LIST
Sirve para indicarle al MPLAB cual es el formato del archivo *.list dentro de los parmetros esta el tipo de procesador que se
va a emplear. Ejemplo:
list p=16F877
IMC@
DIRECTIVA INCLUDE: include <file> Diseo y Programacin de Controladores
Sirve para incluir en el ensamblado el archivo indicado por el parametro file.
include <p16f877.inc>
rea de Ingeniera
Resta
Para restar sumamos usando el complemento A2 del sustraendo
0000 1001 (9)
1111 1100 (-4)
------------------
0000 0101 en esta suma se produce un carry. Exp (9 4 = 5)
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Resta
Cuando el sustraendo es mayor que el
minuendo entonces no se produce carry.
La instruccin subwf f,d produce F W y la
instruccin sublw k produce K W.
S W es mayor que K o F entonces no se
producir un carry en la resta.
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Instrucciones Lgicas
ANDWF f,d
ANDLW k
COMF f,d
IORWF f,d
IORLW k
XORWF f,d
XORLW k
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
AND y OR
Con la operacin AND podemos poner a cero los bits que
deseemos.
Ej. El registro W contiene el dato 0xFA, si quisera poner a
cero los 4 bits menos significativos entonces ejecuto un
andlw 0xF0 (11110000). S quisiera poner a cero el bit 4
solamente entonces ejecuto un 0xEF (11101111). A esto
se le llama Masking.
La OR puede usarse para poner a uno bits. Ej: s W =
0x20, para poner a uno el bit cero pudiera ejecutar un iorlw
0x01 (0000 0001)
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Incrementos y Decrementos
INCF f,d
DECF f,d
INCFSZ f,d
DECFSZ f,d
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Delay
IMC@
Diseo y Programacin de Controladores
rea de Ingeniera
Rotaciones
RLF f,d
RRF f,d
IMC@
Diseo y Programacin de Controladores