Mostrando entradas con la etiqueta Microchip.. Mostrar todas las entradas
Mostrando entradas con la etiqueta Microchip.. Mostrar todas las entradas

sábado, 27 de septiembre de 2008

SLEEP. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] SLEEP

Operandos:

Ninguno

Operación:

00h → WDT
0 → WDT postscaler
1 → #TO
0 → #PD

Flag afectados del registro STATUS:

#TO y #PD.


Descripción:

El procesador entra en el estado de sleep, parando el reloj principal.

Consume sólo un ciclo de máquina.

RETURN. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] RETURN s

Operandos:

s ∈ [0,1]

Operación:

(TOS) → PC

Si s = 1 entonces
(WS) → W
(STATUSS) → Status
(BSRS) → BSR

PCLATU, PCLATH sin cambios.

Flag afectados del registro STATUS:

Ninguno.


Descripción:

Fin y vuelta de una subrutina.

Consume dos ciclos de máquina.

RETLW. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] RETLW k

Operandos:

0 ≤ k ≤ 255

Operación:

k → W
(TOS) → PC
PCLATU, PCLATH sin cambios.

Flag afectados del registro STATUS:

Ninguno.


Descripción:

Fin y vuelta de una subrutina. Se carga el valor k en el registro de trabajo W.

Consume dos ciclos de máquina.

RETFIE. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] RETFIE [s]

Operandos:

s ∈ [0,1]

Operación:

(TOS) → PC
1 → GIE/GIEH o PEIE/GIEL

Si s = 1 entonces
(WS) → W
(STATUSS) → Status
(BSRS) → BSR

PCLATU, PCLATH no cambian.

Flag afectados del registro STATUS:

GIE/GIEH y PEIE/GIEL.


Descripción:

Fin y vuelta de una subrutina de interrupción.

Consume dos ciclos de máquina.

RESET. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] RESET

Operandos:

Ninguno

Operación:

Hace un reset a todos los registros y flags afectados por el reset #MCLR.

Flag afectados del registro STATUS:

Todos


Descripción:

Simula por software el reset externo provocado por #MCLR.

Consume sólo un ciclo de máquina.

RCALL. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] RCALL n

Operandos:

-1024 ≤ n ≤ 1023

Operación:

(PC) + 2 → TOS
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno


Descripción:

Llamada a subrutina, la particularidad de esta instrucción es que puede ejecutar saltos hasta 1k de código.

Consume dos ciclos de máquina.

PUSH. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] PUSH

Operandos:

Ninguno

Operación:

(PC + 2) → TOS

Flag afectados del registro STATUS:

Ninguno


Descripción:

Apila datos dentro de la pila. Consume sólo un ciclo de máquina.

POP. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] POP

Operandos:

Ninguno

Operación:

(TOS) → bit bucket

Flag afectados del registro STATUS:

Ninguno


Descripción:

Desapila datos de la pila. Consume sólo un ciclo de máquina.

NOP. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] NOP

Operandos:

Ninguno

Operación:

Ninguno

Flag afectados del registro STATUS:


Ninguno

Descripción:

Instrucción sin operación, consume un sólo ciclo de máquina.

GOTO. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] GOTO k

Operandos:

0 ≤ k ≤ 1048575

Operación:

k → PC<.20:1.>

Flag afectados del registro STATUS:

Ninguno

Descripción:

Salto incondicional a k. Consume dos ciclos de máquina.

DAW. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] DAW

Operandos:

Ninguno

Operación:

Si [W<.3:0.> > 9] or [DC = 1] entonces


(W<.3:0.>) + 6 → W<.3:0.>

sino


(W<.3:0.>) → W<.3:0.>


Si [W<.7:4.> > 9] o [C = 1] entonces

(W<.7:4.>) + 6 → W<.7:4.>

sino

(W<.7:4.>) → W<.7:4.>

Flag afectados del registro STATUS:

C y DC

Descripción:

Ajusta el valor de 8-bits contenido del registro W, provocando un formato en paquete BCD.

CLRWDT. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] CLRWDT

Operandos:

Ninguno

Operación:

000h → WDT
000h → WDT postscaler
1 → #TO
1 → #PD

Flag afectados del registro STATUS:

#TO y #PD.

Descripción:

Reset del perro guardián. Consume sólo un ciclo de máquina.

CALL. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] CALL k [,s]

Operandos:

0 ≤ k ≤ 1048575

s ∈ [0,1]

Operación:

(PC) + 4 → TOS
k → PC<.20:1.>

Si s = 1 entonces:

(W) → WS
(Status) → STATUSS
(BSR) → BSRS

Flag afectados del registro STATUS:

Ninguno

Descripción:

Llamada a una subrutina, al ser una instrucción de salto, consume dos ciclos de máquina.


Si s es '1', se apilan los datos de los registros correspondientes.

BZ. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BZ n

Operandos:

-128 ≤ n ≤ 127

Operación:

Si el bit de Cero (Z) es '1' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit de zero (Z) sea un uno lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit de cero (Z) sea un uno, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.

BRA. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BRA n

Operandos:

-1024 ≤ n ≤ 1023

Operación:

Salto incondicional:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

Instrucción de salto incondicional a n mediante la siguiente expresión:

(PC) + 2 + 2n → PC

Al ser una instrucción de salto, consume dos ciclos de máquina.

BOV. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BOV n

Operandos:

-128 ≤ n ≤ 127

Operación:

Si el bit de desbordamiento (Overflow) es '1' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit de desbordamiento (Overflow) sea un uno lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit de desbordamiento (Overflow) sea un uno, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.

BNZ. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BNZ n

Operandos:

-128 ≤ n ≤ 127

Operación:

Si el bit de Cero (Z) es '0' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit de zero (Z) sea un cero lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit de cero (Z) sea un cero, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.

BNOV. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BNOV n

Operandos:

-128 ≤ n ≤ 127

Operación:

Si el bit Overflow (de desbordamiento) es '0' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit de desbordamiento (Overflow) sea un cero lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit de desbordamiento (Overflow) sea un cero, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.

BNN. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BNN n

Operandos:

-128 ≤ n ≤ 128

Operación:

Si el bit Negativo es '0' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit Negativo sea un cero lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit Negativo sea un cero, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.

BNC. PIC18

Esta instrucción está dentro del apartado: Operaciones de Control.

Sintaxis:

[ etiqueta ] BNC n

Operandos:

-128 ≤ n ≤ 128

Operación:

Si el bit de Carry es '0' entonces:
(PC) + 2 + 2n → PC

Flag afectados del registro STATUS:

Ninguno

Descripción:

En caso de que el bit de Carry sea un cero lógico, el contador de programa se incrementará siguiendo la expresión siguiente:

(PC) + 2 + 2n → PC

Esto produce un salto en el programa por lo tanto si se cumple la condición de que el bit de Carry sea un cero, la instrucción consumirá dos ciclos de reloj, en caso contrario sólo un ciclo de reloj.