Teoria Pic 16F887 y Lenguaje C

Páginas: 13 (3018 palabras) Publicado: 17 de abril de 2015
TEORIA BASICA SOBRE MICROCONTROLADORES 16F887 Y LENGUAJE C
1.4 MICROCONTROLADORES PIC
JUEGO DE INSTRUCCIONES
El juego de instrucciones para los microcontroladores 16F8XX incluye 35 instrucciones en total. La razón para un número tan reducido de instrucciones yace en la arquietectura RISC. Esto quiere decir que las instrucciones son bien optimizadas desde el aspecto de la velocidad operativa,la sencillez de la arquitectura y la compacidad del código. Lo malo de la arquitectura RISC es que se espera del programador que haga frente a estas instrucciones. Por supuesto, esto es relevante sólo si se utiliza el lenguaje ensamblador para la programación. Este libro se refiere a la programación en el lenguaje de alto nivel C, lo que significa que la mayor parte del trabajo ya fue hecho poralguien más. Así, sólo se tienen que utilizar instrucciones relativamente simples.
TIEMPO DE EJECUCIÓN DE INSTRUCCIONES
Todas las instrucciones se ejecutan en un ciclo. La únicas excepciones pueden ser las instrucciones de ramificación condicional o las instrucciones que cambian el contenido del contador de programa. En ambos casos, dos ciclos de reloj son necesarios para la ejecución de lainstrucción, mientras que el segundo ciclo se ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la ejecución de la instrucción es 1μS. En cuanto a las instrucciones de ramificación, el tiempo de ejecución de la instrucción es 2μS.
Juego de instrucciones de los microcontroladores PIC de 14bits:
INSTRUCCIÓN
DESCRIPCIÓN
OPERACIÓN
BANDERA
CLK
*
Instrucciones para la transmisión de datos
MOVLW k
Mover literal a W
k -> w

1

MOVWF f
Mover el contenido de W a f
W -> f

1

MOVF f,d
Mover el contenido de f a d
f -> d
Z
1
1, 2
CLRW
Borrar el contenido de W
0 -> W
Z
1

CLRF f
Borrar el contenido de f
0 -> f
Z
1
2
SWAPF f,d
Intercambiar de nibbles en f
f(7:4),(3:0) -> f(3:0),(7:4)

1
1, 2Instrucciones aritmético - lógicas
ADDLW k
Sumar literal a W
W+k -> W
C, DC, Z
1

ADDWF f,d
Sumar el contenido de W y f
W+f -> d
C, DC ,Z
1
1, 2
SUBLW k
Restar W de literal
k-W -> W
C, DC, Z
1

SUBWF f,d
Restar W de f
f-W -> d
C, DC, Z
1
1, 2
ANDLW k
AND W con literal
W AND k -> W
Z
1

ANDWF f,d
AND W con f
W AND f -> d
Z
1
1, 2
IORLW k
OR inclusivo de W con literal
W OR k -> W
Z
1

IORWF f,d
OR inclusivode W con f
W OR f -> d
Z
1
1, 2
XORWF f,d
OR exclusivo de W con literal
W XOR k -> W
Z
1
1, 2
XORLW k
OR exclusivo de W con f
W XOR f -> d
Z
1

INCF f,d
Sumar 1 a f
f+1 -> f
Z
1
1, 2
DECF f,d
Restar 1 a f
f-1 -> f
Z
1
1, 2
RLF f,d
Rotar F a la izquierda a través del bit de Acarreo

C
1
1, 2
RRF f,d
Rotar F a la derecha a través del bit de Acarreo

C
1
1, 2
COMF f,d
Complementar f
f -> d
Z
1
1, 2Instrucciones orientadas a bit
BCF f,b
Poner a 0 el bit b del registro f
0 -> f(b)

1
1, 2
BSF f,b
Poner a 1 el bit b del registro f
1 -> f(b)

1
1, 2
Instrucciones de control de programa
BTFSC f,b
Saltar si bit b de registro f es 0
Skip if f(b) = 0

1 (2)
3
BTFSS f,b
Saltar si bit b de reg. f es 1
Skip if f(b) = 1

1 (2)
3
DECFSZ f,d
Disminuir f en 1. Saltar si el resultado es 0
f-1 -> d skip ifZ = 1

1 (2)
1, 2, 3
INCFSZ f,d
Incrementar f en 1. Saltar si el resultado es 1
f+1 -> d skip if Z = 0

1 (2)
1, 2, 3
GOTO k
Saltar a una dirección
k -> PC

2

CALL k
Llamar a una subrutina
PC -> TOS, k -> PC

2

RETURN
Retornar de una subrutina
TOS -> PC

2

RETLW k
Retornar con literal en W
k -> W, TOS -> PC

2

RETFIE
Retornar de una interupción
TOS -> PC, 1 -> GIE

2

Otras instrucciones
NOPNo operación
TOS -> PC, 1 -> GIE

1

CLRWDT
Reiniciar el temporizador perro guardián
0 -> WDT, 1 -> TO, 1 -> PD
TO, PD
1

SLEEP
Poner en estado de reposo
0 -> WDT, 1 -> TO, 0 -> PD
TO, PD
1

*1 Si un registro de E/S está modificado, el valor utilizado será el valor presentado en los pines del microcontrolador.
*2 Si la instrucción se ejecuta en el registro TMR y si d=1, el pre-escalador será...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • lenguaje C para PIC
  • Pic 16F887
  • pic 16f887
  • Practica interrupciones pic 16f887
  • Caracteristicas Del Pic 16F887
  • Semaforo Con Microcontrolador Pic 16F887
  • Intermitencia con PIC 16f887 (ensamblador)
  • pic c

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS