1.1 MIKROKONTROLER 8051 1.1.1 Informacje ogólne



Podobne dokumenty
MIKROPROCESORY architektura i programowanie

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Hardware mikrokontrolera X51

MIKROPROCESORY architektura i programowanie

Interfejsy transmisji szeregowej: RS-232, RS-485, I2C, SPI, CAN

architektura komputerów w 1 1

wiczenie 5 Woltomierz jednokanaowy

Opis mikrokontrolera 8051 Lista rozkazowa Timery

Pytka PicBoard2. Pytka prototypowa wspópracuje z programatorami JuPic, PicLoad, ICD, ICD2. Opis pytki

Technika mikroprocesorowa I Wykład 4

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

IMiO PW, LPTM, wiczenie 6, Komunikacja z komputerem -1- wiczenie 6. Komunikacja z komputerem (cze RS232)

Mikrokontroler Intel dr inż. Wiesław Madej

Informacje ogólne o układzie 8051.

Systemy wbudowane Mikrokontrolery

Zerowanie mikroprocesora

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

organizacja procesora 8086

MIKROKONTROLERY I MIKROPROCESORY

Pytka PicBoard1. Pytka prototypowa wspópracuje z programatorami JuPic, PicLoad, ICD, ICD2. Opis pytki

Instytut Teleinformatyki

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Mikrokontroler 80C51

Techniki mikroprocesorowe i systemy wbudowane

Organizacja typowego mikroprocesora

Rys1. Schemat blokowy uk adu. Napi cie wyj ciowe czujnika [mv]

Instytut Teleinformatyki

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Laboratorium elektryczne. Falowniki i przekształtniki - I (E 14)

Praktyka Techniki Mikroprocesorowej. Mikrokontroler ADuC834

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Start Bity Bit Stop 1 Bit Par Rys. 1

Jumo dtron 04.1 Jumo dtron 08.1 Regulatory mikroprocesorowe Wykonanie obudowy wg DIN

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.

TECHNIKA MIKROPROCESOROWA

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Wstęp Architektura... 13

2. Architektura mikrokontrolerów PIC16F8x... 13

Mikrokontroler AVR ATmega32 - wykład 9

Opis mikrokontrolera AT89C2051

Przerwania w architekturze mikrokontrolera X51

Pracownia elektryczno-elektroniczna klasa IV

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Spis treci. Dzie 1. I Omówienie sprztu serii S7-300/400 (wersja 0904) II Instalacja urzdze S7 (wersja 0807) Kurs Diagnostyka Zaawansowana S7

MIKROKOMPUTERY JEDNOUKŁADOWE RODZINY MCS - 51

s FAQ: NET 08/PL Data: 01/08/2011

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Planowanie adresacji IP dla przedsibiorstwa.

Programowanie mikrokontrolerów. 8 listopada 2007

Sterowanie prac plotera w układach logiki programowalnej

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Dyskretyzacja sygnałów cigłych.

A&Q PYTANIA I ODPOWIEDZI Z MIKROKONTROLERÓW

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Mikroprocesor Intel 8088 (8086)

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Klonowanie MAC adresu oraz TTL

Lista rozkazów mikrokontrolera 8051

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2014

Wykład 2. Interfejsy I 2 C, OneWire, I 2 S

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Oscyloskopy, analizatory stanów ScopeDAQ: dane techniczne

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

ARCHITEKTURA PROCESORA,

Kurs EXPERT S5-115U. Spis treci. Dzie 1. I Sterowniki SIMATIC S5 - konfiguracja sprztowa PLC 115U (wersja 0604)

Instytut Teleinformatyki

Wykład Mikroprocesory i kontrolery

architektura komputerów w 1 1

Politechnika Warszawska

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

O autorze... 9 Wprowadzenie... 11

Ćwiczenie 2 Transmisja a szeregowa µc 8051(8052) - PC

Komunikacja w mikrokontrolerach Laboratorium

Technika mikroprocesorowa I Wykład 2

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

Mikroprocesor Operacje wejścia / wyjścia

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Logiczny model komputera i działanie procesora. Część 1.

Rys.1 Schemat blokowy uk adu miliwatomierza.

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Blok funkcjonalny to specjalizowany układ cyfrowy przystosowany do wykonania jednej lub kilku okrelonych operacji przetwarzania sygnałów binarnych.

Eugeniusz ZIÓŁKOWSKI 1 Wydział Odlewnictwa AGH, Kraków

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Technika Mikroprocesorowa

INSTRUKCJA OBSŁUGI Wersja 1.1. Konwerter RS-232 na RS-485 / RS-422

WPROWADZENIE Mikrosterownik mikrokontrolery

Architektura komputerów

Metody obsługi zdarzeń

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Transkrypt:

1.1 MIKROKONTROLER 8051 1.1.1 Informacje ogólne Ukad 8051 jest jednoukadowym, 8 bitowym mikrokontrolerem o rozbudowanych zasobach wewntrznych, tj.: programowalne ukady czasowo licznikowe, ukad transmisji szeregowej, ukad przerwa#, wewntrzna pami$ programu i danych. 16 bitowa szyna adresowa pozwala na do&czenie zewntrznych pamici danych o pojemno'ci 64kB i pamici programu równie+ o pojemno'ci 64kB. W zwi&zku z multipleksowaniem szyny adresowej A0 A7 i szyny danych, mikrokontroler musi generowa$ dodatkowy sygna steruj&cy zewntrznym buforem zatrzaskowym ALE. Sygna ten jest generowany podczas pobierania ka+dego sowa rozkazu dwukrotnie w ka+dym cyklu maszynowym. Wyj&tek stanowi& rozkazy MOVX oraz MOVC przy dostpie do zewntrznej pamici programu realizuj&cy dostp do pamici zewntrznej. Instrukcja ta jest jednobajtowa, wykonywana w dwóch cyklach maszynowych. W pierwszym cyklu nastpuje odczyt kodu instrukcji (pierwszy sygna ALE) oraz ustawienie adresu +&danej komórki pamici (drugi sygna ALE). W drugim cyklu maszynowym nastpuje odczyt/ zapis szyny danych nie mo+e wówczas wyst&pi$ sygna ALE, gdy+ zniszczyby on wcze'niej ustawiony adres komórki pamici. Czas trwania cyklu maszynowego wynosi 12 taktów zegara, co dla czstotliwo'ci rezonatora równej 12MHz daje czas 1µs. Czas wykonywania instrukcji wynosi jeden, dwa lub cztery cykle maszynowe, w zale+no'ci od instrukcji.

