, AT89C2051, elektronika, Datasheet'y po Polsku 

AT89C2051

AT89C2051, 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 ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • dodatni.htw.pl