Aplikacje graficzne na mikrokontroler 89c52, 89s52, 89c55wd, 89c51rb2, 89c51rc2, 89c51rd2, 89c51ed2. Oprogramowanie narzędziowe i aplikacje dla bootloaderów i systemów ISP - Helion
ISBN: 978-8-3785-3437-2
stron: 420, Format: ebook
Data wydania: 2016-12-28
Księgarnia: Helion
Cena książki: 15,00 zł
1. Rozdział pierwszy wprowadzi czytelnika w możliwości mikrokontrolerów rodziny MCS-51.
2. Rozdział drugi wprowadzi czytelnika w działanie karty graficznej do samodzielnego wykonania na 89c52 umożliwiającej generowanie kolorowego obrazu wideo na monitorze wideo lub TV, w rozdzielczości 40 na 40 punktów w 16 kolorach, oraz dwóch rodzajów płytek aplikacji umożliwiających pisanie własnych gier wideo na 89c52.
3. Rozdział trzeci wprowadzi czytelnika w język programowania mikrokontrolerów MCS-51, nowe modele mikrokontrolerów wyposażone w nowoczesne interfejsy peryferiów i interfejsy programowania ISP. Nauczymy się konfigurować mikrokontrolery i napiszemy najprostszy program. Poznamy program Atmel Microcontroller ISP Software umożliwiający zaprogramowanie 89S52, oraz Bootloader i program Atmel Flip umożliwiający zaprogramowanie mikrokontrolerów AT89C51RB2, AT89C51RC2, AT89C51RD2 w trybie In-System Programming. Zaprojektujemy i wypróbujemy dwie nowe płytki aplikacji ze złączami do programowania ISP. Przeprowadzimy testy pięciu nowych funkcji mikrokontrolerów przy użyciu trzy wymiarowej gry wideo.
4. Rozdział czwarty prezentuje różnicę pomiędzy grafiką z dokładnością funkcji sinus 8 bitową i dokładną grafiką z 16 bitową funkcją sinus.
5. Rozdział piąty, szósty, siódmy, ósmy i dziewiąty prezentują trzy wymiarowe gry wideo na 89c52 o zróżnicowanej fabule, oraz rozwiązania prostych zadań algebry liniowej powstające podczas pisania gier wideo.
6. W dodatku A zamieszczony jest pełny kod trzy wymiarowej gry wideo na 89c52 z 16 bitową funkcją sinus i aproksymacją liniową.
Osoby które kupowały "Aplikacje graficzne na mikrokontroler 89c52, 89s52, 89c55wd, 89c51rb2, 89c51rc2, 89c51rd2, 89c51ed2. Oprogramowanie narzędziowe i aplikacje dla bootloaderów i systemów ISP", wybierały także:
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 77,00 zł, (38,50 zł -50%)
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 77,00 zł, (46,20 zł -40%)
- Asembler. Podręcznik programisty 119,00 zł, (77,35 zł -35%)
- Asembler. Programowanie 44,89 zł, (33,67 zł -25%)
- Asembler dla procesorów ARM. Podręcznik programisty 59,00 zł, (44,25 zł -25%)
Spis treści
Aplikacje graficzne na mikrokontroler 89c52, 89s52, 89c55wd, 89c51rb2, 89c51rc2, 89c51rd2, 89c51ed2. Oprogramowanie narzędziowe i aplikacje dla bootloaderów i systemów ISP eBook -- spis treści
1. Mikrokontroler jednoukładowy 89c52................................................................................................................ 6
2. Minikarta graficzna i płytka aplikacji................................................................................................................ 9
2.1 Minikarta Color, minikarta graficzna z 89c52, 40x40 punktów 16 kolorów........................................................ 9
2.2 PÅ‚ytka aplikacji: Karta Prezentacyjna 89c52 z 64kB RAM.................................................................................. 11
2.3 PÅ‚ytka aplikacji: Karta Prezentacyjna 80c32 z 64kB RAM i 64kB EEPROM..................................................... 12
2.4 Zestaw Minikarta Color z KartÄ… PrezentacyjnÄ… z 64kB RAM............................................................................. 14
2.5 Zestaw Minikarta Color z KartÄ… PrezentacyjnÄ… z 64kB RAM i 64kB EEPROM................................................ 15
2.6 Parametry generowanych kolorów i funkcje Minikarty Color............................................................................. 16
2.7 Generowane efekty przykładowej aplikacji.......................................................................................................... 18
2.8 Transmisja i format danych przesyłanych do Minikarty Color............................................................................ 20
2.9 Generowanie animacji graficznych..................................................................................................................... 27
2.10 Generowanie efektów nakÅ‚adania plansz, oprogramowanie prezentacyjne: AP.ASM...................................... 30
2.11 Minigry wideo na płytkę aplikacji 80c32 + 64kB RAM + 64kB EEPROM i Minikartę Color......................... 37
2.12 Pusty interfejs karty........................................................................................................................................... 37
3. Jak bezbłędnie programować 89c52, 89s52, 89c55wd, 89c51rb2, 89c51rc2, 80c51rd2................................. 43
3.1 Lista instrukcji języka kalkulatorowego MCS-51............................................................................................... 44
3.1.1 Instrukcje arytmetyczne................................................................................................................................... 44
3.1.2 Instrukcje logiczne........................................................................................................................................... 48
3.1.3 Instrukcje przesłań pomiędzy rejestrami i pamięcią......................................................................................... 50
3.1.4 Instrukcje wykonywane na zmiennych bitowych............................................................................................. 52
3.1.5 Skoki programowe i wywołania podprocedur.................................................................................................. 54
3.1.6 Znaczniki ustawiane i zerowane przez poszczególne instrukcje arytmetyczne i logiczne............................... 57
3.2 PrzydziaÅ‚ zasobów i konfigurowanie rejestrów SFR w MCS-51........................................................................ 59
3.2.1 Znaczniki przechowywane w rejestrze PSW.................................................................................................... 59
3.2.2 PodziaÅ‚ pamiÄ™ci wewnÄ™trznej RAM, banki rejestrów i obszar stosu................................................................ 59
3.2.3 Rejestr stosu..................................................................................................................................................... 59
3.2.4 PrzeÅ‚Ä…czanie banków rejestrów........................................................................................................................ 60
3.2.5 DostÄ™p do rejestrów SFR................................................................................................................................. 61
3.2.6 Obsługa przerwań............................................................................................................................................ 62
3.2.7 Adresowanie bezpośrednie i pośrednie............................................................................................................. 64
3.2.8 Rejestry arytmetyczne i ogólnego przeznaczenia: A, B, R0, R1, R2, R3, R4, R5, R6, R7............................... 65
3.2.9 Rejestry SFR mikrokontrolera 89c52................................................................................................................ 65
3.2.10 Rejestry SFR mikrokontrolera 89s52, 89c55wd.............................................................................................. 66
3.2.11 Dostęp do DPTR0 i DPTR1, rozszerzony zestaw instrukcji czy AUXR1....................................................... 67
3.2.12 Priorytety przerwaÅ„ i odkÅ‚adanie rejestrów na stos......................................................................................... 69
3.2.13 Rejestr priorytetu przerwań............................................................................................................................ 70
3.2.14 Dodatkowe rejestry SFR mikrokontrolera AT89C51RB2, AT89C51RC2, AT80C51RD2............................. 72
3.2.14.1 Dodatkowa pamięć XRAM.......................................................................................................................... 73
3.2.14.2 Dodatkowe alternatywne funkcje pinów...................................................................................................... 74
3.2.15 Podstawowe konfigurowanie mikrokontrolera 89c52, 89s52, 89c55wd........................................................ 75
3.2.16 Najprostszy program na 89c52, 89s52, 89c55wd........................................................................................... 77
3.2.17 Konfigurowanie ukÅ‚adów czasowych i liczników 89c52, 89s52, 89c55wd................................................... 79
3.2.17.1 Rejestr TCON............................................................................................................................................. 79
3.2.17.2 Rejestr TMOD............................................................................................................................................ 79
3.2.17.3 Układ czasowo-licznikowy Timer 0............................................................................................................ 82
3.2.17.4 Układ czasowo-licznikowy Timer 1............................................................................................................ 85
3.2.17.5 Układ czasowo-licznikowy Timer 2............................................................................................................ 88
3.2.17.5.1 Rejestr T2CON........................................................................................................................................ 88
3.2.17.5.2 Tryby pracy układu czasowo-licznikowego Timer2................................................................................. 93
3.2.17.5.3 Rejestr T2MOD........................................................................................................................................ 93
3.2.17.5.4 Tryb przechwytywania............................................................................................................................. 94
3.2.17.5.5 Tryb samoprzeładowania......................................................................................................................... 95
3.2.17.5.6 Tryb generowania przebiegu dla portu transmisji szeregowej................................................................. 97
3.2.17.5.7 Tryb generowania przebiegu o zadanej częstotliwości na wyjściu T2..................................................... 99
3.2.18 Konfigurowanie przerwań............................................................................................................................. 101
3.2.18.1 Sześciowektorowy system przerwań w AT89C52, AT89C55WD, AT89S52............................................. 101
3.2.18.2 Ośmio i dziewieciowektorowy system przerwań w AT80C51RD2, AT89C51RB2, AT89C51RC2.......... 101
3.2.18.3 Krytyczny czas obsługi przerwań................................................................................................................ 101
3.2.18.4 Rejestr zezwoleń przerwań i priorytety przerwań....................................................................................... 107
3.2.18.4.1 Rejestr IE, 89c52, 89s52, 89c55wd.......................................................................................................... 108
3.2.18.4.2 Rejestr IP, 89c52, 89s52, 89c55wd........................................................................................................... 108
3.2.18.5 Czteropoziomowy system przerwań 89C51RB2, 89C51RC2 i 80C51RD2................................................ 109
3.2.18.5.1 Rejestr IPL0, IPH0................................................................................................................................... 110
3.2.18.5.2 Rejestr IPL1, IPH1.................................................................................................................................... 111
3.2.18.5.3 Rejestr IE0, IE1, (IEN0, IEN1).................................................................................................................. 112
3.2.18.5.4 Konfigurowanie przerwań. Przykładowy program.................................................................................... 113
3.2.19 Konfigurowanie portu szeregowego................................................................................................................ 116
3.2.19.1 Rejestr SCON............................................................................................................................................... 116
3.2.19.2 Tryby pracy portu szeregowego.................................................................................................................... 119
3.2.19.3 Wybór szybkoÅ›ci pracy dla portu transmisji szeregowej, 89c52, 89s52, 89c55wd...................................... 119
3.2.19.4 Dodatkowe możliwoÅ›ci 89C51RB2, 89C51RC2, 80C51RD2, wybór szybkoÅ›ci pracy dla portu
transmisji szeregowej.................................................................................................................................. 120
3.2.19.5 Rejestr SBUF, PCON................................................................................................................................... 121
3.2.20 Zaawansowana konfiguracja 89s52, 89c55wd, 89C51RB2, 89C51RC2, 80C51RD2.................................... 122
3.2.20.1 Rejestr AUXR, 89s52, 89c55wd................................................................................................................... 122
3.2.20.2 Rejestr AUXR, 89C51RB2, 89C51RC2....................................................................................................... 122
3.2.20.3 Rejestr AUXR, 80C51RD2 i 89C51RD2..................................................................................................... 124
3.2.20.3.1 Większa pamięć XRAM, 89C51RD2........................................................................................................ 124
3.2.21 Do czego służy Watchdog............................................................................................................................... 125
3.2.21.1 Ewolucja długości rejestru Watchdoga......................................................................................................... 125
3.2.21.2 Rejestr WDTRST......................................................................................................................................... 126
3.2.21.3 Rejestr WDTPRG........................................................................................................................................ 126
3.2.21.4 SprzÄ™towy Watchdog z generowaniem sygnaÅ‚u reset dla peryferiów........................................................... 126
3.2.21.5 Inicjowanie pracy licznika Watchdog........................................................................................................... 127
3.2.21.6 Watchdog w trybie Power-down, 89s52, 89c55wd, 89C51RB2, 89C51RC2, 80C51RD2.......................... 127
3.2.21.7 Watchdog w trybie Idle, 89s52, 89c55wd.................................................................................................... 127
3.2.21.8 Watchdog w trybie Idle, 89C51RB2, 89C51RC2, 80C51RD2.................................................................... 127
3.2.22 Tryb uśpienia Idle........................................................................................................................................... 128
3.2.23 Tryby oszczędzania energii Power-down........................................................................................................ 128
3.2.24 Bootloader w AT89C51RB2, AT89C51RC2, AT89C51RD2.......................................................................... 130
3.2.24.1 Rejestr programowany HSB......................................................................................................................... 131
3.2.24.2 Bit ENBOOT ustawiany programowo w rejestrze AUXR1......................................................................... 131
3.2.25 Tryb podwojenia szybkości X2, 89C51RB2, 89C51RC2 i 80C51RD2.......................................................... 133
3.2.25.1 Rejestr CKCON0 i CKCON1....................................................................................................................... 134
3.2.26 Dodatkowe możliwości oszczędzania energii, rejestr CKRL.......................................................................... 135
3.2.27 Komunikacja wielomikroprocesorowa........................................................................................................... 136
3.2.27.1 Wykrywanie błędu ramki............................................................................................................................. 136
3.2.27.2 Automatyczne rozpoznawanie adresu, 89C51RB2, 89C51RC2 i 80C51RD2............................................. 136
3.2.27.2.1 Rejestry SADDR, SADEN........................................................................................................................ 137
3.2.27.2.1.1 Adres indywidualny............................................................................................................................... 137
3.2.27.2.1.2 Adres ogólny.......................................................................................................................................... 137
3.2.27.2.1.3 Ustawienie rejestrów SADDR, SADEN po reset................................................................................... 138
3.2.27.3 Dedykowany generator przebiegu zegarowego dla portu transmisji szeregowej w trybie 1 i 3,
89C51RB2, 89C51RC2, 80C51RD2............................................................................................................ 138
3.2.27.3.1 Konfigurowanie częstotliwości generowanego przebiegu, rejestry BRL, BDRCON............................... 138
3.2.28 Maksymalna czÄ™stotliwość taktowania mikrokontrolerów AT89C51RB2, AT89C51RC2............................. 139
3.2.29 Kompatybilność mikrokontrolerów 89s52, 89c55wd, 89C51RB2, 89C51RC2, 80C51RD2......................... 140
3.2.30 RozkÅ‚ad pinów w obudowach DIP-40............................................................................................................. 141
3.2.31 Funkcje portów i pinów, 89c52, 89s52, 89c55wd........................................................................................... 143
3.2.32 Najprostsza aplikacja na 89c52....................................................................................................................... 148
3.2.33 Charakterystyka portów P0, P1, P2, P3........................................................................................................... 150
3.2.34 Instrukcje które odczytujÄ… stan linii wejÅ›ciowych portów I/O........................................................................ 153
3.2.35 Instrukcje które odczytujÄ… stan przerzutników wyjÅ›ciowych.......................................................................... 154
3.2.36 Przestrzeń adresowa. Kod binarny i szesnastkowy, czyli potęgi liczby 2...................................................... 155
3.2.37 Magistrala równolegÅ‚a, podÅ‚Ä…czamy zewnÄ™trznÄ… pamięć danych S-RAM i pamięć programu FLASH........ 156
3.2.38 Magistrala szeregowa SPI, podłączamy szeregową pamięć danych S-RAM i FLASH.................................. 178
3.2.39 Port szeregowy, systemy wielomikrokontrolerowe......................................................................................... 180
3.2.40 Reset w systemach wielomikrokontrolerowych.............................................................................................. 180
3.2.41 Jak napisać pierwszy program ?...................................................................................................................... 222
3.2.42 Jak zaprogramować 89c52, 89c55wd, 89s52 ?............................................................................................... 223
3.2.43 Jak prawidłowo korzystać z oprogramowania Atmel Microcontroller ISP Software..................................... 229
3.2.44 Jak zaprogramować bootloaderem 89c51rb2, 89c51rc2, 89c51rd2, 89c51ed2 ?............................................ 230
3.2.44.1 Program FLIP do obsługi bootloadera.......................................................................................................... 233
3.2.44.1.1 Najprostsza aplikacja bootloadera dla 89c51rb2, 89c51rc2...................................................................... 235
3.2.45 Jaki mikrokontroler jest najlepszy na płytkę MinikartyColor, i płytkę aplikacji............................................ 243
3.2.46 Integracja płytki programatora i płytki aplikacji typ 3 i typ 4 z programem FLIP.......................................... 246
3.2.46.1 Programator ISP/RS232 zintegrowany z programem FLIP......................................................................... 247
3.2.46.2 Podstawowa integracja płytki aplikacji typ 3 z programem FLIP............................................................... 249
3.2.47 PÅ‚ytka aplikacji typ 3, dla 89c51rb2, 89c51rc2 w DIP-40.............................................................................. 255
3.2.48 PÅ‚ytka aplikacji typ 4, dla 89c51rb2, 89c51rc2, 89c51rd2, 89c51ed2 w PLCC-44........................................ 257
3.2.49 PÅ‚ytki aplikacji typu 5 i 6, dla 89C51AC2, 89C51AC3 i 89C5130, 89C5131............................................... 259
3.2.49.1 Wytyczne dla płytki aplikacji typ 5 dla 89C51AC2, 89C51AC3................................................................. 259
3.2.49.2 Wytyczne dla płytki aplikacji typ 6 dla 89C5130, 89C5131........................................................................ 259
3.2.50 Proponowany zakres testów 89c51rc2 na pÅ‚ytce aplikacji typ 3, grÄ… wideo................................................... 260
3.2.50.1 Praktyczna realizacja 5 testów...................................................................................................................... 261
3.2.50.2 Wnioski z przeprowadzonych testów........................................................................................................... 269
3.2.51 PrawidÅ‚owe przeÅ‚Ä…czanie rejestrów DPTR0 i DPTR1.................................................................................... 270
3.2.52 Zabezpieczenie złącza ISP diodami Zenera 5,1V........................................................................................... 273
3.2.53 Podsumowanie rozdziału............................................................................................................................... 274
4. Plansza obrotowa, dokładność obliczeń trygonometrycznych........................................................................ 275
4.1 8-bitowa funkcja sinus i 7-bitowy argument funkcji........................................................................................... 276
4.2 Zagadnienia dyskretyzacji funkcji....................................................................................................................... 277
4.3 16-bitowa funkcja sinus i 8-bitowy argument funkcji......................................................................................... 279
5. Aplikacja z grafiką 3D, minigra: Jeździmy po parku...................................................................................... 281
5.1 Wykrywanie zaliczenia etapów.......................................................................................................................... 283
5.2 Nadawanie obiektom perspektywy.................................................................................................................... 285
5.3 Fabuła gry jeździmy po parku........................................................................................................................... 287
5.4 Mapka do gry jeździmy po parku....................................................................................................................... 288
5.5 Przyciski obsługi gry jeździmy po parku........................................................................................................... 288
5.6 Przebieg gry jeździmy po parku......................................................................................................................... 289
6. Aplikacja z grafikÄ… 3D, minigra: Jeździmy motorówkÄ…................................................................................. 291
6.1 Wykrywanie przekraczania linii etapów y=ax+b............................................................................................... 293
6.2 WyÅ›wietlanie zaliczenia etapów na ekranie konsoli wideo................................................................................. 301
6.3 WyÅ›wietlanie parametrów ruchu: szybkoÅ›ci i kierunku....................................................................................... 305
6.4 WyÅ›wietlanie licznika punktów.......................................................................................................................... 307
6.5 Mapka do gry jeździmy motorówkÄ…..................................................................................................................... 310
6.6 Przyciski obsÅ‚ugi gry jeździmy motorówkÄ…......................................................................................................... 310
6.7 Przebieg gry jeździmy motorówkÄ…...................................................................................................................... 311
7. Aplikacja z grafiką 3D, minigra: Jeździmy po mieście..................................................................................... 314
7.1 Fabuła gry jeździmy po mieście.......................................................................................................................... 314
7.2 Plansza do gry jeździmy po mieście..................................................................................................................... 315
7.3 Liczymy punkty przekroczeÅ„ warunków............................................................................................................. 317
7.4 Wykrywanie jazdy w niewłaściwym kierunku.................................................................................................... 319
7.5 Wykrywanie jazdy poza obszarem drogi............................................................................................................. 335
7.6 Wykrywanie przekroczenia białej linii................................................................................................................ 339
7.7 Wykrywanie zaliczenia etapów.......................................................................................................................... 342
7.8 Mapka do gry jeździmy po mieście..................................................................................................................... 344
7.9 Przyciski obsługi gry jeździmy po mieście......................................................................................................... 344
7.10 Przebieg gry jeździmy po mieście..................................................................................................................... 345
7.11 Raport z testu wykrywania wykroczeń: wykrywanie jazdy pod prąd............................................................... 349
7.12 Raport z testu wykrywania wykroczeń: wykrywanie przekroczenia białej linii............................................... 349
7.13 Raport z testu wykrywania wykroczeń: wykrywanie przekroczenia białej linii............................................... 350
7.14 Raport z testu wykrywania wykroczeń: wykrywanie jazdy poza wyznaczoną drogą....................................... 350
8. Aplikacja z grafiką 3D, minigra: Jazda czołgiem............................................................................................. 352
8.1 Model matematyczny konsoli wideo z obiektami 3D......................................................................................... 353
8.2 Trzy plansze z informacjami o terenie i cieniach obiektów 3D.......................................................................... 354
8.3 Definicja obiektów 3D........................................................................................................................................ 355
8.4 Wykrywanie widocznoÅ›ci i wyÅ›wietlanie obiektów 3D...................................................................................... 358
8.5 Animacja obiektów 3D na planszy gry................................................................................................................ 360
8.6 Mapka do gry jazda czołgiem............................................................................................................................. 369
8.7 Przyciski obsługi gry jazda czołgiem.................................................................................................................. 369
8.8 Przebieg gry jazda czołgiem............................................................................................................................... 370
9. Aplikacja z grafikÄ… 3D, minigra: Symulator lotów........................................................................................... 374
9.1 FabuÅ‚a gry symulator lotów................................................................................................................................ 374
9.2 Mapka do gry symulator lotów........................................................................................................................... 374
9.3 Przyciski obsÅ‚ugi gry symulator lotów................................................................................................................ 375
9.4 Przebieg gry symulator lotów............................................................................................................................. 376
Dodatek A. Pełny kod programu Jeździmy po parku, z 16 bitową funkcją sinus i aproksymacją.................. 378