P0.0 P0.7 P2.0 P2.7 Vcc GND PORT 0 PORT LATCH PORT 0 PORT LATCH RAM ADDRESS REGISTER RAM ROM PROGRAM ADDRESS REGISTER B REGISTER ACCUMULATOR TMP 2 TMP 1 STACK POINTER BUFFER PC INCREMENTER /PSEN ALE /EA RST TIMING AND CONTROL INSTRUCTION REGISTER PSW ALU INTRRUPT, SERIAL PORT, TIMER PROGRAM COUNTUNER DPTR PORT LATCH OSC PORT 1 PORT LATCH PORT 3 XTAL1 XTAL2 P1.0 P1.7 P3.0 P3.7 Rys. 1.1 Schemat blokowy mikrokontrolera 8051 1.1.2 Jednostka arytmetyczno logiczna Z jednostk& arytmetyczno logiczn& wspópracuj& dwa rejestry bloku rejestrów specjalnych: akumulator (ACC) E0h i rejestr B F0h. Akumulator najcz'ciej zawiera jeden z operandów i zapisywany jest w nim wynik operacji, rejestr B jest natomiast wykorzystywany przy operacjach mno+enia i dzielenia. Jednostka arytmetyczno logiczna mo+e wykonywa$ nastpuj&ce operacje za argumentach o'miobitowych: dodawanie, dodawanie z przeniesieniem, odejmowanie z po+yczk&, inkrementacja, dekrementacja, mno+enie w naturalnym kodzie binarnym daj&ce 16 bitowy wynik, dzielenie w naturalnym kodzie binarnym daj&ce 8 bitowy wynik i 8 bitow& reszt, iloczyn logiczny, suma logiczna, suma modulo 2, zerowanie i negacja akumulatora. Jednostka arytmetyczno logiczna mo+e wykonywa$ operacje logiczne równie+ na pojedynczych bitach. Dla tych operacji akumulatorem jest bit przeniesienia C D7h sowa stanu

PSW D0h. Rejestr specjalny PSW bezpo'rednio wspópracuje z jednostk& arytmetyczno logiczn&. Jego zawarto'$ opisuje cechy wyniku ostatnio wykonywanej operacji. Tab. 1.1 Bity rejestru specjalnego PSW Nr bitu Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Symbol C AC F0 RS1 RS0 OV - P Adres D7h D6h D5h D4h D3h D2h D1h D0h P znacznik parzysto'ci OV znacznik przepenienia dla dodawania i odejmowania w kodzie U2 RS0 i RS1 bity wyboru bloku rejestrów roboczych F0 znacznik uniwersalny (do dowolnego wykorzystania) AC znacznik przeniesienia poówkowego C znacznik przeniesienia 1.1.3 Pami() danych i pami() programu Mikrokontroler 8051 posiada obszar 4kB pamici programu ROM programowanej mask& i 256 bajtow& przestrze# adresow& pamici RAM. Wewntrzna pamici danych RAM podzielona jest na dwa bloki: - dolna pami$ RAM zawieraj&ca obszar czterech banków pamici, obszar bitów adresowanych bezpo'rednio i ci&gy obszar pamici RAM tzw. obszar u+ytkownika oraz - górna pami$ RAM zawieraj&ca obszar rejestrów specjalnych. W obszarze zarezerwowanym dla czterech banków pamici umieszczany jest stos programu. Mo+e on by$ umieszczony w dowolnym miejscu, przez zapis odpowiedniego adresu do rejestru SP o adresie 81h, bd&cego wskagnikiem stosu. Wykonanie resetu mikrokontrolera ustawia warto'$ pocz&tkow& wskagnika stosu SP równ& 07h. SP nale+y do bloku rejestrów specjalnych, a jego zawarto'$ wskazuje na ostatnie zajte sowo stosu. WskaGnik stosu jest inkrementowany przed ka+dym zapisem na stos poleceniem: PUSH A i dekrementowany po ka+dym odczycie poleceniem POP A. Oprócz pamici wewntrznej danych mo+liwe jest do&czenie do mikrokontrolera zewntrznej pamici danych o pojemno'ci do 64kB. Poniewa+ mikrokontroler nie posiada osobnych rozkazów do dostpu do urz&dze# wej'cia wyj'cia, to w obszarze adresowym 64kB zewntrznej pamici danych mog& by$ równie+ umieszczane rejestry do&czanych do systemu urz&dze# wej'cia wyj'cia.

