Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00118 009777 11028286 na godz. na dobę w sumie
Mikroprocesory jednoukładowe PIC - książka
Mikroprocesory jednoukładowe PIC - książka
Autor: Liczba stron: 416
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-974-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hardware >> inne
Porównaj ceny (książka, ebook, audiobook).

Książka stanowi kompendium wiedzy na temat popularnych mikroprocesorów PIC z rodziny Base-Line i Mid-Range. Przedstawiono nie tylko opisy samych procesorów, ale również: asembler MPASM, zintegrowane środowisko uruchomieniowe MPLAB, zasady programowania procesorów i przykłady programatorów. Szczególnie duży nacisk położono na opis układów peryferyjnych procesorów w tym interfejsów szeregowych i przetworników A/C. W jednym z rozdziałów przedstawiono typową drogę od pomysłu do realizacji wybranego zadania i kilka mini projektów.

Książka adresowana jest do inżynierów i studentów kierunków: elektronika, automatyka, informatyka i telekomunikacja. Ze względu na powszechną obecność mikroprocesorów w wielu urządzeniach, może okazać się przydatna również dla konstruktorów i projektantów układów elektronicznych.

Książka omawia:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Mikroprocesory jednouk³adowe PIC Autor: Stanisław Pietraszek ISBN: 83-7197-974-6 Format: B5, stron: 412 Ksi¹¿ka stanowi kompendium wiedzy na temat popularnych mikroprocesorów PIC z rodziny Base-Line i Mid-Range. Przedstawiono nie tylko opisy samych procesorów, ale równie¿: asembler MPASM, zintegrowane ġrodowisko uruchomieniowe MPLAB, zasady programowania procesorów i przyk³ady programatorów. Szczególnie du¿y nacisk po³o¿ono na opis uk³adów peryferyjnych procesorów w tym interfejsów szeregowych i przetworników A/C. W jednym z rozdzia³ów przedstawiono typow¹ drogê od pomys³u do realizacji wybranego zadania i kilka mini projektów. Ksi¹¿ka adresowana jest do in¿ynierów i studentów kierunków: elektronika, automatyka, informatyka i telekomunikacja. Ze wzglêdu na powszechn¹ obecnoġæ mikroprocesorów w wielu urz¹dzeniach, mo¿e okazaæ siê przydatna równie¿ dla konstruktorów i projektantów uk³adów elektronicznych. Ksi¹¿ka omawia: • Schemat blokowy, pamiêæ, rejestry procesorów • Uk³ad przerwañ i uk³ady steruj¹ce • Porty, liczniki, pamiêæ EEPROM • Interfejsy, przetworniki A/C, uk³ady analogowe • Listê instrukcji • Asembler MPASM i zintegrowane ġrodowisko uruchomieniowe MPLAB • Programowanie procesorów, w tym procedury matematyczne • Dane techniczne procesorów, parametry i oznaczenia Autor, Stanis³aw Pietraszek, jest pracownikiem Instytutu Elektroniki na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Ďl¹skiej w Gliwicach. Prowadzi wyk³ady z przedmiotów: mikroprocesory jednouk³adowe PIC i elektroniczna aparatura medyczna. Spis treści Od Autora......................................................................................... 11 Wykaz stosowanych oznaczeń ........................................................... 13 Wstęp ..................................................................................................... 15 Rozdział 1. Schemat blokowy, pamięć, rejestry .................................................. 19 Skrócony opis instrukcji dla procesorów z rodziny Mid-Range .......................................20 Schemat blokowy ...................................................p...................................................p........22 Pamięć programu...................................................p...................................................p.........23 Cykl maszynowy ...................................................p...................................................p.........25 Licznik programu ...................................................p...................................................p........25 .........26 Stos...................................................p...................................................p..................... Tryby adresowania, budowa pamięci danych, podział na banki ................................26 Adresowanie pamięci RAM w procesorach Base-Line ...................................................p.27 Adresowanie pamięci RAM w procesorach Mid-Range...................................................p28 Rejestry specjalne procesora (SFR) ...................................................p...............................29 Rejestry ogólnego przeznaczenia (GPR) ...................................................p.........................32 Rejestr STATUS ...................................................p...................................................p...33 Modyfikacja i odtwarzanie zawartości licznika rozkazów ...............................................35 Modyfikacja i odtwarzanie zawartości PC w procesorach Mid-Range ......................36 Modyfikacja i odtwarzanie zawartości PC w procesorach Base Line ........................37 Pamięć konfiguracyjna...................................................p...................................................p38 Zawartość pamięci konfiguracyjnej...................................................p.........................39 Rozdział 2. Układ przerwań, układy sterujące ...................................................... 45 Układ przerwań ...................................................p...................................................p...........45 Układ przerwań dla mniejszych procesorów ...................................................p...........46 Układ przerwań dla większych procesorów ...................................................p............47 Przerwanie zewnętrzne — z linii INT (RB0) ...................................................p..........48 Przerwanie od zmiany sygnału na liniach portu B (RB4 – RB7) ...............................49 Przerwanie od przepełnienia licznika TMR0...................................................p...........49 Przerwanie od zakończenia zapisu do pamięci EEPROM..........................................49 Struktura programu z wykorzystaniem przerwań ...................................................p....50 Przechowywanie zawartości rejestrów podczas obsługi przerwania..........................50 Procedury sprawdzające...................................................p...........................................52 Układ oscylatora...................................................p...................................................p..........52 Tryby pracy oscylatora dla procesorów bez bitu FOSC2 ...........................................53 Standardowy generator kwarcowy — tryby LP, XT, HS ...............................................53 Podłączanie zewnętrznego źródła sygnału zegarowego .............................................55 4 Mikroprocesory jednoukładowe PIC Generator RC — tryb RC ...................................................p........................................55 Wewnętrzny generator RC — tryb INTRC ...................................................p.............56 Tryby pracy oscylatora dla procesorów z bitem FOSC2.................................................57 Układ zerowania procesora ...................................................p............................................59 Zerowanie linią ~MCLR...................................................p..........................................61 Zerowanie po włączeniu zasilania — POR ...................................................p.............61 Zerowanie przy spadku napięcia zasilania — BOR ...................................................p62 Bity związane z funkcją zerowania...................................................p..........................63 Początkowe ustawienia rejestrów po wyzerowaniu...................................................p.64 Zachowanie się oscylatora po wyzerowaniu...................................................p............65 Stan uśpienia mikrokontrolera ...................................................p.......................................65 Standardowy układ pracy procesora ...................................................p........................73 Rozdział 3. Porty, liczniki, pamięć EEPROM ........................................................ 75 Porty wejścia/wyjścia — charakterystyka ogólna...................................................p..........75 Port A ...................................................p...................................................p................... .77 Port B ...................................................p...................................................p................... .78 Port C ...................................................p...................................................p................... .79 Port D ...................................................p...................................................p................... .80 Port E ...................................................p...................................................p................... .81 Port GPIO...................................................p...................................................p..............82 Moduły liczników (timerów) ...................................................p.........................................83 Timer 0...................................................p...................................................p..................83 Licznik WDT (Watchdog Timer) ...................................................p............................86 Timer 1...................................................p...................................................p..................87 Timer 2...................................................p...................................................p..................92 Nieulotna pamięć danych ...................................................p...............................................94 Opis działania...................................................p...................................................p........94 Odczyt z pamięci EEPROM ...................................................p....................................96 Zapis do pamięci EEPROM...................................................p.....................................96 Odczyt i zapis do pamięci programu...................................................p..............................97 Odczyt z pamięci programu typu FLASH ...................................................p...............98 Zapis do pamięci programu typu FLASH...................................................p................98 Programowanie procesora przez zapis do pamięci programu...................................100 Rozdział 4. Interfejsy, przetworniki A/C, układy analogowe .............................. 101 Interfejs USART ...................................................p...................................................p.......101 Obliczanie szybkości transmisji...................................................p.............................104 Praca modułu USART w trybie asynchronicznym...................................................p106 Praca modułu USART w trybie synchronicznym...................................................p..111 Interfejs szeregowy SSP — tryb SPI...................................................p............................116 Konfiguracja modułu SPI ...................................................p......................................116 Praca w trybie SPI — master ...................................................p.................................119 Praca w trybie SPI — slave ...................................................p...................................121 Praca w stanie uśpienia ...................................................p..........................................122 Interfejs szeregowy SSP — tryby SPI i I2C ...................................................p.................122 Ustalenie częstotliwości transmisji ...................................................p........................127 Standardowy protokół transmisji ...................................................p...........................127 Nadawanie w trybie master...................................................p....................................127 Odbiór w trybie master ...................................................p..........................................128 Konfiguracja modułu I2C...................................................p.......................................128 Procedury sprawdzające...................................................p.........................................129 PSP — 8-bitowy port równoległy ...................................................p................................133 Spis treści 5 Układy CCP i PWM...................................................p...................................................p..135 Tryb Rejestruj (Capture) ...................................................p........................................136 Tryb Porównaj (Compare) ...................................................p.....................................137 Tryb PWM — modulator szerokości impulsów ...................................................p....137 Standardowy przetwornik A/C z kompensacją wagową.................................................140 8-bitowy przetwornik A/C ...................................................p.....................................140 Opis działania przetwornika A/C...................................................p...........................143 Obliczanie minimalnego czasu akwizycji...................................................p..............145 Konwersja A/C w trybie obniżonego poboru mocy .................................................147 10-bitowy przetwornik AC ...................................................p....................................148 12-bitowy przetwornik A/C ...................................................p...................................150 Przetwornik A/C z przetwarzaniem U/t...................................................p.................151 Programowany układ napięcia odniesienia...................................................p............152 Moduł komparatora analogowego ...................................................p.........................154 Konfiguracja modułu komparatorów...................................................p.....................156 Parametry komparatora...................................................p..........................................156 Rozdział 5. Lista instrukcji ............................................................................... 159 Format instrukcji i uwagi wstępne ...................................................p...............................161 Szczegółowy opis rozkazów ...................................................p........................................162 Zerowanie zawartości rejestru ...................................................p...............................163 Przesłania ...................................................p...................................................p............163 Operacje arytmetyczne...................................................p...........................................164 Instrukcje logiczne ...................................................p.................................................168 Przesunięcia bitów w rejestrze...................................................p...............................169 Instrukcje ustawiania i zerowania bitów w rejestrze ................................................172 Instrukcje skoków ...................................................p..................................................173 Instrukcje powrotów ...................................................p..............................................180 Przejście w stan obniżonego poboru mocy...................................................p............182 Wyzerowanie licznika WDT...................................................p..................................183 Wykonanie cyklu pustego...................................................p......................................183 Instrukcje tris i option ...................................................p............................................184 Wyjątki...................................................p...................................................p................184 Formalny opis instrukcji...................................................p...............................................185 Lista instrukcji dla procesorów Base-Line...................................................p...................198 Rozdział 6. Asembler MPASM........................................................................... 201 Formaty liczb i znaków ...................................................p................................................201 Operatory arytmetyczne i logiczne ...................................................p..............................202 Format pliku wejściowego ...................................................p...........................................203 Linia ...................................................p...................................................p....................203 Separator ...................................................p...................................................p.............203 Komentarz...................................................p...................................................p...........203 Etykiety ...................................................p...................................................p...............203 Rozkazy...................................................p...................................................p...............203 Polecenia ...................................................p...................................................p.............203 Lista poleceń ...................................................p...................................................p.............204 Opis częściej używanych poleceń ...................................................p................................204 Wywołanie kompilatora ...................................................p...............................................214 Oddzielne wywołanie kompilatora MPASMWIN...................................................p.217 Wywołanie kompilatora MPASM ...................................................p.........................217 Oznaczenia i formaty plików ...................................................p.......................................218 Format pliku z listą błędów (.err) ...................................................p..........................218 Format pliku z informacjami o przebiegu kompilacji (.lst) ......................................219 Format pliku wynikowego (.hex)...................................................p...........................219 Instrukcje specjalne ...................................................p...................................................p...221 6 Mikroprocesory jednoukładowe PIC Rozdział 7. Zintegrowane środowisko uruchomieniowe MPLAB ......................... 223 Instalacja...................................................p...................................................p....................223 System zapisu czynności...................................................p........................................224 Wywołanie ...................................................p...................................................p................224 Zawartość linii statusu ...................................................p...........................................224 .226 Okienko File...................................................p...................................................p............. Okienko Project...................................................p...................................................p.........227 Tworzenie projektów ...................................................p.............................................228 Edycja projektu ...................................................p...................................................p...228 Kompilacja...................................................p...................................................p..........231 Okienko Edit ...................................................p...................................................p.............231 Okienko Debug ...................................................p...................................................p.........232 Menu Run...................................................p...................................................p............232 Menu Execute ...................................................p...................................................p.....235 Menu Simulator Stimulus ...................................................p......................................235 Ustawianie pułapek — polecenie Break Settings ...................................................p..241 Ustawianie znaczników — polecenie Trace Settings ...............................................242 Kasowanie znaczników — polecenie Clear all Points..............................................242 Polecenie Power on Reset...................................................p......................................242 Okienko Picstart Plus ...................................................p...................................................p243 Okienko Options ...................................................p...................................................p.......244 Polecenie Development Mode ...................................................p...............................244 Okienko Tools...................................................p...................................................p.....245 Okienko Window ...................................................p...................................................p245 Okienko Program Memory ...................................................p....................................246 Okienko Trace Memory...................................................p.........................................246 Okienko EEPROM Memory...................................................p..................................246 Okienko Absolute Listing ...................................................p......................................246 Okienko Stack...................................................p...................................................p.....247 Okienko File Register ...................................................p............................................247 Okienko Special Function Register ...................................................p.......................247 Okienko Show Symbol List ...................................................p...................................249 Okienko StopWatch ...................................................p...............................................249 Okienko Project Window...................................................p.......................................249 Okienko New Watch Window ...................................................p...............................249 Okienko Modify...................................................p...................................................p..250 Polecenia Tile Horizontal, Tile Vertical, Cascade, Iconize All, Arrange Icons .......250 Okienko Help ...................................................p...................................................p......250 Błędy, ostrzeżenia i komunikaty ...................................................p..................................250 Programowanie...................................................p...................................................p..........251 Rozdział 8. Programowanie procesorów ............................................................ 253 Język programowania...................................................p...................................................p253 Zależności czasowe ...................................................p...................................................p...254 Algorytmy programowania ...................................................p..........................................255 Programatory — sprzęt i oprogramowanie ...................................................p..................255 Programowanie procesorów...................................................p.........................................257 Programowanie w programatorze ...................................................p..........................257 Programowanie w układzie...................................................p....................................258 Standard łączówki programatora ...................................................p...........................260 Pamięć konfiguracyjna w procesorach Mid-Range ...................................................p.....260 Rejestr konfiguracyjny...................................................p...........................................261 Rejestr konfiguracyjny dla procesora PIC16F877...................................................p.261 Rejestr konfiguracyjny dla procesora PIC16F628...................................................p.261 Spis treści 7 Rejestr konfiguracyjny dla procesora PIC16F84...................................................p...261 Rejestr konfiguracyjny dla procesora PIC12C509 ...................................................p261 Ustawianie bitów konfiguracyjnych ...................................................p......................263 Pamięć danych EEPROM ...................................................p............................................265 Schematy programatorów ...................................................p............................................265 Programator PICPROG...................................................p..........................................266 Programator JDM...................................................p...................................................p267 Programator JUPIC...................................................p................................................267 Programowanie przez zapis do pamięci programu ...................................................p......269 Program ładujący (bootloader) ...................................................p..............................269 Program komunikacyjny (downloader) ...................................................p.................270 Podłączenie procesora do komputera...................................................p.....................271 Przebieg programowania ...................................................p.......................................271 Kod źródłowy programu bootldr.asm ...................................................p....................272 Rozdział 9. Eksperymenty, programy, projekty.................................................. 275 Konfiguracja minimalna...................................................p...............................................275 Wybór procesora ...................................................p...................................................p.......277 Krótka charakterystyka procesora...................................................p..........................277 System oznaczania ...................................................p.................................................279 Mapa pamięci RAM...................................................p...............................................280 Rejestr konfiguracyjny...................................................p...........................................280 Konfiguracja linii I/O...................................................p.............................................284 Generator zegarowy ...................................................p...............................................284 Układ eksperymentalny ...................................................p.........................................284 Programator...................................................p...................................................p.........285 Oprogramowanie...................................................p...................................................p.285 Źródło zasilania...................................................p...................................................p...286 Programy ...................................................p...................................................p...................286 Program P1 — zapal diodę ...................................................p....................................287 Program P2 — zapal diodę po naciśnięciu klawisza ................................................288 Program P3 — przerzutnik ...................................................p....................................289 Program P4 — eliminacja drgań styków ...................................................p...............290 Program P5 — przerzutnik, eliminacja drgań styków w obsłudze przerwania ........293 Program P6 — migacz z pętlą opóźniającą, Fosc = 37 kHz.....................................295 Program P7 — migacz z pętlą opóźniającą, Fosc = 4 MHz .....................................297 Program P8 — migacz z czasem odmierzanym przez licznik 0 (1) .........................298 Program P9 — migacz z czasem odmierzanym przez licznik 0 (2) .........................300 Program P10 — migacz z czasem odmierzanym przez t licznik 1...........................301 Program P11 — migacz z czasem odmierzanym przez licznik 1 i CCP ..................303 Program P12 — migacz z czasem odmierzanym przez licznik 2.............................304 Program P13 — migacz z dzielnikiem częstotliwości na liczniku 0 ........................306 Program P13a — migacz, konfiguracja minimalna..................................................307 Program P14 — migacz, czas odmierzany przez licznik WDT................................308 Program P15 — migacz, czas odmierzany przez licznik WDT w stanie uśpienia ...309 Program P16 — migacz z sygnalizacją akustyczną..................................................310 Program P17 — migacz z opóźnieniem przez wykonywanie instrukcji addlw, 255 ...312 Program P18 — migacz z opóźnieniem przez wykonywanie instrukcji addlw, 255 i przepełnienie licznika rozkazów ......313 Program P19 — wyjście ze stanu uśpienia po naciśnięciu przycisku ......................314 Program P20 — generator sygnału „SOS” ...................................................p............316 Program P21 — generator napięcia schodkowego ...................................................p318 Program P22 — 4-bitowy przetwornik A/C ...................................................p..........320 Program P23 — programowa obsługa 12-bitowego przetwornika A/C...................323 Program P24 — zasilacz sterowany cyfrowo ...................................................p........326 8 Mikroprocesory jednoukładowe PIC Rozdział 10. Procedury matematyczne ................................................................ 331 Oznaczenia formatu argumentów i wykaz procedur...................................................p....331 Wykaz procedur ...................................................p...................................................p..332 Dodawanie...................................................p...................................................p.................333 Dodawanie liczb 16-bitowych ...................................................p...............................333 Dodawanie liczb 24-bitowych ...................................................p...............................333 Dodawanie liczb 32-bitowych ...................................................p...............................334 Odejmowanie ...................................................p...................................................p............334 Odejmowanie liczb 16-bitowych ...................................................p...........................335 Odejmowanie liczb 24-bitowych ...................................................p...........................335 Odejmowanie liczb 32-bitowych ...................................................p...........................336 Mnożenie...................................................p...................................................p...................336 Mnożenie liczb 8-bitowych...................................................p....................................337 Mnożenie liczby 16-bitowej przez liczbę 8-bitową ..................................................338 Mnożenie liczb 16-bitowych...................................................p..................................339 Dzielenie...................................................p...................................................p....................341 Dzielenie liczb 8-bitowych ...................................................p....................................341 Dzielenie liczby 16-bitowej przez liczbę 8-bitową...................................................p341 Dzielenie liczb 16-bitowych ...................................................p..................................343 Pierwiastkowanie ...................................................p...................................................p......343 Relacje między argumentami ...................................................p.......................................344 Równość argumentów...................................................p............................................344 Nierówność argumentów ...................................................p.......................................345 A B...................................................p...................................................p.....................345 A =B ...................................................p...................................................p..................346 Rozdział 11. Zestawienia, parametry, obudowy, oznaczenia ................................ 347 Zestawienie rejestrów specjalnych...................................................p...............................347 Rejestry: STATUS, PCON, OPTION_REG...................................................p..........348 Układ przerwań — rejestry: INTCON, PIR1, PIR2, PIE1, PIE2 .............................351 Liczniki TMR1 I TMR2 — rejestry: T1CON, T2CON............................................356 USART — rejestry: TXSTA, RCSTA...................................................p...................357 SSP tryb SPI — rejestry: SSPCON, SSPSTAT...................................................p.....359 SSP tryb I2C, rejestry: SSPCON, SSPSTAT, SSPCON2 .........................................361 PSP — rejestr TRISE...................................................p.............................................364 Moduł CCP — rejestry: CCP1CON, CCP2CON ...................................................p..365 Przetwornik A/C — rejestry: ADCON0, ADCON1, REFCON ...............................366 Układ BOR — rejestr LVDCON...................................................p.........................371 Komparatory — rejestry: CMCON, VRCON ...................................................p.......372 Pamięć EEPROM — rejestry: EECON1, EECON2.................................................373 Zawartość rejestrów specjalnych po wyzerowaniu i obudzeniu .....................................374 Procesor PIC12C509...................................................p..............................................375 Procesor PIC16F84 ...................................................p................................................375 Procesor PIC16F628 ...................................................p..............................................376 Procesor PIC16F877 ...................................................p..............................................378 Sposób oznaczania ...................................................p...................................................p....380 Rozkład wyprowadzeń ...................................................p.................................................381 Parametry ...................................................p...................................................p..................381 Napięcie zasilania i pobór prądu...................................................p............................383 Wartości progowe napięć dla wejść...................................................p.......................384 Poziomy napięć na wyjściach i wydajność prądowa wyjść......................................385 Okresy generatorów i czasy opóźnień ...................................................p...................385 Wytrzymałość na programowanie ...................................................p.........................385 Spis treści 9 Lista błędów (Errors) — numery błędów: 101 – 157 ...................................................p..386 Lista ostrzeżeń (Warnings) — numery błędów: 201 – 226 ............................................388 Lista komunikatów (Messages) — numery błędów: 301 – 314......................................389 Tablica kodów ASCII...................................................p...................................................p391 Literatura ....................................................................................... 393 Skorowidz....................................................................................... 395 Rozdział 1. Schemat blokowy, pamięć, rejestry Procesory PIC wykorzystują architekturę Harvardzką, tzn. posiadają rozdzieloną pamięć danych od pamięci programu i dwie oddzielne magistrale o różnej szerokości słowa. Pamięć programu operuje w zależności od rodziny słowem 12-, 14- lub 16-bitowym, na- tomiast pamięć danych jest 8-bitowa i dlatego procesory PIC zaliczane są do grupy pro- cesorów 8-bitowych. Na rysunku 1.1 pokazano różnice w budowie pomiędzy proceso- rami wykorzystującymi architekturę tradycyjną, czylCi von Neumanna, i Harvardzką. Rysunek 1.1. Architektury procesorów Dzięki tak długiemu słowu pojedyncza instrukcja może zawierać zarówno kod, jak i ar- gument (argumenty) operacji, co powoduje, że liczba komórek pamięci odpowiada licz- bie możliwych do wykonania instrukcji. W przypadku architektury tradycyjnej pierwsza komórka zawiera zwykle kod operacji, a następne argumenty. Powoduje to, że kod wy- nikowy takich samych programów jest zazwyczaj dla procesorów PIC nieco krótszy. W procesorach zastosowano potokowy system pracy (pipeline), w którym procesor pod- czas wykonywania kolejnego rozkazu pobiera z pamięci następny, co sprawia wrażenie, że wykonanie rozkazu zajmuje tylko jeden cykl maszyCnowy. Wszystkie rejestry specjalne procesora — SFR (Special Function Register) — odwzo- rowane są w pamięci RAM i dostępne tak samo jak wszystkie inne komórki pamięci, tzn. poprzez adresowanie bezpośrednie lub pośrednie. Pomysł ten nazwano koncepcją rejestrową (Register File Concept). 20 Mikroprocesory jednoukładowe PIC Inną ciekawą własnością procesorów PIC jest to, że każda komórka pamięci (rejestr) może być użyta zarówno jako argument, jak i miejsce, gdzie zostanie umieszczony wynik operacji, tradycyjnie przesyłany do akumulatora. Jego rolę pełni tu rejestr ro- boczy oznaczony jako W (Working Register). Brak wyjątków, obecnych zazwyczaj w ta- kich przypadkach, bardzo upraszcza programowanie procesora. Cechę tę nazywa pro- ducent symetrią lub ortogonalnością instrukcji. Skrócony opis instrukcji dla procesorów z rodziny Mid-Range Podczas opisu budowy i działania procesorów będziemy często posługiwać się przykła- dami, stąd już na początku warto, nawet pobieżnie, zaznajomić się z listą rozkazów pro- cesorów PIC. Do tego celu najlepiej nadaje się lista dla procesorów z rodziny Mid-Range, zawierająca tylko 35 instrukcji [2]. W przedstawionym wC tabeli 1.1 zestawieniu, instrukcje podano w uporządkowaniu funkcjonalnym, odbiegającym od alfabetycznego, spoty- kanego w dokumentacji procesorów. Pełny opis instrukcji wraz z przykładami znajduje się w rozdziale 5. Tam też znaleźć można listę instrukcji dla procesorów z rodziny Base-Line. Dla formalności przypomnijmy, że każda instrukcja dla procesorów z ro- dziny Mid-Range ma postać 14-bitowego słowa i dzieli się na pole określające kod in- strukcji i pole zawierające jeden lub dwa argumenty.C Wszystkie instrukcje wykonywane są w jednym cyklu maszynowym, z wyjątkiem in- strukcji skoków, które wykonywane są w dwóch cyklach Cmaszynowych. Tabela 1.1. Lista rozkazów procesorów z rodziny Mid-Range Mnemonik Arg. Opis w jęz. ang. Opis NOP CLRW CLRF COMF MOVF MOVWF MOVLW f f, d f, d f k No Operation cykl pusty Clear W Clear F zeruj W zeruj F Complement F zaneguj F, wynik prześlij do d Move F to d Move F to W Move k to W prześlij F do d prześlij W do F prześlij k do W ADDWF f, d Add W to F dodaj W do F, wynik prześlij do d ADDLW INCF SUBWF SUBLW DECF ANDWF k f, d f, d k f, d f, d Add k to W Increment F dodaj k do W zwiększ F o 1, wynik prześlij do d Subtract W from F odejmij W od F, wynik prześlij do d Subtract k from W odejmij k od W Decrement F AND W and F zmniejsz F o 1, wynik prześlij do d iloczyn logiczny W i F, wynik prześlij do d Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 21 Tabela 1.1. Lista rozkazów procesorów z rodziny Mid-Range – ciyąg dalszy Mnemonik Arg. Opis w jęz. ang. Opis ANDLW k AND k and W iloczyn logiczny k i W IORWF f, d OR W with F suma logiczna W i F, wynik prześlij do d IORLW k OR k with W suma logiczna k i W XORWF f, d XOR W with F suma modulo 2 W i F, wynik prześlij do d k f, d f, d f, d f, b f, b f, b f, b f, d f, d k k k XORLW RLF RRF SWAPF BCF BSF BTFSC BTFSS INCFSZ DECFSZ GOTO CALL RETURN RETLW RETFIE CLRWDT SLEEP gdzie: XOR k with W suma modulo 2 k i W Rotate Left F Rotate Right F przesuń F o 1 bit w lewo, wynik prześlij do d przesuń F o 1 bit w prawo, wynik prześlij do d Swap nibbles in F zamień tetrady w F, wynik prześlij do d Bit Clear F Bit Set F wyzeruj bit b w F ustaw bit b w F Bit Test F, Skip if Clear jeśli bit b w F = 0, omiń następną instrukcję Bit Test F, Skip if Set jeśli bit b w F = 1, omiń następną instrukcję Inc. F Skip if Zero zwiększ F o 1, jeśli wynik = 0 omiń następną instr. Dec. F Skip if Zero zmniejsz F o 1, jeśli wynik = 0 omiń następną instr. Go To address k skok bezwarunkowy do etykiety k Call subroutine wywołaj podprogram Return from subroutine powrót z podprogramu Return with k in W powrót ze stałą k w W Return From Interrupt powrót z przerwania Clear WDT zeruj licznik WDT Go to standby mode przejdź w stan uśpienia f — 7-bitowy adres rejestru (0 – 127) F — zawartość rejestru o adresie f (0 – 255) W — zawartość rejestru roboczego (0 – 255) d — adres wyniku operacji (0,1): gdy d = 0 wynik operacji przesyłany jest do W gdy d = 1 wynik operacji przesyłany jest do F b — numer bitu (0 – 7) k — 8-bitowa stała liczbowa (0 – 255) s — 11-bitowa etykieta (0 – 2047) 22 Mikroprocesory jednoukładowe PIC Schemat blokowy Na rysunkach 1.2 i 1.3 przedstawiono schematy blokowe procesorów z rodziny Base-- Line i Mid-Range na przykładzie procesorów PIC12C509 [3] i PIC16F877 [4]. Wyróż- nić na nich można następujące grupy układów: jednostkę centralną procesora (CPU) wraz z pamięcią programu, pamięcią danych, układami sterującymi i pomocniczymi, uniwersalne porty wejścia/wyjścia oraz układy peryferyjne. W konkretnych typach pro- cesorów wielkość pamięci, liczba portów czy zaimplementowanych układów peryferyj- nych jest różna. Podobieństwo struktury pomiędzy rodzinami jest duże, dlatego skupi- my się na opisie i analizie układów bardziej złożonych, czyli rodziny Mid-Range. Procesor PIC12C509 należy do grupy najprostszych procesorów, bardzo ubogo wy- posażonych w układy peryferyjne i dysponujących względnie małą pamięcią pro- gramu — 1024 słów 12-bitowych i małą pamięcią danych (41 rejestrów 8-bitowych w dwóch bankach). Procesor PIC16F877 należy do grupy procesorów większych z prawie wszystkimi układami peryferyjnymi, pamięcią programu liczącą 8192 słów 14-bitowych i pamię- cią danych zawierającą 392 rejestry 8-bitowe w 4 bankachC. Rysunek 1.2. Schemat blokowy procesora PIC12C509 GP0/PGD GP1/PGC GP2/T0CKI GP3/~MCLR/VPP GP4/OSC2 GP5/OSC1/CLKI GPIO Licznik TMR0 Pamięć programu 1024 x 12 12 Licznik programu Magistrala danych 8 Stos 2 poziomy 12 Magistrala programu Rejestr instrukcji Adres rejestru w banku 5 8 Dane z instrukcji Dekoder instrukcji Układy oscylatora zewn. i wewn. Układy sterujące POR OST WDT VDD VSS Pamięć danych RAM 41 bajtów Pełny adres rejestru 7 MUX 5 - 7 Rej. FSR Rej. STATUS 3 MUX ALU Rejestr W Przeglądu procesorów najłatwiej dokonać analizując dane zawarte w broszurze „Pro- duct Line Card” [1], wydawanej kilka razy w roku. Zawiera ona zbiorcze zestawienia najważniejszych danych procesorów i umożliwia dobranie procesora najlepiej dopa- sowanego do aktualnych potrzeb. Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 23 Port A RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS Rysunek 1.3. Schemat blokowy procesora PIC16F877 Pamięć programu 8192 x 14 13 Licznik programu 8 Magistrala dany ch Magistrala programu 14 Stos 8 poziomów Rejestr instrukcji Pamięć dany ch RAM Pełny adres rejestru 9 MUX 7 Adres rejestru w banku 8 Dane z instrukcji 8 Rej. FSR R. STATUS Port B Port C RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/CKL RC4/SDI/SDA RC5/SD0 RC6/TX/CK RC7/RX/DT RD0/T1OSO/T1CKI RD1/T1OSI/CCP2 RD2/CCP1 RD3/SCK/CKL RD4/SDI/SDA RD5/SD0 RD6/TX/CK RD7/RX/DT Port E RE0/T1OSO/T1CKI RE1/T1OSI/CCP2 RE2/CCP1 MUX ALU 8 Rejestr W Port D Dekoder instrukcji Układ oscy latora Układy sterujące: POR OST PWRT BOR LVP WDT OSC1 CLKIN OSC2 ~MCLR VDD VSS CLKOUT Licznik TMR0 Licznik TMR1 Licznik TMR2 Pamięć EEPROM Przetwornik A/C Układ PWM i CCP Interf ejs SSP Interf ejs USART Pamięć programu Procesory PIC mają wewnętrzną pamięć programu wykonaną w zależności od wersji jako jednokrotnie programowaną pamięć EPROM — wersje C, LC, wielokrotnie pro- gramowaną i kasowaną za pomocą promieniowania ultrafioletowego pamięć EPROM — wersja C, końcówka nazwy JW lub programowaną i kasowaną elektrycznie pamięcią FLASH EPROM — wersje LC i LF. Maksymalna wielkość pamięci dla procesorów z rodziny Mid-Range wynosi 8 k słów 14-bitowych, o adresach 0000h – 1FFFh. Pamięć adresowana jest za pomocą 13-bitowego licznika rozkazów PC (Program Counter) zbudowanego z dwóch 8-bitowych rejestrów PCL — młodszy bajt i PCH — starszy bajt, przy czym trzy najstarsze bity w PCH nie są wyCkorzystane. 24 Mikroprocesory jednoukładowe PIC Jeśli mikrokontroler ma fizycznie zaimplementowaną mniejszą pamięć, np. 1 k słów, to adresowanie powyżej tej granicy będzie powodowało wielokrotny dostęp do tych sa- mych słów, o adresach wskazywanych przez 10 młodszych bitów licznika programu. Po wyzerowaniu licznik rozkazów ustawia się na adreCs 0000h — nazywany wektorem resetu — a po pojawieniu się i przyjęciu przerwania na adres 0004h — nazywany wektorem przerwania (rysunek 1.4). W każdym cyklu maszynowym licznik rozkazów jest inkrementowany z wyjątkiem rozkazów skoków, wywołań podprogramów i obsługi przerwań. Sytuacje te opisano bardziej szczegółowo w naCstępnych punktach. Rysunek 1.4. Mapy pamięci programu w procesorach Base-Line i Mid-Range W procesorach Base-Line wielkość pamięci nie może przekraczać 4096 słów 12-bito- wych, a licznik programu jest 12-bitowy. Po wyzerowaniu procesor ustawia się w ostatniej komórce pamięci, w której dla procesorów PIC12C5XX znajduje się rozkaz OQXNY ZZ, gdzie M to wartość kalibracyjna dla wewnętrznego oscylatora zegarowego RC. Wyko- nanie dowolnej, różnej od skoku instrukcji, przenosi nas do komórki 0000h, nazywa- nej efektywnym adresem resetu. W procesorch Base-Line nie ma układu przerwań, stąd adres 004h nie ma specjalnego znaczenia. Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 25 Cykl maszynowy Częstotliwość sygnału zegarowego podawanego na wejście OSCC1 jest wewnętrznie dzielona przez cztery, aby wygenerować cztery nie nakładające się na siebie fazy: Q1, Q2, Q3 i Q4, tworzące cykl maszynowy — CM, trwający 4 okresy sygnaCłu wejściowego (rysunek 1.5). CM1 CM2 CM3 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 OSC 1 Q1 Q2 Q3 Q4 PC OSC2 / CLKOUT (tryb RC ) fazy cyklu maszynowego PC PC+1 PC+2 Pobiera rozkaz (PC) Wykonuje rozkaz (PC - 1) Pobiera rozkaz (PC + 1) Wykonuje rozkaz (PC) Pobiera rozkaz (PC + 2) Wykonuje rozkaz (PC + 1) Rysunek 1.5. Fazy cyklu maszynowego W kolejnych fazach następuje:  w fazie Q1 dekodowanie instrukcji, inkrementowanie liCcznika rozkazów;  w fazie Q2 czytanie danych;,  w fazie Q3 wykonanie instrukcji;  w fazie Q4 zapis danych, pobranie następnej instrukcjCi. Jeśli brak jest czynności do wykonania w danej fazie, następuje faza pusta. Licznik rozka- zów jest inkrementowany przez każde narastające zbocze sygnału Q1. Instrukcja jest od- czytywana z pamięci i zapamiętywana w rejestrze rozkazów podczas trwania fazy Q4, a dekodowana i wykonywana w następnym cyklu, podczaCs trwania kolejnych faz Q1 do Q4. Podczas dekodowania i wykonywania jednego rozkazu z pamięci pobierany jest kolejny rozkaz (zapamiętywany w rejestrze rozkazów), stąd wrażenie, że każda instrukcja jest wy- konywana w jednym cyklu maszynowym. Jest to słuszne, z wyjątkiem rozkazów skoków, kiedy w instrukcji znajduje się nowy adres komórki pamięci i wstępnie pobrany adres jest nieprzydatny. Wykonanie takich rozkazów zajmuje 2 cykle maszynowe. Sposoby gene- rowania sygnału zegarowego opisano w rozdziale 2. Licznik programu W każdym cyklu maszynowym licznik rozkazów jest inkrementowany, z wyjątkiem roz- kazów skoków, wywołań podprogramów i obsługi przerwań. Osiem młodszych bitów licz- nika rozkazów dostępnych jest za pomocą rejestru PCL. Natomiast starsze bity, w zależno- ści od rodziny procesorów i wykonywanego rozkazu, mogą częściowo pochodzić z rejestru STATUS, rejestru PCLATH lub z kodu instrukcji, jak to pokaCzano na rysunku 1.6. 26 Rysunek 1.6. Licznik rozkazów w procesorach Base-Line i Mid-Range Mikroprocesory jednoukładowe PIC Procesory Base-Line Procesory Mid-Range 11 9 8 7 PCL 0 12 PCH 8 7 PCL 0 PC PC PA1 PA0 6 5 STATUS 5 PCLATH 4:0 PCLATH W procesorach Base-Line licznik programu jest 12-bitowy, przy czym dostępnychC jest tylko 8 młodszych bitów przez rejestr PCL. Rozkazy skoków bezwzględnych ograni- czone są do 512 komórek (poprzez 9-bitowy adres skoku) na aktualnej stronie pamięci, określonej przez bity PA0, PA1 w rejestrze STATUS. Wywołania podprogramów ograni- czone są do 256 komórek z powodu 8-bitowego adresu skoku. W procesorze PIC12C509 podczas wywołania podprogramów zerowany jest 8 bit licznika rozkazów, co powodu- je, że podprogramy te muszą znajdować się na górnej połowie strony pamięci. W procesorach Mid-Range 13-bitowy licznik programu jest 13-bitowy i zbudowany z dwóch rejestrów PCL i PCH. Młodszy bajt pochodzi z odczytywalnego i zapisywal- nego rejestru PCL. Starsze pięć bitów pochodzi z rejestru PCH, który nie jest dostępny w pamięci RAM. Zawartość PCLATH (5 młodszych bitów) jest przenoszona do PCH podczas wykonywania rozkazów skoków. Bardziej szczegółowy opis sposobu aktu- alizacji zawartości PC w różnych sytuacjach przedstawiono w podrozdziale „Modyfi- kacja i odtwarzanie zawartości licznika rozkazów”. Stos Procesory PIC posiadają stos sprzętowy. Nie jest on ani częścią pamięci programu, ani pamięci danych, a wskaźnik stosu nie jest zapisywalny i odczytywalny. Zawartość licznika programu jest zapamiętywana na stosie po wywołaniu instrukcji ECNN lub po wystąpieniu przerwania, a odczytywana po wywołaniu instrukcji TGVWTP, TGVNY lub TGVHKG, bez żadnych dodatkowych instrukcji. W procesorach Base-Line stos ma 2 po- ziomy, a w procesorach Mid-Range — 8 poziomów. Stos pracuje jako cykliczny bufor, to znaczy, że jeśli zostanie zapisany więcej razy niż wynosi głębokość stosu, to kolejne wartości zostaną zapisane na miejscu pierwszych położonych na stos wartości. Mikrokontroler nie posiada bitów, które informowałyby o przepełnieniu stosu. Operacje odczytu i zapisu na stos nie wpływają na zawartość PCLATH, tzn. nie jest on uaktualniany podczas odtworzCenia zawartości PC. Tryby adresowania, budowa pamięci danych, podział na banki Dostępne są dwa tryby adresowania: bezpośredni i pośredni. W trybie bezpośrednim adres rejestru w banku pochodzi z instrukcji. W trybie pośrednim odwołujemy się do rejestru INDF. Rejestr INDF nie jest rejestrem fizycznym. Zapisując go, zapisujemy Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 27 bajt, którego adres znajduje się aktualnie w rejestrze FSR (rejestr FSR jest w tym przypadku wskaźnikiem do pamięci). Czytanie zawartości INDF bezpośrednio (FSR = 0) zwróci wartość 00h. Zapisywanie INDF bezpośrednio nie da żadnych rezultatów (mimo to zawartość rejestru STATUS może ulec zmianie). W procesorach PIC pamięć danych zorganizowana jest w bankach (maksimum 4), których wielkość wynika z liczby bitów przeznaczonych na adres w kodzie instruk- cji. W procesorach Base-Line na adres przeznaczono 5 bitów — stąd banki liczą po 32 rejestry. W procesorach Mid-Range adres rejestrów jest 7-bitowy, dlatego banki liczą po 128 rejestrów. Podział na 4 banki wymaga używania dodatkowych 2 bitów kontrolnych wyboru banku, które znajdują się w rejestrach STATUS i FSR. W tabeli 1.2 przedstawiono kodowanie numeru banku dla obu rodzin procesorów, w Cdwóch trybach adresowania. Tabela 1.2. Adresowanie banków pamięci RAM Rodzina Base-Line Mid-Range Numer banku Adresowanie bezpośrednie Adresowanie pośrednie Adresowanie bezpośrednie Adresowanie pośrednie 0 1 2 3 PA1 PA0 FSR 5,6 RP1 RP0 IRP FSR 7 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 Adresowanie pamięci RAM w procesorach Base-Line W trybie bezpośrednim adres rejestru pochodzi z instrukcji, a wyboru banku dokonu- jemy poprzez bity PA1 i PA0 z rejestru STATUS. W niektórych procesorach, np. PIC12C509 wykorzystywane są tylko dwa banki i wtedy bit PA1 pozostaje niezaim- plementowany. W procesorze PIC12C508 zastosowano tylko jeden bank (0) i dlatego bit PA0 pozostaje wyzerowany. Pośredni tryb adresowania uzyskujemy odwołując się do rejestru INDF i wtedy adres pochodzi z rejestru FSR (6 młodszych bitów). Adres banku określony jest w tym przy- padku przez bity 5 i 6, a adres rejestru przez bity 0 – 4 z rejestru FSR. W procesorach PIC12C508 i PIC12C509 nieużywane bity z rejestru FSR przyjmują wartość 1. Na ry- sunku 1.7 przedstawiono mechanizm tworzenia adresu rejestru dla obydwóch trybów adresowania. Mikroprocesory jednoukładowe PIC 28 Rysunek 1.7. Adresowanie bezpośrednie i pośrednie w procesorach Base-Line Adresowanie pamięci RAM w procesorach Mid-Range W trybie bezpośrednim adres rejestru — 7 bitów — pochodzi z instrukcji, a wyboru ban- ku dokonujemy poprzez bity RP1 i RP0 z rejestru STATUS. Pośredni tryb adresowa- nia uzyskujemy odwołując się do rejestru INDF i wtedy adres pochodzi z rejestru FSR — 7 młodszych bitów. Adres banku określony jest w tym przypadku przez 7 bit z re- jestru FSR i bit IRP z rejestru STATUS. Na rysunku 1.8 przedstawiono mechanizm tworzenia adresu rejestru dla obydwóch trybów adresowCania. Rysunek 1.8. Adresowanie bezpośrednie i pośrednie w procesorach Mid-Range W niektórych procesorach np. w PIC16F84 wykorzystywane są tylko dwa banki i wte- dy bit PA1 oraz bit IRP z rejestru STATUS są niezaimplementowane. W przykładzie 1.1 w każdej z instrukcji wykorzystano adresowanie bezpośrednie po- przez odwołanie się do rejestrów: STATUS, PORTA i TRISA przez ich nazwy. Usta- wianie i zerowanie bitów wyboru banku jest jedną z częściej wykonywanych instruk- cji. Warto zwrócić uwagę, że w wyniku wykonania instrukcji ENTHUVCVWU nie zostały Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 29 wyzerowane flagi DC, Z, C. W ostatniej linii pokazano ustawienie flagi C w rejestrze STATUS. Podczas wykonywania wielu instrukcji występuje oddziaływanie na za- wartość rejestru STATUS, tzn. ustawianie lub zerowanie flCag Z, C lub DC. Przykład 1.1. Adresowanie bezpośrednie ENTHUVCVWU\GTWLGKTRTRTRQ ENTHRQTVC\GTWLRQTVC DUHUVCVWUTRDCPM ENTHVTKUC\GTWLVTKUC DEHUVCVWUTRDCPM DUHUVCVWUE E\GTWLHNCIG W przykładzie 1.2 wykorzystano adresowanie pośrednie do wyzerowania zawartości rejestrów o adresach 20h i 21h w banku 0 oraz rejestru TCRISB w banku 1. Przykład 1.2. Adresowanie pośrednie ENTHUVCVWUDCPM OQXNYJ  J Y CFTGURQE\CVMQY[ OQXYHHUTY HUT ENTHKPFH\GTWLTGLGUVTJ KPEHHUTH\YKGMU\YUMC\PKM ENTHKPFH\GTWLTGLGUVTJ OQXNYVTKUDCFTGUTGLGUVTWVTKUD Y OQXYHHUTY HUT ENTHKPFH\GTWLTGLGUVTVTKUD Rejestry specjalne procesora (SFR) W dolnej części każdego z banków pamięci RAM od adresu 00h znajdują się rejestry specjalne procesora (SFR). W rodzinie Mid-Range zarezerwowano na nie adresy od 00h do 1Fh, ale jest to opcja uwzględniająca wszystkie typy procesorów i często nie- które rejestry są niezaimplementowane. W mniejszych procesorach — np. PIC16F84 — zarezerwowany obszar obejmuje adresy od 00h do 0Ah. W procesorze PIC12C509 zarezerwowany obszar obejmuje adresy 00h – 06h. W tabeli 1.3 przedstawiono mapę pamięci procesora PIC16F877, a w tabelach 1.4, 1.5 i 1.6 mapy pamięci następują- cych procesorów: PIC16F628, PIC16F84 i PIC12C509. Niektóre ważniejsze rejestry procesora są odwzorowane we wszystkich bankach, tzn. dostęp do nich jest możliwy niezależnie od aktualnie wybranego banku. Warto zwró- cić uwagę, że ze względu na kompatybilność programową pomiędzy procesorami sta- rano się utrzymać zasadę, że niezależnie od ilości zaimplementowanych rejestrów te same rejestry mają stałe adresy. Mapie pamięci warto poświęcić więcej uwagi, po- nieważ podczas pisania programów jest ona bardzo częsCto wykorzystywana. 30 Mikroprocesory jednoukładowe PIC Tabela 1.3. Mapa pamięci RAM w procesorze PIC16F877 Bank 0 INDF TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TNR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRESH ADCON0 Ogólnie dostępne (GPR) 96 rej. Adres rejestru Bank 1 Adres rejestru Bank 2 Adres rejestru Bank 3 Adres rejestru 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 7Fh INDF 80h OPTION_REG 81h PCL STATUS FSR TRISA TRISB TRISC TRISD TRISE PCLATH INTCON PIE1 PIE2 PCON SSPCON2 PR2 SSPADD SSPSTAT TXSTA SPBRG ADRESL ADCON1 GPR 80 rej. Zamap. jako 70h – 7Fh 16 rej. 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h EFh F0h FFh INDF TMR0 PCL STATUS FSR PORTB 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h PCLATH INCON 10Ah 10Bh EEDATA 10Ch EEADR 10Dh EEDATH 10Eh EEADRH 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h GPR 16 rej. GPR 80 rej. Zamap. jako 70h – 7Fh 16 rej. 16Fh 170h 17Fh INDF 180h OPTION_REG 181h PCL STATUS FSR TRISB PCLATH INCON EECON1 EECON2 * * GPR 16 rej. GPR 80 rej. Zamap. jako 70h – 7Fh 16 rej. 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h 1EFh 1F0h 1FFh Wyróżnione rejestry dostępne są niezależnie od banku * Rejestry zarezerwowane dla ICD (In Circuit Debugger) Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 31 Tabela 1.4. Mapa pamięci RAM w procesorze PIC16F628 Bank 0 INDF TMR0 PCL STATUS FSR PORTA PORTB PCLATH INTCON PIR1 PIR2 TMR1L TNR1H T1CON TMR2 T2CON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CMCON Ogólnie dostępne 96 (GPR) Adres rejestru Bank 1 Adres rejestru Bank 2 Adres rejestru Bank 3 Adres rejestru 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 7Fh INDF 80h OPTION_REG 81h PCL STATUS FSR TRISA TRISB PCLATH INTCON PIE1 PCON PR2 TXSTA SPBRG EEDATA EEADR EECON1 EECON2 VRCON1 80 GPR Zamap. jako 70h – 7Fh 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h EFh F0h FFh INDF TMR0 PCL STATUS FSR PORTB PCLATH INCON 48 GPR Zamap. jako 70h – 7Fh 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h 14Fh 170h 17fH INDF 180h OPTION_REG 181h PCL STATUS FSR TRISB PCLATH INCON Zamap. jako 70 – 7Fh 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h 1EFh 1F0h 1FFh 32 Mikroprocesory jednoukładowe PIC Tabela 1.5. Mapa pamięci RAM w procesorze PIC16F84 Bank 0 Adres rejestru Bank 1 Adres rejestru INDF TMR0 PCL STATUS FSR PORTA PORTB 00h 01h 02h 03h 04h 05h 06h 07h EEDATA 08h EEADR 09h PCLATH 0Ah INTCON 0Bh Ogólnie dostępne (GPR) 68 rej. 0CH 0Dh 0Eh 0Fh 4Fh 50h 7Fh INDF 80h OPTION_REG 81h PCL STATUS FSR TRISA TRISB EECON1 EECON2 PCLATH INTCON Zamap. w banku 0 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh CFh D0h FFh Mapa pamięci procesora PIC16F877 jest charakterystyczna dla procesorów z większą liczbą układów peryferyjnych. Chociaż większość rejestrów specjalnych w różnych proceso- rach ma te same adresy, warto zwrócić uwagę na parę różnic. W procesorach z przetwor- nikiem A/C 8-bitowym rejestr ADRESH nazywa się ADRES. W procesorach z ukła- dem komparatorów na miejscu rejestrów ADCON0 i ADCON1 znajdują się rejestry CMCON i VRCON. W procesorach PIC16F873 rejestry GPR o adresach C120h – 17Fh mapowane są w banku 0, a rejestry o adresach 1A0h – 1FFh Cmapowane są w banku 1. Rejestry ogólnego przeznaczenia (GPR) Pozostałą część pamięci RAM zajmują rejestry ogólnego przeznaczenia (GPR). Liczba ich zależy od typu procesora i wynosi od 25 do 368. W niektórych procesorach — np. PIC16F87X — ogólnie dostępne rejestry o adresach względnych 70h – 7Fh w ban- kach 1, 2, 3 zamapowane są w banku 0, tzn. odwołanie się do nich powoduje, że ope- racja wykonywana jest na rejestrze o tym samym adresie względnym w banku 0. Nie- zaimplementowane rejestry z banku 1 są niekiedy mapoCwane w banku 0. Rozdział 1. ♦ Schemat blokowy, pamięć, rejestry 33 Tabela 1.6. Mapa pamięci RAM w procesorze PIC12C509 Bank 0 Adres rejestru Bank 1 Adres rejestru INDF TMR0 PCL STATUS FSR 00h 01h 02h 03h 04h OSCCAL 05h 06h 07h 0Fh 10h GPIO Ogólnie dostępne (GPR) 9 rej. Ogólnie dostępne (GPR) 20h 21h 22h 23h 24h 25h 26h 27h 2Fh 30h Zamap. w banku 0 Ogólnie dostępne (GPR) 16 rej 1Fh 16 rej. 3Fh Rejestr STATUS W procesorach Mid-Range rejestr STATUS (statusowy) zawiera bity określające stan jednostki arytmetyczno-logicznej (ALU), czyli tzw. flagi Z, DC i C, bity wyboru ban- ku IRP, RP0, RP1 ora
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Mikroprocesory jednoukładowe PIC
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: