Serwis Edukacyjny
Nauczycieli

w I-LO w Tarnowie
obrazek

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu
 mgr Jerzy Wałaszek
Konsultacje:
Wojciech Grodowski
mgr inż. Janusz Wałaszek

©2026 mgr Jerzy Wałaszek

obrazek

Mikrokontrolery

Rodzina podstawowa PIC

PIC10F200/202/204/206

Przegląd architektury


obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI KONSERWACJA
Podrozdziały

Opis architektury

Wysoką wydajność mikrokontrolerów PIC10F200/202/204/206 można przypisać licznym cechom zwykle znajdowanym w mikroprocesorach RISC (ang. Reduced Instruction Set Computer – komputer o zredukowanej liście instrukcji). Na początek zwróćmy uwagę, iż układy PIC10F200/202/204/206 używają architektury harwardzkiej, w której program i dane są dostępne na oddzielnych magistralach. Poprawia to pasmo w stosunku do tradycyjnych architektur von Neumanna, gdzie instrukcje programu i dane są pobierane na tej samej magistrali. Rozdzielenie pamięci programu i danych w następnej kolejności pozwala utworzyć instrukcje maszynowe o innym rozmiarze od 8-bitowego słowa danych. Kody instrukcji mają rozmiar 12 bitów, co sprawia, iż rozmiar wszystkich instrukcji wynosi jedno słowo 12-bitowe. Magistrala dostępu do pamięci programu o słowach 12-bitowych pobiera 12-bitową instrukcję w pojedynczym takcie. Dwupoziomowa kolejka nakładkowania pozwala na jednoczesne pobieranie i wykonywanie instrukcji. W konsekwencji wszystkie instrukcje (z wyjątkiem instrukcji tworzących rozgałęzienia w programie) wykonują się w pojedynczym cyklu rozkazowym utworzonym z czterech taktów Q (Q1-Q4)  zegara (1µs przy 4MHz). Takt Q jest taki sam jak takt oscylatora mikrokontrolera (TOSC). Takty Q wyznaczają w każdym cyklu rozkazowym okresy dekodowania, odczytu, przetwarzania danych, zapisu, itp.

Poniższa tabelka wymienia pamięci programu (FLASH) i pamięci danych w mikrokontrolerach PIC10F200/202/204/206.

Układ Pamięć
programu danych
PIC10F200 256×12 16×8
PIC10F202 512×12 24×8
PIC10F204 256×12 16×8
PIC10F206 512×12 24×8

Układy PIC10F200/202/204/206 mogą adresować bezpośrednio lub pośrednio swoje rejestry w zestawie oraz pamięć danych. Wszystkie rejestry o specjalnych funkcjach (ang. Special Function Registers, SFR) łącznie z licznikiem programu PC są odwzorowane w pamięci danych. Mikrokontrolery PIC10F200/202/204/206 posiadają wysoko symetryczny zestaw instrukcji, który umożliwia wykonanie dowolnej operacji na dowolnym rejestrze przy użyciu dowolnego trybu adresowania. Ta symetryczna natura oraz brak wyjątków czynią programowanie układów PIC10F200/202/204/206 prostym, a jednak wydajnym. Dodatkowo czas nauki jest znacząco zmniejszony.

Układy PIC10F200/202/204/206 zawierają 8-bitową jednostkę arytmetyczno-logiczną ALU (ang. Arithmetic Logic Unit) oraz rejestr roboczy W (ang. working register). ALU jest modułem arytmetycznym ogólnego przeznaczenia. Wykonuje on operacje arytmetyczne i logiczne pomiędzy danymi w rejestrze roboczym W i dowolnym rejestrem zestawu.

ALU jest modułem 8-bitowym, który potrafi dodawać, odejmować, przesuwać i wykonywać operacje logiczne. O ile nie zostanie wspomniane inaczej, operacje arytmetyczne są wykonywane w kodzie uzupełnień do 2, U2 (ang. two’s complement), jednym z argumentów jest typowo rejestr roboczy W. Drugim argumentem jest albo rejestr zestawu, albo stała natychmiastowa (zawarta w kodzie instrukcji). W operacjach jednoargumentowych argumentem jest albo rejestr W, albo rejestr z zestawu rejestrów.

Rejestr W jest rejestrem 8-bitowym wykorzystywanym w operacjach wykonywanych w ALU. Nie jest rejestrem adresowalnym.

W zależności od wykonywanej instrukcji ALU może zmieniać stany znaczników przeniesienia (ang. Carry, C), przeniesienia z cyfry (ang. Digit Carry, DC) oraz zera ( ang. Zero, Z) w rejestrze stanu (ang. STATUS register). W czasie odejmowania bity C i DC pracują odpowiednio jako bity wyjściowe pożyczki (ang. Borrow) i pożyczki z cyfry (ang, Digit Borrow).


do podrozdziału  do strony 

Schematy blokowe

PIC10F200/202

  

PIC10F204/208

  

Opis końcówek mikrokontrolerów PIC10F200/202/204/206