Pami$ programu przechowuje kody operacji przeznaczonych do wykonania przez mikroprocesor, mo+e tak+e su+y$ do przechowywania staych u+ywanych w programie. Pami$ programu adresowana jest przez 16-bitowy licznik rozkazów (PC). Mikrokontroler 8051 mo+e tak+e korzysta$ z zewntrznej pamici programu o pojemno'ci do 64kB. To, z której z tych pamici pobierane s& rozkazy zale+y od stanu wyprowadzenia /EA. W przypadku korzystania tylko z wewntrznej pamici programu, wyprowadzenie /EA musi by$ ustawione w stan wysoki, przez po&czenie tego wyprowadzenia z zasilaniem ukadu (przed rozpoczciem pracy ukadu). Je'li pojemno'$ wewntrznej pamici programu jest niewystarczaj&ca, cz'$ programu mo+e by$ umieszczona w pamici zewntrznej. Wówczas dopóki warto'$ licznika rozkazów nie przekracza rozmiaru wewntrznej pamici programu, rozkazy pobierane s& z pamici wewntrznej. Przekroczenie przez licznik rozkazów warto'ci 0FFFH powoduje pobieranie rozkazów z zewntrznej pamici programu. Je'li mikrokontroler ma korzysta$ wy&cznie z zewntrznej pamici programu, wyprowadzenie /EA musi by$ ustawione w stan niski, przez zwarcie tego wyprowadzenia z mas& ukadu. PC zawiera adres aktualnego rozkazu przeznaczonego do wykonania. Rozkaz ten jest pobierany z pamici do rejestru rozkazów (istnieje mo+liwo'$ odczytu warto'ci tego rejestru, ale nie jest on dostpny dla zapisu). Na podstawie zawarto'ci rejestru rozkazów, dekoder rozkazów steruje wyborem Gróda argumentu, miejsca umieszczenia wyniku, funkcjami jednostki arytmetyczno logicznej 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 pamici programu. Reset mikrokontrolera powoduje ustawienie licznika rozkazów w stan 0000h. a) b)

FFFFh FFFFh Zewn2trzna Pami2= Programu 1000h 0FFFh FFh 80h 7Fh 00h Dost2pne tylko przez adresowanie po7rednie Dost2pne przez adresowanie po7rednie i bezpo7rednie Dost2pne przez adresowanie bezpo7rednie (SFR) Zewn2trzna Pami2= Danych Wewn2trzna Pami2= Programu 23h 1Bh 13h 0Bh 03h 00h Lokalizacja przerwa? Zewn2trzna Pami2= Programu /RD /WR /PSEN Rys. 1.2 Mapy pamici mikrokontrolera 8051 a) pamici danych, b) pamici programu 1.1.4 Blok rejestrów specjalnych Blok rejestrów specjalnych (SFR) znajduje si w obszarze pamici danych mikrokontrolera o adresach 128 240 (80h F0h). Obszar rejestrów SFR mikrokontrolera '51 jest wykorzystywany dwojako z jednej strony umieszczone s& w nim wszystkie (za wyj&tkiem licznika rozkazów i czterech banków rejestrów R0 R7) rejestry steruj&ce prac& mikrokontrolera lub wykorzystywane bezpo'rednio przy wykonywaniu programu; z drugiej za' strony rejestry SFR stanowi& rodzaj interfejsu pomidzy mikroprocesorem a ukadami peryferyjnymi umieszczonymi wewn&trz mikrokontrolera. Wszystkie operacje sterowania wewntrznymi ukadami peryferyjnymi oraz przesyania danych midzy nimi a CPU, odbywaj& si wa'nie za po'rednictwem rejestrów SFR. Dostp do ka+dego z tych rejestrów mo+liwy jest wy&cznie w trybie adresowania rejestrowego.

PORT 0 we/wy P0.0 - P0.7 adres A0 - A7 PORT 2 we/wy P2.0 - P2.7 adres A8 - A15 B ACC PSW TH2 TL2 RCAP2H RCAP2L T2CON IP P3 IE P2 SBUF SCON PCON P1 TH1 TH0 TL1 TL0 TMOD TCON DPH DPTR DPL SP P0 S F R RAM JEDNOSTKA ARYTMETYCZNO - LOGICZNA ROM EPROM ADRES BUFOR LICZNIK ROZKAZOW PORT 3 we/wy P3.0 - P3.7 funkcje alternatywne PORT 1 we/wy P1.0 - P1.7 UKLADY KONTROLNE I TAKTUJCE OSCYLATOR PSEN ALE EA RST

Tab. 1.2 Adresy rejestrów specjalnych i ich funkcje Rejestr Adres Funkcja P0 80h Port wej'cia wyj'cia 0 SP 81h WskaGnik stosu DPL 82h Rejestr indeksowy DPTR (mniej znacz&cy bajt) DPH 83h Rejestr indeksowy DPTR (bardziej znacz&cy bajt) PCON 87h Rejestr steruj&cy stanami u'pienia TCON 88h Rejestr steruj&cy ukadów czasowych 0 i 1 TMOD 89h Rejestr trybu pracy ukadów czasowych 0 i 1 TL0 8Ah Rejestr danych ukadu czasowego 0 (mniej znacz&cy bajt) TL1 8Bh Rejestr danych ukadu czasowego 1 (mniej znacz&cy bajt) TH0 8Ch Rejestr danych ukadu czasowego 0 (bardziej znacz&cy bajt) TH1 8Dh Rejestr danych ukadu czasowego 1 (bardziej znacz&cy bajt) P1 90h Port wej'cia wyj'cia 1 SCON 98h Rejestr steruj&cy ukadu transmisji szeregowej SBUF 99h Rejestr danych ukadu transmisji szeregowej P2 A0h Port wej'cia wyj'cia 2 IE A8h Rejestr maski przerwa# P3 B0h Port wej'cia wyj'cia 3 IP B8h Rejestr priorytetów przerwa# PSW D0h Sowo stanu procesora ACC E0h Akumulator B F0h Rejestr ogólnego przeznaczenia

