Spis treści
Wstęp 10
Jak zacząć? 11
1. Podstawy programowania – QBASIC 13
Zmienne 17
Instrukcja pętli FOR...NEXT 19
Badanie warunku 20
Instrukcja warunkowa IF...THEN...ELSE 21
Etykiety i podprogramy 23
Zagnieżdżenie 24
Operatory logiczne 25
Inne funkcje matematyczne – tylko dla dociekliwych 26
DO...LOOP 26
Wyjście z pętli 27
SELECT CASE 30
ON TIMER 32
Podsumowanie przygody z QBASIC-em 33
2. Budowa mikroprocesora 35
Opis wyprowadzeń 36
Budowa wewnętrzna 37
Inne ważne obwody 40
Liczniki, czyli timery 41
UART 42
Komparator analogowy 43
Watchdog 43
Power Down i Idle, czyli oszczędzamy prąd 44
Rejestry specjalne 45
Programowanie 47
AVR kontra '51 49
ELEMENTarz 51
Szybkość 51
Bity i bajty 51
Rozmiary i rozmiary 52
System dwójkowy 52
3. Zestaw uruchomieniowy 55
Płytka testowa 55
Programowanie 58
4. Instalacja i wykorzystanie programu BASCOM AVR 61
Instalacja 61
Obsługa 61
Konfiguracja 62
Pisanie programu 63
Pierwsze ćwiczenia 65
Dla dociekliwych 66
5. Porty wejścia/wyjścia 73
Ćwiczenie 1. Przerzutnik RS 73
Ćwiczenie 2. Układ czasowy 77
Ćwiczenie 3. Przerzutnik T 78
Ćwiczenie 4. Impulsator i syrena 82
Ćwiczenie 5. Przesuwanie bitów 85
Ćwiczenie 6. Licznik binarny i dekadowy 88
Ćwiczenie 7. Sterownik węża świetlnego (widmowy wyświetlacz) 91
ELEMENTarz 94
Szybkość 94
Dobre zwyczaje 95
Bity i bajty, zera i jedynki 95
Kody 96
Kod dwójkowy, binarny system liczbowy 96
Dwójkowe, dziesiętne, szesnastkowe... 98
Niezależne bity? 99
Adresowanie 100
Negacja 101
Sprawdzanie dwóch warunków 101
Odmierzanie czasu 101
BITWAIT 102
DEBOUNCE 102
ROTATE, SHIFT 102
INCR, DECR 103
LOOKUP 103
Technikalia 104
Budowa i konfiguracja portów 104
Ochrona wejść 108
6. Odmierzanie czasu, liczenie zdarzeń,
wykorzystanie zmiennych, przerwania 109
Ćwiczenie 8. Licznik zdarzeń 109
Ćwiczenie 9. Licznik czterocyfrowy 112
Ćwiczenie 10. Inteligentny przycisk 116
Ćwiczenie 11. Wyłącznik schodowy, klepsydra 118
Ćwiczenie 12. Stoper 121
Ćwiczenie 13. Prawdziwy zegar cyfrowy 128
Ćwiczenie 14. Zegar Predatora 131
Ćwiczenie 15. Podprogramy 132
Ćwiczenie 16. Konwersja BCD 137
ELEMENTarz 139
Zmienna 139
Deklaracje, typy zmiennych 139
CONST – stała 140
Etykieta 141
ALIAS 141
Nazwy w BASCOM-ie 142
Operatory logiczne 143
Liczniki/timery T/C0, T/C1 144
Przerwania 146
Kod BCD 148
MAKEBCD, MAKEDEC 149
Technikalia 149
Liczniki T/C0, T/C1 149
System przerwań 151
Stos 152
Obsługa przerwań – kolejność 153
Opcja NOSAVE 154
„Przestarzałe” przerwania 155
HEX – system szesnastkowy 156
7. Przerwania zewnętrzne, tryb obniżonego poboru mocy 157
Ćwiczenie 17. Oszczędny zegar – tryb Idle 157
Ćwiczenie 18. Zegar z budzikiem 164
ELEMENTarz 171
Przerwania INT0, INT1 171
Tryby zmniejszonego poboru prądu 172
Technikalia 173
Przerwania INT0, INT1 173
Jeszcze o obsłudze przerwań 175
Idle, Power Down 176
Pobór prądu, częstotliwość pracy 177
8. Pamięć EEPROM 179
Ćwiczenie 19. Wyświetlanie napisów 179
ELEMENTarz 191
READ – DATA – RESTORE 191
Zmienna tablicowa, tablica 192
EEPROM 193
Technikalia 195
EEPROM – zbyt niskie napięcie zasilania 195
Sekwencyjna obsługa EEPROM-a 196
9. Interfejs I2C 199
Ćwiczenie 20. Programowany zasilacz, woltomierz 199
ELEMENTarz 205
Podstawy I2C 205
Adres 209
Prędkość transmisji 209
PCF8591 209
Podstawowe parametry PCF8591 209
Technikalia 212
Adresowanie 212
Prędkość transmisji 212
Rezystory podciągające 212
Potwierdzenie – Acknowledge 213
10. Watchdog, zerowanie mikrokontrolera 215
Ćwiczenie 21. Centralka alarmowa, czyli watchdog w swej klasycznej roli 215
Ćwiczenie 22. Watchdog w akcji – oszczędzamy prąd 220
ELEMENTarz 224
Watchdog 224
RESET 225
Technikalia 226
Watchdog 226
RESET 227
$NORAMCLEAR 230
11. Wyświetlacz LCD 231
Ćwiczenie 23. Obsługa alfanumerycznego wyświetlacza LCD 231
Ćwiczenie 24. Kod ASCII 237
ELEMENTarz 243
Tekstowy wyświetlacz LCD 243
LCD 245
CLS 245
SHIFTLCD 245
DISPLAY ON/OFF 246
SPC(n) 246
CURSOR 246
Przesuwanie kursora 246
Kod ASCII 247
DEFLCDCHAR 247
LCD designer 251
ASC 251
CHR 251
Symulator 251
Technikalia 252
Tekstowy wyświetlacz LCD 252
INITLCD 254
Vo 254
Jeszcze o ASCII 254
Trochę historii 257
12. Łącze RS-232 259
Ćwiczenie 25. Transmisja przez RS-232 259
Wykorzystanie układu UART 259
Programowa realizacja transmisji 272
ELEMENTarz 275
Terminal 275
UART 275
Zasada transmisji szeregowej 275
Poziomy napięć 279
OPEN 279
CLOSE 281
PRINT 281
INKEY 282
WAITKEY 282
INPUT 283
ECHO 284
Buforowanie danych 284
Scalone układy sprzęgające 284
Technikalia 286
UART 286
Priorytet przerwań 291
9 bitów danych 291
Prędkość 291
Zmiana prędkości transmisji 293
INKEY i zmienna ERR 293
CONFIG SERIALIN, CONFIG SERIALOUT 294
Napięcia i prądy w łączu RS-232 294
Scalone układy sprzęgające 295
Maksymalna długość łącza RS-232 298
Dodatkowe wejścia i wyjścia 298
Wykorzystanie dodatkowych linii 300
Nietypowe wykorzystanie linii portu COM 303
13. Zaawansowane funkcje licznika-timera T/C1 305
Ćwiczenie 26. Płynna regulacja jasności – generator PWM 305
Ćwiczenie 27. Licznik T/C1 jako... przetwornik cyfrowo-analogowy 309
Ćwiczenie 28. Woltomierz – wykorzystanie komparatora analogowego 312
Ćwiczenie 29. Generator impulsów – tryb porównywania 318
ELEMENTarz 323
Zaawansowane funkcje T/C1 323
Porównanie (Compare) 324
PWM 325
Tryb przechwytywania 327
Komparator analogowy 328
Zmienne zmienne 330
Obliczenia arytmetyczne 330
FUSING 331
„Liczbowe napisy” 332
FORMAT 333
Operacje na tekstach 334
Technikalia 336
Sekrety T/C1 336
Tryb PWM 339
Komparator analogowy 340
14. Dokładny pomiar czasu 343
Ćwiczenie 30. Częstościomierz 343
Ćwiczenie 31. Pomiar okresu oraz czasu impulsów 353
ELEMENTarz 364
Porty I/O 364
15. Magistrala 1-Wire 369
Ćwiczenie 32. Układy 1-Wire 369
ELEMENTarz 375
Zasilanie 376
Numer – adres 377
Transmisja 378
DS2405 380
Rodzina DS18x20 381
DS18B20, DS1822 385
Technikalia 386
Działanie łącza 1-Wire 386
Szybkość 388
Tylko dla wyjątkowo dociekliwych 389
Zaawansowane opcje zasilania 390
Długość przewodów, zakłócenia i błędy 391
CRC8, CRC16, CHECKSUM 391
DS2405 pod lupą 392
Zapis ułamków w kodzie dwójkowym 392
Zapis liczb ujemnych – zmienne typu Integer, Long 394
Zapis liczb ujemnych – zmienne typu Single 395
16. Zaawansowane funkcje BASCOM-a 397
ELEMENTarz 398
SHIFTIN, SHIFTOUT 398
RND 398
SOUND 398
DTMFOUT 399
CONFIG KBD, GETKBD 399
CONFIG KEYBOARD, GETATKBD 399
RC5SEND, GETRC5, SONYSEND 399
GETRC 399
READMAGCARD 399
GRAPHLCD – wyświetlacz graficzny 399
BIN2GREY, GREY2BIN 400
Technikalia 400
Rozszerzanie możliwości BASCOM-a 400
$INCLUDE 400
SUB 400
FUNCTION 402
BYREF / BYVAL 402
Zmienne globalne i lokalne 404
Asembler 405
Biblioteki 406
Zakończenie 407