niedziela, 27 marca 2011

Rejestry specjalne MCS-51

Obszar pamięci o adresach od 0x80 do 0xFF nazywany jest obszarem rejestrów specjalnych (SFR – Special Function Registers). Rejestry te pozwalają na sterowanie różnymi funkcjami mikrokontrolera. Obszar ten nie jest ciągły (nie wszystkie adresy są zajęte) – umożliwia to ewentualne uzupełnienie obszaru o nowe funkcje.

Układ rejestrów w pamięci

* – adresowane bitowo (adresy podzielne przez 8)
AdresSymbolBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0xF0*B        
0xE0*ACC        
0xD0*PSWCYACF0RS1RS0OV-P
0xC0*IP---PSPT1PX1PT0PX0
0xB0*P3/RD/WRT1T0/INT1/INT0TxDRxD
0xA8*IEEA--ESET1EX1ET0EX0
0xA0*P2        
0x99SBUF        
0x98*SCONSM0SM1SM2RENTB8RB8TIRI
0x90*P1        
0x8DTH1        
0x8CTH0        
0x8BTL1        
0x8ATL0        
0x89TMODGATEC/TM1MOGATEC/TM1M0
0x88*TCONTF1TR1TF0TR0IE1IT1IE0IT0
0x87PCONSMOD---GF1GF0PDIDL
0x83DPH        
0x82DPL        
0x81SP        
0x80*P0        

Ważniejsze rejestry specjalne

  • ACC – akumulator, jeden z najczęściej wykorzystywanych rejestrów, gdyż obsługuje większość operacji arytmetycznych, logicznych, skoków warunkowych i wiele innych
  • B – dodatkowy rejestr, wykorzystywany w trakcie operacji mnożenia (MUL) i dzielenia (DIV)
  • PSW – rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskaźników):
    • PSW.1=F1 – począwszy od 8052, flaga którą może zdefiniować użytkownik
    • PSW.2=OV (Overflow) – przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2)
    • PSW.3=RS0 (Register Bank Switch) młodszy bit numeru banku
    • PSW.4=RS1 (Register Bank Switch) starszy bit numeru banku
    • PSW.5=F0 – flaga ogólnego zastosowania
    • PSW.6=AC (Auxiliary Carry) – przeniesienie z młodszej do starszej tetrady (istotne w rozkazach arytmetycznych BCD)
    • PSW.7=CY (Carry) – przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu NKB)
  • Porty P0-P3 – wykorzystywane są do komunikacji ze światem zewnętrznym (wszelkimi urządzeniami peryferyjnymi), niektóre mają jeszcze dodatkowe funkcje
    • P0 i P2 – mogą zostać wykorzystanie jako wyprowadzenia szyny systemowej mikrokontrolera
    • P1 – portu ogólnego zastosowania
    • P3 – port posiada wyspecjalizowane linie (w SFR przedstawiane jako bity)
      • RD – odczyt pamięci danych
      • WR – zapis pamięci danych
      • T0,T1 – wejścia timerów zewnętrznych (zliczanie impulsów trybie pracy timerów jako liczniki)
      • INT0,INT1 – wejścia zewnętrznych przerwań
      • TxD, RxD – wysyłanie (Transmit) i odbieranie (Receive) danych (Data) przy transmisji szeregowej
  • Sterowanie przerwań
    • IE – zezwolenia dla przerwań (Interrupt Enable)
      • EA – ogólne zezwolenie dla przerwań
      • ES – zezwolenie dla przerwań od transmisji szeregowej
      • ET0, ET1 – zezwolenie dla przerwań od timerów
      • EX0, EX1 – zezwolenie dla przerwań zewnętrznych
    • IP – priorytety przerwań (Interrupt Priority)
      • PS – priorytet dla przerwań od transmisji szeregowej
      • PT0, PT1 – priorytet dla przerwań od timerów
      • PX0, PX1 – priorytet dla przerwań zewnętrznych
    • TCON – tylko młodsze 4 bity
      • IE0, IE1 – flagi przerwań zewnętrznych (zgłoszenie zewnętrznego przerwania)
      • IT0, IT1 – sposób zewnętrznego przerwania (0 – poziom niski, 1 – opadające zbocze)
  • DPTR – 16-bitowy wskaźnik adresu danych
    • DPH – starszy bajt wskaźnika
    • DPL – młodszy bajt wskaźnika
  • SP – wskaźnik stosu (Stack Pointer)

Timery 8051

Sterowanie timerów:
  • TMOD – młodsze 4 bity odpowiadają timerowi 0, starsze – timerowi 1
    • GATE – bramkowanie, zliczanie impulsów kiedy GATE=0
    • C/T – tryb pracy timera (0 – timer wewnętrzny, 1 – licznik impulsów zewnętrznych)
    • M0, M1 – ustalają trybu pracy licznika
M1M0Tryb
000licznik 13-bitowy
011licznik 16-bitowy
102licznik 8-bitowy z autoprzeładowaniem
113T0 i T1 jako osobne liczniki 8-bitowe

W trybie 3 działa de facto tylko TLx (młodsze 8 bitów licznika), w momencie wygenerowania sygnału przepełnienia, do TLx ładowana jest wartość THx który w tym trybie pełni funkcje rejestru stałej.
  • TCON – starsze 4 bity
    • TF0, TF1 – flaga przepełnienia timera
    • TR0, TR1 – flaga pracy timera (0 – stop, 1 – zliczanie)
Timery generują sygnał TFx przy przekroczeniu maksymalnej wartości – odpowiednio 2^13, 2^16, 2^8. Jako, ze są to liczniki zliczające w przód, oraz ich inkrementacja następuje co jeden cykl zegarowy w celu kontrolowania odmierzanego przez nie czasu Tx jako wartość początkowa do TH | TL należy wpisać wartość

Tx = (maksimum zakresu w danym trybie-X)*12 *Tsoc

gdzie: maksimum zakresu w trybie 16 bit = 65 536, 8-bitowym = 256, a Tosc = 1/Częstotliwość układu taktującego W trybie 2 należy ta samą wartość wpisać zarówno do rejestrów TH i TL

Treść skopiowana z wikipedii

Brak komentarzy:

Prześlij komentarz