Professional Documents
Culture Documents
Awiczenie 02
Awiczenie 02
BASCOM College
Pierwsze programy
Ćwiczenie
Witam ponownie Studentów BASCOM dzić do uszkodzenia portu równoległego, dowanego w procesor, a jego stan, a tym sa−
College. W wykładzie wchłonęliśmy już spo− a tym samym płyty głównej nowoczesnego mym informację o relacji pomiędzy napięcia−
rą dawkę teorii dotyczącej wyświetlaczy komputera!
LCD, wypróbowaliśmy wbudowany w pa− PORT P1
kiet BASCOM symulator programowy i naj− Pin portu Pin układu Funkcja Funkcja dodatkowa Uwagi
wyższa już pora na bliższe zapoznanie się P1.0 12 IN/OUT Wejście „+” komparatora analogowego Brak rezystora podciągającego
P1.1 13 IN/OUT Wejście „−” komparatora analogowego Brak rezystora podciągającego
z jednym z najważniejszych elementów na−
P1.2 14 IN/OUT Brak
szego systemu edukacyjnego − płytką testo− P1.3 15 IN/OUT Brak
wą. Podczas tego ćwiczenia poznamy także P1.4 16 IN/OUT Brak
praktycznie podstawowe polecenia odnoszą− P1.5 17 IN/OUT Brak
P1.6 18 IN/OUT Brak
ce się do operacji dokonywanych na portach P1.7 19 IN/OUT Brak
i pojedynczych wyprowadzeniach procesora
89C2051. Jeżeli zostanie nam dość czasu, to mi dołączonymi do wejść komparatora, mo−
spróbujemy także emulacji sprzętowej wy− Operacje na portach i po− żemy odczytać na drodze programowej.
świetlacza LCD. jedynczych pinach proce− Sądzę, że warto uporządkować sobie
Zacznijmy od bliższego zapoznania się sora 89C2051 informacje na temat portów procesora
z płytką testową AVT−2500. Zanim jednak W struktury procesorów podrodziny ‘2051, tym bardziej, że wiele ich pinów
przejdziemy do tej części ćwiczenia, chciał− 89CX051 wbudowane są dwa ośmiobitowe spełnia dodatkowe, niekiedy bardzo uży−
bym wyjaśnić pewne nieporozumienie, które porty wejściowo−wyjściowe nazwane, P1 teczne funkcje.
powstało w związku z konstrukcją naszej i P3. Zapewnia PORT P3
płytki. Od kilku dociekliwych Czytelników to procesorowi Pin Pin
Funkcja Funkcja dodatkowa Uwagi
portu układu
otrzymałem e−maile informujące o błędach możliwość ko− P3.0 2 IN/OUT Wejście RXD toru transmisji RS232
P3.1 3 IN/OUT Wejście TXD toru transmisji RS232
na płytce testowej! Błędy te miały polegać munikacji ze Aktywne opadającym
P3.2 6 IN/OUT Wejście przerwania zewnętrznego INT0
na nieumieszczeniu na schemacie złącza światem zewnę− zboczem lub poziomem
Aktywne opadającym
oznaczonego jako ISP oraz jumpera JP7. trznym, przyj− P3.3 7 IN/OUT Wejście przerwania zewnętrznego INT1
zboczem lub poziomem
Rzeczywiście, elementy te zostały celowo mowanie z nie− P3.4 8 IN/OUT Wejście timera 0
P3.5 9 IN/OUT Wejście timera 1
pominięte na schemacie, ponieważ nie go potrzebnych Odczyt stanu tego
P3.6 − IN/OUT Wewnętrzne wyjście komparatora analogowego wyjścia jest możliwy
chciałem bez potrzeby komplikować rysun− informacji, tylko na drodze programowej
ku przez wprowadzanie do niego dodatko− a także wysyła− P3.7 11 IN/OUT Brak
wych, potrzebnych dopiero w dalekiej przy− nie danych do układów peryferyjnych i stero− Bardzo ważna uwaga!
szłości składników.Zakładam, że przeszli− wanie urządzeniami podporządkowanymi. Dwa wejścia portu P1: P1.0 i P1.1 nie zo−
ście już przez męki związane z wlutowa− Do dyspozycji mamy piętnaście wejść stały wyposażone w wewnętrzne rezystory
niem w płytkę testową blisko 100 kołecz− i wyjść, które możemy wykorzystywać zgo− podciągające! Jeżeli jedno z tych wyjść
ków, że nie poparzyliście się podczas pod− dnie z aktualnymi potrzebami. Z pewnością ustawimy w stan niski, to będzie ono zacho−
grzewania izolacji termokurczliwej na prze− wielu Czytelników zwróciło uwagę na drob− wywać się dokładnie tak, jak pozostałe ak−
wodach montażowych i że gotowa płytka te− ną nieścisłość w poprzednim zdaniu. Naj− tywne wyprowadzenia procesora: wewnę−
stowa leży przed Wami na biurku. Pozosta− pierw mówiliśmy o dwóch ośmiobitowych trzny rezystor wymusi na nim stan wysoki.
je więc już tylko dołączyć ją do komputera portach, a następnie o piętnastu wejściach! Jeżeli jednak ustawimy P1.0 lub P1.1 w stan
oraz zasilania i rozpocząć pracę. Na szczęście nie była to pomyłka: procesor wysoki, to wyjście to bez stosowania elemen−
Uwaga! Dołączanie płytki do kompute− 89C2051 rzeczywiście posiada dwa pełne tów zewnętrznych będzie “wisieć w powie−
ra może odbywać się wyłącznie przy odłą− porty ośmiobitowe, z tym jednak, że wyjście trzu” i nie będzie mogło być wykorzystane
czonym zasilaniu obydwóch urządzeń. Nie− 6 portu P3 nie jest dostępne z zewnątrz. Jest np. do sterowania bazy tranzystora lub in−
spełnienie tego warunku może doprowa− to wyjście komparatora analogowego wbu− nego wejścia bez rezystora podciągającego.
Rys. 3
W symulacji najprościej jest zrealizować Zauważyliście pewnie, że dodałem do nie ich jednym z wyżej opisanych poleceń.
opóźnienie za pomocą dodatkowej pętli programu jeszcze jeden element: niekończą− Tak więc zamiast:
programowej wstawionej w odpowiednim cą się pętlę DO .... LOOP. W związku z tym
miejscu programu. Pętla może być pusta, nasz program będzie wykonywany w nie− For X = 1 To 100
nie musi wykonywać jakichkolwiek czyn− skończoność, wyświetlając na wyświetlaczu Next X
ności, wystarczy, że wykonanie jej samej siedmiosegmentowym kolejne cyfry.
zajmuje trochę czasu. Najprościej zrealizo− Wstawimy np.:
wać taką pętlę za pomocą znanej już Wam Realizacja opóźnienia
instrukcji NEXT ... FOR. Ilość powtórzeń w programie przeznaczo− WAIT 1
pętli zależy od szybkości działania proce− nym do umieszczenia
sora w komputerze i najlepiej ustalić ją do− w procesorze co da nam opóźnienie 1 sekundy.
świadczalnie. Przykładowo: wykonanie Nie wyczerpaliśmy bynajmniej tematu
instrukcji: Język MCS BASIC oferuje nam wiele możli− wysyłania danych do portów procesora ’51,
For X = 1 to 100 wości realizacji opóźnień czasowych, zwal− ale pozostało już niewiele czasu z tej godzi−
Next X niając nas na razie od konieczności poznawa− ny lekcyjnej. W opisywaniu głównego te−
zajmuje na komputerze z procesorem nia obsługi timerów systemowych. Do dys− matu ćwiczenia przeszkadzały nam liczne
PENTIUM 133 około 2 sekund. pozycji mamy dwie podstawowe instrukcje, dygresje, ale także dzięki nim wypełniali−
Dopisujemy więc do naszego programu pozwalające na wnoszenie opóźnień z zakre− śmy postawione przed nami zadania: uczy−
pętlę opóźniającą, nie zapominając o zade− su od 1 ms do 255 sekund, czyli do ponad 4 liśmy się języka MCS BASIC i obsługi pa−
klarowaniu kolejnej zmiennej: X. Zarówno minut. Są to instrukcje: kietu BASCOM. Chciałbym wspomnieć
deklaracja tej zmiennej, jak i pętla programo− WAIT [liczba sekund, liczba z zakresu Wam jeszcze, chociażby w największym
1 do 255) skrócie, o odczytywaniu danych z portów
Rys. 5 procesora.
WAITMS [liczba milisekund, liczba Odczytanie jakichkolwiek danych z po−
z zakresu od 1 do 255] rtu procesora ‘2051 lub z pojedynczego pinu
Po wydaniu jednaj z tych dwóch instrukcji takiego portu jest możliwe dopiero po pro−
program wstrzymuje swoje działanie aż do gramowym ustawieniu na całym porcie lub
momentu upłynięcia oznaczonego czasu. wybranym pionie STANU WYSOKIEGO.
Oczywiście, zawsze możliwe jest wydanie Wyprowadzenia portów procesora ‘2051
kolejno kilku instrukcji opóźnienia, chociaż− możemy z pewnym przybliżeniem traktować
by w celu “załatania dziury” pomiędzy jako wyjścia typu OPEN DRAIN wyposażo−
255msek za 1 s. Np.: ne w bufory, w których zatrzaskuje się poda−
Wait 1: Waitms 125 na z wewnątrz informacja. Jeżeli np. po po−
lub daniu polecenia:
P3= 255