Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Mikrokontrolery PIC. Wykład 1 2/39 Architektura PIC Przestrzenie adresowe Tryby adresowania.

Podobne prezentacje


Prezentacja na temat: "Mikrokontrolery PIC. Wykład 1 2/39 Architektura PIC Przestrzenie adresowe Tryby adresowania."— Zapis prezentacji:

1 Mikrokontrolery PIC

2 Wykład 1 2/39 Architektura PIC Przestrzenie adresowe Tryby adresowania

3 PIC - Base Line - Architektura 3/39 PIC12C508/509 charakteryzują się następującymi cechami: architektura Harvard RISC; 8-bitowe ALU; PIC12C508: 512x12b EPROM OTP + 25B SRAM PIC12C509: 1024x12b EPROM OTP + 41B SRAM; 33 rozkazy o kodzie 12-bitowym, wykonywane w 1 cyklu (wyjątek: rozkazy skoku i wywołania); 7 rejestrów specjalnych; 2-poziomowy stos sprzętowy; proste (bezpośredni, pośredni i względny) tryby adresowania danych i rozkazów; 8-bitowy timer/licznik z 8-bitowym programowalnym preskalerem;

4 PIC - Base Line - Architektura 4/39 Cechy c.d.: interfejs SPI do programowania w trybie ISP; wbudowany układ resetu od zasilania, z timerem resetu; watchdog z wbudowanym własnym oscylatorem RC; tryb oszczędzania energii SLEEP, wyjście z trybu między innymi poprzez zmianę na linii we/wy; wbudowane rezystory podciągające na liniach we/wy; częstotliwość taktowania 0-4MHz (czas cyklu: 1 s - ); wbudowany oscylator RC (ok. 4MHz) z programowalną kalibracją; możliwość wyboru rodzaju generatora taktu (wewn/zewn, RC/kwarc/prostokąt); bity ochronne programu; szeroki zakres napięć pracy: 2,5 (3,0) - 5,5 V.

5 PIC - Base Line - Architektura 5/39 Struktura blokowa układu PIC12C508/509

6 PIC - Base Line - Architektura 6/39 PC - 12-bitowy, jego młodszy bajt jest widoczny jako PCL Przestrzeń adresowa pamięci programu w Base-Line: FFFh (4k×12b słów); dzielona na strony po 512 słów; numer aktywnej strony pamięci określają bity PA1 i PA0 w słowie stanu STATUS (C508/509 nie mają bitu PA1); przy pamięci programu o pojemności P<4kW, PC adresuje ją modulo P. W ostatniej komórce pamięci EPROM zapisany jest rozkaz MOVLW xx (xx jest fabryczną wartością kalibrującą wewn. gen. RC). Organizacja pamięci programu

7 PIC - Base Line - Architektura 7/39 Organizacja pamięci programu - c.d PC adres restartu dostępna w Base-line przestrzeń MOVLW xx FFh 0200h strona 0 0FFFh 0000h 12 pamięć konfiguracji PC adres restartu dostępna w Base-line przestrzeń MOVLW xx 11 0 strona 0 strona1 0FFFh 0000h 03FFh 0400h 12 pamięć konfiguracji

8 PIC - Base Line - Architektura 8/39 Komórki o adresach F00h..FFFh to tzw. pamięć konfiguracyjna: F00h, F01h, F02h i F03h zawierają numer identyfikacyjny układu (bity 3..0). FFFh - rejestr konfiguracyjny CONFIG Organizacja pamięci programu - c.d. F00h F01h F02h F03h FFFh ID CONFIG

9 PIC - Base Line - Architektura 9/39 Rejestr konfiguracyjny CONFIG: Organizacja pamięci programu - c.d. MCLRE - bit zewnętrznego resetu: =0 - pin /MCLR podpięty wewnętrznie do zasilania - zablokowany reset zewn. =1 - zezwolenie na zewn. reset CP - bit ochronny kodu programu: gdy =1 - ochrona wył., =0 - ochrona włącz. WDTE - bit włączający watch-dog: gdy =1 watch-dog włączony, =0 - wyłączony FOSC1, FOSC0 - bity wybierające źródło sygnału taktującego: 00 - zewn. oscylator kwarcowy o f=32-400kHz; 01 - zewn. oscylator kwarcowy o f=0,4-8MHz; 10 - wewn. oscylator RC ok. 4MHz albo zewn. oscylator kwarcowy 8-20MHz; 11 - zewn. oscylator RC o f do 4MHz

10 PIC - Base Line - Architektura 10/39 Organizacja pamięci danych - blok rejestrów

11 PIC - Base Line - blok rejestrów specjalnych 11/39 szare pola - bity nie używane; - - niezaimplementowany przy odczycie 0

12 PIC - Base Line - blok rejestrów specjalnych 12/39