1.1.5 Porty wej0cia wyj0cia Linie wej'cia wyj'cia mikrokontrolera 8051 pogrupowane s& w cztery 8-bitowe porty: P0, P1, P2 i P3. Wszystkie linie portów P0 P3 pracuj&ce jako standardowe linie wej'cia wyj'cia s& niezale+ne pod wzgldem kierunku przesyania informacji. Rejestry P0 P3 zo+one z przerzutników poszczególnych linii wchodz& w skad rejestrów specjalnych, przy czym mo+liwe jest adresowanie ich poszczególnych bitów, co umo+liwia bezpo'rednie sterowanie pojedynczymi liniami wej'cia wyj'cia. 1.1.5.1 Port P0 Ukad P0 oprócz funkcji wej'cia wyj'cia peni rol szyny danych multipleksowanej z mniej znacz&c& cz'ci& szyny adresowej podczas realizacji dostpu do pamici zewntrznej. Dane z szyny danych odczytywane s& w taki sam sposób jak przy pracy portu jako wej'cie wyj'cie. Wykonanie dostpu do pamici zewntrznej powoduje zapisanie samych jedynek do rejestru P0, niszcz&c tym samym przechowywan& w nim informacj. Z tego powodu korzystanie z pamici zewntrznej wyklucza w zasadzie mo+liwo'$ korzystania z P0 jako wej'cia wyj'cia. Ka+d& lini portu P0 mo+na obci&+y$ o'mioma wej'ciami TTL-LS. 1.1.5.2 Port P1 Port P1 jak i porty P2 i P3 posiadaj& wewntrzne, stae warto'ci rezystorów pullup, przez co nazywane s& portami pseudo dwukierunkowymi. Kiedy porty skonfigurowane s& jako wej'cia, rezystory pullup staj& si Gródem pr&dowym dla przy&czonego obci&+enia. Wszystkie zatrzaski portów po resecie ustawiane s& w stan 1. Gdy do zatrzasku portu zostanie zapisana warto'$ 0, zatrzask ten nale+y ponownie ustawi$ w stan 1 by port móg nadal pracowa$ jako wej'cie. Linie ukadu P1 nie peni& +adnych dodatkowych funkcji. Mo+na je obci&+a$ czterema wej'ciami TTL-LS.

1.1.5.3 Port P2 Zasada dziaania linii portu P2 jest taka sama jak portu P1, pod warunkiem, +e nie s& wykorzystywane dodatkowe funkcje tego ukadu (stan niski na linii sterowanie). Podczas dostpu do pamici zewntrznej, port P2 peni rol bardziej znacz&cej cz'ci szyny adresowej (A8-A15). W przypadku realizacji dostpu do zewntrznej pamici danych przy u+yciu rejestrów indeksowych R0 i R1 mikroprocesor ustawia tylko modsze osiem bitów adresu, a stan portu P2 nie zmienia si. Linie portu P2 mo+na obci&+a$ czterema wej'ciami TTL-LS. 1.1.5.4 Port P3 W porcie P3 wszystkie linie peni& dodatkowe funkcje, jednak w podstawowym trybie pracy jako wej'cie wyj'cie dziaanie portu P3 nie ró+ni si w niczym od dziaania portów P1 i P2. Ponadto port P3 peni funkcj wej'$ dla ukadów czasowo licznikowych (P3.4 - /T0 i P3.5 - /T1), dla ukadów przerwa# (P3.2 - /INT0 i P3.3 - /INT1), wyj'ciami steruj&cymi zapisem i odczytem zewntrznej pamici danych (P3.6 - /WR i P3.7 - /RD), jak i wej'cie wyj'cie ukadu transmisji szeregowej (P3.0 - /RXD i P3.1 - /TXD).

W zale+no'ci od tego czy realizowana funkcja dodatkowa jest wyj'ciem (TXD, /RD, /WR), czy wej'ciem (pozostae oprócz RXD) lub peni obie funkcje (RXD), ró+na jest struktura linii portu. Linie portu P3 mo+na obci&+a$ czterema wej'ciami TTL-LS. Tranzystor symbolizuj&cy stopie# wyj'ciowy linii portów jest w rzeczywisto'ci bardziej skomplikowan& struktur&, której schemat przedstawia rysunek. Zapis do przerzutnika nastpuje w ostatniej fazie cyklu maszynowego, a wpisana warto'$ pojawia si na wyj'ciu linii portu w pierwszej fazie nastpnego cyklu maszynowego - wyj'ciowy bufor linii portu sprawdza stan przerzutnika tylko podczas pierwszej fazy ka+dego cyklu zegarowego, a wykryty stan utrzymuje przez czas trwania drugiej fazy. Zmiana zawarto'ci przerzutnika ze stanu niskiego na wysoki powoduje w&czenie tranzystora T1, który pozostaje aktywny przez dwa cykle zegarowe. Tranzystor ten ma du+& wydajno'$ pr&dow&, spenia rol rezystora podci&gaj&cego o maej warto'ci rezystancji, a jego w&czenie ma na celu przyspieszenie przej'cia ze stanu logicznego 0 do 1. 1.1.6 Uk3ad transmisji szeregowej P&cze szeregowe mikrokontrolera 8051 umo+liwia prowadzenie synchronicznej lub asynchronicznej transmisji danych. Transmisja asynchroniczna jest transmisj& full-duplex, natomiast synchroniczna jest transmisj& half-duplex. Ukad odbiornika posiada bufor odbiorczy, co pozwala na realizacj procesu odbierania kolejnej danej przed pobraniem przez mikroprocesor danej ju+

