| Opkodas, operandai | Opkodo aprašymas | Bitflagai |
|---|---|---|
ADDWF f, d |
Sumuoti W su f registrų turinį d registre |
C, DC, Z |
ADDLW k |
Sumuoti k su W |
C, DC, Z |
ANDWF f, d |
Vykdyti AND operaciją tarp W ir f registrų turinio d registre |
Z |
ANDLW k |
Vykdyti AND operaciją tarp k ir W |
Z |
CLRF f |
Išvalyti f registrą |
Z |
| CLRW | Išvalyti W registrą |
Z |
COMF f, d |
Vykdyti NOT operaciją f registro turiniu d registre |
Z |
DECF f, d |
Vienetu sumažinti f registro turinį d registre |
Z |
DECFSZ f, d |
Vienetu sumažinti f registro turinį d registre bei peršokti, jei šio reikšmė 0 |
|
INCF f, d |
Vienetu padidinti registrą f |
Z |
INCFSZ f, d |
Vienetu padidinti f registro turinį d registre bei peršokti, jei šio reikšmė 0 |
|
IORWF f, d |
Vykdyti OR operaciją tarp W ir f registrų turinio d registre |
Z |
IORLW k |
Vykdyti OR operaciją tarp konstantos k ir W registro |
Z |
MOVF f, d |
Perkelti f registro turinį į d registrą |
Z |
MOVLW k |
Įkelti k konstantą į W registrą |
|
MOVWF f |
Perkelti W registro turinį į f registrą |
|
RLF f, d |
Vienu bitu perstumti f registro turinį į kairę d registre |
C |
RRF f, d |
Vienu bitu perstumti f registro turinį į dešinę d registre |
C |
SUBWF f, d |
Atimti W iš f |
C, DC, Z |
SUBLW k |
Atimti W iš k |
C, DC, Z |
SWAPF f, d |
Apkeisti f registro turinio 4 bitų grupes vietomis d registre |
|
XORWF f, d |
Vykdyti XOR operaciją tarp W ir f registrų turinio d registre |
Z |
XORLW k |
Vykdyti XOR operaciją tarp W registro ir konstantos k |
Z |
Note
Registras d yra kodas, nurodantis į kurį registrą bus įrašomas gautas rezultatas. Jei nurodyta registro d reikšmė yra 0, rezultatas yra įkeliamas į W registrą, o jei d yra 1, rezultatas yra įrašomas į f registrą.
Note
Bitai žymintis operacijų bitflagus yra saugomi 0 duomenų banko STATUS registre.
| Opkodas, operandai | Opkodo aprašymas | Bitflagai |
|---|---|---|
BCF f, b |
Nustatyti f registro b bitą į 0 |
|
BSF f, b |
Nustatyti f registro b bitą į 1 |
|
BTFSC f, b |
Patikrinti f registro b bitą bei peršokti, jei šio reikšmė 0 |
|
BTFSS f, b |
Patikrinti f registro b bitą bei peršokti, jei šio reikšmė 1 |
| Opkodas, operandai | Opkodo aprašymas | Bitflagai |
|---|---|---|
| NOP | Vykdyti tuščią operaciją | |
CALL k |
Iškviesti konstantos k adrese esančią funkciją |
|
| CLRWDT | Išvalyti WDT registro turinį |
TO, PD |
GOTO k |
Vykdyti kodą konstantos adrese k |
|
| RETFIE | Grįžti po pertraukties | |
RETLW k |
Grįžti iš funkcijos, įkeliant k konstantą į W registrą |
|
| RETURN | Grįžti iš funkcijos | |
| SLEEP | Pereiti į tausojimo režimą | TO, PD |
LIST p=16F84A
#INCLUDE <p16F84a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; Kintamujų deklaracijos
ORG 0x00
clrf PORTA
clrf PORTB
bsf STATUS, 5
movlw b'00000000'
movwf TRISB
movlw b'00000'
movwf TRISA
bcf STATUS, 5
; Vykdomasis kodas
ENDKint1 EQU 0Ch
Kint2 EQU 0DhNote
Kintamujų reikšmės pagal nutylėjimą inicializacijos pradžioje yra lygios 0
Warning
Kintamieji gali būti išskiriami tik nuo 0x0C iki 0x4F atminties (SRAM) apibrėžimo srityje
; Kintamieji
_sleep_200_ms_1 EQU 0Ch
_sleep_200_ms_2 EQU 0Dh
sleep_200_ms
decfsz _sleep_200_ms_1, 1
goto sleep_200_ms
decfsz _sleep_200_ms_2, 1
goto sleep_200_ms
; Vykdomasis kodas po 200 ms. sleep; Kintamieji
_sleep_10_ms_1 EQU 0Ch
_sleep_10_ms_2 EQU 0Dh
call sleep_10_ms
; Vykdomasis kodas po 10 ms. sleep
sleep_10_ms
movlw d'13'
movwf _sleep_10_ms_1
_sleep_10_ms
decfsz _sleep_10_ms_1, 1
goto _sleep_10_ms
decfsz _sleep_10_ms_2, 1
goto _sleep_10_ms
return
; Programos pabaiga