Microcontroladores

Solo disponible en BuenasTareas
  • Páginas : 12 (2876 palabras )
  • Descarga(s) : 0
  • Publicado : 2 de diciembre de 2011
Leer documento completo
Vista previa del texto
MICROCONTROLADORES
M.Sc. César Augusto Peña C.
Profesor de planta – Ingeniería mecatrónica Universidad de Pamplona

INSTRUCCIÓN ADDLW k
W+k
Ejm:

W

W =1

0 0 0 0 0 0 0 1
ADDLW .7

W = 1 +7 = 8

0 0 0 0 1 0 0 0

INSTRUCCIÓN ADDWF f,d
W+f
Ejm:

d

W=1

0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
ADDWF REG1,1

REG1 = 5

REG1 = 1 + 5 = 6

0 0 0 0 0 1 1 0

INSTRUCCIÓN ANDLWk
W AND k
Ejm:

W

W =5

0 0 0 0 0 1 0 1
ANDLW b’00000111’

W = 5 AND 7 = 5

0 0 0 0 0 1 0 1

INSTRUCCIÓN ANDWF f,d
W AND f
Ejm:

d

W=3

0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1
ANDWF REG1,0

REG1 = 5

W = 3 AND 5 = 1

0 0 0 0 0 0 0 1

INSTRUCCIÓN CLRW
0
Ejm:

W

W =171

1 0 1 0 1 0 1 1
CLRW

W=0

0 0 0 0 0 0 0 0

INSTRUCCIÓN CLRF f
0
Ejm:

f

REG1=170

1 0 1 0 1 0 1 0
CLRF REG1

REG1 = 0

0 0 0 0 0 0 0 0

INSTRUCCIÓN COMF f,d
com(f)
Ejm:

d

REG1 =240

1 1 1 1 0 0 0 0
COMF REG1,0

W = 15

0 0 0 0 1 1 1 1

INSTRUCCIÓN DECF f,d
f-1
Ejm:

d

REG1 =8

0 0 0 0 1 0 0 0
DECF REG1,1

REG1 = 7

0 0 0 0 0 1 1 1

INSTRUCCIÓN INCF f,d
f+1
Ejm:

d

REG1 =15

0 0 0 0 1 1 1 1
INCF REG1,1

REG1 = 160 0 0 1 0 0 0 0

INSTRUCCIÓN IORLW k
W OR k
Ejm:

W

W =9

0 0 0 0 1 0 0 1
IORLW b’00000111’

W = 9 OR 7 = 15

0 0 0 0 1 1 1 1

INSTRUCCIÓN IORWF f,d
W OR f
Ejm: REG1 =6 W =9

d

0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1
IORWF REG1,0

REG1 =6

0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1

W = 6 OR 9 = 15

INSTRUCCIÓN NOP

Ejm:

NOP

No hace nada Se utiliza para crear retarnos muycortos

INSTRUCCIÓN RLF f,d
C REG1

0

0 1 0 0 1 1 1 1

RLF C

REG1,1 REG1

0

1 0 0 1 1 1 1 0

INSTRUCCIÓN RLF f,d
C REG1

0

1 0 0 1 1 1 1 0

RLF C

REG1,1 REG1

1

0 0 1 1 1 1 0 0

INSTRUCCIÓN RLF f,d
C REG1

1

0 0 1 1 1 1 0 0

RLF C

REG1,1 REG1

0

0 1 1 1 1 0 0 1

INSTRUCCIÓN RRF f,d
C REG1

1

0 0 1 1 1 1 0 0

RRF C

REG1,1 REG10

1 0 0 1 1 1 1 0

INSTRUCCIÓN SUBLW k
k-W
EJEMPLO 1:

W

W=5

0 0 0 0 0 1 0 1
SUBLW .7 C

W=7-5=2

0 0 0 0 0 0 1 0

1

POSITIVO

INSTRUCCIÓN SUBLW k
k-W
EJEMPLO 2:

W

W = 15

0 0 0 0 1 1 1 1
SUBLW .15 C

W = 15 - 15 = 0

0 0 0 0 0 0 0 0

1

CERO

INSTRUCCIÓN SUBLW k
k-W
EJEMPLO 3:

W

W=4

0 0 0 0 0 1 0 0
SUBLW .3 C

W = 3 - 4 = -1

11 1 1 1 1 1 1

0

NEGATIVO

INSTRUCCIÓN SUBWF f,d
f-W
EJEMPLO 1:

W

REG1 = 6 W=1

0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1
SUBWF REG1,1 C

REG1 = 6 - 1 = 5

0 0 0 0 0 1 0 1

1

POSITIVO

INSTRUCCIÓN SUBWF f,d
f-W
EJEMPLO 1:

W

REG1 = 7 W=7

0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1
SUBWF REG1,1 C

W=7-7=0

0 0 0 0 0 0 0 0

1

CERO

INSTRUCCIÓN SUBWF f,d
f-W
EJEMPLO1:

W

REG1 = 10 W = 12

0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0
SUBWF REG1,1 C

REG1 = 10 - 12 = -2

1 1 1 1 1 1 1 0

0

NEGATIVO

INSTRUCCIÓN SWAPF f,d
f
Ejm:

d d

f

REG1

0 0 0 0 1 0 0 1
SWAPF REG1,0

W

1 0 0 1 0 0 0 0

INSTRUCCIÓN XORLW k
W XOR k
Ejm:

W

W =9

0 0 0 0 1 0 0 1
XORLW b’00000111’

W = 9 XOR 7 = 14

0 0 0 0 1 1 1 0

INSTRUCCIÓNXORWF f,d
W XOR f
Ejm:

d

REG1 = 15

0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0
XORWF REG1,0

W=6

W = 15 XOR 6 = 9

0 0 0 0 1 0 0 1

RUTINAS USUALES
• Poner a CERO varios bits de W sin alterar el resto. Ejm: Se desea poner a cero los bits 3, 4 y 5 del registro W sin alterar los demás

W

1 0 1 0 1 0 0 1
ANDLW B’11000111’

W

1 0 0 0 0 0 0 1

RUTINAS USUALES
• Poner a UNO variosbits de W sin alterar el resto. Ejm: Se desea poner a uno los bits 1,2,3 y 4 del registro W sin alterar los demás

W

1 0 1 0 1 0 0 1
IORLW B’00011110’

W

1 0 1 1 1 1 1 1

RUTINAS USUALES
• Detectar si dos registros son iguales y en tal caso llama una subrutina Ejm: Si REG1 = REG2 llamar la subrutina IGUAL

MOVF REG1 = W REG2

REG1,0

;REG 1

W

10101001 10101001
REG2,0...
tracking img