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
152723952.050.png 152723952.061.png 152723952.072.png 152723952.083.png 152723952.001.png 152723952.002.png 152723952.003.png
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
152723952.004.png 152723952.005.png
 
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
152723952.006.png 152723952.007.png 152723952.008.png 152723952.009.png 152723952.010.png 152723952.011.png 152723952.012.png 152723952.013.png 152723952.014.png 152723952.015.png 152723952.016.png 152723952.017.png 152723952.018.png 152723952.019.png 152723952.020.png 152723952.021.png 152723952.022.png 152723952.023.png 152723952.024.png 152723952.025.png 152723952.026.png
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
152723952.027.png 152723952.028.png 152723952.029.png 152723952.030.png
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
152723952.031.png 152723952.032.png 152723952.033.png 152723952.034.png 152723952.035.png 152723952.036.png 152723952.037.png 152723952.038.png 152723952.039.png 152723952.040.png 152723952.041.png 152723952.042.png 152723952.043.png 152723952.044.png 152723952.045.png 152723952.046.png 152723952.047.png 152723952.048.png 152723952.049.png 152723952.051.png 152723952.052.png 152723952.053.png 152723952.054.png 152723952.055.png 152723952.056.png 152723952.057.png 152723952.058.png 152723952.059.png 152723952.060.png 152723952.062.png 152723952.063.png 152723952.064.png 152723952.065.png 152723952.066.png 152723952.067.png 152723952.068.png 152723952.069.png 152723952.070.png 152723952.071.png 152723952.073.png 152723952.074.png 152723952.075.png 152723952.076.png 152723952.077.png 152723952.078.png 152723952.079.png 152723952.080.png 152723952.081.png 152723952.082.png 152723952.084.png
Zgłoś jeśli naruszono regulamin