odebranej. Jest to jednak bufor jednobajtowy, wic nie odczytanie danej przez mikroprocesor przed ko#cem kolejnej transmisji powoduje utrat odebranego wcze'niej bajtu. Podczas realizacji transmisji asynchronicznej nadawane dane wysyane s& lini& TXD, za' odbierane przez lini RXD. Podczas transmisji synchronicznej dane s& odbierane i nadawane po linii RXD, a na lini TXD wysyany jest sygna taktuj&cy. Do konfiguracji pracy ukadu transmisji szeregowej su+y rejestr specjalny SCON 98h. Ukad mo+e pracowa$ w czterech trybach: - tryb 0 charakteryzuje si transmisj& synchroniczn&, sta& prdko'ci& transmisji równ& 1 12 f XTAL, 8 bitów danych przesyanych jest po linii RXD pocz&wszy od najmniej znacz&cego bitu, a lini& TXD wysyane s& sygnay taktuj&ce; - tryb 1 charakteryzuje si transmisj& asynchroniczn& z pynnie regulowan& prdko'ci& przesyu danych, pierwszym bitem jest bit startu 0, 8 bitów danych i bit stopu 1 ; - tryb 2 transmisja asynchroniczna, dwie prdko'ci przesyu danych zale+ne od czstotliwo'ci zegara taktuj&cego, przesyany pierwszy bit startu 0, 9 bitów danych i bit stopu 1 ; - tryb 3 podobnie jak w trybie pierwszym, z t& ró+nic&, +e zamiast o'miu przesyanych jest dziewi$ bitów danych. 1 wpis do SBUF D T S Q TB8 magistrala wewnetrzna SBUF detektor zera SBUF odczyt SBUF wpis do SBUF B3 P(3.0) o 1 wpis do SBUF D T S Q TB8 magistrala wewnetrzna SBUF detektor zera odczyt SBUF SBUF RB8 B3 wpis do SBUF TXD B2 o P(3.1) rejestr przesuwny odbiornika B2 zegar P(1.3) B1 o o rejestr przesuwny odbiornika detektor bitów RXD o P(3.0) START TAKT TI STOP NADAWANIE KONTROLER NADAJNIKA 11111110 TAKT ODBIÓR STOP (OFEH) START KONTROLER ODBIORNIKA RI REN o RI START 0 TAKT STOP DANE KONTROLER NADAJNIKA TX (takt) TI NADAWANIE TAKT RI 1FF x9 START KONTROLER ODBIORNIKA RX (takt) fosc / 12 przerwanie od RS :16 przerwanie od RS : 16 TTAKT RTAKT Schemat ukadu portu szeregowego pracuj&cego w trybie 0 Schemat ukadu portu szeregowego pracuj&cego w trybie 1

1.1.7 Uk3ad przerwa5 Mikrokontroler 8051 jest wyposa+ony w priorytetowy, dwupoziomowy ukad przerwa#. Ukad przerwa# jest specjalizowan& struktur& logiczn&, której zadaniem jest monitorowanie stanu wskagników przerwa# i zgaszanie faktu ustawienia okre'lonego wskagnika do ukadu sterowania. W mikrokontrolerze 8051 przerwanie mo+e zosta$ wywoane przez jedno z piciu wskagników. Cztery ze wskagników umieszczone s& w rejestrze TCON 88h. Pi&tym Gródem przerwania jest ukadu transmisji szeregowej. Przerwanie to jest zgaszane przez ustawienie dowolnego z bitów RI 98h lub TI 99h rejestru SCON 98h. E A - blokow anie w szystkich przerw a#. E A = 0 + adne przerw anie nie m o + e by$ przyj te. EA = 1 ka+ de przerw anie m o+ e by$ przyj te pod w arunkiem, + e odpow iadaj& cy m u znacznik jest w stanie 1. X - zarezerwowane X - zarezerw ow ane. E T 2 - b lo k o w a n ie ( E T 2 = 0 ) lu b odblokow anie (E T 2 = 1) przerw ania generow anego przez licznik 2. E S - blokow anie (E S = 0) lub odblokow anie (E S = 1 ) p rzerw ania generow anego przez port szeregow y. E T 1 - b lo k o w a n ie ( E T 1 = 0 ) lu b odblokow anie (E T 1 = 1) przerw ania G enerow anego przez licznik 1. E X 1 - b lo k o w a n ie ( E X 1 = 0 ) lu b odblokow anie (E X 1 = 1) przerw ania zew n trznego z w ej' cia IN T 1. E T 0 - b lo k o w a n ie ( E T 0 = 0 ) lu b odblokow anie (E T 0 = 1) przerw ania generow anego przez licznik 0. EX 0 - blokow anie (EX 0 = 0) lub odblokow anie (EX 0 = 1) przerw ania zew n trznego z w ej' cia IN T 0. PT2 - licznik 2 PS - port szeregowy PT1 - licznik 1 PX1 - przerwanie zewntrzne z wej'cia INT1 PT0 - licznik 0 PX0 - przerwanie zewntrzne z wej'cia INT0 IE EA X ET2 ES ET1 EX1 ET0 EX0 adres 0A8H IP X X PT2 PS PT1 PX1 PT0 PX0 adres 0B8H W przypadku przerwa# zewntrznych i od ukadów czasowych, wskagniki przerwania s& sprztowo zerowane po przyjciu zgoszenia przerwania (za wyj&tkiem sytuacji, gdy przerwanie zewntrzne jest zgaszane niskim poziomem). WskaGniki przerwania z ukadu transmisji szeregowej musz& by$ zerowane programowo przez procedur obsugi przerwania, gdy+ sprztowe zerowanie uniemo+liwioby okre'lenie, który ze wskagników (RI czy TI) przerwanie wywoa. Do uaktywniania poszczególnych przerwa# i okre'lania ich priorytetów przeznaczone s& rejestry steruj&ce IE A8h i IP B8h. Podczas realizacji procedury obsugi przerwania poziomu 0 mo+e nast&pi$ jej przerwanie przez procedur obsugi przerwania o poziomie 1 - nie mo+e jednak

