Część 1. Informacje podstawowe
Wstęp 8
1. Trochę historii 9
2. Charakterystyka mikrokontrolerów AVR 11
3. Rodzina AVR - podstawy 13
3.1. Funkcje wyprowadzeń 16
Część 2. Budowa i działanie mikrokontrolerów AVR
4. Architektura mikrokontrolerów AVR 20
4.1. Generator taktujący 23
4.2. Rejestry ogólnego przeznaczenia 24
4.3. Jednostka arytmetyczno-logiczna (ALU) 26
4.4. Pamięć programu 26
4.5. Nieulotna pamięć danych EEPROM 26
4.6. Pamięć danych SRAM 27
4.7. Tryby adresowania pamięci danych i pamięci programu 28
4.7.1. Tryb bezpośredniego adresowania rejestrów wykorzystujący pojedynczy rejestr 28
4.7.2. Tryb bezpośredniego adresowania rejestrów wykorzystujący dwa rejestry 29
4.7.3. Tryb bezpośredniego adresowania obszaru wejścia/wyjścia 30
4.7.4. Tryb bezpośredniego adresowania pamięci danych 30
4.7.5. Tryb pośredniego adresowania danych z przemieszczeniem 31
4.7.6. Tryb adresowania pośredniego 32
4.7.7. Tryb adresowania pośredniego danych z predekrementacją.... 32
4.7.8. Tryb adresowania pośredniego danych z postinkrementacją 33
4.7.9. Tryb adresowania stałych z użyciem rozkazu LPM 34
4.7.10. Tryb adresowania pośredniego pamięci programu (IJMP, ICALL) 34
4.7.11. Tryb adresowania względnego pamięci programu (RJMP i RCALL) 35
4.8. Przebiegi czasowe podczas dostępu do pamięci i wykonywania rozkazów 36
4.9. Przestrzeń we/wy 38
4.9.1. Funkcje bitów w rejestrach funkcyjnych 40
4.10. Zerowanie i wektory przerwań 42
4.10.1. Źródła sygnału zerującego 44
4.10.2. Uchwyty przerwań 47
4.10.3. Przerwania zewnętrzne 53
4.10.4. Czas odpowiedzi na zgłoszenie przerwania 54
4.11. Tryby oszczędzania energii 56
4.11.1. Tryb Idle 57
4.11.2. Tryb Power-Down 57
5. Timery/liczniki 59
5.1. 8-bitowy Timer/Licznik0 60
5.2. 16-bitowy Timer/Licznik1 62
5.3. Timer/Licznik1 w trybie PWM 71
6. Watchdog 75
7. Pamięć danych EEPROM 79
7.1. Zapis i odczyt pamięci 79
7.2. Zapewnienie prawidłowych warunków pracy pamięci EEPROM 84
8. Układ transmisji szeregowej (UART) 85
8.1. Budowa i działanie nadajnika UART 86
8.2. Budowa i działanie odbiornika UART 87
8.3. Sterowanie transmisją 90
8.4. Generator podstawy czasu transmisji (Baud Rate Generator) 93
9. Komparator analogowy 96
10. Porty wejścia-wyjścia (I/O) 99
10.1. Budowa portu B 99
10.1.1. Port B jako cyfrowy port we/wy ogólnego przeznaczenia .... 101
10.1.2. Funkcje alternatywne portu B 102
10.1.3. Budowa linii portu B 103
10.2. Budowa portu D 106
10.2.1. Port D jako cyfrowy port we/wy ogólnego przeznaczenia .... 108
10.2.2. Funkcje alternatywne portu D 108
10.2.3. Budowa linii portu D 110
11. Pamięci nieulotne w mikrokontrolerach AVR 113
11.1. Bity zabezpieczające pamięć programu i danych 114
11.2. Bity konfiguracyjne 115
11.3. Sygnatury 116
11.4. Programowanie pamięci Flash i EEPROM 116
11.4.1. Programowanie równoległe 116
11.4.2. Programowanie szeregowe 123
Część 3. Lista rozkazów
12. Zestawienie rozkazów mikrokontrolera AT90S2313 128
12.1. Opis działania rozkazów 136
Część 4. Narzędzia i projekty przykładowe
13. Narzędzia projektowe 278
13.1. AVR Assembler for Windows 279
13.2. Kompilator języka C - AVR-GCC wersja 3.2 283
13.2.1. Instalacja kompilatora 284
13.3. AVR Studio wersja 3.56 284
13.3.1. Przygotowanie programów pisanych w asemblerze do symulacji w AVR Studio 3.56 285
13.3.2. Integracja programu AVR Studio 3.56 z kompilatorem AVR-GCC 287
13.3.3. Symulacja programów w AVR Studio V. 3.56 290
13.4. Symulator Visual Micro Lab 3.56 295
13.5. Programowanie pamięci programu w systemie (ISP) 300
13.5.1. Programator ZL2PRG 300
14. Przykładowe aplikacje 303
14.1. Zestaw uruchomieniowy ZL1AVR 304
14.1.1. Zasilanie zestawu 307
14.1.2. Taktowanie i zerowanie mikrokontrolera 307
14.1.3. Wykorzystywanie portów mikrokontrolera 308
14.1.4. Klawiatura 309
14.1.5. Interfejs RS232 310
14.1.6. Diody LED 310
14.1.7. Wyświetlacz alfanumeryczny LCD 311
14.1.8. Interfejsy I2C i 1-Wire 311
14.1.9. Przetwornik analogowo-cyfrowy 312
14.1.10. Programowanie mikrokontrolera w systemie (ISP) 315
14.2. Ćwiczenia praktyczne 317
14.2.1. Ćwiczenie 1 317
Sterowanie portami mikrokontrolera w trybie wyjściowym -efekt węża świetlnego i biegnącego punktu na linijce diod LED
14.2.2. Ćwiczenie 2 320
Wykorzystanie timera do odmierzania czasu w trybie odpytywania (generator przebiegu prostokątnego o częstotliwości 1 kHz)
14.2.3. Ćwiczenie 3 323
Sterowanie portami mikrokontrolera w trybie wejściowym, wykorzystanie timera do odmierzania czasu z wykorzystaniem przerwań - obsługa przycisków dołączonych do portów mikrokontrolera
14.2.4. Ćwiczenie 4 328
„Hello World!”, czyli sterowanie wyświetlaczem alfanumerycznym LCD 16×2 i 16×1. Obsługa pojedynczego przycisku
14.2.5. Ćwiczenie 5 343
„Łapanie muchy”, czyli obsługa klawiatury matrycowej
z wykorzystaniem przerwań timera, obsługa wyświetlacza alfanumerycznego LCD 16×2
14.2.6. Ćwiczenie 6 351
6-bitowy, binarny wskaźnik napięcia. Zastosowanie komparatora analogowego do budowy przetwornika analogowo-cyfrowe-go. Wyzwalanie funkcji przechwytywania Timera1 za pomocą komparatora. Przerwanie od przechwytywania Timera1. Obsługa wewnętrznej pamięci EEPROM
14.2.7. Ćwiczenie 7 357
Regulacja obrotów silnika DC. Wykorzystanie Timera1 jako modulatora PWM. Obsługa pojedynczych klawiszy
14.2.8. Ćwiczenie 8 363
Sterowanie obrotami silnika DC z komputera PC. Wykorzystanie Timera1 jako modulatora PWM. Wykorzystanie UART-a mikrokontrolera do prowadzenia transmisji szeregowej pomiędzy płytką ZL1AVR a komputerem PC
14.2.9. Ćwiczenie 9 374
Obsługa interfejsu 1-Wire. Odczyt pastylki identyfikacyjnej Dallasa - DS1990A. Obsługa wyświetlacza LCD 16×2
14.2.10. Ćwiczenie 10 388
Obsługa interfejsu I2C. Obsługa przerwania zewnętrznego. Wykorzystanie układu PCF8583 (RTC - Real Time Clock) do budowy zegara 24-godzinnego. Obsługa wyświetlacza LCD 16×2
14.2.11. Ćwiczenie 11 408
Podłączenie mikrokontrolera AVR do komputera PC przez port USB. Obsługa nadajnika i odbiornika UART z wykorzystaniem systemu przerwań. Obsługa wyświetlacza LCD 16×2
Dodatki
Dodatek A. Podstawowe parametry mikrokontrolerów z rodziny AVR 420
Dodatek B. Zestawienie rejestrów mikrokontrolera AT90S2313 422
Dodatek C. Wybrane charakterystyki elektryczne i czasowe mikrokontrolera AT90S2313 424
Dodatek D
D.1. Dopuszczalne parametry elektryczne mikrokontrolera AT90S2313 428
D.2. Parametry czasowe zewnętrznego sygnału zegarowego 430
Dodatek E. Wyprowadzenia typowych wyświetlaczy LCD i VFD z interfejsem równoległym 431
Dodatek F. Instalacja sterowników dla układu FT8U232BM w systemie operacyjnym Windows 432
Dodatek G
G.1. Płytka drukowana zestawu ZL1AVR 439
G.2. Płytka drukowana programatora ZL2PRG 442
Dodatek H. Wybrane adresy internetowe związane z mikrokontrolerami AVR 443
Dodatek I
1.1. Tablica kodów ASCII 445
1.2. Znaki zawarte w generatorze znaków sterownika HD44870 447
Skorowidz 449