|
|
mikrokontrolery.net |
||||||||||||||||||||||
|
Przykład 1 - Przerzutnik RS
Kod programu jest przedstawiony poniżej :
Na początku programu musimy odpowiednio skonfigurować porty mikrokontrolera. W języku Bascom istnieje specjalna istrukcja służaca do tego celu - config. Instrukcja config może służyć do konfiguracji większości układów peryferyjnych mikrokontrolera. W naszym przypadku chcemy skocfigurowac port B mikrokontrolera jako wyjścia, więc stasujemy zapis :
Efektem wykonania tej instrukcji będzie po prostu zapisanie do rejestru DDRB liczby 255. Zamiast podanego zapisu port można skonfigurować w "tradycyjny" sposób przypisując bezpośrednio do rejestru DDRB liczbę 255, nie wykorzystując instrukcji config. Drugim portem, który chcemy skonfigurować jest port D. Aby mikrokontroler mógł odczytać stan przycisków S1 i S2, musimy linie, do których te przyciski są podłączone skonfigurować jako wejścia. Natomiast pozostałe linie portu D należy skonfogurować jako wyjścia (ponieważ port D steruje anodami wyswietlaczy siedmiosegmentowych). Konfiguracji tego portu w przedstawiony sposób dokonujemy w ten sposób :
Wnikliwi czytelnicy zauważyli zapewne, że liczba konfigurująca port D jest siedmiobitowa. Jest to wynikiem tego, że port D posiada tylko 7 a nie 8 linii wyprowadzonych na zewnątrz mikrokontrolera. Po określeniu kierunku pracy poszczególnych linii musimy zapisać do portów wartości początkowe. W przypadku portu B będzie to liczba 255, ponieważ chcemy, aby zaraz po starcie mikrokontrolera wszystkie segmenty wyswietlacza były wygaszone. Natomiast w przypadku portu D, który to port steruje anodami wyświetlaczy LED, chcemy aby pin 4 był w stanie 0. Spowoduje to włączenie pierwszego wyświetlacza. Po skonfigurowaniu i zainicjowaniu portów mikrokontrolera przyszedł czas na własciwy program. Ponieważ cały program wykonywany jest w pętli nieskończonej, zastosowałem pętlę do loop. Właściwy program polega na sprawdzaniu stanu przycisków S1 i S2 na płytce testowej oraz w przypadu wciśnięcia przycisku podjęciu odpwiedniej akcji (zapalanie lub gaszenie kropki dziesiętnej wyśiwetlacza). Wciśnięcie przycisku jest sygnalizowane wymuszeniem na linii, do której dany przycisk jest podłączony, stanu niskiego. Sprawdzenia stanu linii wejściowej najłatwiej jest dokonać za pomocą instrukcji warunkowej if. Ogólna postać instrukcji if wygląda następująco :
Jeśli warunek jest prawdziwy, to wykonywana jest instrukcja, w przeciwnym przypadku instrukcja nie będzie wykonana. W naszym przypadku warunkiem jest wyrażenie Pind.0 = 0. Wyrażenie to zwraca wartość true tylko wtedy, gdy linia 0 portu D będzie w stanie niskim.
|
||||||||||||||||||||||
|
|
|||||||||||||||||||||||
|
|
|||||||||||||||||||||||
|
|
|||||||||||||||||||||||
|
(c) 2004-2008 Radosław Kwiecień |