wyst&pi$ sytuacja odwrotna. Nie mo+e równie+ wyst&pi$ wzajemne przerywanie procedur obsugi przerwa# z tego samego poziomu. Dodatkowo podczas realizacji programu mo+e wyst&pi$ jednoczesne zgoszenie dwóch lub wicej przerwa# o tym samym poziomie. Powoduje to wybranie do wykonania przez ukad przerwa# obsugi przerwania o najwy+szym priorytecie wedug kolejno'ci: /INT0 (priorytet najwy+szy), TF0, /INT1, TF1, RI+TI (priorytet najni+szy). Przyjcie przerwania powoduje sprztow& generacje rozkazu LCALL z adresem procedury obsugi przerwania, wa'ciwym dla ka+dego przerwania. Przyjcie przerwania jest mo+liwe jednak tylko wtedy, gdy obecnie nie jest wykonywane przerwanie o równym lub wy+szym priorytecie, trwa aktualne wykonywanie jakiego' rozkazu (ukad obsugi przerwania musi poczeka$ do zako#czenia wykonywania tego rozkazu) lub je+eli jest wykonywany adres powrotu z procedury obsugi przerwania RETI, rozkaz dostpu do rejestrów IE i IP, lub jakikolwiek rozkaz po nich wykonywany.

PRIORYTET PRZERWAN PRIORYTET INT0 (P3.2) 0 1 IE0 E X0 0 1 0 1 KOLEJNOSCI O BSLUGI PRZERWANIA najwyzszy IT0 P X0 ET0 0 licznik 0 TF0 1 PX0 EX1 0 INT1 0 IE 1 (P3.3) 1 1 IT1 PX1 ET1 0 licznik 1 TF1 1 PT1 R1 ES port 0 szeregowy T1 1 PS licznik 1 TF2 ET2 T2EX 0 (P1.1) EXF2 1 najnizszy EXEN2 EAL PT2

1.2 MIKROKONTROLER 80C552 Oprócz standardowych zasobów kontrolera 8051, ukad 80C552 zawiera w sobie dodatkowe elementy takie jak: interfejs I 2 C, dodatkowe 128 bajtów pamici danych, dwa dodatkowe porty wej'cia wyj'cia, 10 bitowy przetwornik A/C posiadaj&cy 8 wej'$ analogowych, dwa przetworniki C/A. Schemat blokowy budowy wewntrznej mikrokontrolera 80C552 zosta przedstawiony na rys. 1.3. AD0-7 /WR ALE XTAL2 A8-15 /RD /PSEN /EA XTAL1 P0 P1 P2 P3 JCDRO 80C51 BEZ PAMIDCI ROM I RAM /INT0 /INT1 T0 T1 TXD RXD AVREF AVDD AVSS STADC ADC0-7 SDA SCL P5 P4 ADC PORT SZEREGOWY I 2 C 8 BITOWE PORTY I/O P4 I P5 WEWNDTRZNA 8 BITOWA SZYNA PAMIDF PROGRAMU 8k x 8 PAMIDF DANYCH 256k x 8 PODWÓJNY PWM /PWM0 /PWM1 Rys. 1.3 Schemat blokowy mikrokontrolera 80C552 1.2.1 Pami() danych i pami() programu Mikrokontroler 80C552 oprócz wszystkich wa'ciwo'ci pamici 8051 posiada dodatkowe 128 bajtów wewntrznej pamici danych umieszczone pod adresami 128-255 (80H- 0FFH). Jak wida$,

niektóre adresy pokrywaj& si z adresami rejestrów specjalnych SFR, jednak uniknito konfliktu okre'laj&c sposób dostpu do tego obszaru pamici. Podobnie jak w mikrokontrolerze 8051 blok rejestrów specjalnych SFR mo+e by$ adresowany jedynie bezpo'rednio, natomiast dodatkowe 128 bajtów pamici mikrokontrolera 80C552 mo+e by$ adresowane jedynie indeksowo przy u+yciu rejestrów R0 i R1 (sposób dostpu do pamici danych o adresach poni+ej 128 jest taki sam jak w 8051). Na podstawie sposobu adresowania mikrokontroler jest w stanie stwierdzi$, czy dane odwoanie tyczy si bloku rejestrów specjalnych, czy dodatkowej pamici danych. Podstawow& cech& ró+ni&c& mikrokontroler 80C552 od 8051 jest to, +e posiada on nie 4kB, a 8kB wewntrznej pamici programu. Zasada wspópracy z pamici& wewntrzn& i zewntrzn& nie ulega zmianie w stosunku do 8051. W zwi&zku z rozbudowanymi zasobami mikrokontrolera 80C552 zwikszeniu uleg obszar pamici przeznaczony na procedury obsugi przerwania. 1.2.2 Rejestry specjalne Blok rejestrów specjalnych mikrokontrolera 80C552 jest bardziej rozbudowany w stosunku do ukadu 8051. Wi&+e si to z konieczno'ci& sterowania wiksz& liczb& ukadów peryferyjnych mikrokontrolera 80C552. Zajmuje on blok pamici danych o adresach (80h 0FFh). Oprócz rejestrów SFR swojego poprzednika, blok rejestrów specjalnych ukadu '552 zawiera tak+e nowe pozycje. Podobnie jak w ukadzie 8051, tak+e tutaj mo+liwe jest wykonywanie operacji na pojedynczych bitach rejestrów o adresach podzielnych przez 8. Adresy poszczególnych bitów wyznacza si identycznie jak dla ukadu 8051. Nazwa Adres PeJniona funkcja S0CON 152 (98H) Zamiast SCON (funkcja bez zmian) S0BUF 153 (99H) Zamiast SBUF (funkcja bez zmian) IEN0 168 (0A8H) Rejestr maski przerwa# (zamiast IE) CML0 169 (0A9H) Modszy bajt 16-bitowego rejestru porównuj&cego CM0 CML1 170 (0AAH) Modszy bajt 16-bitowego rejestru porównuj&cego CM1 CML2 171 (0ABH) Modszy bajt 16-bitowego rejestru porównuj&cego CM2 CTL0 172 (0ACH) Modszy bajt 16-bitowego rejestru przechwytuj&cego CT0 CTL1 173 (0ADH) Modszy bajt 16-bitowego rejestru przechwytuj&cego CT1 CTL2 174 (0AEH) Modszy bajt 16-bitowego rejestru przechwytuj&cego CT2 CTL3 175 (0AFH) Modszy bajt 16-bitowego rejestru przechwytuj&cego CT3 IP0 184 (0B8H) Podstawowy rejestr priorytetów przerwa# (zamiast IP) P4 192 (0C0H) Port we/wy 4