13 PIC - Base Line - blok rejestrów specjalnych 13/39 GPWUF-PA0/TO/PDZDCC STATUS: C - flaga przeniesienia/pożyczki DC - flaga przeniesienia połówkowego Z - flaga sygnalizująca zerowy wynik operacji /PD - flaga sygnalizująca przejście w stan uśpienia: 0 - po rozkazie SLEEP 1 - po resecie od zasilania lub wykonaniu rozkazu CLRWDT /TO - flaga przepełnienia licznika watch-doga: 0 - po resecie od zasilania, po wykonaniu rozkazów CLRWDT lub SLEEP 1 - gdy przepełnił się licznik watch-doga PA0 - bit wyboru aktywnego banku pamięci programu GPWUF - flaga ustawiana przy zmianie stanu wejść portu GPIO: 0 - gdy po resecie od zasilania, watch-doga lub resetu zewnętrznego; 1 - gdy po resecie od zmiany stanu linii GPIO (wytrącenie ze stanu sleep)

14 PIC - Base Line - blok rejestrów specjalnych 14/39 /GPWU - gdy =0 zezwala na "obudzenie" µC ze stanu sleep zmianą stanu na liniach portu GPIO /GPPU - gdy=0 włącza polaryzację linii portu GPIO opornikami do zasilania T0CS - bit wyboru źródła sygnału dla licznika TMR0: 1 - zliczanie impulsów zewn. podanych na pin T0CKI 0 - zliczanie cykli maszynowych T0SE - bit wyboru zbocza na pinie T0CKI: 1 - zliczanie zboczy opadających; 0 - zliczanie zboczy narastających PSA - bit przypisania preskalera: 1 - do licznika watch-doga 0 - do licznika TMR0

15 PIC - Base Line - blok rejestrów specjalnych 15/39 PS2,PS1,PS0 - bity wyboru podzielnika: dla TMR0:dla WDT: 0001:21:1 0011:41:2 0101:81:4 0111:161:8 1001:321: :641: :1281: :2561:128

16 PIC - Base Line - tryby adresowania 16/39 Tryby adresowania operandów - bajtów natychmiastowy kod rozkazuoperand andlw130 rejestrowy bezpośredni operand kod rozkazu f Rf: addwf10

17 PIC - Base Line - tryby adresowania 17/39 Tryb adresowania operandów - bitów bezpośredni kod rozkazu blok rejestrów bcf10,3 bit f rejestrowy pośredni movlw10;W:=adres do SRAM movwfFSR;W->FSR clrfINDF;SRAM[FSR]:=0 operand kod rozkazu Rf/SRAM[FSR] adres FSR:

18 PIC - Base Line 18/39 Modyfikacja i odtwarzanie PC bajt z ALU 0 PC: STATUS: PCL 1. Przez rozkaz zapisujący rejestr PCL 1B wartością Dowolny rozkaz arytmetyczno-logiczny lub przesłania, dla którego wskazano PCL jako rejestr docelowy

19 PIC - Base Line 19/39 Modyfikacja i odtwarzanie PC bajt z kodu rozkazu CALL 0 PC: STATUS: PCL 2. Przez rozkaz wywołania procedury CALL szczyt stosu sprzętowy stos 2 x 12b

20 PIC - Base Line 20/39 Modyfikacja i odtwarzanie PC b z kodu rozkazu GOTO PC: STATUS: PCL 3. Przez rozkaz skoku GOTO

21 PIC - Base Line 21/39 Modyfikacja i odtwarzanie PC 4. Przez rozkaz powrotu z procedury RETLW PC: STATUS: PCL szczyt stosu sprzętowy stos 2 x 12b

22 PIC - Base Line - stos 22/39 Stos w mikrokontrolerach Base-line: sprzętowy, 2-poziomowy, zbudowany z 12-bitowych rejestrów; wskaźnik wierzchołka stosu jest niedostępny; wykorzystywany tylko do przechowywania adresów powrotu z wywoływanych procedur; zapis więcej niż 2 adresów powrotu powoduje zamazanie poprzednich informacji na stosie - przepełnienie się stosu; brak sygnalizacji przepełnienia się stosu szczyt stosu sprzętowy stos 2 x 12b

23 PIC - Base Line - generator taktu 23/39 Generator taktu

24 PIC - Base Line - cykl rozkazowy 24/39 Przetwarzanie rozkazów Q1 - dekodowanie rozkazu, inkrement PC Q2 - pobranie argumentów Q3 - wykonanie rozkazu Q4 - zapamiętanie wyniku i koniec pobierania nast. rozkazu

25 PIC - Base Line 25/39 Obwód resetu układ DRT generuje dodatkowe opóźnienie (ok.18ms) pozwalające na ustabilizowanie się napięcia zasilającego i pracy generatora.

26 PIC - Base Line 26/39 Obwód resetu Stan rejestrów specjalnych po resecie, zależnie od przyczyny: - - niezaimplementowany, przy odczycie 0; x - wartość nieokreślona; u - wartość niezmieniona; q - wartość zależna od przyczyny resetu;

