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

ATtiny11/12

Port we/wy B


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
Podrozdziały

Port B

Wszystkie porty AVR mogą być odczytywane, modyfikowane i zapisywane, gdy używa się ich jako ogólnych, cyfrowych portów wejścia/wyjścia. Oznacza to, iż kierunek jednej końcówki portu może zostać zmieniony bez niezamierzonej zmiany kierunku innych końcówek portu za pomocą instrukcji SBICBI. To samo dotyczy zmiany stanu wyjściowego portu (jeśli jest skonfigurowany jako wyjście) lub włączania/wyłączania oporników podciągających (jeśli jest skonfigurowany jako wejście).
Port B jest 6-bitowym, dwukierunkowym portem wejścia/wyjścia.

Dla portu B przydzielone są trzy adresy komórek w pamięci we/wy, po jednym dla rejestru danych (ang. Data Register –  PORTB, 0x18), dla rejestru kierunku danych (ang. Data Direction Register –  DDRB, 0x17) i dla rejestru danych wejściowych z końcówek (ang. Port B Input Pins –  PINB, 0x16). Rejestr PINB jest tylko do odczytu, natomiast rejestry PORTB i DDRB można odczytywać i zapisywać.

Porty PB5:3 posiadają specjalne funkcje, co opisano w rozdziale "Konfiguracja wyprowadzeń".

Jeśli PB5 nie jest skonfigurowany jako zewnętrzny reset, jest portem wejściowym bez opornika podciągającego. W ATtiny12 może on również wyprowadzać logiczne zero, działając jako wyjście z otwartym drenem. Zwróć uwagę, iż ponieważ PB5 posiada tylko jedną możliwą wartość wyjściową, działanie wyjściowe tej końcówki jest sterowane tylko poprzez rejestr DDR. Jeśli PB4 i/lub PB3 nie są używane w funkcji zegara, to są końcówkami we/wy. Wszystkie końcówki we/wy posiadają indywidualnie wybierane oporniki podciągające.

Bufory wyjściowe portu B na liniach od PB0 do PB4 mogą pochłaniać prąd do 20 mA, co umożliwia bezpośrednie sterowanie wyświetlaczami LED. W ATtiny12 PB5 może pochłaniać 12 mA. Jeśli końcówki od  PB0 do PB4 są używane jako wejścia i zostaną zewnętrznie wysterowane stanem niskim, to będą źródłem prądu (IIL), jeśli wewnętrzne oporniki podciągające zostaną aktywowane.

W poniższej tabeli przedstawiono alternatywne funkcje końcówek portu B:

Końcówka
portu B
Funkcje alternatywne Mikrokontroler
PB0 AIN0 (Wejście nieodwracające komparatora analogowego) ATtiny11/12
MOSI (Linia wejściowa danych przy programowaniu pamięci) ATtiny12
PB1 INT0 (Wejście dla przerwania zewnętrznego 0) ATtiny11/12
AIN1 (Wejście odwracające komparatora analogowego) ATtiny11/12
MISO (linia wyjściowa danych przy programowaniu pamięci) ATtiny12
PB2 T0 (Wejście zewnętrzne dla timera/licznika 0) ATtiny11/12
SCK (Zegar szeregowy przy programowaniu pamięci) ATtiny12
PB3 XTAL1 (Wejście oscylatora) ATtiny11/12
PB4 XTAL2 (Wyjście oscylatora) ATtiny11/12
PB5 RESET (Końcówka zewnętrznego resetu) ATtiny11/12

Gdy końcówki PB2:0 są używane dla alternatywnych funkcji, rejestry DDRB i PORTB muszą być ustawione zgodnie z opisem funkcji alternatywnych. Gdy końcówki PB5:3 są używane dla alternatywnych funkcji, wartości w odpowiednich bitach rejestrów DDRB i PORTB są ignorowane.


do podrozdziału  do strony 

Opis rejestrów

PORTB – Port B Data Register – Rejestr danych portu B

Bit 7 6 5 4 3 2 1 0  
0x18 - - - PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Zapis/Odczyt O O O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

DDRB – Port B Data Direction Register – Rejestr kierunku danych w porcie B

Bit 7 6 5 4 3 2 1 0  
0x17 - - (DDB5) DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Zapis/Odczyt O O (Z)/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  
Uwaga: bit DDB5 jest dostępny tylko w ATtiny12

PINB – Port B Input Pins Address – Adres końcówek wejściowych portu B

Bit 7 6 5 4 3 2 1 0  
0x16 - - PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Zapis/Odczyt O O O O O O O O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Adres PINB nie odnosi się do rejestru, a jedynie umożliwia dostęp do fizycznej wartości sygnału na każdej z końcówek portu B. Gdy odczytywany jest rejestr PORTB, to faktycznie odczytywana jest zawartość przerzutników Latch tego rejestru, a gdy odczytywany jest PINB, to odczytane zostają wartości logiczne obecne na końcówkach portu B.


do podrozdziału  do strony 

Port B jako ogólne, cyfrowe wejście/wyjście danych

Pięć najniższych końcówek portu B (PB4:0) posiada te same własności, gdy są wykorzystywane jako końcówki cyfrowego we/wy.

obrazek

