Mikrokontroler firmy Atmel Atmega8-16PU, który używam do nauki ma wyprowadzenia na 3 porty wejścia wyjścia oznaczona literami B,C,D, z których każdy posiada 8 pinów numerowanych od 0 do 7 .
Każdy z portów jest konfigurowany przez 8 bitowe rejestry DDRx, PINx i PORTx. Rejestr DDRx określa, czy dany pin porty spełnia rolę wejścia czy wyjścia. Jeżeli jakiś bit rejestru DDRx ustawiony jest na 0 to pin przypisany do tego bitu pełni rolę wejścia, w przypadku, gdy jest ustawiony na 1 spełnia rolę wyjścia. Na przykład załóżmy, iż rejestr DDRB związany z portem B ma postać:
00011000. Oznacz to, że piny PB0, PB1, PB2, PB5, PB6,PB7 są wejściami a piny PB3,PB4 są wyjściami. Zauważmy, że bity i porty numerujemy od prawej strony i od 0. Domyślnie wszystkie piny portów ustawione są jako wejścia.
Kolejny rejestr to rejestr PORTx. Pełni od dwojaką funkcję w zależności od tego czy dany pin portu jest wejściem czy wyjściem. Jeżeli pin ustawiony jest jako wyjście to ustawienie bitu w rejestrze PORTx określa wartość jaka pojawia się na tym pinie (1 +5V, 0 masa). W przypadku, gdy pin ustawiony jako wejście wpisanie 1 oznacza podłączenie do tego pinu do zasilania poprzez wewnętrzny rezystor 30kΩ-80kΩ.
Ostatni z rejestrów PINx wykorzystywany jest wtedy, gdy dany pin ustawiony jest jako wejście. Wtedy w rejestrze PINx na pozycji tego pinu możemy odczytać wejściowy stan logiczny (0 lub 1).
Brak komentarzy:
Prześlij komentarz