Programowanie mikrokontrolerów 8051 w języku C - pierwsze kroki.
towar niedostępny
dodaj do przechowalniOpis
Po części objaśniającej wykorzystanie różnorodnych modułów peryferyjnych mikrokontrolera, zaprezentowanych jest kilkanaście praktycznych aplikacji (np. biblioteka funkcji do obsługi wyświetlacza LCD, kalkulator numeryczny, odtwarzanie melodii). Do wszystkich przykładów zamieszczono kompletne listingi oraz schematy. Jedną z największych zalet języka C jest względnie łatwa przenośność programów na różne platformy sprzętowe, tak więc zamieszczone w książce przykłady mogą stanowić punkt wyjściowy do wykonania podobnych aplikacji z wykorzystaniem innych mikrokontrolerów.
Książka jest przeznaczona dla wszystkich miłośników techniki mikroprocesorowej, którzy zamierzają wykorzystywać język C. Wiele informacji zawartych w książce może być przydatnych studentom wydziałów elektroniki, automatyki i informatyki wyższych uczelni technicznych, jak również inżynierom-konstruktorom systemów mikroprocesorowych.
Spis treści
Wstęp ..............................................................................................................................................1
1. Zasada działania mikrokontrolera...............................................................5
1.1. Budowa komputera ........................................................................................................... 6
1.2. Jak działa mikrokontroler typu '51 ................................................................................ 12
1.2.1. Wewnętrzna pamięć mikrokontrolera '51 ...................................................................... 16
1.2.2. Obszar rejestrów SFR ..................................................................................................... 17
1.2.3. Program w języku wewnętrznym ................................................................................... 21
2. Zestaw uruchomieniowy ZL2MCS51...................................................... 25
Program Flip ......................................................................................................... 29
3.
Środowisko uruchomieniowe Keil 7 ......................................................... 35
4.
5. Pierwsze programy w języku C .................................................................. 43
5.1. Sterowanie diodą LED.................................................................................................... 44
5.2. Generowanie dźwięku..................................................................................................... 49
5.3. Licznik w kodzie binarnym ............................................................................................ 54
5.4. Licznik pieścieniowy ...................................................................................................... 58
5.5. Licznik pierścieniowy – jeszcze raz ............................................................................... 61
6. Rdzeń procesora typu '51 .............................................................................. 67
6.1. Kontroler przerwań ......................................................................................................... 68
6.1.1. Jak działają przerwania ................................................................................................... 68
6.1.2. System przerwań procesora '51xD2............................................................................... 69
6.1.3. Przerwanie zewnętrzne od przycisku ............................................................................. 72
6.1.4. Obsługa dwóch przerwań z priorytetami ....................................................................... 74
6.2. Układy odmierzania czasu .............................................................................................. 76
6.2.1. Jak działają układy odmierzania czasu........................................................................... 76
6.2.2. Układy Timer0 i Timer1 ................................................................................................. 77
6.2.3. Program odmierzania czasu ............................................................................................ 80
6.2.4. Pomiar szerokości impulsów za pomocą układu Timer0 .............................................. 81
6.2.5. Zliczanie impulsów zewnętrznych za pomocą układu
Counter0 – pomiar częstotliwości .................................................................................. 82
6.3. Transmisja szeregowa ..................................................................................................... 84
6.3.1. Zasada działania transmisji szeregowej.......................................................................... 84
6.3.2. Transmisja szeregowa w mikroprocesorach '51 i '52 ................................................... 86
6.3.3. Transmisja szeregowa SIO w trybie 1 lub 3
z szybkością regulowaną przez układ Timer1 lub Timer2 ............................................ 91
6.3.4. Synchroniczna, programowa transmisja szeregowa ....................................................... 94
7. Rozszerzenia w procesorze typu '52 ........................................................ 99
7.1. Układ Timer2/Counter2 ................................................................................................ 100
7.1.1. Układ Timer2 – tryb samoprzeładowania .................................................................... 100
7.1.2. Układ Timer2 – tryb zapamiętywania .......................................................................... 102
7.1.3. Układ Timer2 – tryb generatora prędkości transmisji SIO .......................................... 102
7.1.4. Układ Timer2 – tryb generatora przebiegu prostokątnego .......................................... 103
2 Spis treści
7.1.5. Układ Timer2 – tryb odliczania w górę i w dół .......................................................... 105
7.2. Energooszczędne tryby pracy mikrokontrolera ............................................................ 106
7.2.1. Trybu zmniejszonego poboru prądu (power down) ..................................................... 106
7.2.2. Użycie trybu uśpienia idle z czekaniem na przerwanie ............................................... 107
8. Rozszerzenia w procesorze typu '51xD2 .............................................109
8.1. Programowalna matryca czasomierzy PCA ..................................................................110
8.2. Modyfikacje układu transmisji szeregowej SIO ...........................................................119
8.3. Układ dozoru watchdog .................................................................................................119
8.4. Programowanie pamięci programu ............................................................................... 122
8.5. Programowanie pamięci EEPROM procesora ............................................................. 125
8.6. Wspomaganie obsługi klawiatury matrycowej ............................................................ 126
8.7. Sterowanie prędkością działania procesora .................................................................. 128
8.8. Interfejs szeregowy SPI ................................................................................................ 130
9. Porty wejścia/wyjścia w przestrzeni adresowej XDATA ...........135
10. Alfanumeryczny wyświetlacz LCD .......................................................147
10.1. Budowa wyświetlacza LCD ......................................................................................... 148
10.2. Wyświetlacz LCD z 8-bitową magistralą danych ........................................................ 154
10.3. Różne sposoby sterowania wyświetlacza LCD............................................................ 156
10.4. Biblioteka funkcji sterujących wyświetlaczem LCD ................................................... 162
11. Klawiatura matrycowa ..................................................................................173
11.1. Funkcja _getkey() dla klawiatury matrycowej ............................................................. 175
11.2. Funkcja _getkey() do obsługi klawiatury matrycowej w procesorach '51xD2 ........... 178
12. Przykłady programów....................................................................................181
12.1. Odtwarzanie melodii ..................................................................................................... 182
12.2. Programowe liczniki czasu ........................................................................................... 184
12.3. Pomiar okresu przebiegu prostokątnego ...................................................................... 188
12.4. Odtwarzanie dźwięku ................................................................................................... 190
12.5. Tryb zmniejszonego poboru prądu zasilania ................................................................ 192
12.6. Układ Timer0 w dynamicznym sterowaniu wyświetlaczem LED .............................. 199
12.7. Kalkulator numeryczny................................................................................................. 202
12.8. Zegar elektroniczny ...................................................................................................... 209
12.9. Zegar i kalendarz z systemu Linux .............................................................................. 214
12.10. Generowanie szumu...................................................................................................... 218
12.11. Suma kontrolna CRC .................................................................................................... 222
12.12. Bufory kołowe w transmisji szeregowej ...................................................................... 225
12.13. Transmisja danych w standardzie MODBUS .............................................................. 231
12.14. Zapis i odczyt do pamięci EEPROM z interfejsem SPI .............................................. 239
12.15. Podsumowanie .............................................................................................................. 243
Dodatki....................................................................................................................................245
Dodatek A. Lista rozkazów mikrokontrolerów '51 ..................................................................... 246
Dodatek B. Usuwanie błędów w systemach mikroprocesorowych ............................................. 254
Dodatek C. Zestaw uruchomieniowy ........................................................................................... 256
Dodatek D. Zawartość pliku rejestrów SFR procesorów
AT89C51RD2 i AT89C51ED2 ..................................................................................... 259
3
Spis treści
Dodatek E. Tabela do ustalania szybkości transmisji przez
łącze szeregowe dla modułu Timer1 ............................................................................ 264
Dodatek F. Tabela do ustalania szybkości transmisji przez
łącze szeregowe dla modułu Timer2 ............................................................................ 265
Dodatek G. Tabela do ustalania szybkości transmisji przez
łącze szeregowe dla modułu BRG (SPD=0) ................................................................ 266
Dodatek H. Tabela do ustalania szybkości transmisji przez
łącze szeregowe dla modułu BRG (SPD=1) ................................................................ 267
Dodatek I. Rozmieszczenie wyprowadzeń obudowy PLCC44 ................................................... 268
Dodatek J. Rejestry SFR procesorów AT89C51RD2 i AT89C51ED2 ........................................ 269
Dodatek K. Kody ASCII .............................................................................................................. 294
Dodatek L. Uwagi o arytmetyce procesorów typu '51 w języku C ............................................ 298
Szczegóły
ISBN | 9788360233016 |
Autor | Majewski Jacek |
Oprawa | tw |
Rok wydania | 2005 |
Format | b5 |
Stron | 304 |