Mikrokomputer Pecel z procesorem AT90S8535 cz.3.pdf
(
708 KB
)
Pobierz
71_018.pdf
Projekty AVT
++
Mikrokomputer PECEL
z procesorem
AT90S8535
2 5 5 0 / P
Część 3
Od dnia dzisiejszego zestaw części do budowy minikomputera PECEL będzie dostarczany z zaprogramowanym wstępnie proceso−
rem. Pierwsza wersja Beta programu realizuje funkcję najdokładniejszego zegara Świata, pracującego z precyzją jednej sekundy
na pięć milionów lat!
Program PECEL Ver. 1.0.0 Beta jest wspólną własnością Autora i Czytelników Elektroniki dla Wszystkich. Jako taki będzie pod−
dawany stałym modyfikacjom i ulepszeniom. Wszystko wskazuje też na to, że w najbliższym czasie mogą powstać zupełnie nowe
wersje tego programu, różniące się znacznie od pierwowzoru i pełniące zupełnie nowe funkcje. Mogłoby to spowodować sytuację,
w której nabywcy pierwszej partii kitów mogliby mimowolnie zostać skrzywdzeni, posiadając pierwotną, najmniej doskonałą we−
rsję programu. Aby uniknąć takiej sytuacji kody źródłowe WSZYSTKICH kolejnych wersji programu PECEL będą zamieszczane
na stronie internetowej Elektroniki dla Wszystkich.
Jednocześnie zapraszam wszystkich Czytelników EdW do współpracy w tworzeniu oprogramowania dla PECEL−a.
Mam do Was teraz jedną, w właściwie nawet
dwie prośby. Chodzi mi o wykonanie jeszcze
dwóch prostych kabelków: jeden z nich ma
posłużyć do połączenia PECEL−a z portem
szeregowym komputera, a drugi umożliwi
wykorzystywanie typowej klawiatury PC AT
do wprowadzania danych do naszego mini−
komputera. Schematy połączeń obydwu ka−
belków pokazane są na
rysunku 14
. Do wy−
konania pierwszego kabla potrzebować bę−
dziemy odcinka przewodu trójżyłowego
praktycznie dowolnego typu. Nie musi to być
(ale może) kabel ekranowany. Także długość
tego przewodu nie jest praktycznie niczym
ograniczona i powinna być dostosowana do
aktualnych potrzeb. Sądzę, że najlepszy bę−
dzie przewód o długości 1,5 ... 2mb. Z przy−
lutowaniem do przewodów złącza DB9
i gniazdka DIN5 nie będziemy mieli z pewno−
ścią najmniejszych problemów. Nieco inaczej
wygląda jednak sprawa z dołączeniem prze−
wodów do PECEL−a. Najprostszą metodą by−
łoby ich przylutowanie do złącz CON12
i CON5. Jednak takie rozwiązanie utrudniło−
by szybką zamianę konfiguracji systemu,
szczególnie w przypadku „zablokowania”
przylutowanymi przewodami złącza magi−
strali I
2
C. Polecałbym Wam inną, wielokrot−
nie sprawdzoną metodę, polegającą na zakoń−
czeniu przewodów odpowiednio przyciętymi
kawałkami złącz tzw. szufladkowych, czyli
„żeńskich” odpowiedników konektorów
goldpin. Uzyskamy w ten sposób możliwość
bezproblemowego odłączania przewodów od
płyty głównej minikomputera, co może mieć
szczególne znaczenie podczas emula.... no,
tak o mało się nie wyga−
dałem i przedwcześnie nie
zdradziłem przygotowa−
nej dla Was
NIESPO−
DZIANKI
.
Przygotowanie pierw−
szego z przewodów,
którego zadaniem będzie
połączenie PECEL−a z po−
rtem RS−232 komputera
PC możemy sobie znacz−
nie ułatwić jeżeli dyspo−
nujemy przewodem od
uszkodzonej, że nie po−
wiem „zdechłej” myszki.
Odpadnie nam wtedy
konieczność lutowania
złącza DB25, a potrzebne
nam przewody będziemy mogli zidentyfiko−
wać za pomocą omomierza.
Zastanawiałem się, od czego rozpocząć
opisywanie metod programistycznych, które
posłużą do tchnięcia życia w nasz minikom−
puter. Początkowo miałem zamiar rozpocząć
od najważniejszych poleceń i funkcji
BASCOM−a, których
nie omawialiśmy
Rys. 14
18
Elektronika dla Wszystkich
Projekty AVT
podczas kursu BASCOM College. Jednak do−
szedłem do wniosku, że tak właściwie to nie
ma „ważnych” i „mniej ważnych” elementów
języka programowania: każdy fragment jego
składni może okazać się w pewnych sytua−
cjach najważniejszy. Dlatego też przyjąłem
inny porządek pisania tego artykułu: mam za−
miar zredagować go tak, abyście jak najszyb−
ciej mogli zobaczyć pierwsze, efektowne re−
zultaty Waszej pracy i już w najbliższych
chwilach ożywić minikomputer. Zacznijmy
więc od tych funkcji BASCOM−a, które są
niezbędne do realizowania komunikacji mini−
komputera z otoczeniem. Za to, że szybko zo−
baczycie rezultaty Waszej pracy i że będą one
bardziej efektowne, niż się spodziewacie, rę−
czę głową, na której mi co nieco zależy!
Db5 = Portc.5, Db6 = Portd.7, Db7 = Porta.7,
E = Portc.3, Rs = Portc.2
A zatem, mamy już cztery pierwsze linij−
ki, od których będzie zaczynał się każdy pro−
gram napisany na nasz minikomputer.
trzu” i mogą być wykorzystane do sterowania
dowolnymi układami. Musimy jedynie zwró−
cić uwagę, aby żaden z tych układów nie
zwierał wejść portu B ani do masy ani do plu−
sa zasilania w czasie korzystania z klawiatury.
No właśnie, w jaki sposób mamy dowie−
dzieć się czy i jaki klawisz został naciśnięty?
Myślę, że wielu z Was już się domyśla: nale−
ży po prostu programowo cyklicznie usta−
wiać stan niski na kolejnych rzędach klawia−
tury i za każdym razem badać, czy któryś
z pinów, do których dołączone są kolumny
matrycy nie znalazł się w stanie niskim. Tak,
jest to dobra metoda, a listing programu napi−
sanego według tej zasady został przedstawio−
ny na
rysunku 15
wraz z ... przekreślającym
go znakiem! Taki program oczywiście by
działał, ale po co mamy pisać tekst nie mie−
szczący się nawet na stronie ekranowej, jeże−
li Mark już o wszystkim pomyślał? Do ska−
nowania szesnastoznakowej klawiatury służy
w MCS BASIC jedno proste polecenie:
Zmienna = GETKBD()
poprzedzone dyrektywą konfiguracyjną:
CONFIG KBD = PORT[numer portu]
$regfile = "8535def.dat"
'poinformowanie kom−
pilatora o typie zastosowanego procesora
$crystal = 8000000
'poinformowanie kom−
pilatora o częstotliwości oscylatora systemowego
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Po−
rtc.5 , Db6 = Portd.7 , Db7 = Porta.7 , E = Po−
rtc.3 , Rs = Portc.2
Za chwilę dodamy do nich dalsze, ale naj−
pierw musimy dobrze zapamiętać pewną ce−
chę dialektu języka MCS BASIC stosowane−
go w pakiecie BASCOM AVR:
Obsługa wyświetlacza LCD
Sposoby wysyłanie danych do wyświetlacza al−
fanumerycznego LCD zostały już wyczerpują−
co omówione podczas kursu BASCOM Colle−
ge. Dlatego też przypomnijmy sobie tylko waż−
niejsze polecenia służące wysyłaniu tekstów na
ekran LCD, oraz sposób konfigurowania wy−
świetlacza, nieco odmienny od sposobu używa−
nego podczas pracy z płytką testową AVT2500.
Pierwszą czynnością jaką będziemy mu−
sieli wykonać, zanim jeszcze spróbujemy
wysłać cokolwiek na ekran jest poinstruowa−
nie kompilatora o parametrach zastosowane−
go wyświetlacza i sposobu jego dołączenia
do wyprowadzeń procesora. A zatem użyjmy
dwóch, znanych już Wam poleceń:
Pisząc program na procesor AVR
poszczególne piny portów nazywamy
PIN[port][numer pinu], czyli na przykład
PINB.1, PIND.3 itd.
Podczas wysyłania danych na
poszczególne piny używamy składni:
PORT[numer portu][pin portu]
np. : SET PORTB.1 lub RESET PORTB.5.
Podczas odczytu stanu pinów portów
używamy składni: PIN[port][numer pinu]
np. X= PINB.1 lub IF PIND.3 = 1 THEN ........
po którego wydaniu klawiatura jest automa−
tycznie przeszukiwana, a podana zmienna
przyjmuje umowną wartość naciśniętego kla−
wisza. Za chwilę wyjaśnimy sobie pojęcie
„umowną”, a na razie poproszę Was o zapa−
miętanie jednej własności polecenia
GETKBD(), której przeoczenie mogłoby spo−
wodować poważne komplikacje podczas pisa−
nia programu wykorzystującego to polecenie:
Jeżeli żaden klawisz nie został naciśnięty,
to polecenie GETKBD() zwraca zawsze
wartość 16
A zatem, wiemy już wszystko, co jest po−
trzebne do rozpoczęcie nauki obsługi klawiatu−
ry minikomputera. Napiszmy sobie zatem pro−
sty programik demonstracyjny, którego zada−
niem będzie jedynie doświadczalne potwierdze−
nie zdobytej przed chwilą wiedzy teoretycznej.
Polecenia służące obsłudze wyświetlacza
alfanumerycznego były szczegółowo
omówione podczas kursu BASCOM College.
Przypomnijmy tylko najważniejsze z nich:
LCD [zmienna lub tekst] wysyła podaną
wartość na ekran wyświetlacza
LOCATE [rząd, kolumna] ustawia kursor
na wskazanej pozycji
CLS czyści ekran wyświetlacza
CURSOR ON / CURSOR OFF włącza i wy−
łącza wyświetlanie kursora
SHIFTLCD [RIGHT/LEFT, ilość pozycji]
„przewija” napis na ekranie LCD
CONFIG LCD = LCDtype [40 * 4,16 * 1,
16 * 2, 16 * 4, 16 * 4, 20 * 2, 20 * 4 lub 16
* 1a ]
i
CONFIG LCDPIN = PIN , DB4=
PN,DB5=PN, DB6=PN, DB7=PN, E=PN,
RS=PN [gdzie PN oznacza numer pinu
portu, do którego dołączone są wyprowa−
dzenia wyświetlacza]
Z określeniem typu wyświetlacza nie bę−
dziemy mieli najmniejszego kłopotu. PECEL
wyposażony jest w wyświetlacz dwuliniowy
2* 16 znaków. A zatem, piszemy: Config
LCD = 16*2.
Trochę bardziej skomplikowane będzie
poinstruowanie kompilatora do których pi−
nów procesora zostały dołączone poszcze−
gólne wyprowadzenia wyświetlacza. Na na−
szej prostej płytce testowej AVT2500 wszy−
stkie wyprowadzenia wyświetlacza były do−
łączone do jednego portu. W minikompute−
rze, z różnych względów nie było to możliwe
i połączenia z wyświetlaczem prowadzą do
różnych portów, pozornie chaotycznie.
W dalszej części artykułu poinformuję Was,
co wymusiło taki, a nie inny układ tych połą−
czeń, a na razie popatrzmy uważnie na sche−
mat i zredagujmy polecenie konfiguracyjne
wyświetlacza LCD. Będzie ono miało po−
stać: Config Lcdpin = Pin, Db4 = Portc.4,
Obsługa klawiatury
szesnastkowej
komputera PECEL
Jak każdy szanujący się komputer także nasz
PECEL wyposażony jest w klawiaturę. Nie
jest to może klawiatura o możliwościach kon−
soli PC, ale do naszych celów będzie zupełnie
wystarczająca. Nie zapominajmy, że w razie
absolutnej konieczności będziemy mogli sko−
rzystać także z klawiatury PC, o czym jeszcze
będziemy mówić w dalszej części artykułu.
Klawiatura PECEL−a składa się z szesna−
stu klawiszy połączonych w matrycę czterech
rzędów i czterech kolumn. Matryca została
dołączona do portu B procesora, zajmując
wszystkie jego 8 pinów. W tym miejscu
chciałbym wyjaśnić jedną sprawę: to że dołą−
czyliśmy klawiaturę do portu B nie oznacza
bynajmniej, że nie będziemy mogli wykorzy−
stywać jego wyprowadzeń do innych celów.
W momencie, kiedy klawiatura nie jest skano−
wana wszystkie piny portu B „wiszą w powie−
Rys. 15
Elektronika dla Wszystkich
19
Projekty AVT
$regfile = "8535def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Po−
rtc.5 , Db6 = Portd.7 , Db7 = Porta.7 , E = Po−
rtc.3 , Rs = Portc.2
Config Kbd = Portb
Dim Key As Byte
Cls
Lcd "Test klawiatury"
Lowerline
Lcd " szesnastkowej"
Do
Key = 16
Key = Getkbd()
If Key < 16 Then
i natychmiast zauważymy, że kody klawiszy
ułożyły się w następujący, całkowicie zgod−
ny z napisami na płycie czołowej, sposób:
zadaniem, ale także prawdziwą przyjemno−
ścią i relaksującą rozrywką. O opisanie pro−
cedur umożliwiających wymianę danych za
pośrednictwem łącza RS232 dopominali się
już Studenci BASCOM College. A więc
proszę: macie co chcecie i jeszcze trochę
więcej!
Jedną z największych zalet procesorów
produkowanych przez firmę ATMEL jest
wbudowany w strukturę tych układów sprzę−
towy UART, umożliwiający stosunkowo ła−
twą realizacje transmisji danych w standar−
dzie RS232. Połączenie systemu mikroproce−
sorowego z komputerem pozwala na budowę
najróżniejszego typu terminali do PC, apara−
tury pomiarowej z której dane można przeka−
zywać i poddawać dalszej obróbce w kompu−
terze. Magistrala komunikacyjna RS232 jest
chyba najlepszym sposobem na połączenie
ze sobą dwóch układów mikroprocesoro−
wych i umożliwienie im „rozmowy” nawet
na bardzo duże odległości.
Nie są to jednak jedyne zastosowania
transmisji RS232 odbywającej się pomiędzy
procesorem i komputerem. Za chwilę dowie−
my się, jak bardzo ta możliwość może okazać
się użyteczna podczas uruchamiania i testo−
wania programów dla systemów mikroproce−
sorowych, które ... nawet nie będą nigdy wy−
korzystywać transmisji szeregowej podczas
normalnej pracy.
Zarówno procesory ’51 produkcji ATMEL
jak i prawie wszystkie (wyjątkami są: AT TI−
NY22, AT90S2343 i AT90S2333) chipy
AVR wyposażone są w sprzętowy układ
UART (Universal Asynchronous Receiver
and Transmitter), umożliwiający realizację
transmisji RS232 na drodze sprzętowej.
W artykule, który w tej chwili czytacie, przy−
jęliśmy zasadę podobną do reguł obowiązu−
jących w BASCOM College: jak najmniej
7 8915
4 5614
1 2313
0 10 11 12
Najmilsza chwila poranka:
dwóch komputerów
pogadanka.
To, co za chwilę przeczytacie stanowi
z pewnością najciekawszy fragment tej czę−
ści artykułu opisującego metody programi−
styczne stosowane przy tworzeniu software
dla minikomputera PECEL. Chciałbym
wreszcie teraz poruszyć sprawę komunika−
cji pomiędzy układami mikroprocesorowy−
mi, a komputerami klasy PC, a także pomię−
dzy dwoma minikomputerami. Zauważcie,
że w tym momencie otwiera się przed nami
zupełnie nowy obszar zastosowań naszego
minikomputera. Może on być samodziel−
nym systemem mikroprocesorowym równie
dobrze jak terminalem komputera, układem
współpracującym ściśle z PC. Więcej, jak
się w najbliższej przyszłości okaże, to kom−
puter może być niekiedy terminalem PE−
CEL−a, skwapliwie wykonując wysyłane
przez minikomputerek rozkazy. Mamy
przed sobą wręcz oszałamiające perspekty−
wy: będziemy mogli budować np. przyrządy
pomiarowe (pamiętajmy o ośmiu wejściach
analogowych procesora ‘8535) mogące pra−
cować jako samodzielne urządzenia, a także
jako terminale przekazujące komputerowi
PC dane do dalszej obróbki. Poruszymy sze−
rzej ten temat w dalszych częściach artyku−
łu, a jak na razie zapraszam Was do lektury
EP 9/01 i 10/01, gdzie opisano właśnie kon−
strukcję wielofunkcyjnego miernika często−
tliwości współpra−
cującego z kompu−
terem PC, zbudo−
wanego także
w oparciu o proce−
sor ‘8535.
To jednak je−
szcze nie wszystko:
za chwilę czeka
Was prawdziwa nie−
spodzianka, i to ta−
ka, o jakiej pewnie
nawet nie marzyli−
ście! Za moment
dostaniecie do ręki
wyjątkowo potężne
narzędzia progra−
mowe i sprzętowe,
które mogą uczynić
programowanie PE−
CEL−a nie tylko
dziecinnie łatwym
Cls
Lcd Key
End If
Loop
Jeżeli skompilujemy ten program i zapro−
gramujemy nim procesor, to po każdym naci−
śnięciu klawisza na wyświetlaczu LCD bę−
dzie ukazywał się jego kod, czyli wartość
całkowicie umowna. Ponadto z pewnością
zauważyliście już coś niepokojącego, coś co
w niektórych sytuacjach może spowodować,
że nasza klawiatura będzie miała nieco egzo−
tyczny rozkład przycisków. Otóż, okazało się
że kody naciskanych kolejno klawiszy ukła−
dają się w następujący sposób:
0 4812
1 5913
2 6 10 14
3 7 11 15
co w najmniejszym nawet stopniu nie odpo−
wiada ani napisom na płycie czołowej mini−
komputera, ani ogólnie przyjętym zasadom
konstruowania klawiatur numerycznych.
Czyżbym popełnił jakiś błąd? Na szczęście
wszystko jest w porządku. Przecież kody
odbierane z klawiatury są wartościami umow−
nymi i tylko od programu zależeć będzie,
w jaki sposób będą interpretowane. Rozkład
przycisków na klawiaturze został wymuszony
podczas projektowania płytki obwodu druko−
wanego, na której ze względu na chęć obniże−
nia kosztów liczył się każdy milimetr kwadra−
towy. Nie przywiązywałem najmniejszej wa−
gi do rozkładu klawiszy na płytce obwodu
drukowanego ponieważ metodami programi−
stycznymi można bez problemów zmienić
kody poszczególnych klawiszy. Przeróbmy
odrobinę napisany program:
Rys. 16
' ................................
Do
Key = 16
Key = Getkbd()
If Key < 16 Then
Key = Lookup(key ,
Keyboard_decoding)
Cls
Lcd Key
End If
Loop
' .................
Keyboard_decoding:
Data 7 , 4 , 1 , 0 , 8 , 5 , 2 , 10 , 9 , 6 , 3 , 11 , 15
, 14 , 13 , 12
20
Elektronika dla Wszystkich
Projekty AVT
teorii: praktyka, praktyka i jeszcze raz prak−
tyka! Dlatego też nie będziemy szczegółowo
opisywać budowy UART i zadowolimy się
jedynie pokazaniem na
rysunku 16
poglądo−
wego schematu, przedstawiającego jego licz−
niki i rejestry. Koledzy pragnący pogłębić
swoją wiedzę o UART znajdą wszelkie po−
trzebne dane w karcie katalogowej dowolne−
go procesora AVR (www.atmel.com), a my
będziemy traktować ten układ o dość skom−
plikowanej budowie jako małą „czarną
skrzynkę”, która po prostu wykonuje wyda−
wane w języku MCS BASIC polecenia.
Przekazywanie danych za pomocą łącza
szeregowego jest w przypadku procesorów
ATMEL−a szczególnie łatwa, a przy korzy−
staniu z pakietów BASCOM wręcz dziecin−
nie prosta. Oczywiście, zanim rozpocznie−
my transmitowanie danych musimy przygo−
tować odpowiednie środowisko sprzętowe,
a następnie poinstruować kompilator o na−
szych zamierzeniach. Środowisko sprzęto−
we już posiadamy: minikomputer PECEL,
komputer klasy PC oraz przygotowany
przed chwilą przewód, z pomocą którego
połączymy ze sobą obydwie maszyny. A za−
tem, bierzmy się za pisanie pierwszego
programu.
Najważniejszą sprawą, jaką musimy zała−
twić przed rozpoczęciem pracy nad każdym
programem wykorzystującym transmisję
RS232 jest prawidłowe określenie szybkości
przekazywania danych. Zaniedbanie tej
czynności bądź przeprowadzenie jej w nie−
właściwy sposób zawsze prowadzi do total−
nej katastrofy czyli niemożności nawiązania
kontaktu pomiędzy komputerami. Z listów
e−mail od Czytelników wiem, że właśnie nie−
prawidłowe zadeklarowanie szybkości trans−
misji lub nie podanie jej w ogóle jest najczę−
stszą przyczyną problemów pojawiających
się podczas uruchamiania programów wyko−
rzystujących łącze RS232.
Szybkość transmisji danych określana jest
za pomocą dyrektywy:
Kwarc
1000000Hz
4000000Hz
7372800Hz
8000000Hz
11059200Hz
Baudrate
2400
0.2%
0,2%
0,0%
0,2%
0,0%
4800
0,2%
0,2%
0,0%
0,2%
0,0%
9600
7,5%
0,2%
0,0%
0,2%
0,0%
14400
7,8%
2,1%
0,0%
0,8%
0,0%
19200
7,8%
0,2%
0,0%
0,2%
0,0%
28800
7,8%
3,7%
0,0%
2,1%
0,0%
38400
22,9%
7,5%
0,0%
0,2%
0,0%
57600
7,8%
7,8%
0,0%
3,7%
0,0%
76800
22,9%
7,8%
0,0%
7,5%
0,0%
115200
84,3%
7,8%
0,0%
7,8%
0,0%
$Baud= X [2400, 4800, 9600, 14400,
19200, 28800, 38400, 57600, 76800 lub
115200]
Tabela 1 Błąd częstotliwości w zależności
od częstotliwości kwarcu
generacji częstotliwości zegarowej UART
wynosi aż 7,8% co praktycznie uniemożliwia
prawidłowe przeprowadzenie transmisji da−
nych. Nie będziemy tu wdawać się w dość
skomplikowane obliczenia i badać jaką czę−
stotliwość zegarową UART możemy wyge−
nerować przy częstotliwości zegara systemo−
wego równej 8MHz. Nie obciążajmy się
zbytnio teorią, zainteresowanych odsyłam do
karty katalogowej dowolnego procesora
AVR, a my posłużmy się teraz gotową tabel−
ką, skopiowaną z takiej właśnie strony.
Z tabeli tej wynika niezbicie, że przy czę−
stotliwości zegara systemowego wynoszącej
8MHz nie uda nam się wygenerować więk−
szej szybkości transmisji RS232 niż 38400,
w ostateczności 57600Baud. Błąd generacji
częstotliwości nie większy niż 4% pozwala
jeszcze mieć nadzieję na prawidłową wymia−
nę danych. Jednak jest to zabieg dość ryzy−
kowny i lepiej pozostać przy mniejszej czę−
stotliwości, np. 19200Baud.
A zatem przeróbmy trochę nasz program
testowy, który będzie teraz wyglądał
następująco:
A więc, wydawało by się, że wszystko jest
bardzo proste: ustawiamy po prostu najwięk−
szą prędkość transmisji i przystępujemy do
pisania programu. No dobrze, możemy
spróbować, napiszmy sobie najprostszy pro−
gramik, którego zadaniem jest jedynie wysła−
nie prostego tekstu do komputera:
$crystal = 8000000
$baud = 115200
Print " PECEL wita Czytelników Elektroniki dla
Wszystkich!"
End
Wyjaśnieniem działania nowego polece−
nia PRINT zajmiemy się za chwilę, a teraz
zastanówmy się, czy ten program ma choćby
najmniejszą szansę na poprawne działanie.
Z góry mogę Wam powiedzieć, że nie ma!
Wyłączmy teraz na chwilę opcję „PRO−
GRAM AFTER COMPILE” z menu
OPTIONS\ENVIRONMENT i skompilujmy
napisany programik. Kompilacja programu,
w którym BASCOM nie znalazł błędu skła−
dni przebiegła, oczywiście prawidłowo, co
jednak nie oznacza że program będzie działa
poprawnie. Kliknijmy teraz na przycisk
PROGRAM, a następnie wybierzmy opcję
SHOW RESULTS, co spowoduje otworzenie
nowego okienka z całą kopal−
nią bezcennych informacji
o naszym programie (
rysu−
nek 17
). Później zajmiemy
się bardziej szczegółowym
ich opisem, a na razie zwróć−
my uwagę tylko na trzy linij−
ki wyświetlonego tekstu:
$crystal = 8000000
$baud = 19200
Do
Print " PECEL wita Czytelników Elektroniki dla
Wszystkich!"
Wait 1
Loop
End
Rys. 17
Raport wygenerowany przez BAS−
COM−a wygląda teraz także zupełnie ina−
czej: możemy mieć całkowitą pewność,
że transmisja danych będzie przebiegać
poprawnie.
BAUD : 115200 Baud
XTAL : 8000000 Hz
BAUD error : 7.84%
BAUD
: 19200 Baud
XTAL
: 8000000 Hz
Okazuje się, że przy czę−
stotliwości oscylatora syste−
mowego równej 8MHz, a taki
właśnie kwarc został dołączo−
ny do naszego PECEL−a błąd
BAUD error
: 0.16%
Nadszedł teraz doniosły moment przepro−
wadzenia pierwszego eksperymentu z trans−
misją danych z PECEL−a do komputera PC.
Elektronika dla Wszystkich
21
Projekty AVT
Możemy już zaprogramować procesor i... za−
miast podziwiać rezultaty naszej pracy wziąć
się za konfigurowanie środowiska programo−
wego odpowiedzialnego za porozumiewanie
się z PECEL−em.
Bardzo ważne jest prawidłowe ustawie−
nie szybkości transmisji w urządzeniu,
z którym procesor ma nawiązać łączność
.
Takim urządzeniem najczęściej będzie moni−
tor interfejsu szeregowego, najlepiej ten, który
został wbudowany w pakiety BASCOM. Po
raz kolejny możemy teraz przekonać się, jak
wspaniałym zestawem narzędzi jest nasz BA−
SCOM. W pakiecie tym zaszyte są bowiem
wszystkie funkcje pozwalające nie tylko na
monitorowanie portu RS232, ale i na dwukie−
runkowe przekazywani danych pomiędzy PC
a innym urządzeniem wyposażonym w port
komunikacyjny RS232. Monitor konfiguruje−
my po otwarciu okienka OPTIONS\COMMU−
NICATION, tak jak pokazano na
rysunku 18
.
Musimy także zawsze pamiętać, że po każ−
dej zmianie szybkości transmisji w ukła−
dzie, który ma współpracować z kompute−
rem musimy zmienić także ustawienia mo−
nitora obsługującego tę transmisję. Uwaga
ta dotyczy nie tylko monitora zawartego
w pakiecie BASCOM, ale także wszystkich
innych powszechnie stosowanych monito−
rów portów RS232
.
Oprócz szybkości transmisji musimy tak−
że określić, przez który port szeregowy ma
się ona odbywać. Oczywiście, musi to być
ten port, do którego nie jest podłączona my−
szka. W przypadku mojego komputera był to
port COM1. Pozostałe parametry w okienku
konfiguracyjnym pozostawiamy bez zmian,
tak jak jest to widoczne na rysunku 18.
Większość współcześnie użytkowanych
komputerów PC posiada „fabrycznie” zain−
stalowane dwa porty szeregowe: COM1
i COM2, i do jednego z nich jest na stałe do−
łączona myszka. Drugi port pozostaje najczę−
ściej niewykorzystany i do niego właśnie do−
łączymy przewód transmitujący dane do
i z PECEL−a. Jednak po uruchomieniu pro−
gramu monitora może się zdarzyć, że np. my−
szka umieszczona została w porcie COM1
i na ten sam port został skonfigurowany mo−
nitor. Taka sytuacja prowadzi do natychmia−
stowego zawieszenia pracy myszy, a my ma−
my wtedy dwa wyjścia z sytuacji. Możemy
przenieść myszkę do drugiego portu i po−
nownie uruchomić komputer, lub wykorzy−
stując tylko klawiaturę skonfigurować moni−
tor do śledzenia wolnego aktualnie portu.
Podsumujmy teraz wykonane czynności
i ich następstwa:
1. W procesorze minikomputera PECEL znaj−
duje się napisany przez nas programik wysy−
łający do komputera komunikat powitalny
2. Monitor portu szeregowego pakietu
BASCOM został odpowiednio skonfigu−
rowany, określona została szybkość trans−
misji numer wykorzystywanego do niej
portu COM.
A zatem nadeszła dawno oczekiwana
chwila! Klikamy na przycisk TOOLS i na−
stępnie wybieramy opcję TERMINAL EMU−
LATOR, lub po prostu naciskamy kombina−
cję klawiszy CTRL + T. Jeżeli wszystkie opi−
sane uprzednio czynności wykonaliśmy po−
prawnie, to nasze oczy powinien ucieszyć
widok pokazany na
rysunku 19
.
No i tak, Moi Drodzy, dokonaliśmy wiel−
kiej rzeczy! Jak wielkiej, pokaże najbliższa
przyszłość. W każdym razie jest to milowy
krok na drodze do budowy inteligentnego ter−
minala komputerowego o ogromnych możli−
wościach, jakim może stać się nasz PECEL.
Ciąg dalszy w następnym numerze EdW
Zbigniew Raabe,
zbigniew.raabe@edw.com.pl
Rys. 18
Rys. 19
UWAGA!
BARDZO WAŻNE!
Kilka dni temu stwierdziliśmy, że
w czasie procesu produkcyjnego
jednej z serii płytek obwodów
drukowanych do minikomputera
PECEL powstała przerwa w obwo−
dzie masy. Na szczęście wada ta
jest bardzo łatwa do naprawienia:
wystarczy połączyć za pomocą
odcinaka przewodu dwa punkty:
pin 6 złącza CON8 i pin 2 stabiliza−
tora napięcia IC4. Sposób wykona−
nia dodatkowego połączenia został
pokazany na rysunku.
22
Elektronika dla Wszystkich
Plik z chomika:
sq9nip
Inne pliki z tego folderu:
Pecel a może Big Bang cz.1.pdf
(733 KB)
mol_listingi.zip
(148 KB)
mol_inne.zip
(1551 KB)
Mikrokomputer Pecel z procesorem AT90S8535 cz.4.pdf
(431 KB)
Mikrokomputer Pecel z procesorem AT90S8535 cz.3.pdf
(708 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin