,
AT89C2051AT89C2051, elektronika, Datasheet'y po Polsku
[ Pobierz całość w formacie PDF ]
Opis mikrokontrolera AT89C2051 Cechy mikrokontrolera AT89C2051: kompatybilny z układami rodziny MCS-51, 2kB wewnętrznej pamięci typu Flash-EPROM , zegar: 0Hz do 24MHz , 8-bitowa jednostka centralna, 128B wewnętrznej pamięci RAM, 15 programowalnych linii we/wy, dwa szesnastobitowe liczniki/zegary, interfejs szeregowy, wbudowany analogowy komparator. Układ 89C2051 realizuje 111 instrukcji, z czego 49 jest jednobajtowych, 45 dwubajtowych, 17 trzybajtowych, 64 jest wykonywane w jednym cyklu. Cechą charakterystyczną jest duża liczba operacji na bitach i instrukcje mnożenia i dzielenia. Rozkład wyprowadzeń procesora 89C2051 przedstawiono poniżej. Cechą charakterystyczną układu jest możliwość alternatywnego wykorzystania większości linii we/wy. Wyprowadzenia mikroprocesora AT89C2051 PORT 1 (P1.0...P1.7) – są to wyprowadzenia 8-bitowego, uniwersalnego portu mikroprocesora oznaczonego jako P1. Port może pełnić rolę wyjścia informacji binarnej. Tak więc, jeżeli zachodzi potrzeba; procesor może np. wpisać do portu P1 dowolną liczbę binarną z zakresu 0...255, np. 48. Binarnie liczba 48 = 00110000. Oznaczenia poszczególnych końcówek portu P1 wskazują na kolejną pozycję bitu. Tak więc końcówka P1.7 (najstarsza) przyjmie poziom logiczny 0, końcówka P1.6 poziom 0, P1.5 poziom 1 itd. Zapisanie jakiejś liczby do portu P1 daje wiele zastosowań. Na przykład do każdego wyprowadzenia portu można dołączyć układ z przekaźnikiem, którego styki załączają dowolne urządzenie elektryczne. 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ść). Port (cały lub niektóre z jego pinów), podobnie jak przy zapisie, można ustawić także jako wejście informacji logicznej. Każde z wyprowadzeń staje się wtedy wyjściem o wysokiej impedancji, dzięki temu dowolny poziom logiczny podany z wyjścia jakiegoś układu cyfrowego może być odczytany poprzez piny portu a informacja czy tym stanem była logiczna 1 lub 0, zostaje wykorzystana przez procesor dla dalszego jego działania w zależności od spełnianej akurat funkcji. Krótko mówiąc, procesor może odczytać stany logiczne, jakie z zewnątrz podano na końcówki portu. Oczywiście poziomy logiczne napięć wejściowych portu P1 muszą zawierać się w przedziale napięć zasilania mikrokontrolera, czyli w zakresie 0...5V. Detekcja poziomów logicznych odbywa się jak dla bramek CMOS, stąd wartości progowe napięć tych stanów są zbliżone do połowy napięcia zasilającego. Istotną informacją jest fakt że w trybie odczytu z portu P1 końcówki są wewnętrznie podczepiane do plusa zasilania poprzez wbudowane w procesor rezystory, co wymusza odczyt wysoki z portu w przypadku niepodłączenia końcówki portu. Końcówki portu P1,1 (AIN1) i P1,0 (AIN0) są to wejścia na analogowy komparator. AIN0 jest to nieodwracające wejście komparatora, a AIN1 odwracające. PORT 3 (P3.0...P3.5,P3.7) – 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 obok wyprowadzeń portu P3 sugerują że port może spełniać inne dodatkowe funkcje, co jest zresztą zgodne z prawdą. 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. Ciekawostką niech będzie fakt, że przesyłanie to może odbywać się na kilka sposobów: synchronicznie – wtedy pin P3.0 pełni role dwukierunkowej magistrali szeregowej, po której przesyłane są dane, zaś pin P3.1 generuje sygnał taktujący, pełniąc rolę zegara, asynchronicznie – kiedy z góry zadajemy prędkość transmisji pomiędzy naszym procesorem a innym, zewnętrznym układem np. łączem RS232c komputera PC. W takim przypadku końcówka P3.0 – RXD pełni rolę odbiornika przesyłanych szeregowo danych, zaś końcówka P3.1 – TXD nadajnika. Ponadto rozróżnia się kilka trybów pracy asynchronicznej. Alternatywną funkcją końcówek P3.2 (INT0\) oraz P3.3 (INT1\) jest funkcja detekcji przerwań zewnętrznych. Zmiana stanu logicznego z 1 na 0 powoduje przerwanie. Konsekwencją tego jest automatyczne przerwanie wykonywania przez procesor programu i natychmiastowe przejście do wykonania czynności ściśle określonych przez programistę. Ciąg takich czynności nazywany jest w technice mikroprocesorowej: „procedurą obsługi przerwania”. Wykrycie zmiany stanu logicznego na końcówkach przerwań zewnętrznych INT0 i INT1 wiąże się ze spełnieniem jednego warunku, a mianowicie, aby czas od ujemnego zbocza sygnału zgłoszenia przerwania do ponownego przejścia w stan wysoki był odpowiednio długi. Czas ten zależy od częstotliwości zegara mikroprocesora. Końcówki (P3.4 i P3.5) oznaczone jako T0 i T1 pełnią dodatkową funkcję wejść uniwersalnych, programowalnych liczników, wbudowanych w strukturę 89C2051. Procesor zawiera dwa bliźniacze liczniki T0 i T1. Maksymalnie mogą one zliczać do 65536, po czym zostają wyzerowane. Liczniki te oprócz zliczania impulsów z wejść T0 i T1 mogą także zliczać impulsy wewnętrzne, pochodzące z generatora mikrokontrolera. W praktyce wykorzystywane jest to np. do odmierzania określonych odcinków czasu np. przy funkcji zegarka. RST – zerowanie układu. Czynność ta wykonywana poprzez podanie logicznej 1 na te wyprowadzenie na pewien okres czasu powoduje skasowanie układu, a więc natychmiastowe przerwanie wykonywanych czynności i rozpoczęcie cyklu działania procesora od samego początku. Czas trwania dodatniego impulsu kasującego zależy od częstotliwości z jaką pracuje mikroprocesor. Z reguły w typowych zastosowaniach czas 1ms w zupełności wystarcza. W układach praktycznych do końcówki RST dołącza się mniej lub bardziej skomplikowany układ który generuje wymagany impuls zerujący najczęściej w trzech przypadkach: po włączeniu zasilania układu, na nasze żądanie – poprzez np. przyciśnięcie klawisza, w sytuacjach awaryjnych, kiedy np. poprzez zakłócenie najczęściej na liniach zasilających nastąpi błędne działanie układu mikroprocesora, inaczej „zawieszenia”. Trzeci przypadek dotyczy bardziej złożonych układów stosowanych szczególnie w automatyce i elektronice przemysłowej. VPP – napięcie programujące. XTAL1 i XTAL2 – końcówki te służą do dołączenia zewnętrznego rezonatora kwarcowego o częstotliwości zależnej od potrzeb użytkownika. W praktyce częstotliwość ta może wynosić od 0Hz do 24MHz. Dołączony do tych pinów rezonator kwarcowy po uzupełnieniu o dodatkowe kondensatory o wartości z reguły 22...40pF (w zależności od wartości rezonatora), umożliwiają pracę wbudowanemu w 89C2051 generatorowi, który „napędza” cały mikroprocesor. Oczywiście od częstotliwości rezonatora ściśle zależy szybkość działania mikrokontrolera. Typowy układ zewnętrznego oscylatora przedstawia rysunek poniżej: Układ zewnętrznego oscylatora Częstotliwość, z jaką pracują wewnętrzne układy mikroprocesora, jest określona wzorem: F f xtal , 12 gdzie f xtal jest częstotliwością rezonatora kwarcowego. Powodem takiego podziału częstotliwości rezonatora jest wewnętrzna architektura procesora. GND – masa. VCC – jest to końcówka zasilania mikroprocesora. Napięcie względem masy z reguły nie może przekraczać 6,5V. Dlatego układ mikrokontrolera należy zasilać napięciem 5V ±0,25V używając do tego celu dowolnego zasilacza stabilizowanego najlepiej przy pomocy znanego układu 7805. Zasadą przy projektowaniu układów z 89C2051 jest blokowanie tego wyprowadzenia kondensatorem o wartości 100nF do masy układu cyfrowego. Wewnętrzna pamięć programu Program napisany przez użytkownika, przewidziany dla konkretnego zastosowania mikroprocesora, powinien zostać umieszczony wewnątrz mikrokontrolera – czyli w wewnętrznej pamięci programu. Pamięć ta służy mikrokontrolerowi wyłącznie do odczytu rozkazów programu. W pamięci tej mogą być umieszczone także argumenty bezpośrednie rozkazów oraz tablice ze stałymi potrzebnymi do pewnych działań programu, np. tablica sinusów, tablica czasów zachodu słońca, lub cokolwiek innego. Mikroprocesor 89C2051 ma możliwość późniejszego pobrania ze swojej pamięci programu takiej stałej i wykorzystania jej np. w obliczeniach. Po włączeniu zasilania dzięki obwodowi „Reset”, wyzerowane zostają prawie wszystkie wewnętrzne układy mikroprocesora w tym także „licznik rozkazów”. Ten ostatni służy mikroprocesorowi do kolejnego pobierania rozkazów z pamięci programu, a [ Pobierz całość w formacie PDF ] |
Podobne
|