Od wydawcy 6
Wstęp 10
1. Charakterystyka pakietu Bascom AVR 13
1.1. Informacje podstawowe 14
1.2. Konfigurowanie Bascom AVR 17
2. Język Bascom Basic AVR 29
2.1. Podstawy języka 30
2.1.1. Struktura pliku źródłowego 30
2.1.2. Znaki w Bascom Basic 31
2.1.3. Struktura linii programu 32
2.1.4. Stałe 34
2.1.5. Definiowanie aliasów 35
2.1.6. Typy danych 35
2.1.7. Zmienne 36
2.1.8. Zmienne lokalne 40
2.1.9. Tablice 41
2.1.10. Wyrażenia i operatory 42
2.1.11. Zarządzanie pamięcią w Bascom 43
2.2. Instrukcje warunkowe i wyboru 45
2.2.1. Instrukcja warunkowa If...Then 45
2.2.2. Instrukcja wyboru Select Case 47
2.3. Instrukcje pętli 49
2.3.1. Instrukcja pętli For...Next 49
2.3.2. Instrukcja pętli Do...Loop 51
2.3.3. Instrukcje pętli While...Wend 52
2.4. Podprogramy, procedury, funkcje 53
2.4.1. Podprogramy 53
2.4.2. Procedury 54
2.4.3. Funkcje 59
2.5. Pozostałe elementy języka Bascom 61
2.5.1. Dyrektywy preprocesora 62
2.5.2. Dyrektywy kompilatora 63
2.5.3. Instrukcje konfiguracyjne 64
2.5.4. Bascom a asembler 65
3. Wybrane bloki funkcjonalne mikrokontrolerów AVR 69
3.1. Rejestry 70
3.2. Procedura inicjalizacyjna w języku Bascom 72
3.3. Konfigurowanie portów 73
3.4. Obsługa przerwań 77
3.5. Liczniki-czasomierze TimerO, Timerl w mikrokontrolerach AVR 81
3.5.1. Licznik-czasomierz TimerO 82
3.5.2. Licznik-czasomierz Timerl 83
4. Pierwszy program 85
4.1. Program w Bascom AVR 86
4.2. Kompilacja 89
4.3. Symulacja programowa oraz sprzętowa 92
4.3.1. Symulacja programowa 92
4.3.2. Symulacja sprzętowa 99
4.4. Programowanie mikrokontrolerów AVR 102
4.4.1. Programator Sample Electronics 103
4.4.2. Programator STK200/STK300 104
4.4.3. Programowanie 105
5. Dodatkowe narzędzia zawarte w pakiecie Bascom 109
5.1. Program Terminal emulator 110
5.2. Program LCD designer 111
5.3. Program LIB Manager 113
5.4. Program Export to RTF 114
5.5. Program Graphic Converter 114
5.6. Program Auto Update 115
5.7. Program Stack Analyser 118
5.8. Program Pługln Manager 122
6. Opis wybranych instrukcji Bascoma 125
6.1. Zmienna Err 126
6.2. Instrukcje obsługi pamięci EEPROM 126
6.3. Instrukcje operacji na bitach 128
6.4. Instrukcje opóźnienia 130
6.5. Instrukcja Stcheck 132
6.6. Instrukcje obsługi tablic stałych 133
7. Zestaw uruchomieniowy ZL2AVR 141
7.1. Opis układu uruchomieniowego AVR 143
7.2. Mikrokontroler ATmega8 146
8. Przykłady programów w języku Bascom AVR 151
8.1. Przykłady obsługi portów wyjściowych 152
8.1.1. Wąż świetlny 152
8.1.2. Sterowanie przekaźnikiem oraz triakiem przez optotriak 154
8.2. Zastosowanie licznika-czasomierza TimerO do generowania stałych odcinków czasu.... 156
8.2.1. Przykład wykorzystania timera TimerO oraz przerwania generowanego po jego przepełnieniu 158
8.3. Przykłady generowania sygnału PWM 160
8.3.1. Zastosowanie sygnału PWM w przetworniku C/A 165
8.3.2. Regulacja jasności świecenia diod LED za pomocą sygnału PWM 167
8.4. Obsługa wyświetlaczy 170
8.4.1. Sterowanie statyczne jednym wyświetlaczem 7-segmentowym LED 171
8.4.2. Sterowanie multipleksowe 7-segmentowymi wyświetlaczami LED 175
8.4.3. Sterowanie multipleksowe 7-segmentowymi wyświetlaczami LED za pośrednictwem dekodera 4543 182
8.4.4. Sterowanie multipleksowe wyświetlaczem matrycowym LED 188
8.4.5. Sterowanie multipleksowe wyświetlaczem matrycowym LED z wykorzystaniem rejestru przesuwającego 74LS164 196
8.4.6. Tablica świetlna z wyświetlaczem matrycowym LED 202
8.4.7. Sterowanie alfanumerycznym wyświetlaczem LCD 209
8.4.8. Sterowanie lampowym wyświetlaczem VFD 215
8.5. Obsługa przycisków 224
8.5.1. Wykorzystanie do obsługi przycisków instrukcji Debounce 224
8.5.2. Zastosowanie instrukcji warunkowej If...Then do odczytywania stanów przycisków.... 227
8.5.3. Obsługa klawiatury matrycowej 2x2 229
8.5.4. Obsługa komputerowej klawiatury AT 235
8.6. Przykłady zegarów 239
8.6.1. Przykład zegara wykorzystującego przerwania od przepełnienia licznika Timerl 239
8.6.2. Przykład zegara zrealizowanego z wykorzystaniem instrukcji programowego RTC... 244
8.7. Sterowanie silnikami 249
8.7.1. Sterowanie serwomechanizmami modelarskimi 250
8.7.2. Regulacja prędkości obrotowej wentylatora 12 V 253
8.8. Nadawanie i odbieranie sygnałów w podczerwieni 257
8.8.1. Nadawanie sygnałów w podczerwieni w standardach RC5, RC6 oraz SONY 257
8.8.2. Odbiór sygnałów kodowanych w standardzie RC5 262
8.8.3. Odbieranie kodu RC5 w przerwaniu IntO 264
8.9. Interfejs szeregowy RS232 267
8.9.1. Nadawanie znaków przez sprzętowy interfejs RS232 268
8.9.2. Odbiór znaków przez sprzętowy interfejs RS232 271
8.10. Magistrala szeregowa I2C 275
8.10.1. Komunikacja z układem PCF8574 poprzez magistralę I2C 276
8.11. Interfejs SPI 282
8.11.1. Komunikacja mikrokontrolera z przetwornikiem A/C za pomocą interfejsu SPI 287
8.12. Magistrala 1-Wire 290
8.12.1. Sterowanie jednym układem dołączonym do magistrali 1-Wire 293
8.12.2. Sterowanie dwoma układami dołączonymi do magistrali 1-Wire 297
8.13. Obsługa wbudowanego w mikrokontroler przetwornika A/C 304
8.13.1. Przykład zastosowania przetwornika A/C wbudowanego w mikrokontroler 306
8.14. Obsługa wbudowanego w mikrokontroler analogowego komparatora 309
8.14.1. Zastosowania komparatora analogowego do monitorowania wartości napięcia 310
8.15. Zastosowanie Bootloadera 312
8.15.1. Wykorzystanie programu Bootloadera do załadowania do mikrokontrolera nowego programu przez interfejs RS232 319
Dodatki 325
Dodatek A. Skrócony opis dyrektyw kompilatora języka Bascom 326
Dodatek B. Skrócony opis instrukcji konfiguracyjnych dostępnych w Bascomie 329
Dodatek C. Płytka drukowana zestawu uruchomieniowego (ZL2AVR) 331
Dodatek D. Tablica kodów ASCII 334
Dodatek E. Tablica kodów klawiatury AT 336
Dodatek F. Skróty klawiszowe Bascom AVR 337
Dodatek G. Kody błędów w Bascom AVR 339
Skorowidz 344