DSM-51 * STRONA 1 * Temat : Wiadomości podstawowe Układy cyfrowe to rodzaj układów elektronicznych, w których sygnały napięciowe przyjmują tylko określoną liczbę poziomów, którym przypisywane są wartości liczbowe. Najczęściej (choć nie zawsze) liczba poziomów napięć jest równa dwa, a poziomom przypisywane są cyfry 0 i 1, wówczas układy cyfrowe realizują operacje zgodnie z algebrą Boole a i z tego powodu nazywane są teŝ układami logicznymi. Obecnie układy cyfrowe budowane są w oparciu o bramki logiczne realizujące elementarne operacje znane z algebry Boole a: iloczyn logiczny (AND, NAND), sumę logiczną (OR, NOR), negację NOT, róŝnicę symetryczną (XOR) itp. Ze względu na stopień skomplikowania współczesnych układów wykonuje się je w postaci układów scalonych. Mikroprocesor układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania operacji cyfrowych według dostarczonego ciągu instrukcji. Mikroprocesor (w skrócie µp lub CPU) jest centralną jednostką obliczeniową (Central Processing Unit) w pojedynczym półprzewodnikowym układzie scalonym. Pierwszy mikroprocesor działał w oparciu o słowa 4-bitowe, dzięki czemu tranzystory tworzące jego obwody logiczne mogły zmieścić się w jednym układzie. System mikroprocesorowy lub mikrosystem system do realizacji dowolnego zadania dającego się sprowadzić do przetwarzania wektorów informacji cyfrowej. W skład takiego systemu wchodzi sprzęt elektroniczny i oprogramowanie. Typowy system mikroprocesorowy składa się z następujących części: Mikroprocesora (µp) Pamięci operacyjnej RAM Pamięci stałej ROM Układów wejścia-wyjścia Układów sterujących przepływem informacji między tymi elementami: o magistrale danych i adresowe o linie odczytu MEMR (z RAM i ROM) i zapisu MEMW (w pamięci RAM) o linie odczytu IOR i zapisu IOW w urządzeniach wejścia-wyjścia. Mikrokontroler (skrót ang. MCU lub µc) - system mikroprocesorowy zrealizowany w postaci pojedynczego układu scalonego, zawierającego jednostkę centralną (CPU), pamięć RAM oraz na ogół pamięć programu i rozbudowane układy wejścia-wyjścia. Mikrokontroler nazywany jest mikroprocesorem jednoukładowym. Mikrokontroler stanowi uŝyteczny i całkowicie autonomiczny system mikroprocesorowy, nie wymagający uŝycia dodatkowych elementów, których wymagałby do pracy tradycyjny mikroprocesor. Mikrokontrolery przystosowane są do bezpośredniej współpracy z rozmaitymi urządzeniami zewnętrznymi, np. w sprzęcie AGD, układach kontrolno-pomiarowych, w przemysłowych układach automatyki, w telekomunikacji itp. Mikrokontroler 80C51
DSM-51 * STRONA 2 * Układ 80C51 jest jednoukładowym mikrokontrolerem 8-bitowym. Mikrokontroler jest umieszczony w 40-nóŜkowej obudowie typu DIL. DIP (ang. Dual In-line Package), czasami nazywany DIL w elektronice rodzaj obudowy elementów elektronicznych. Na poniŝszym rysunku przedstawiono widok ogólny układu 80C51 wraz z opisem końcówek: Końcówki 1-8 (P1.0-P1.7): są to wyprowadzenia uniwersalnego portu wejścia/wyjścia Końcówka 9 (RST): jest to końcówka Reset słuŝąca do zerowania mikrokontrolera Końcówki 10-17 (P3.0-P3.7): są to wyprowadzenia uniwersalnego portu wejścia/wyjścia Końcówki 18, 19 (XTAL1, XTAL2): są to wyprowadzenia słuŝące do podłączenia rezonatora lub zewnętrznego generatora impulsów zegarowych. Końcówka 20 (GND): wyprowadzenie masy układu. Końcówki 21-28 (P2.0-P2.7): są to wyprowadzenia uniwersalnego portu wejścia/wyjścia Końcówka 29 (PSEN'): końcówka informująca o odczycie zewnętrznej pamięci programu. Końcówka 30 (ALE): sygnał wyjściowy słuŝący do zatrzaskiwania młodszej części adresu przy dostępie do pamięci zewnętrznej. Końcówka 31 (EA'): stan na tym wejściu określa sposób współpracy z pamięcią programu. Końcówki 32-39 (P0.0-P0.7): są to wyprowadzenia uniwersalnego portu wejścia/wyjścia Końcówka 40 (Vcc): końcówka zasilania układu. Vcc=5V +/- 0.25V Rysunek 1 Układ80C51.
DSM-51 * STRONA 3 * Temat : Architektura systemu DSM-51. Architektura mikrokontrolera 80C51 Rysunek 2 Architektura układu 80C51. Schemat ideowy mikrokontrolera 80C51 Mikroprocesor 8051 ma wbudowaną 4096 bajtową pamięć programu ROM. Pamięć RAM została rozszerzona do 128 bajtów. Sygnały CPU: Wejściowe: - HOLD sygnał wstrzymania; - RESET sygnał inicjalizacji; - STEP sygnał pracy krokowej; Wyjściowe: - MW zapis pamięci; - MR odczyt pamięci; - IOW zapis urządzenia; - IOR odczyt urządzenia;
DSM-51 * STRONA 4 * - HLDA potwierdzenie wstrzymania procesora; Rysunek 3 Uproszczony schemat ideowy układu 80C51. Rejestry Rejestr procesora miejsce pamiętania pewnej liczby bitów W mikroprocesorze 8051 wyróŝniamy następujące rejestry R0,..., R7 8-bitowe, 4 banki Rejestry: Akumulator oraz B 8-bitowe Rejestr DPTR- 16-bitowy Rejestr PC 16-bitowy Wskaźnik stosu SP Słowo stanu procesora PSW Rejestry specjalne odpowiadają za we/wy cyfrowe, liczniki/zegary, transmisję szeregową, przerwania Akumulator najczęściej zawiera jeden z operandów i zapisywany jest w nim wynik
DSM-51 * STRONA 5 * Rejestr B wykorzystywany przy operacjach mnoŝenia i dzielenia. Zapisywany jest w nim starszy bajt wyniku mnoŝenia lub reszta z dzielenia. Rejestr rozkazów zapisywany jest w nim kod operacji, którą ma wykonać procesor. Rejestr specjalny PSW bezpośrednio współpracuje z arytmometrem. Jego zawartość opisuje cechy wyniku ostatnio wykonywanej operacji. Słowo stanu PSW (Processor Status Word) bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 C AC F0 RS1 RS0 OV - P Znaczenie poszczególnych bitów jest następujące: P (ang. parity) - znacznik parzystości; ustawiony na 1 informuje o nieparzystej liczbie jedynek w akumulatorze. Jest ustawiany po wykonaniu kaŝdego rozkazu, w zaleŝności od zawartości akumulatora. OV (ang. overflow) - znacznik nadmiaru dla dodawania i odejmowania w kodzie U2. Dla mnoŝenia 1 wskazuje niezerową wartość rejestru B, dla dzielenia 1 oznacza wystąpienie dzielenia przez zero. RS0, RS1 bity wyboru bloku rejestrów roboczych. RS1 RS0 Wybrany blok: 0 0 blok 0 0 1 blok 1 1 0 blok 2 1 1 blok 3 Znaczenie bitów RS0 i RS1 F0 - znacznik uniwersalny do dowolnego wykorzystania. AC (ang. auxiliary carry) - znacznik przeniesienia połówkowego; ustawiany w przypadku wystąpienia przeniesienia z ACC.3 na ACC.4. C (ang. carry) - znacznik przeniesienia; ustawiany w przypadku wystąpienia przeniesienia z pozycji siódmego bitu akumulatora. Blok arytmetyczno logiczny ALU jest to układ wykonawczy procesora, poniewaŝ wykonuje on większośc rozkazów zleconych procesorowi. Blok ALU jest układem kombinacyjnym, który realizuj róŝne funkcje w zaleŝności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. Rozkazy te mogą wykonywać operacje arytmetyczne lub logiczne. Argumenty operacji wykonywanych przez ALU mogą pochodzić z trzech źródeł: a) programu b) rejestrów procesora c) komórek pamięci
DSM-51 * STRONA 6 * PC (licznik rozkazów) zawiera adres aktualnego rozkazu przeznaczonego do wykonania. Rozkaz ten jest pobierany z pamięci do rejestru rozkazów (rejestr ten nie jest dostępny programowo). Na podstawie zawartości rejestru rozkazów, dekoder rozkazów steruje wyborem źródła argumentu, miejsca umieszczenia wyniku, funkcjami arytmometru itp. w ten sposób mikroprocesor wykonuje zadaną operację. JeŜeli nie jest wykonywany rozkaz skoku, to zawartość licznika rozkazów jest inkrementowana po odczycie kaŝdego bajtu z pamięci programu Pamięć danych. Na wewnętrzną pamięć danych składają się dwa bloki: 128 bajtów ciągłego obszaru pamięci RAM 128 bajtów niespójnego bloku rejestrów specjalnych (SFR) mikrokontrolera. Organizacja pamięci RAM Adresy 48-127 Pamięć danych uŝytkownika Adresy 32-47 Pamięć adresowana bitowo ( adresy 0-127 (0H-7FH) ) Adresy 24-31 Rejestry R0-R7 - blok 3 Adresy 16-23 Rejestry R0-R7 - blok 2 Adresy 8-15 Rejestry R0-R7 - blok 1 Adresy 0-7 Rejestry R0-R7 - blok 0 Lista rozkazów: W ogólnej liczbie 111 rozkazów moŝna wyróŝnić 42 róŝne typy instrukcji. WyróŜniamy instrukcje związane z działaniami arytmetycznymi, operacje logiczne (obejmujące funkcje OR, AND, EXCLUSIVE OR), instrukcje słuŝące do transmisji danych (mikroprocesor 8051 dysponuje 30 rozkazami do przesyłania danych pomiędzy akumulatorem, rejestrami, pamięcią i stosem), instrukcje skoku (dostępnych jest 13 rozkazów skoków warunkowych i 4 bezwarunkowe, wykorzystujące rozmaite tryby adresacji) Rodzaje adresacji: Dane w pamięci wewnętrznej RAM mogą być adresowane bezpośrednio lub pośrednio, poprzez rejestry R0 i R1 z aktualnie wybranego bloku rejestrów. Odnosi się to takŝe do danych w rejestrach funkcji specjalnych, których adresy zajmują lokacje od 128 do 256, a więc efektywnie całą górna część przestrzeni adresowej RAM. Rozkazy skoków są zwykle względne, w obrębie 256- bajtowej strony w przestrzenia adresowej ROM. Cechą specyficzną procesora 8051 jest długi skok lub rozkaz CALL, odnoszące się do dowolnej lokacji w obrębie 64KB pamięci adresowej, szczególnie przydatne przy korzystaniu z rozszerzonej zewnętrznej pamięci programu. Zewnętrzna pamięć danych jest adresowana za pośrednictwem specjalnego rejestru wskaźnika danych, co zapewnia adresowanie 16 bitowe. Odbywa się to przez przekazanie odpowiednich danych z akumulatora do rejestru wskaźnika danych, a następnie zastosowania rozkazu przesłania pośredniego (MOVE), by przetransferować dane z akumulatora do lokacji w pamięci, której adres jest określony zawartością rejestru wskaźnika danych. Rejestracja indeksowa jest łatwo realizowana przez inkrementację lub dekrementację
DSM-51 * STRONA 7 * Temat : Uniwersalne porty wejścia-wyjścia Ośmiobitowy port P0. Podstawowe funkcje portu to dwukierunkowa brama do wymiany. Drugą bardzo waŝną rolą, jaką pełni P0, jest funkcja multipleksowanej magistrali danych (8 bitów: D7...D0) i młodszej części adresu (A7...A0). Multipleksowanej w praktyce znaczy przełączalnej, czyli raz na końcówkach portu P0 procesor moŝe wystawić bajt danych (np. do zapisu do zewnętrznej pamięci danych), w innym przypadku adres, w celu wybrania potrzebnej komórki z pamięci SRAM, do której ma być zapisana. Porty P0 ( młodsza część adresu (A0...A7) ) i P2 ( starsza część adresu (A8...A15) ) mogą adresować pamięć zewnętrzną. Ośmiobitowy port P1. Istotną zaletą portów uniwersalnych procesora jest moŝliwość indywidualnego ustawiania poziomu logicznego na kaŝdym wyprowadzeniu niezaleŝnie. Nie trzeba zatem zapisywać całej liczby do portu aby np. zmienić stan tylko na jednym wyprowadzeniu, wystarczy ustawić (rozkazem zwanym SETB) lub wyzerować (rozkazem CLR) odpowiedni bit rejestru portu P1, toteŝ np. ustawienie pinu P1.5 na logiczne 0 nastąpi poprzez wydanie polecenia: CLR P1.5 ( clr clear, ang. zeruj,wyczyść). Ośmiobitowy port P2. Są to wyprowadzenia drugiego 8 bitowego portu procesora. Port P2 spełnia wszystkie funkcje podobnie jak P1. Dodatkowo poprzez końcówki portu P2 podawana jest w razie potrzeby starsza część adresu (A8...A15) przy dostępie do zewnętrznej pamięci danych (SRAM) a takŝe programu (np. EPROM). Ośmiobitowy port P3. Podobnie jak w przypadku portu P1, port P3 moŝe pełnić wszystkie opisane wcześniej funkcje moŝe być wyjściem lub wejściem. Dodatkowe symbole na rysunku 1 tuŝ obok wyprowadzeń portu P3 sugerują Ŝe port moŝe teŝ spełniać inne dodatkowe funkcje (transmisję szeregową, przerwania zewnętrzne i timery). Piny P3.0 (RXD) i P3.1 (TXD) mogą pełnić rolę portu transmisji szeregowej. W praktyce poprzez te dwa wyprowadzenia moŝna przesyłać informację (bajty i bity) z i do procesora z innych układów cyfrowych w sposób szeregowy, tzn. bit po bicie.
DSM-51 * STRONA 8 * Temat : Rozkazy mikrokontrolera 8051
DSM-51 * STRONA 9 * Temat : Rozkazy mikrokontrolera 8051 Operacje logiczne na bitach portu P1 Sygnalizatory LED i BUZZER Bity portu P1 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 Dioda LED BUZZER Znaczenie poszczególnych bitów jest następujące: Port 1 - Bit 7 - Dioda LED ( 0 dioda świeci, 1 dioda nie świeci) Port 1 - Bit 5 - Buzzer ( 0 buczek włączony, 1 buczek wyłączony) Programy do uruchomienia: LJMP START ORG 100H START: CLR P1.7 ;zeruj linię 7 w porcie P1 ;czyli wlacz diode STOP: ;nie wykonuj innych działań LJMP STOP ;- pozostań w pętli STOP LJMP START ORG 100H START: CLR P1.7 ;zeruj linię 7 w porcie P1 ;czyli wlacz diode STOP: ;nie wykonuj innych działań LJMP STOP ;- pozostań w pętli STOP