P5 196 (0C1H) Port we/wy 5 ADCON 197 (0C2H) Rejestr steruj&cy przetwornika A/C ADCH 198 (0C3H) Rejestr wynikowy przetwornika A/C TM2IR 200 (0C8H) Rejestr wskagników przerwa# ukadu CCU CMH0 201 (0C9H) Starszy bajt 16-bitowego rejestru porównuj&cego CM0 CMH1 202 (0CAH) Starszy bajt 16-bitowego rejestru porównuj&cego CM1 CMH2 203 (0CBH) Starszy bajt 16-bitowego rejestru porównuj&cego CM2 CTH0 204 (0CDH) Starszy bajt 16-bitowego rejestru przechwytuj&cego CT0 CTH1 205 (0CDH) Starszy bajt 16-bitowego rejestru przechwytuj&cego CT1 CTH2 206 (0CEH) Starszy bajt 16-bitowego rejestru przechwytuj&cego CT2 CTH3 207 (0CFH) Starszy bajt 16-bitowego rejestru przechwytuj&cego CT3 S1CON 216 (0D8H) Rejestr steruj&cy interfejsu I 2 C S1STA 217 (0D9H) Rejestr stanu interfejsu I 2 C S1DAT 218 (0DAH) Rejestr danych interfejsu I 2 C S1ADR 219 (0DBH) Rejestr adresowy interfejsu I 2 C IEN1 232 (0E8H) Rejestr maski przerwa# dodatkowych TM2CON 234 (0EAH) Rejestr steruj&cy trybem pracy ukadu CCU CTCON 235 (0EBH) Rejestr steruj&cy prac& ukadu CCU w trybie przechwytywania TML2 236 (0ECH) Modszy bajt licznika T2 ukadu CCU TMH2 237 (0EDH) Starszy bajt licznika T2 ukadu CCU STE 238 (0EEH) Rejestr steruj&cy prac& ukadu CCU w trybie porównywania RTE 239 (0EFH) Rejestr steruj&cy prac& ukadu CCU w trybie porównywania IP1 248 (0F8H) Rejestr priorytetów dodatkowych przerwa# zewntrznych PWM0 252 (0FCH) Rejestr wypenienia impulsów na wyj'ciu PWM0 PWM1 253 (0FDH) Rejestr wypenienia impulsów na wyj'ciu PWM1 PWMP 254 (0FEH) Rejestr czstotliwo'ci pracy wyj'$ PWM T3 255 (0FFH) Rejestr licznika czuwaj&cego Rejestry SFR charakterystyczne dla ukadu 80C552. SFR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 IEN0 IP0 P4 TM2IR EA 175-191 P4.7 199 T2OV 207 EAD 174 PAD 190 P4.6 198 CMI2 206 ES1 173 PS1 189 P4.5 197 CMI1 205 ES0 172 PS0 188 P4.4 196 CMI0 204 ET1 171 PT1 187 P4.3 195 CTI3 203 EX1 170 PX1 186 P4.2 194 CTI2 202 ET0 169 PT0 185 P4.1 193 CTI1 201 EX0 168 PX0 184 P4.0 192 CTI0 200

S1CON CR2 223 ENS1 222 STA 221 STO 220 SI 219 AA 218 CR1 217 CR0 216 IEN1 ET2 239 ECM2 238 ECM1 237 ECM0 236 ECT3 235 ECT2 234 ECT1 233 ECT0 232 IP1 PT2 255 PCM2 254 PCM1 253 PCM0 252 PCT3 251 PCT2 250 PCT1 249 PCT0 248 Rejestry SFR charakterystyczne dla 80C552 adresowalne bitowo. Nazwy i adresy poszczególnych bitów. 1.2.3 Uk3ady transmisji szeregowej Mikrokontroler 80C552 posiada ukad transmisji szeregowej identyczny jak w mikrokontrolerze 8051. Zmienione zostay tylko oznaczenia rejestrów steruj&cych: zamiast SBUF ukad '552 posiada rejestr S0BUF 99h, natomiast zamiast SCON posiada S0CON 98h, ale funkcje obu rejestrów pozostaj& bez zmian. Zmiana nazw rejestrów zwi&zana jest z obecno'ci& w ukadzie '552 drugiego ukadu transmisji szeregowej. Ukad ten jest ukadem wyspecjalizowanym tylko do obsugi transmisji zachodz&cej w standardzie I 2 C. 1.2.3.1 Cechy interfejsu I 2 C Magistrala tego interfejsu skada si z dwóch dwukierunkowych linii: pierwszej dla sygnau danych - SDA (Serial Data Adress) oraz drugiej dla sygnau zegarowego - SCL (Serial Clock Line). Magistrala umo+liwia przesyanie danych pomidzy dwoma dowolnymi urz&dzeniami zgodnie ze zdefiniowanym protokoem : - inicjalizacja transmisji danych mo+e nast&pi$ tylko gdy magistrala nie jest zajta; - podczas transmisji danych, sygna na linii SDA musi by$ stabilny, gdy stan linii SCL jest wysoki, zmiany na SDA podczas wysokiego stanu na SCL s& interpretowane jako sygnay steruj&ce (start transmisji danych, stop transmisji danych, dane wa+ne). Ka+da transmisja inicjowana jest poprzez wyst&pienie warunku start i ko#czona poprzez wyst&pienie warunku stop. Ilo'$ bitów transmitowanych pomidzy warunkami nie jest limitowana. Ka+de z urz&dze# rozpoznawane jest przez unikalny adres przesyany na pocz&tku transmisji. Osiem bitów reprezentuje adres urz&dzenia slave, natomiast najmniej znacz&cy bit (LSB) okre'la kierunek transmisji. Wszystkie urz&dzenia po wykryciu warunku start porównuj& odebrany adres ze swoim adresem sprztowym i je+eli jest on zgodny adresuj& si jako odbiornik lub nadajnik. Urz&dzenia maj& oprócz funkcji nadajników i odbiorników przypisane statusy typu master i slave. MASTER to

