Programació en pic-as del PIC 16F690

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Incrementar i decrementar

El PIC 16F690 incorpora instruccions que permeten incrementar i decrementar directament números d'un byte (8 bits). Si es decrementen números de més de 8 bits o si hi ha risc que el resultat de l'increment sigui més gran que 255, caldrà gestionar els bits d'estat.

Quan els resultats puguin ser més grans que 255 caldrà fer operacions de més d'un byte. A continuació veurem com fer increments i decrements en els que el resultat ocupa dos bytes. Guardarem el resultat en dues posicions de memòria consecutives seguint l'estructura següent:

Resultat de dos bytes

Increment amb un operand de dos bytes

Incrementem Resul (2 bytes) i guardem el resultat a Resul.

La instrucció incf activa el bit Z cada cop que el resultat és nul. Si a l'incrementar el byte menys significatiu s'activa Z vol dir que hem incrementat un 255 i cal sumar 1 al byt més significatiu.

Resul EQU 0x20  ; Variable en la que guardem el resultat (2 bytes)
...
  incf Resul,f  ; L'afegim al byte de la dreta
  btfsc ZERO  ; Mirem si s'activa Z
  incf Resul+1,f  ; Si s'activa, incrementem el byte superior
...

Decrement amb un operand de dos bytes

Decrementem Resul (2 bytes) i guardem el resultat a Resul.

La instrucció decf activa el bit Z cada cop que el resultat és nul. Si Resul és zero cal decrementar Resul i Resul+1; en cas contrari, només cal decrementar Resul.

Resul EQU 0x20  ; Variable en la que guardem el resultat (2 bytes)
...
  movf Resul,f		; Copiem Resul sobre ell mateix per veure si és zero
  btfsc ZERO	; Mirem si s'activa Z
  decf Resul+1,f	; Si s'activa, decrementem el byte superior
  decf Resul,f		; Decrementem el byte de la dreta
...

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.