Końcówka Funkcja Typ wejścia Typ wyjścia Opis
GP0/ICSPDAT/CIN+ GP0 TTL CMOS Dwukierunkowa końcówka I/O. Może być zaprogramowana na podłączenie wewnętrznego słabego opornika podciągającego i na wybudzanie z uśpienia przy zmianie stanu logicznego na końcówce.
ICSPDAT ST CMOS Końcówka danych przy programowaniu szeregowym w układzie aplikacyjnym (ang. In-Circuit Serial Programming™).
CIN+ AN Wejście komparatora (tylko PIC10F204/206).
GP1/ICSPCLK/CIN- GP1 TTL CMOS Dwukierunkowa końcówka I/O. Może być zaprogramowana na podłączenie wewnętrznego słabego opornika podciągającego i na wybudzanie z uśpienia przy zmianie stanu logicznego na końcówce.
ICSPCLK ST CMOS Końcówka zegara przy programowaniu szeregowym w układzie aplikacyjnym
CIN- AN Wejście komparatora (tylko PIC10F204/206).
GP2/T0CKI/COUT/FOSC4 GP2 TTL CMOS Dwukierunkowa końcówka I/O.
T0CKI ST Wejście zegara do timera 0 (TMR0).
COUT CMOS Wyjście komparatora (tylko PIC10F204/206).
FOSC4 CMOS Wyjście oscylatora o częstotliwości podzielonej przez 4.
GP3/MCLR/VPP GP3 TTL Końcówka wejścia. Może być zaprogramowana na podłączenie wewnętrznego słabego opornika podciągającego i na wybudzanie z uśpienia przy zmianie stanu logicznego na końcówce.
MCLR ST Końcówka resetowania mikrokontrolera (ang. Master Clear). Gdy zostanie skonfigurowana jako MCLR, staje się aktywna w stanie niskim  i wtedy powoduje reset układu. W normalnym stanie pracy mikrokontrolera napięcie na końcówce GP3/MCLR/VPP nie powinno przekraczać napięcia zasilającego VDD, gdyż w takim przypadku mikrokontroler wejdzie w tryb programowania. Gdy końcówka pracuje jako MCLR, zawsze ma podłączony słaby opornik podciągający.
VPP HV Wejście napięcia programującego.
VDD VDD P Dodatnie napięcie zasilania dla układów logicznych mikrokontrolera i końcówek I/O.
VSS VSS P Masa zasilania dla układów logicznych mikrokontrolera i końcówek I/O.
Legenda:   I = wejście, O = wyjście, I/O = wejście/wyjście, P = zasilanie, — = nieużywane, TTL = wejście TTL, ST = wejście Schmitta, AN = wejście analogowe, HV = wysokie napięcie

do podrozdziału  do strony 

Cykl rozkazowy

Zegar jest wewnętrznie dzielony przez cztery w celu utworzenia czterech nie nakładających się zegarów kwadraturowych (ang. non-overlapping quadrature clocks), mianowicie Q1, Q2, Q3 i Q4. Wewnętrznie licznik programu PC jest zwiększany o 1 przy każdym impulsie Q1, a instrukcja zostaje pobrana z pamięci programu i umieszczona w rejestrze instrukcji w takcie Q4. Następnie w ciągu dalszych taktów Q1...Q4 instrukcja zostaje zdekodowana i wykonana. Poniższy rysunek przedstawia zegary oraz proces wykonywania instrukcji w mikrokontrolerze PIC:

Wszystkie instrukcje są wykonywane w pojedynczym cyklu rozkazowym z wyjątkiem instrukcji rozgałęzień w programie, które wykonują się w dwóch cyklach, ponieważ pobrana instrukcja zostaje usunięta z kolejki nakładkowania, a w tym jest pobierana instrukcja spod nowego adresu, a później jest wykonywana.


do podrozdziału  do strony 

Nakładkowanie

Każdy cykl rozkazowy składa się z czterech taktów Q (Q1, Q2, Q3 i Q4).  Pobranie instrukcji i jej wykonanie są nakładkowane w taki sposób, iż pobranie zajmuje jeden cykl rozkazowy, natomiast dekodowanie i wykonanie są realizowane w kolejnym cyklu rozkazowym. Zatem cała instrukcja zajmuje dwa cykle rozkazowe. Jednakże z powodu nakładkowania, każda instrukcja wykonywana jest efektywnie w jednym cyklu. Jeśli instrukcja powoduje zmianę zawartości licznika programu PC (np. instrukcja GOTO), to do wykonania takiej instrukcji potrzebne są dwa cykle rozkazowe:

Cykl pobrania rozpoczyna się od zwiększenia o 1 licznika programu w takcie Q1. Kod instrukcji jest następnie pobierany w takcie Q4. W cyklu wykonania pobrana instrukcja jest zapamiętywana w rejestrze rozkazów IR (ang. Instruction Register) i dekodowana w takcie Q1. Następnie ta instrukcja jest wykonywana w trakcie taktów Q2, Q3 i Q4. Pamięć danych jest odczytywana podczas taktu Q2 (odczyt argumentu) i zapisywana podczas taktu Q4 (zapis docelowy). Przetwarzanie danych (np. dodawanie, operacja logiczna) wykonywane jest w takcie Q3.


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.