27 PIC - Base Line 27/39 Praca z obniżonym poborem prądu tryb włącza się rozkazem SLEEP; główny oscylator wyłącza się, linie portu pozostają b.z. Wyjście z trybu power down może być wywołane przez: zewnętrzny reset na /MCLR; reset od WDT timeout; zmiana stanu linii GP0, GP1 GP3 (gdy to jest odblokowane); i powoduje wykonanie programu od początku. Bity GPWUF, /TO i /PD umożliwiają rozpoznanie przyczyny resetu/obudzenia uC:

28 PIC - Base Line - peryferia 28/39 Port GPIO port ma 6 linii: GP3 - tylko wejście; GP0..GP2,GP4,GP5 - we/wy; rejestr TRIS decyduje o kierunku (ustawione bity TRIS oznaczają wejście 3-stanowe), wyzerowane bity TRIS oznaczają wyjście informacji z rejestru GPIO; TRIS nie jest bezpośrednio dostępny (widoczny jako rej. specj.), można go zapisać tylko specjalnym rozkazem, który przepisuje do niego zawartość rejestru W.

29 PIC - Base Line - peryferia 29/39 Timer 8-bitowy licznik z preskalerem/postskalerem wspólnym z watchdogiem; zlicza cykle masz. (f OSC /4) albo zewn. impulsy wejściowe (na T0CKI); jego przepełnienie powoduje ustawienie flagi T0IF; widoczny jako rejestr TMR0; sterowanie pracą - poprzez bity rej. OPTION (niedostępnym wprost).

30 PIC - Base Line - peryferia 30/39 Watchdog bazuje na własnym oscylatorze RC; przepełnia się po 18ms (ale zależy to od temp. i nap.zasil.:7-33ms); by uzyskać dłuższe czasy należy użyć postskalera; przy normalnej pracy WDT Time-out powoduje RESET, a przy pracy w uśpieniu - obudzenie µC; watchdog zeruje się rozkazem CLRWDT albo SLEEP; watchdog można zablokować tylko w fazie programowania układu.

31 PIC - Base Line - peryferia 31/39 Watchdog

32 PIC - Base Line - peryferia 32/39 Wykorzystanie preskalera/postskalera przez timer i watchdog wsp. podziału preskalera: 1/2 1/4 1/8 1/16 1/32 1/64 1/128 1/256 - dla TMR0 postskalera 1/1 1/2 1/4 1/8 1/16 1/32 1/64 1/128 - dla WDT

33 PIC - Base Line - lista rozkazów 33/39 kkkkkkkk - dana 1-bajtowa fffff - adres w banku rejestrów/pamięci wskazujący na F d - bit wskazujący lokalizację wyniku: d=0 - wynik do W, d=1 wynik do F s - adres skoku, wywołania procedury x - wartość dowolna (0/1)

34 PIC - Base Line - lista rozkazów 34/39

35 PIC - Base Line - lista rozkazów 35/39

36 PIC - Base Line - lista rozkazów 36/39

37 PIC - Base Line - przykłady programowania 37/39 1. Realizacja skoku wyliczanego zał: zamiana cyfry szesnastkowej z rejestru 10h na kod wyświetlacza 7-segmentowego w W movf16,w andlwh0F;wydzielenie bitów 3..0 calldek;wywolanie procedury dekodujacej gotonext dekaddwfpcl,f;skok wyliczany retlwb ;cyfra 0 retlwb ;cyfra 1 retlwb ;cyfra 2 retlwb ;cyfra 3 retlwb ;cyfra 4 retlwb ;cyfra 5 retlwb ;cyfra 6 retlwb ;cyfra retlwb ;cyfra E retlwb ;cyfra F next

38 PIC - Base Line - przykłady programowania 38/39 2. Dodawanie liczb 2-bajtowych ;zal: argumenty w SRAM: arg1l, arg1h, arg2l, arg2h ; wynik: arg1:=arg1+arg2 add2Bmovfarg2l,w;arg2l->W addwfarg1l,f;arg1l:=arg1l+W movfarg2h,w;arg2h->W btfscstatus,c;czy bylo przeniesienie incfszarg2h,w;uwzglednienie przeniesienia addwfarg1h,f;arg2h:=arg2h+W retlw0

39 PIC - Base Line - przykłady programowania 39/39 3. Mnożenie liczb 1-bajtowych ;zal: argumenty w SRAM: arg1l, arg2l ; wynik: arg1h|arg1l:=arg1*arg2 mul1Bclrfarg1h;zerowanie st.bajtu iloczynu movlw8;wartosc licznika petli movwfcnt;zainicjowanie licznika petli movwfarg1l,w;arg1l->W loop:rrfarg2l,f;obrot w prawo arg2 btfscstatus,c;czy dodawac? addwfarg1h,f;dodanie arg1 rrfarg1h rrfarg1l decfszcnt,f;czy koniec petli gotoloop;skok jesli nie retlw0


Pobierz ppt "Mikrokontrolery PIC. Wykład 1 2/39 Architektura PIC Przestrzenie adresowe Tryby adresowania."

Podobne prezentacje


Reklamy Google