PBn, ogólna końcówka we/wy: Bit DDBn w rejestrze DDRB wybiera kierunek przesyłania danych w tej końcówce, jeśli DDBn jest ustawiony na 1, to końcówka PBn jest skonfigurowana do pracy jako wyjście, zapis danych. Jeśli DDBn jest wyzerowany, to PBn jest skonfigurowane jako końcówka wejścia, odczytu danych, a opornik podciągający zostaje aktywowany. W ATtiny12 ta funkcja może zostać wyłączona przez ustawienie bitu blokującego podciąganie (ang. Pull-up Disable Bit, PUD) w rejestrze MCUCR. Aby wyłączyć opornik podciągający, można wyzerować bit PORTBn, skonfigurować końcówkę jako wyjście, lub w ATtiny12 ustawić bit PUB. Końcówki portu przechodzą w stan wysokiej impedancji, gdy staje się aktywny warunek resetu, nawet jeśli zegar nie pracuje.

Wpływ bitu DDBn na końcówki portu B
DDBn PORTBn we/wy podciąganie Komentarz
0 0 Wejście Nie Stan wysokiej impedancji
0 1 Wejście Tak Końcówka PBn będzie źródłem
prądu, jeśli zostanie zewnętrznie
wysterowana stanem niskim.
W ATtiny12 oporniki podciągające
można wyłączyć przez ustawienie
bitu PUD.
1 0 Wyjście Nie Końcówka w stanie niskim.
1 1 Wyjście Nie Końcówka w stanie wysokim.

n: 0,1,...,4 – numer końcówki portu B.

Zauważ, iż w ATtiny11 PB5 pracuje tylko jako wejście. W  ATtiny12 PB5 jest wejściem lub wyjściem z otwartym drenem. Ponieważ końcówka ta jest używana do programowania 12V, nie ma zabezpieczenia diodowego ESD (ang. electrostatic discharge – wyładowanie elektrostatyczne), które ogranicza napięcie na końcówce do VCC+0.5V. Z tego powodu należy specjalnie zatroszczyć się, aby napięcie na tej końcówce nie wzrosło ponad VCC+1V podczas normalnej pracy. Może to spowodować zresetowanie mikrokontrolera lub niezamierzone wejście w tryb programowania.


do podrozdziału  do strony 

Alternatywne funkcje portu B


obrazek
obrazek

Wszystkie końcówki portu B są podłączone z układem wykrywania zmian poziomu logicznego, który może wyzwalać przerwania przy zmianie stanu końcówki. Zobacz do podrozdziału "Przerwanie przy zmianie stanu końcówki". Dodatkowo port B posiada następujące funkcje alternatywne:

RESET – Port B, Bit 5

Gdy bit bezpiecznikowy RSTDISBL jest niezaprogramowany, to ta końcówka pełni funkcję zewnętrznego resetu. Gdy RSTDISBL jest zaprogramowany, to końcówka staje się końcówką ogólnego wejścia danych. W ATtiny12 może również być wyjściem z otwartym drenem.

XTAL2 – Port B, Bit 4

XTAL2 jest wyjściem oscylatora. Gdy końcówka ta nie jest wykorzystywana do celów zegarowych, jest końcówką ogólnego we/wy.

XTAL1 – Port B, Bit 3

XTAL1 jest wejściem oscylatora lub zegara. Gdy końcówka ta nie jest wykorzystywana do celów zegarowych, jest końcówką ogólnego we/wy.

T0/SCK – Port B, Bit 2

Ta końcówka może służyć jako wejście zewnętrznego zegara dla timera/licznika 0. Więcej na ten temat znajdziesz w rozdziale "Timer/licznik 0 i licznik zegarowy". Jeśli zostało wybrane zewnętrzne taktowanie timera/licznika 0, to zmiany stanów na tej końcówce będą taktować zliczanie w liczniku, nawet jeśli końcówka pracuje jako wyjście (co umożliwia programowe sterowanie zliczania przez timer/licznik 0), W ATtiny12 i w trybie programowania szeregowego końcówka służy jako wejście dla zegara szeregowego, SCK.

INT0/AIN1/MISO – Port B, Bit 1

Ta końcówka może służyć jako wejście dla zewnętrznego przerwania 0, INT0. Zobacz do podrozdziału "Obsługa przerwań", gdzie znajdziesz opis włączenia obsługi tego przerwania. Zauważ, iż aktywność na tej końcówce wyzwoli przerwanie nawet wtedy, gdy końcówka pracuje jako wyjście (pozwala to wygenerować programowo przerwanie zewnętrzne 0). Końcówka służy również jako wejście odwracające AIN1 dla wbudowanego w mikrokontroler komparatora analogowego. W ATtiny12 i w trybie programowania szeregowego końcówka służy jako wejście danych szeregowych, MISO.

AIN0/MOSI – Port B, Bit 0

Ta końcówka służy jako span>wejście nieodwracające AIN0 dla wbudowanego w mikrokontroler komparatora analogowego. W ATtiny12 i w trybie programowania szeregowego końcówka pełni rolę szeregowego wyjścia danych, MOSI.

Podczas trybu wyłączenia zasilania (ang. Power-down Mode), przerzutniki Schmitta cyfrowych wejść są odłączone od końcówek wejściowych komparatora analogowego. To pozwala na występowanie napięcia analogowego bliskiego VCC/2 na końcówkach wejściowych podczas wyłączenia zasilania bez powodowania zbytniego poboru prądu


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.