Rejestr STATUS (adres 03h, 83h)
Rejestr statusu zawiera znaczniki odzwierciedlające:
– wynik ostatnio wykonanej operacji arytmetycznej,
– aktualny stan procesora tzn. informacje o źródle ewentualnego wyzerowania procesora oraz informacje o aktywnym banku. Rejestr ten wykorzystywany jest przy sprawdzaniu wyniku ostatnio wykonanej operacji arytmetyczno-logicznej.
Znaczenie poszczególnych bitów :
bit 7 IRP : Bit wybierający bank ( używany do adresowania pośredniego ):
0 – Bank 0, 1 (adres 00h – FFh),
1 – Bank 2, 3 (adres 100h – 1FFh),
Bit IRP nie jest wykorzystywany w procesorze PIC 16F8X. Zaleca się zerowanie tego bitu w programie w celu zachowania kompatybilności tego programu z przyszłymi wersjami procesorów .
bit 6-5 RP1:RP0 : Bity do selekcji banków (używane do adresowania bezpośredniego):
0,0 – Bank 0 (adres 00h – 7Fh),
0,1 – Bank 1 (adres 80h – FFh),
1,0 – Bank 2 (adres 100h – 17Fh),
1,1 – Bank 3 (adres 180h – 1FFh).
Każdy bank jest 128-bajtowy . W PIC 16F8X wykorzystywany jest tylko bit RP0.
bit 4 TO :”Time out bit”, bit informujący o zadziałaniu WatchDog-a:
1 – po włączeniu zasilania , po instrukcji CLRWDT (zerowanie licznika WatchDog-a) oraz po instrukcji SLEEP,
0 – po zadziałaniu WatchDog-a (po przepełnieniu licznika WatchDog-a),
bit 3 PD: “Power down bit” – Bit informujący o przyczynie wyzerowania procesora:
1 – po włączeniu zasilania, po instrukcji CLRWDT (zerowanie licznika WatchDog-a),
0 – po wykonaniu instrukcji SLEEP,
bit 2 Z : Bit zera:
1 – jeżeli wynikiem ostatniej operacji arytmetycznej lub logicznej jest zero,
0 – jeżeli wynik jest różny od zera,
bit 1 DC : Znacznik przeniesienia pomocniczego (CARRY) lub pożyczki (BORROW), do którego w czasie operacji dodawania (ADDWF i ADDLW) jest wpisywane przeniesienie z bitu 3 lub pożyczka z bitu 4 (wykorzystywany przy korekcji dziesiętnej, dla BORROW obowiązuje logika odwrotna):
1 – jeżeli wystąpiło przeniesienie z bitu 3-go na 4-ty (z młodszej do starszej tetrady),
0 – przy braku przeniesienia,
bit 0 C: Znacznik przeniesienia (CARRY) oraz pożyczki (BORROW), do którego wpisuje się przeniesienie z najbardziej znaczącego bitu, ustawiany w wyniku wykonania operacji arytmetycznych oraz przesunięć a także rotacji:
1 – jeżeli nastąpiło przeniesienie z najbardziej znaczącego bitu aktualnego wyniku
0 – przy braku przeniesienia
Rejestr OPTION (adres 81h)
Znaczenie poszczególnych bitów :
Bit 7 RBPU: Bit polaryzujący wyprowadzenia portu B do potencjału +Vcc przez opory (tylko przy konfiguracji portu jako wejściowe):
1 – praca portu PORTB bez polaryzacji,
0 – praca portu PORTB z polaryzacja,
Bit 6 INTEDG: Wybór rodzaju zbocza jakie należy podać na RB0/INT aby wywołać przerwanie:
1 – przerwanie po zboczu narastającym na pinie RB0/INT,
0 – przerwanie po zboczu opadającym na pinie RB0/INT,
Bit 5 T0CS: Wybór źródła sygnału zegarowego licznika TMR0:
1 – podłączenie do sygnału taktującego zewnętrznego przez końcówkę RA4/T0CKI,
0 – podłączenie do wewnętrznego sygnału taktującego,
Bit 4 T0SE: Wybór zbocza jakie musi wystąpić na końcówce RA4/T0CKI aby zwiększyć licznik TMR0 o jeden:
1 – zwiększenie TMR0 o jeden po przejściu ze stanu wysokiego na niski,
0 – zwiększenie TMR0 o jeden po przejściu ze stanu niskiego na wysoki,
Bit 3 PSA : Bit wyboru przeznaczenia podzielnika:
1 – podzielnik podłączony do WatchDog-a,
0 – podzielnik podłączony do licznika TMR0,
Bit 2-0 PS2,PS1,PS0: Ustawienie podziału podzielnika (ang. prescaler) dla licznika TMR0 i WatchDog-a (WDT ):
Rejestr INTCON (adres 0Bh, 8Bh)
Rejestr INTCON służy do konfigurowania systemu przerwań.
Bit 7 GIE: Włączenie lub wyłączenie wszystkich przerwań (bit GIE posiada najwyższy priorytet ):
1 – włączenie wszystkich nie zamaskowanych przerwań,
0 – wyłączenie wszystkich przerwań,
Bit 6 EEIE: Uaktywnienie przerwania wywoływanego po zakończeniu zapisu danej do pamięci EEPROM wewnątrz procesora:
1 – po zakończeniu zapisu zostanie wywołane przerwanie,
0 – po zakończeniu zapisu nie zostanie wywołane przerwanie,
Bit 5 T0IE: Bit uaktywniający wywołanie przerwania po przepełnieniu licznika TMR0 ,
1 – jeżeli chcemy aby przerwanie zostało wywoływane po przepełnieniu TMR0 ,
0 – jeżeli nie chcemy aby przerwanie zostało wywoływane po przepełnieniu TMR0 ,
Bit 4 INTE: Uaktywnienie przerwania zewnętrznego (z końcówki RB0/INT ):
1 – przerwanie będzie wywoływane,
0 – przerwanie nie będzie wywoływane,
Bit 3 RBIE: Włączenie przerwania pochodzącego od zmiany stanu na porcie PORTB :
1 – przerwanie będzie wywoływane,
0 – przerwanie nie będzie wywoływane,
Bit 2 T0IF: Przepełnienie licznika TMR0 powoduje jego ustawienie co jest równoznaczne z
natychmiastowym wywołaniem przerwania. Jeżeli programowo ustawimy bit T0IF.(bit T0IF =1) to także zostanie wywołane przerwanie (od razu po rozkazie BSF INTCON , T0IF )
1 – nastąpiło przepełnienie (bit ten musi być zerowany programowo)
0 – nie nastąpiło przepełnienie,
Bit 1 INTF : Bit informujący o tym, ze ostatnie przerwanie zostało wywołane zboczem na końcówce RB0/INT:
1 – nastąpiło przerwanie pochodzące od RB0/INT,
0 – nie nastąpiło przerwanie pochodzące od RB0/INT,
Bit 0 RBIF: Bit informujący o tym, ze ostatnie przerwanie zostało wywołane zmiana stanu
na jednej z końcówek portu B (RB7 do RB4):
1 – jeżeli nastąpiła zmiana stanu na którejś z końcówek RB7:RB4 (bit musi być kasowany programowo),
0 – jeżeli nie było zmiany stanów,