urz&dzenie, które inicjuje i prowadzi transmisj danych generuj&c sygnay zegarowe. SLAVE to dowolne poprawnie zaadresowane urz&dzenie. Mo+liwe s& trzy formaty transmisji : - master nadawca, slave odbiorca; - master odbiorca, slave nadawca; - ze zmian& kierunku transmisji. W trzecim formacie przed ka+d& zmian& kierunku transmisji musi by$ generowany sygna start, adres urz&dzenia slave oraz nowa warto'$ bitu kierunku. Interfejs dopuszcza mo+liwo'$ przy&czenia do magistrali kilku urz&dze# o statusie master. Aby unikn&$ kolizji (obecno'$ kilku urz&dze# steruj&cych sygnaami na magistrali) w systemie I 2 C problem ten rozwi&zano stosuj&c arbitra+. Arbitra+ oparty na zasadzie kontroli zgodno'ci stanu linii SDA z warto'ci& logiczn& bitu wyprowadzonego przez dane urz&dzenie. Odczyty stanu linii SDA odbywaj& si w 'ci'le okre'lonych momentach wyznaczonych sygnaem zegarowym. Je+eli dwa lub wicej urz&dze# stara si wysa$ jednocze'nie dane na magistral, to pierwsze które wy'le jedynk, utraci kontrol nad &czem. Przedstawione rozwi&zanie preferuje urz&dzenie, które w trakcie arbitra+u wysya najni+sz& warto'$ binarn&. Sygna zegarowy na magistrali generowany jest zawsze przez urz&dzenie master, nawet gdy urz&dzenie to odbiera dane. Jedynym przypadkiem gdy inne urz&dzenia ingeruj& w przebieg sygnau zegarowego jest proces arbitra+u oraz przypadek, gdy wolne urz&dzenie odbiorcze chce obni+y$ szybko'$ transmisji wymuszaj&c niski poziom na linii SCL. Standardowa szybko'$ transmisji wynosi 100kbps adresuj&c do 128 urz&dze#. Mo+liwa jest równie+ praca w trybie szybkim, z szybko'ci& 400kbps i zaadresowanie 1024 urz&dze#. Liczba ukadów do&czonych do magistrali zale+y jedynie od dopuszczalnej pojemno'ci magistrali 400pF. 1.2.3.2 Interfejs I 2 C mikrokontrolera 80C552 Interfejs I 2 C mikrokontrolera 80C552 mo+e pracowa$ zarówno w trybie urz&dzenia nadrzdnego jak i podrzdnego, gwarantuj&c prac z szybko'ci& transmisji do 100kbod. Do sterowania interfejsem su+& nastpuj&ce rejestry: S1CON D8h rejestr steruj&cy, S1STA D9h rejestr stanu, S1DAT DAh rejestr danych, S1ADR DBh rejestr adresowy. Tab. 1.3 Rejestry steruj&ce i statusowe interfejsu I 2 C Rejestr Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 S1CON CR2 ENS1 STA STO SI AA CR1 CR0

S1STA SC4 SC3 SC2 SC1 SC0 0 0 0 S1ADR SA7 SA6 SA5 SA4 SA3 SA2 SA1 GC S1CON: ENS1 bit zezwalaj&cy na prac interfejsu STA bit sygnau pocz&tku transmisji STO bit sygnau ko#ca transmisji SI wskagnik przerwania od interfejsu I 2 C AA bit okre'laj&cy aktywno'$ interfejsu CR2, CR1, CR0 bity ustalaj&ce czstotliwo'$ sygnau taktuj&cego wysyanego lini& SCL przy pracy interfejsu w trybie urz&dzenia nadrzdnego. S1STA: SC4, SC3, SC2, SC1, SC0 bity kodu stanu interfejsu S1ADR: SA7, SA6, SA5, SA4, SA3, SA2, SA1 7 bitowy adres wasny urz&dzenia pracuj&cego w trybie slave GC bit zezwolenia na rozpoznawanie adresu wywoania ogólnego Rejestr S1DAT zawiera informacj przeznaczon& do przekazania na szyn. Podczas wyprowadzania informacji z tego rejestru, na miejsce poszczególnych bitów jest wpisywany aktualny stan linii. W wyniku tego po przesaniu zawarto'ci rejestru na jej miejscu pojawia si informacja, która rzeczywi'cie pojawia si na szynie. Po wykonaniu ka+dej operacji (wysanie lub odebranie informacji lub sygnaów steruj&cych) modyfikowana jest zawarto'$ rejestru S1STA. Poni+sze tabele zawieraj& opis poszczególnych stanów. Tab. 1.4 Kody stanu w trybie nadawania jako urz&dzenie nadrzdne Kod stanu 08h 10h 18h 20h 28h 30h Stan interfejsu i szyny Wysano sygna START Wysano powtórny sygna pocz&tku transmisji (START zamiast STOP) Wysano adres urz&dzenia i bit nadawania, i odebrano potwierdzenie Wysano adres urz&dzenia i bit nadawania, i odebrano brak potwierdzenia Wysano bajt danych i odebrano potwierdzenie Wysano bajt danych i nie odebrano potwierdzenia