- $regfile = „attiny2313.dat” ‚procesor Attiny2313
- $crystal = 4000000 ‚czestotliwosc dzialania 4Mhz (1000000 = 1MHz)
Po wpisaniu po pierwszego wiersza po prawej stronie kompilatora powinien nam się pokazać nasz mikrokontroler (po najechaniu na jego wyprowadzenie powinna się pokazać informacje o nim).
Teraz musimy skonfigurować wyprowadzenie naszego uC. więc piszemy:
- Config Portb.1 = Output ‚LED4
- Config Portb.2 = Output ‚LED3
- Config Portb.3 = Output ‚LED2
- Config Portb.4 = Output ‚LED1
- Config Portd.4 = Input ‚PRZYCISK 2
- Config Portd.3 = Input ‚PRZYCISK 1
Jak rozróżnić co jest input a co output ? Input to jest element/urządzenie które wysyła dane od siebie do mikrokontrolera czyli np. przycisk, odbiornik podczerwieni, natomiast output to to element/urządzenie które odbiera dane od uC czyli np. dioda led, buzzer.
Pierwsza część programu jest już gotowa, musimy teraz stworzyć pętle główną programu, czyli główną funkcje jaką będzie wykonywał nasz uC. Najpierw zaczynamy instrukcją Do, co oznacza rozpoczęcie pętli i teraz musimy zacząć instrukcję If i idąc wg. schematu że jeżeli na przycisku pojawi się stan 0 to załącz led1 i led3: (stan 0 dlatego, że przycisk jest podciągnięty do VCC przez rezystor 4,7k i jest na nim stan 1 a jak się go zewrze do GND to będzie stan 0)
- Do ‚początek pętli
- If Pind.3 = 0 Then ‚jeżeli na przycisku 1 będzie stan 1, to
- Set Portb.4 ‚załącz led1 i led3
- Set Portb.2
jednak samo takie stwierdzenie załączenia nic nie da, ten „stan” zapalonych diód musi się utrzymać przez pewien czas, np. przez 0,3 sekundy:
- Waitms 300 ‚czekaj 0,3 sekundy
teraz żeby te diody zgasły to trzeba na nich wywołać stan 0:
- Reset Portb.4 ‚zgaszenie led1 i led3
- Reset Portb.2
Lecz chcemy jeszcze zapalić diodę 2 i 4 przyciskiem 2 to musimy użyć instrukcji Else, dla drugiego przycisku sprawa wygląda podobnie tylko musimy dopisać Else, czyli- jeżeli na przycisku 2 pojawi się stan 0 to załącz led 2 i 4, odczekaj pół sekundy i zgaś led 2 i 4.:
- Else
- If Pind.4 = 0 Then ‚jezeli na przycisku 2 bedzie stan 1, to
- Set Portb.3 ‚zalacz led2 i led4
- Set Portb.1
- Waitms 300 ‚czekaj 0,3 sekundy
- Reset Portb.3 ‚zgaszenie led2 i led4
- Reset Portb.1
Blok główny programu został skończony, ale nasz niezbyt mądry mikrokontroler o tym nie wie, dlatego musimy mu napisać instrukcję Loop czyli zakończenie pętli oraz End If czyli zakończenie warunku (piszemy go tyle razy ile razy wykorzystaliśmy If czyli w tym przypadku dwa razy). Na koniec programu piszemy End oznaczający koniec programu:
- End If ‚zakończenie warunków
- End If
- Loop
- End ‚koniec programu
Zaprogramowanie procesora
Nasz programik jest już napisany i „czeka” na wgranie go do uC. Teraz trzeba go skompilować czyli „przetłumaczyć” go z naszego języka na język procesora. W tym celu klikamy F7- Compile program i jeżeli wszystko pójdzie dobrze, nie będzie żadnych błędów w programie to na dolnym pasku programu pojawi się napis „No errors found”. Przyszła pora na podłączenie procesora do programatora i jeżeli programator nie ma dodatkowe napięcia to przyłączamy 5V do zasilania uC. Klikamy teraz F4- Program Chip, i ukazuje nam się okienko, gdzie w jego górnej części będzie pokazana nazwa naszego mikrokontrolera i teraz klikamy Reset Chip (druga ikonka w prawo od nazwy procesora) po czym dajemy Program Chip (druga ikonka w lewo od nazwy procesora). Wyskakuje nam pasek postępu programowania. Pierwszy pasek pokaże nam postęp programowania, a drugi weryfikacje zawartości procesora w porównaniu do programu napisanego. Po tej operacji nasz procesor jest gotowy do działania.
W tym cyklu kursu pokazałem Ci jak zaprogramować układ prostym programem. Jak dobrze pójdzie to będę pisać kolejne poradnik jak obsłużyć np. klawiaturę od komputera z wyjściem Ps/2 czy też jak sterować układem za pomocą pilota od telewizora :) Dziękuje za uwagę i do zobaczenia w następnych poradnikach