You are on page 1of 21

++

Pecel
Big Bang?

Projekty AVT

a moe

Od redakcji:
Tego artykuu nie wolno przeoczy.
To absolutnie najwiksze wydarzenie
na amach EdW w 2001 roku. W roku
2000 uczylimy si BASCOMa,
a w tym roku naturaln tego konse
kwencj jest opracowanie mikrokom
putera, stanowicego samodzielne urz
dzenie wyposaone we wszystkie ele
menty bdce skadnikami "duych"
komputerw. Posiada on monitor, kla
wiatur, wszystkie stosowane w mini
komputerach rodzaje pamici, kilka po
rtw do komunikowania si z otocze
niem (I2C, 1WIRE i RS232) oraz to co
chyba najwaniejsze: moliwo rozbu
dowywania systemu tak, jak to ma
miejsce w komputerach klasy PC.
Oto przedstawiamy taki mikrokom
puter. Od dzi, jeli bdziesz potrzebo
wa wyposay konstruowane przez
Ciebie urzdzenie w tak zwan inteli
gencj masz gotowe rozwizanie. Nie
zrobisz tego lepiej i prociej, ni progra
mujc przy pomocy BASCOMa nasz
minikomputer. Jest to minikomputer
osobisty kadego elektronika, dlatego
nazwalimy go Pecel (Personal Compu
ter for Electronicians). Kto zacz te
w redakcji lansowa nazw "Big
Bang", wyraajc z pewn, przyznaj
my, egzaltacj przekonanie, e ten mi
nikomputer otwiera now epok w kon
strukcjach elektronicznych. Jako trzeba
ten komputer nazwa, wic chwilowo
pozostalimy przy nazwie Pecel, ale za
praszamy wszystkich Czytelnikw EdW
do zgaszania wasnych propozycji
w konkursie na najlepsz nazw tego
minikomputera.

Elektronika dla Wszystkich

2550

cz 1
Chciabym zaproponowa Czytelnikom Elek
troniki dla Wszystkich budow komputera. No
moe troch przesadziem: nie komputera, ale
mikrokomputera, ktry jednak bdzie posiada
wszystkie elementy waciwe dla duych
maszyn, z komputerami klasy PC wcznie.
Budowanie minikomputerw ma ju na a
mach EdW pewne tradycje. Przebojem wrd
kitw AVT by przez wiele lat i jest nim nadal
synny Komputer Edukacyjny, skonstruowa
ny przez Sawka Surowiskiego. Maszyna ta
umoliwia nam pierwszy kontakt z technik
mikroprocesorow i trudno byoby policzy,
ilu z Was zapoznao si dziki temu ukadowi
z programowaniem procesorw w jzyku
asemblera. Komputer AVT2250 jest ukadem
typowo edukacyjnym i eksperymentalnym,
chocia istnieje take moliwo zastosowa
nia go do celw praktycznych. Natomiast
proponowany przeze mnie ukad ma by
przede wszystkim urzdzeniem o rozlicznych
zastosowaniach praktycznych, a jego walory
edukacyjne wynikaj z samych zaoe kon
strukcyjnych, narzucajcych uytkownikowi
konieczno samodzielnego napisania pro
gramu sterujcego mikrokomputerem.
W odrnieniu od poprzednio budowa
nych minikomputerw i pyt testowych (np.
AVT2500) nasz nowy minikomputer jest
urzdzeniem w peni funkcjonalnym, posia
dajcym wyjtkowo zwart budow, a nawet
polecan mu pyt czoow wyposaon
w stosowne napisy. Elementami decydujcy
mi o wymiarach urzdzenia by wywietlacz
alfanumeryczny i klawiatura, tak wic wy
miary minikomputera niewiele wykraczaj
poza obrys wywietlacza.

Sercem naszego mikrokomputera jest no


woczesny, wykonany w technologii RISC,
bardzo szybki i wyposaony w wielk liczb
funkcji dodatkowych procesor typu
AT90S8535. Oceniam, cho moe to by
ocena nieco subiektywna, e procesor ten na
ley do najlepszych w swojej klasie, a relacja
pomidzy jego moliwociami i cen przed
stawia si wyjtkowo korzystnie. Ju sam
fakt umieszczenia w strukturze procesora
nieulotnej pamici danych EEPROM, omiu
przetwornikw analogowocyfrowych czy
zegara czasu rzeczywistego, co zwalnia nas
z koniecznoci stosowania wielu elementw
zewntrznych, przesdza o celowoci zasto
sowania wanie tego typu procesora.
Jest jeszcze jeden powd, dla ktrego
AT90S8535 doskonale nadaje si do prac
hobbystycznych: znaczny obszar pamici
programu, jaki mamy do dyspozycji i ogrom
na atwo jej programowania. W strukturze
tego procesora znalazo si miejsce na 8kB
pamici EEPROM. Jest to ogromny obszar
pamici i zrczny programista potrafi na tym

13

Projekty AVT
procesorze zrealizowa prawdziwe cuda.
Niestety, nie wszyscy jestemy wykwalifiko
wanymi programistami i taka pojemno pa
mici programu to prawdziwy dar niebios
take dla pocztkujcych. Uwalnia to ich bo
wiem od ustawicznych stresw zwizanych
z przekroczeniem rozmiaru programu prze
znaczonego do umieszczenia w procesorze
z 2, czy nawet 4kB EEPROMem.
Wszystkie procesory AVR, w tym oczy
wicie nasz 8583 mog by programowane
w jzyku MCS BASIC, zaimplementowa
nym w pakiecie BASCOM AVR, bracie bli
niaku znanego nam BASCOMa 8051.
Dialekt MCS BASIC stosowany w pakiecie
BASCOM AVR praktycznie nie rni si od
jzyka stosowanego w BASCOMie 8051.
Rnice wynikaj gwnie z odmiennego na
zewnictwa wyprowadze procesora i znacz
nie bogatszego zestawu funkcji zaszytych
w strukturach procesorw AVR.
Doszlimy w tym momencie do jeszcze
jednego powodu, ktry wpyn na decyzj
o wyborze typu procesora zastosowanego
w naszym minikomputerze. Pakiet BASCOM
AVR sta si ostatnio okrtem flagowym
firmy MCS Electronics, co oczywicie nie
oznacza, e zaprzestano prac nad doskonale
niem BASCOMa 8051. Mona powiedzie,
e Mark doprowadzi do perfekcji swoj ide:
Co tu wymyli, aby inni nie musieli my
le?. Opracowane ostatnio najnowsze pole
cenia jzyka MCS BASIC dla procesorw
AVR sprowadzaj wiele trudnych problemw
programistycznych, nad ktrymi ja sam prze
siedziaem kilka nocy, do wydania jednego

14

polecenia systemowego. W dalszej czci


opisu minikomputerka zapoznamy si z naj
nowszymi fajerwerkami, za pomoc
ktrych nawet bardzo skomplikowany pro
gram mona napisa w cigu kilku minut.
Z pewnoci wielu z Was z niepokojem
myli ju o jednej, niesychanie wanej pod
czas tworzenia systemu mikroprocesorowego
sprawie: o programowaniu procesora. By
moe napisanie programu jest spraw prost,
ale jak wprowadzi go do pamici CPU? Pro
gramatory procesorw s z zasady urzdze
niami bardzo skomplikowanymi i kosztow
nymi i co nam przyjdzie z posiadania mini
komputera i napisanego dla niego programu,
jeeli nie bdziemy mieli moliwoci wpro
wadzenia go do pamici procesora? Bardzo
si mylicie, Moi Drodzy! Programator proce
sorw AVR, w tym procesora 90S8535, jest
urzdzeniem banalnie prostym i skadajcym
si tylko z jednego standardowego ukadu
TTL! Powiem wicej: mona w ogle oby
si bez programatora podczajc interfejs
SPI umieszczony w strukturze procesora bez
porednio do portu drukarkowego! Jest to
jednak rozwizanie awaryjne i na co dzie
bdziemy si posugiwa prostym programa
torkiem, ktrego pytka PCB mieszczca si
we wntrzu typowej obudowy wtyku drukar
kowego bdzie doczana za darmo do kitu
minikomputera.
Bez najmniejszej przesady mog stwier
dzi, e dysponujc naszym komputerkiem
i niekiedy jednym czy dwoma opracowanymi
dla niego urzdzeniami dodatkowymi, b
dziemy mogli zbudowa KADY system

mikroprocesorowy, jaki tylko przyjdzie


nam do gowy. Jeeli nawet napotkamy pro
blemy zwizane z ograniczeniami sprzto
wymi, jakie istniej w kadym bez wyjtku
komputerze czy minikomputerze, to od cze
go bogowie dali nam rce i gow? Jeeli za
tem zajdzie rzeczywista potrzeba, to zbudo
wane zostan nowe karty, rozszerzajce i tak
ju bogate moliwoci minikomputera.
Chciabym jeszcze powrci do jednej,
uprzednio poruszonej oglnikowo sprawy:
wartoci edukacyjnej proponowanego uka
du. Chciabym, a mam nadziej, e Czytelni
cy zgodz si ze mn, aby opis minikompu
tera by w jakim sensie kontynuacj kursu
BASCOM College. Wykady BASCOM Col
lege zakoczyy si do szybko. Wiele cie
kawych problemw zwizanych z programo
waniem procesorw nie zostao nawet zasy
gnalizowanych, nie mwic nawet o ich do
kadnym omwieniu. Mog tu przykadowo
wymieni sprawy zwizane z transmisj da
nych pomidzy komputerem a procesorem,
wykorzystujc interfejs RS232, o ktrej
opis domagao si wielu Czytelnikw. Nada
rza si zatem dokonaa okazja, aby dysponu
jc odpowiednim hardware (pytka AVT
2500 nie miaa urzdze sprztowych nie
zbdnych do przeprowadzenia transmisji
RS232) opisa dokadnie t i inne sprawy.
Kurs BASCOM College zakoczy si ju
dawno, kilka miesicy temu, a przy tempie
rozwoju oprogramowania oferowanego przez
MCS Electronics jest to caa epoka. Podam
Rys. 1 Schemat ideowy

Elektronika dla Wszystkich

Projekty AVT
Wam tylko jeden przykad: na jednym z wy
kadw BC opisywalimy metody odczyty
wania numerw seryjnych i zawartoci reje
strw ukadw 1WIRE produkowanych
przez firm DALLAS. Przerobilimy tylko
proste przykady, a ja sam nie wiedziaem,
jak np. odczyta numery wielu ukadw
1WIRE jednoczenie doczonych do tej sa
mej linii. Wiedziaem tylko, e da si to zro
bi, ale e sprawa jest do skomplikowana
i e ju kilku dobrych programistw poama
o sobie na tym zby. A jak ten problem wy
glda w czerwcu 2001, kiedy pisz ten arty
ku? Mark sprowadzi go do kilku prostych
polece, ktre zastosowa potrafi nawet po
cztkujcy programista:
var = 1WIRECOUNT( ) podaj liczb ukadw 1WIRE
doczonych do magistrali
var = 1WSEARCHFIRST( )

podaj numer
seryjny pierwszego ukadu

var = 1WSEARCHNEXT( )

podaj numery

seryjne dowolnej liczby ukadw

Czego waciwie bdziemy potrzebowa,


aby rozpocz korzystanie z naszego mini
komputera? Baza sprztowa i programowa s
w kocu nieraz rzeczami najwaniejszymi,
poniewa decyduj o kosztach, jakie bdzie
my musieli ponie przed rozpoczciem pracy
i nauki. Na szczcie sprzt, jakiego bdziemy
potrzebowa, nie jest ani bardziej skompliko
wany, ani kosztowny od wyposaania, ktre
musielimy mie do dyspozycji podczas prze
rabiania programu BASCOM College.
1. Komputer klasy PC. Nie musi to by
wcale jednostka z PENTIUM taktowanym
zegarem 1GHz, ale jakikolwiek komputer, na
ktrym mona uruchomi system WIN
DOWS95/98/NT/2000. A zatem, w skrajnym
przypadku moemy si zadowoli nawet ma
szyn z procesorem PENTIUM I! Oczywi
cie, jest to absolutne minimum, ale wyma
gania BASCOMa s tak niewielkie, e
w ostatecznoci moemy posuy si nawet
takim muzealnym zabytkiem.
2. Programator procesorw AVR. Schemat
tego programatora zostanie pokazany w
dalszej czci artykuu. Jak ju wspominaem,
jest to ukad wrcz miesznie prosty i tani.
3. Kabelek do programatora, czyli zwyky
kabel paski zakoczony dwoma zaciskany
mi wtykami 10 pin.
4. Bardzo przydatny moe okaza si je
szcze jeden kabelek. Taki niezbyt dugi, 1 ...
2mb, z trzema przewodami i zakoczony
eskim wtykiem DB9. Umoliwi on komu
nikacj pomidzy naszym komputerkiem
a maszyn klasy PC. Komunikacja ta bdzie
odbywa si poprzez cze RS232, a jak bar
dzo moe okaza si uyteczna take pod
czas pisania i testowania programw, dowie
cie si w dalszej czci tego artykuu.
5. No i wreszcie najwaniejsze: software!
Potrzebny Wam bdzie pakiet BASCOM

Elektronika dla Wszystkich

AVR, brat bliniak dobrze Wam ju znanego


BASCOMa 8051. Na pocztek wystarczy
BASCOM AVR Demo, ktrego moliwoci
w obecnej chwili nie ustpuj moliwociom
jego wersji komercyjnej. Nawet ograniczenie
dugoci kodu wynikowego zostao ostatnio
zmniejszone i wynosi obecnie 2kB. Niestety,
jest to za mao dla penego wykorzystania
moliwoci procesora 8535 i dlatego
w przyszoci bdziecie musieli pomyle
o zakupie wersji komercyjnej. Jej cena wyno
si niezmiennie 69USD + koszta, czyli przy
zakupie bezporednio w MCS Electronics
okoo 85USD. Nie jest to mao, ale cena BA
SCOMa w relacji do jego moliwoci jest po
prostu rewelacyjnie niska! Sprawdcie, ile
kosztuj inne kompilatory, np. Keil! A prze
cie BASCOM jest nie tylko kompilatorem,
ale caym, potnym zestawem narzdzio
wym. Pakiet BASCOM AVR DEMO jest do
stpny za darmo na stronie internetowej
EdW. Zosta on take umieszczony na pycie
CDEP wrzeniowej Elektroniki Praktycznej.
Zajmijmy si teraz dalszymi konkretami,
czyli moliwociami oferowanymi przez mi
nikomputer.
Funkcje mikrokomputera reali
zowane bezporednio przez pro
cesor AT90S8535:
- Wewntrzna pami programu o pojem
noci 8kB. Porwnujc nasz mikrokompute
rek z maszynami klasy PC, jest to nic, ale dla
systemu mikroprocesorowego, ktrym
w istocie jest nasz ukad taka ilo pamici to
prawie nieograniczone moliwoci rozbudo
wy programu. Przypomnijcie sobie, ile cieka
wych ukadw zaprojektowalimy wykorzy
stujc procesory z 2kB pamici (AT89C2051
czy AT90S2313), i wyobracie sobie, co
mona zdziaa majc do dyspozycji a taki
obszar pamici.
Wewntrzna nieulotna pami danych
EEPROM o pojemnoci 512B, ktra w wik
szoci przypadkw pozwala na rezygnacj ze
stosowania pamici zewntrznych, prawie
zawsze dodawanych do ukadw z proceso
rami 2051. W pamici tej moemy zapisa
512 bajtw, czyli np. 512 rnych liczb.
W dalszej czci tego artykuu dowiecie si,
e procedura zapisu i odczytu danych z EE
PROMa jest banalnie prosta i sprowadza si
do wydania tylko jednego polecenia.
Wewntrzna pami danych SRAM
o pojemnoci take 512B. Napisaem napraw
d sporo bardzo rozbudowanych programw
na ten procesor, ale jeszcze nigdy nie udao
mi si zapeni tej pamici nawet w poowie.
omiokrotny 10bitowy przetwornik ana
logowocyfrowy. Przetwornik korzysta z ze
wntrznego rda napicia odniesienia, rw
nego lub mniejszego od napicia zasilania.
A zatem, wszelkie operacje zwizane z po
miarem wartoci analogowych za pomoc na
szego komputera bd wymagay w najgor

szym wypadku tylko tego jednego elementu


zewntrznego, a pomiarw bdziemy mogli
dokonywa a w omiu punktach jednocze
nie. Dokadno pomiarw jest w wikszoci
przypadkw a nadto wystarczajca. Dla
przykadu: dokonujc pomiaru w zakresie do
5V dysponujemy rozdzielczoci 4,8mV.
sprztowy UART, czyli ukad umoli
wiajcy transmisj danych z wykorzystaniem
protokou RS232. A wic, nasz mikrokompu
ter moe bezporednio porozumiewa si
z duymi maszynami klasy PC, a take z ka
dym innym komputerem lub systemem mi
kroprocesorowym wyposaonym w interfejs
RS232. UART umieszczony w strukturze
procesora wspomagany jest sprztowo przez
dodatkowy hardware umieszczony na pycie
gwnej naszego mikrokomputera.
RTC zegar czasu rzeczywistego, a wa
ciwie osobny oscylator + timer, ktry z ze
wntrznym kwarcem 32768Hz automatycz
nie generuje przerwania co 1 sekund. Zegar
czasu rzeczywistego otrzyma ostatnio pot
ne wsparcie softwareowe w jzyku MCS
BASIC. Czy wiecie, jak teraz wyglda pro
gramowa konstrukcja zegara, pokazujcego
aktualny czas i dat? Ano, tak: LCD TIME$
i LCD DATE$. To wszystko.
Trzy sprztowe timery, w tym jeden (Ti
mer2) mogcy wsppracowa z dodatko
wym zewntrznym rezonatorem kwarco
wym. Ten wanie timer wykorzystywany
jest do realizacji funkcji zegara czasu rzeczy
wistego. Wszystkie timery s wyposaone
w bardzo rozbudowane funkcje, takie jak
preskalery, sprztow generacj PWM i inne.
Dwa zewntrzne rda przerwa sprz
towych: INT0 i INT1
Wbudowany sprztowy interfejs SPI.
Jest to jedna z najwikszych zalet procesora
8535. Interfejs SPI umoliwia nie tylko ko
munikacj z innymi ukadami i systemami
mikroprocesorowymi, ale take programo
wanie procesora bez koniecznoci wyjmo
wania go z podstawki. Do zcza CON8
umieszczonego na pycie gwnej mikro
komputera moemy doczy prosty progra
mator ISP (In System Programming) i po na
pisaniu programu bd jego fragmentu wpro
wadzi go do pamici procesora naciskajc
tylko jeden klawisz. Programowanie w syste
mie nie tylko znakomicie upraszcza i przy
spiesza prac nad nowym programem, ale
take eliminuje ryzyko uszkodzenia wypro
wadze procesora podczas czstego wyjmo
wania i wkadania go w podstawk.
Sprztowy watchdog, czyli dodatkowy,
wyspecjalizowany timer skutecznie zabez
pieczajcy procesor przed zawieszeniem
si na przykad na skutek wystpienia sil
nych zakce zewntrznych.
Funkcje mikrokomputera realizo
wane przy wsppracy z hardware
umieszczonym na pycie gwnej:

15

Projekty AVT
Wywietlacz alfanumeryczny LCD. Ele
ment ten jest podstawowym ukadem su
cym przekazywaniu informacji opracowanej
przez komputer i przetumaczonej na ludz
ki jzyk cyfr, liter i znakw specjalnych.
W mikrokomputerze mona zastosowa, za
lenie od potrzeb i moliwoci finansowych
wywietlacz 16*1 lub 16*2 znaki, z podwie
tlaniem lub bez.
Klawiatura szesnastoprzyciskowa. Kla
wiatura ta, zbudowana z tanich i atwych do
nabycia przyciskw, po odpowiednim opro
gramowaniu umoliwia wprowadzanie do
komputera nie tylko liczb, ale take wszyst
kich znakw alfanumerycznych. Programo
wa obsuga klawiatury zostanie szczegowo
omwiona w dalszej czci artykuu, ale ju
teraz mog Wam powiedzie, e sprowadza
si ona do jednego polecenia jzyka MCS
BASIC: GETKBD! Tym Czytelnikom,
ktrym nie wystarczy taka prosta klawiatura
i ktrzy chcieliby wprowadza do minikom
putera dane za pomoc typowej konsoli od
PC, mog ju teraz powiedzie, e docze
nie takiej klawiatury do naszego ukadu jest
spraw banalnie prost, a wprowadzanie
z niej danych odbywa si przy pomocy tylko
jednego polecenia programowego.
Magistrala I2C jest jednym z najwa
niejszych elementw naszego mikrokompu
tera, ktry umoliwia praktycznie nieograni
czon rozbudow systemu. Wikszo uka
dw peryferyjnych opracowanych dla mi
krokomputera sterowana jest poprzez magi
stral I2C, a ponadto do dyspozycji bdziemy
mieli take ogromn ilo moduw I2C spe
niajcych najrniejsze funkcje, ktrych
opisy zostay opublikowane w Elektronice
Praktycznej.
Magistrala 1WIRE obsugujca ukady
opracowane przez firm DALLAS, w tym
termometry cyfrowe, przeczniki i oczywi
cie magiczne tabletki z serii iBUTTON.
Modu odbiornika kodu RC5 lub innego
transmitowanego w podczerwieni, z non
o czstotliwoci zblionej do 36kHz. Modu
ten moe okaza si uyteczny nie tylko do
odbierania informacji z pilota od sprztu
RTV, ale i do komunikowania si z innymi
procesorami lub wspomnianym sprztem. Po
opracowaniu przez MCS Electronics polece
nia SENDRC5 generowanie kodu sterowania
na zakresie podczerwieni stao si naprawd
banalnie proste, podobnie jak generacja kodu
DTMF (DTMFOUT), wykorzystywanego
w telefonii.
Bezporednie sterowanie odbiornikami
prdu staego umoliwia umieszczony na
pycie gwnej mikrokomputera ukad typu
ULN2003, zawierajcy w swojej strukturze
siedem driverw mocy, o maksymalnym pr
dzie do 500mA kady. Z wyj tych driverw
moemy bezporednio sterowa silniczkami
elektrycznymi DC, w tym czterofazowymi
silnikami krokowymi, przekanikami, elek

16

tromagnesami, a take arwkami na napi


cie 12V i girlandami diod wietlnych.
Jednym z najwaniejszych ukadw
umoliwiajcych komunikacj komputerka
z innymi urzdzeniami elektronicznymi jest
peny interfejs RS232 zrealizowany na popu
larnym ukadzie MAX232. Za pomoc tego
ukadu, wspieranego przez sprztowy UART
wbudowany
w
struktur
procesora
AT90S8535, moemy nawiza czno
z dowolnym komputerem wyposaonym
w interfejs RS232 (czyli z kad maszyn
klasy PC) lub innym urzdzeniem elektro
nicznym.
Na pycie gwnej zosta take umie
szczony dodatkowy rezonator kwarcowy
o czstotliwoci podstawowej 32768Hz, czy
li popularny kwarc zegarkowy. Element
ten umoliwia uruchomienie wewntrznego
sprztowego generatora czasu rzeczywiste
go, bloku wrcz bezcennego nie tylko dla
konstruktorw zegarw, ale take innych
urzdze wymagajcych pomiaru czasu,
w tym miernikw czstotliwoci.
Jak ju wiemy, procesor AT90S8535 zo
sta wyposaony w wewntrzny omiokana
owy przetwornik analogowocyfrowy o roz
dzielczoci 10 bitw. Niewiele jest on jednak
wart bez zewntrznego, wysokostabilnego
rda napicia odniesienia, ktre na szcz
cie zostao umieszczone na pycie gwnej.
Jako rdo napicia odniesienia 2,5V zosta
zastosowany ukad LM385.
Kady, kto choby troch zapozna si
z zasadami konstruowania ukadw zrealizo
wanych w technice mikroprocesorowej, wie,
jakie znaczenia ma prawidowy start proce
sora po wczeniu zasilania. Zamontowany
na pytce reset sprztowy typu DS1813 nie
tylko zapewnia waciwe warunki startu pro
cesora, ale take nadzoruje poziom napicia
zasilajcego. Spadek tego napicia poniej
poziomu dopuszczalnego dla procesora
AT90S8535 mgby, w przypadku dalszej
pracy procesora, mie nieobliczalne nastp
stwa, polegajce gwnie na uszkodzeniu za
wartoci pamici danych EEPROM.
Wiem, e bardzo lubicie konstruowa
zegary. Nasz minikomputer daje w tym za
kresie ogromne, wrcz nieograniczone mo
liwoci. Moecie zbudowa zarwno prosty
zegarek, jak i bardzo rozbudowane ukady
nadzorujce w funkcji czasu dziesitki urz
dze peryferyjnych. Tylko e dokadno ta
kiego zegara bdzie taka, jaka bdzie dokad
no zastosowanego w nim rezonatora kwar
cowego 32768Hz, czyli niekiedy niezbyt
wielka. A co powiecie, Moi Drodzy, na zegar,
ktrego dokadno bdzie wynosi 1 sekun
d na ... pi milionw lat? Taki wanie ze
gar lub sterownik pracujcy z absolutn
z ludzkiego punktu widzenia precyzj, b
dziecie mogli zbudowa, wykorzystujc do
datkowe elementy umieszczone na pytce mi
nikomputera oraz zewntrzny odbiorniczek

radiowy. Reszta to tylko kilkanacie, no, po


wiedzmy, kilkadziesit linijek programu, do
kadnie omwionego w dalszych czciach
tego artykuu.
Z przyczyn, o ktrych wspomnimy
w dalszej czci artykuu, procesor sterujcy
prac naszego minikomputerka zasilany jest
napiciem obnionym o 0,6V w stosunku do
napicia zasilajcego reszt ukadu
(+5VDC). Obnienie napicia zostao zreali
zowane za pomoc diody krzemowej, ktra
jednoczenie separuje zasilanie procesora od
reszty ukadu. Nic wic prostszego, aby do
dajc dodatkowa diod i zcze umoliwi
sobie awaryjne zasilanie samego tylko proce
sora z dodatkowego rda, np. baterii 4,5V.
Procesor pobiera znikomo may prd, szcze
glnie po wprowadzeniu go w stan IDLE lub
POWER DOWN i takie rozwizanie moe
by niezwykle cenne np. w konstrukcjach ze
garw.
Funkcje mikrokomputera reali
zowane za pomoc specjalnie dla
niego opracowanego, dodatkowe
go sprztu.
Na pycie gwnej naszego mikrokom
putera zostay umieszczone drivery mocy
umoliwiajce sterowanie odbiornikami pr
du staego, o poborze prdu nie przekraczaj
cym 500mA. Nie jest to zbyt wiele i dlatego
zaprojektowana zostaa oddzielna karta roz
szerzajca, na ktrej mona umieci do 8
przekanikw typu RM86. Kady z nich po
siada dwie pary przeczanych stykw o ob
cialnoci prdowej do 8A. Karta moe su
y do zasilania urzdze prdem staym lub
przemiennym o napiciu do 250VAC.
Komputer bez karty dwikowej? To
chyba niemoliwe i dlatego nasz ukad zosta
wyposaony w kart, na ktrej umieszczony
zosta dobrze wszystkim znany silikofon,
czyli ISD25120. Karta sterowana jest za po
moc magistrali I2C i umoliwia nagrywanie
i odtwarzanie sekwencji akustycznych
o cznym czasie trwania do 2 minut. Naley
sdzi, e karta ta okae si bardzo uytecz
na dla konstruktorw, ktrzy zajm si kon
struowaniem mwicych zegarw czy in
nych ukadw domowej automatyki.
W praktyce konstruktora hobbysty bar
dzo czsto spotykamy si z koniecznoci
oywiania wykonanych konstrukcji i do te
go celu najczciej wykorzystujemy silniki
elektryczne rnych typw. Silniki prdu sta
ego o maej mocy moemy sterowa bezpo
rednio z pyty gwnej mikrokomputera, ale
ograniczeniem jest tu pobierany z niej maksy
malny prd i napicie. Ponadto, do sterowania
np. krokowym silnikiem czterofazowym nie
zbdne byoby wykorzystanie a czterech
wyj procesora, a sterowanie silnikami
krokowymi dwufazowymi jest w ogle nie
moliwe. Dlatego te zosta zaprojektowany
dodatkowy modu rozszerzajcy moliwoci

Elektronika dla Wszystkich

Projekty AVT
komputera, sterowany magistral I2C, za po
moc ktrego moemy zasila:
Dwa silniki krokowe dwufazowe,
Dwa silniki krokowe czterofazowe,
Cztery silniki komutatorowe DC z moliwo
ci zmiany kierunku i prdkoci obrotowej,
Osiem silnikw DC bez moliwoci zmia
ny kierunku obrotw lub osiem dowolnych
urzdze zasilanych prdem staym o napi
ciu do 35V i pobieranym prdzie nie wik
szym ni 500mA.
Jak wiadomo, apetyt ronie w miar je
dzenia. Procesor AT90S8535 to potna jed
nostka, o ogromnych moliwociach i obszer
nej pamici programu. Jednak nie zdziwi
bym si, gdyby bardziej ambitnym Konstruk
torom nawet jego moliwoci pewnego dnia
przestay wystarcza i okazaoby si np., e
napisany skomplikowany program wykracza
swoimi rozmiarami ponad 8kB kodu wyniko
wego. Dla tych Konstruktorw przygotowa
em chyba mi niespodziank: co powiecie
na procesor o pamici programu ... 128kB,
szeciu portach wejciowowyjciowych,
4kB pamici EEPROM i 4kB pamici
SRAM? Procesorem tym jest kolejny produkt
firmy ATMEL: AT MEGA103. Jednak umie
szczenie tego procesora w podstawce na py
cie gwnej naszego mikrokomputera jest ab
solutnie niemoliwe, i to z dwch powodw:
posiada on a 64 wyprowadzenia i produko
wany jest wycznie w obudowie przeznaczo
nej do montau SMD. Jednak nie takie trud
noci ju przezwycialimy: zaprojektowa
em dla Was specjaln kart rozszerzajc,
doczan do podstawki procesora na pycie
gwnej mikrokomputera. Na karcie tej umie
szczony zostanie procesor AT MEGA103
i zcza do dwch dodatkowych portw.

Programowanie
minikomputera
Nasz minikomputer bez sterujcego nim
programu moe by co najwyej niezbyt
efektown ozdob na biurko. Program mo
na napisa w dowolnym jzyku posiadaj
cym kompilator umoliwiajcy utworzenie
kodu binarnego przeznaczonego do umie
szczenia w pamici procesora AVR. Szcze
glnie jednak polecam pakiet BASCOM
AVR, ze wzgldu na atwo programowania
i ogromny komfort pracy. Napisany program
musi oczywicie zosta umieszczony w pa
mici procesora i do tego celu potrzebny b
dzie programator obsugujcy transmisj SPI
i umoliwiajcy zaprogramowanie procesora
bez koniecznoci wyjmowania go z pod
stawki. Na szczcie, w przeciwiestwie do
programatorw rwnolegych taki progra
mator jest urzdzeniem wrcz miesznie
prostym i tanim. Do naszego minikomputera
zosta opracowany specjalny programator
(rysunek 2), zrealizowany z wykorzysta
niem zaledwie jednego ukadu scalonego
z rodziny TTLLS, mieszczcy si w typowej

Elektronika dla Wszystkich

obudowie wtyku DB25. Pytka tego pro


gramatora bdzie za darmo dodawana do
kitu minikomputera. W dalszej czci arty
kuu podane zostan liczne przykady pro
gramowana w MCS BASIC, dialekcie prze
znaczonym dla procesorw AVR.
Co jednak maj czyni ci Koledzy,
ktrzy nie posiedli jeszcze umiejtnoci pro
gramistycznych w stopniu wystarczajcym
do napisania do skomplikowanego progra
mu? Dla nich przygotowywana jest specjalna
niespodzianka: ot w kicie nie bdzie, jak
mona by si byo spodziewa, dostarczany
czysty procesor, ale zaprogramowany ukad
umoliwiajcy natychmiastowe korzystanie
z minikomputerka. Jakie funkcje bdzie wy
konywa ten fabryczny minikomputer do
wiecie si w dalszej czci artykuu. Wane
jest jedno: jeeli jego funkcje przestan Wam
wystarcza albo jeeli bdziecie chcieli stwo
rzy zupenie nowe urzdzenie, to sterujcy
nim program nie bdzie w aden sposb za
bezpieczony przed kopiowaniem i zawsze
bdziecie mogli zapisa go na dysku, zapro
gramowa procesor po swojemu i w dowol
nym momencie powrci do fabrycznego
programu. Program, ktry dla Was napisaem
(jego funkcje s jeszcze niespodziank) jest
bardzo, ale to bardzo rozbudowany i zajmuje
praktycznie ca pami EEPROM. Mogoby
to wywoa obawy, e posiadacze wersji De
mo BASCOMa AVR nie bd mogli skopio
wa go na dysk i ponownie zaprogramowa
nim procesora. Na szczcie takie obawy by
yby absolutnie bezzasadne: ograniczenia
dugoci kodu wynikowego wystpujce
w wersji Demo dotycz wycznie samej
kompilacji programu, a nie operacji na ju
skompilowanych plikach.
W dalszej czci artykuu omwimy
szczegowo wszystkie waniejsze polecenia
jzyka MCS BASIC, specyficzne dla proce
sorw AVR i nie omawiane podczas kursu
BASCOM College.

Jak to dziaa?
Podobnie jak pytka testowa uywana pod
czas kursu BACOM College w ogle nie
dziaa i dziaa bdzie dopiero po zaprogra
mowaniu procesora, czy to programem napi
sanym samodzielnie, czy programem fa
brycznym, zaszytym w procesorze dostar
czonym w kicie. Jednak dziaanie tego pro
gramu omwimy pniej, a na razie zajmie
my si opisem hardware pokazanego na
schemacie. A zatem, zmieniamy tytu tego
fragmentu artykuu na:

Z czego to si skada?
Zanim jednak rozpoczniemy t prac, chcia
bym zwrci si do zupenie pocztkujcych
Czytelnikw i wyjani im pewn spraw.
Bardziej dowiadczeni konstruktorzy prosze
ni s o opuszczenie tego fragmentu artykuu.
Chodzi mi o sposb rysowania schematu,

nieco odmienny od tego, do ktrego jestecie


przyzwyczajeni. Na wikszoci schematw
publikowanych w EdW wszystkie poczenia
pomidzy elementami zaznaczone byy jako
osobne linie. Jest to metoda dobra, ale jedy
nie w przypadku prostych ukadw. Przy ry
sowaniu schematw ukadw bardziej rozbu
dowanych, a w szczeglnoci ukadw cyfro
wych i mikroprocesorowych, do czenia ele
mentw uywamy tzw. BUS, czyli jakby ar
terii komunikacyjnych, od ktrych rozchodz
si odgazienia, kade zaopatrzone w indy
widualn nazw. Wiecie, do czego to mona
porwna? Do rozbebeszonej elektrycznej
instalacji samochodowej! Tam take mamy
grube, oplecione tam izolacyjn wizki
przewodw, od ktrej odchodz pojedyncze
kable prowadzce do rnych elementw sa
mochodowej instalacji. Rnica polega na
tym, e w samochodzie przewody czce ze
sob wsplne punktu ukadu oznaczone s
kolorami, a na naszym schemacie tzw.etykie
tami, czyli niepowtarzalnymi nazwami.
Po tej maej dygresji przystpmy wre
szcie do inwentaryzacji dbr widocznych na
schemacie.
Zcza:
1. Sercem naszego minikomputera jest, oczy
wicie opisany ju wyej procesor typu
AT90S8535 IC1. Jednak sam procesor, bez
niezbdnej mu eskorty niewiele by zdziaa.
2. Q1, C1, C2 s elementami niezbdnymi do
funkcjonowania wewntrznego oscylatora
systemowego procesora. W ukadzie zastoso
wano rezonator kwarcowy o czstotliwoci
podstawowej 8MHz, czyli najwyszej dopu
szczalnej dla procesora 8583.
3. CON1, CON2, CON3 i CON4 s zcza
mi, do ktrych doprowadzone zostay wszy
stkie aktywne wyprowadzenia procesora,
czyli porty A, B, C i D. Do zcz tych moe
my podczy ewentualne ukady peryferyj
ne, a take aparatur pomiarow.
4. CON5 jest jednym z najwaniejszych ele
mentw mikrokomputera. Umoliwia ono
komunikacj z dosownie setkami ukadw
peryferyjnych sterowanych magistral I2C.
Do tego samego zcza moemy doczy
take klawiatur od komputera PC, ktra
wprawdzie nie jest ukadem I2C, ale wymaga
identycznych pocze.
5. CON6 spenia podobn rol co CON5
i obsuguje magistral 1WIRE, czyli umoli
wia kontakt z DOWOLN liczb ukadw
produkcji firmy DALLAS. Do tego jednego
wyprowadzenia moemy docza termome
try, zdalnie sterowane przeczniki i ma
giczne tabletki DALLASa.
6. CON7 jest punktem, do ktrego doprowa
dzamy napicie zasilajce minikomputer,
czyli 12VDC. Dioda D1 zabezpiecza ukad
przed katastrofalnymi skutkami odwrcenia
polaryzacji napicia zasilajcego.
7. CON8, czyli co dla wygodnych i dbaj
cych o bezpieczestwo procesora. Jest to

17

Projekty AVT
zcze penice szczeglnie wan funkcj:
umoliwia ono wielokrotne programowanie
procesora bez koniecznoci wyjmowania go
z podstawki. W dalszej czci artykuu do
wiecie si, jak nieprawdopodobny komfort
pracy zapewnia to mae zcze!
8. CON9 i CON10 s wejciami i wyjciami
bufora mocy ULN2803
9. CON11 zcze alternatywnego zasilania
procesora. Warto tu zwrci uwag na niety
powy sposb zasilania procesora, ktry jest
doczony do szyny zasilajcej VCC o napi
ciu +5VDC za porednictwem diody D2.
W zwizku z tym napicie zasilania proceso
ra jest zmniejszone o ok. 0,6V i wynosi tylko
ok. 4,4VDC. Co spowodowao zastosowanie
tak nietypowego rozwizania? Ot, jest to
caa historia. Podczas uruchamiania kilku
ukadw z procesorem AT90S8535 wykorzy
stujcych wbudowany w jego struktur oscy
lator i generator przerwa RTC napotkaem
na nieoczekiwane i dziwaczne trudnoci.
W niektrych ukadach oscylator nie dziaa
w ogle, a w innych pracowa w niekontrolo
wany sposb, wczajc si i wyczajc
w nieoczekiwanych momentach. Ani spraw
dzania czci hardwareowej ukadu ani kodu
napisanego programu nie dawao rezultatu,
podobnie jak wertowanie karty katalogowej
procesora. Na rozwizanie problemu natkn
em si dopiero podczas lektury erraty do
karty katalogowej, gdzie firma ATMEL
umiecia wrcz kuriozalne stwierdzenie:
When using an external 32 kHz crystal
as asynchronous clock source for Timer2, the
timer may count incorrectly at voltages abo
ve 4.0V. Keep the supply voltage below
4.0V when clocking Timer2 from an external
crystal.
No comments! Nie wnikam, dlaczego
budowa generatora kwarcowego 32768Hz
o napiciu zasilania 5V okazaa si zbyt
trudna dla konstruktorw ATMELa. Wane
jest tylko to, e obnienie napicia
o 0,6V spowodowao natychmiastowe usu
nicie problemw ze sprztowym RTC.
W naszym ukadzie dioda D2 jest elementem
opcjonalnym: jeeli nie bdziecie wykorzy
stywa sprztowego zegara czasu rzeczywi
stego, to mona po pro
stu zastpi j zwor.
10. CON12 peni take
niesychanie
wan
funkcj. Umoliwia ono
poczenie naszego mi
nikomputera z portem
szeregowym komputera
PC lub innego urzdze
nia elektronicznego wy
posaonego w sprzto
wy interfejs RS232.
11. CON13 jest zczem
o szczeglnym charakte
rze. Nie byo go na pyt
ce pierwszego prototypu

18

naszego komputera i zostao dodane pniej.


Jego zadaniem jest umoliwienie doczenia
do minikomputera typowego odbiornika sy
gnau DCF77 nadawanego na falach dugich.
Odebranie i zdekodowanie tego sygnau
umoliwi nam budow ukadw wykorzystu
jcych atomowy wzorzez czasu o dokadno
ci 1 sekundy na 5 milionw lat.
Ukady scalone:
IC1 najwaniejszy element konstrukcji mi
nikomputera, z ktrym dobrze si zapozna
my w najbliszym czasie.
IC2 zawiera w swojej strukturze osiem dri
verw mocy. Kady z nich moe zasila od
strony masy ukadu pobierajce prd o war
toci do 500mA. Zadaniem ukadu ULN2003
jest bezporednie sterowanie przekanikami,
arwkami, silnikami i innymi urzdzeniami
wykonawczymi.
IC3 jest ukadem resetujacym procesor
w przypadku spadku napicia zasilajcego po
niej wartoci minimalnej, a take zapewnia
pewny start procesora po wczeniu zasilania.
IC4 to zwyky, znany Wam bardzo dobrze
scalony stabilizator napicia +5VDC.
IC5 to take nasz dobry znajomy. Jego za
daniem jest odbieranie transmisji danych
nadawanych w podczerwieni z czstotliwo
ci non ok. 36kHz.
IC6 to wzorzec napiciowy. Na jego wypro
wadzeniu VR wystpuje napicie dokadnie
rwne 2500mV, stabilne w funkcji temperatu
ry i napicia zasilajcego. Jest to bardzo wany
element ukadu minikomputera w przypadku,
kiedy bdziemy chcieli dokonywa pomiaru
wartoci analogowych i wykorzystywa za
warty w strukturze procesora 8535 omiokrot
ny przetwornik analogowocyfrowy.
IC7 zapewnia nawizanie cznoci pomi
dzy naszym minikomputerem a maszynami
klasy PC lub innymi urzdzeniami elektro
nicznymi wyposaonymi w interfejs RS232.
Pozostae elementy konstrukcji
komputera:
Klawiatura, skadajca si z szesnastu
klawiszy S1 .... S16 poczonych w matryc
4x4 umoliwia wprowadzanie do komputera
wszelkiego typu danych, tak liczb jak i tekstw.
Rys. 2 Schemat ideowy programatora

Wywietlacz alfanumeryczny LCD


DP1. Moemy zastosowa dwa typy wywie
tlaczy: 16x1 i 16x2 znaki. Zdecydowanie
polecabym wywietlacz drugiego typu (taki
bdzie dostarczany w kicie). Natomiast spra
w do dyskusji jest to, czy wywietlacz ma
by podwietlany, czy nie. Wywietlacz
z podwietlaniem jest z pewnoci bardziej
efektowny i lepiej czytelny, ale za te zalety
trzeba zapaci nieco wiksz cen, a take
liczy si ze zwikszonym poborem prdu.

Monta i uruchomienie
Na rysunku 3 zostaa pokazana pytka ob
wodu drukowanego naszego minikomputera.
Ze wzgldu na znaczn komplikacj po
cze pytka zostaa zaprojektowana na lami
nacie dwustronnym z metalizacj.
Monta minikomputera nie powinien
nastrczy nikomu wikszych trudnoci,
pod warunkiem e bdziecie przestrzega
kilku wskazwek, ktrych za chwil Wam
udziel. Przede wszystkim pamitajcie o

Wykaz elementw
Rezystory:
PR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k
R1, R2, R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4,7k
R4, R7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
R5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3,3k
R6, R8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k
R9, R10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10k

Kondensatory:
C1, C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27pF
C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220F
C4, C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100nF
C6, C7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100F
C8, C9, C10, C11 . . . . . . . . . . . . . . . . . . . . . . . .4,7F
C12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220nF

Pprzewodniki:
D1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .~~1N4007
D2, D3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1N4148
D4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LED
IC1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AT90S8535
IC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ULN2003
IC3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .DS1813
IC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7805
IC5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .TFMS5360
IC6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LM385 2,5V
IC7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .MAX232
T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC548

Pozostae:
CON1, CON2, CON3, CON4, CON9, CON10
8 x goldpin . . . . . . . . . . . . . . . . . . . .CON5 4 x goldpin
CON6, CON11 . . . . . . . . . . . . . . . . . . . . . .2 x goldpin
CON7 . . . . . . . . . . . . . . . . . . . . . . . . . . .ARK2 (3,5mm)
CON8 . . . . . . . . . . . . . . . . . . . . . . . . . . . .3x2 goldpin
CON12, CON13 . . . . . . . . . . . . . . . . . . . . . .3 x goldpin
DP1 . . . . . . . . . .wywietlacz alfanumeryczny LCD 16x2
Listwa goldpinw 16x1
Q1 . . . . . . . . . . . . . . . . . . . .rezonator kwarcowy 8MHz
Q2 . . . . . . . . . . . . . . . . . .rezonator kwarcowy 32768Hz
S1 ... S16 . . . . . . . . . . . . . . . . . . . .microswitch 10 mm

Komplet podzespow z pytk jest


dostpny w sieci handlowej AVT jako
kit szkolny AVT2550

Elektronika dla Wszystkich

Projekty AVT
mdrej zasadzie Festina lente
i wszystkie czynnoci podczas
montau komputerka wykonujcie
powoli i z rozmysem. Wyluto
wywanie nieprawidowo zamon
towanych elementw z pytki
dwuwarstwowej nie naley do
przyjemnoci!
No tak, postraszyem Was tro
ch, a tak naprawd to wszystkie
te zastrzeenia dotycz tylko
dwch elementw, na ktre musi
cie zwrci szczegln uwag:
klawiatury i szeregu goldpinw,
do ktrych nastpnie bdziecie
musieli przylutowa wywietlacz alfanume
ryczny. Elementy te zostawmy sobie na sam
koniec pracy, a teraz zamontujmy pozostae.
Ten etap montau wykonujemy po Boe
mu, rozpoczynajc od wlutowania w pytk
rezystorw i podstawek pod ukady scalone,
a koczc na kondensatorach elektrolitycz
nych i stabilizatorze napicia. Bez obaw lutu
jemy take te elementy, ktre znajduj si
w obrbie klawiatury: jej przyciski bd
zamontowane po przeciwnej stronie pytki.
Po wlutowaniu tych elementw odwraca
my pytk na drug stron i lutujemy szereg 16
goldpinw od strony (umownej) cieek, czyli
po przeciwnej stronie co pozostae elementy.
Goldpiny lutujemy do szeregu punktw lutow
niczych oznaczonych na pytce jako DP1.
Pora teraz na najwaniejsz czynno, ja
k musimy wykona przed zamontowaniem
wywietlacza: na kilkukrotne sprawdzenie
poprawnoci montau ju wlutowanych
elementw. Pamitajmy, e po zamontowa
niu wywietlacza utracimy dostp do wielu
punktw lutowniczych i dokonanie jakich
kolwiek poprawek bdzie bardzo, bardzo
trudne!
Jeeli stwierdzilimy ponad wszelk wt
pliwo, e monta zosta przeprowadzony
poprawnie, to moemy teraz przylutowa
wywietlacz. Czynno t musimy przepro
wadzi wyjtkowo starannie, montujc wy
wietlacz jak najbliej powierzchni pytki
i idealnie do niej rwnolegle. Aha, przed
wlutowaniem wywietlacza musimy jeszcze
zagi metalowe apki, mocujce obudow
wywietlacza do jego pytki, tak aby cile

przylegay do jej powierzchni. Czynno t


naley wykona bardzo delikatnie, za pomo
c maych kombinerek.
Ostatni czynnoci montaow bdzie
budowa szesnastkowej klawiatury, a jej prze
bieg zalee bdzie od rodzaju zastosowane
go wywietlacza. Jeeli uylimy wywietla
cza bez podwietlania, to przyciski lutujemy
tak, jak inne elementy, oczywicie podobnie
jak zcze wywietlacza od spodniej strony
pytki. Na pewne problemy napotkamy jedy
nie w przypadku zastosowania wywietlacza
z podwietlaniem, ktry ze swej natury jest
o kilka milimetrw grubszy od swojego ubo
szego krewnego nie wieccego w ciemnoci.
W takim wypadku microswitche musz zo
sta odsunite jak najdalej od powierzchni
pytki, tak aby ich przyciski wystaway co
najmniej o 2milimetry ponad powierzchni
wywietlacza. A zatem, jeeli zdecydowali
my si na wywietlacz z podwietlaniem, to
przyciski lutujemy powierzchniowo, nie
przewlekajc ich kocwek przez otwory
w punktach lutowniczych.
Monta klawiatury jest ostatni czynno
ci jak musimy wykona podczas budowy
pyty gwnej naszego komputera. Dla tych,
ktrzy przebrnli przez ten etap bdzie fra
szk poczenie pyty gwnej z pyt czoo
w komputerka, widoczn na wkadce
w rodku numeru. To tego celu najlepiej wy
korzysta tulejki dystansowe lub po prostu
cztery rubki M3, ktrych ebki lutujemy do
punktw lutowniczych pyty czoowej i
czymy cao z pyt gwn za pomoc
omiu nakrtek M3.

Rys. 3
Rys. 4 Pytka drukowana programatora

W dalszych czciach artykuu zapoznam


Was z nastpujcymi sprawami:
1. Budow programatorka ISP, stanowicego
nierozczn cao z naszym minikompute
rem.
2. Metodami programistycznymi potrzebny
mi do oywienia wykonanego ukadu
i z najnowszymi fajerwerkami pakietu BA
SCOM AVR.
3. Fabrycznym programem obsugi mini
komputera.
Zbigniew Raabe
zbigniew.raabe@edw.com.pl

Projekty AVT

++

Mikrokomputer PECEL
z procesorem
2550/P
AT90S8535
Cz 2
Nasz minikomputer jest w zasadzie gotowy.
Do wykonania pozostay ju tylko drobiazgi:
banalnie prosty programator, sterowany z pa
kietu BASCOM AVR, ktry bdzie suy do
wprowadzania napisanego programu do pa
mici minikomputera oraz dwa kabelki:
jeden do programatora, a drugi do czenia
PECELa z portem szeregowym komputera.
Zacznijmy od montau programatorka.
Schemat elektryczny ukadu programato
ra AVR zosta pokazany na rysunku 4. Jak
atwo zauway poniewa caa inteligencja
programatora skupiona zostaa w jego czci
softwareowej ukad zosta maksymalnie
uproszczony i zawiera tylko aktywny ele
ment: IC1 74HCT244.
Ukad jest zmodyfikowan wersj pro
gramatora STK200 firmy Kanda, bardzo po
pularnego wrd elektronikw. W Internecie
mona znale sporo oprogramowania obsu
gujcego ten programator, dostpnego jako
shareware. Nic wic dziwnego, e wiedzc
o popularnoci tej tysice razy sprawdzonej
konstrukcji, Mark zapewni jej wsparcie so
ftwareowe z poziomu pakietw BASCOM
AVR i BASCOM 8051. Widoczny na sche
macie ukad programatora nie jest urzdze
niem zwizanym na mier i ycie z naszym
minikomputerem: za jego pomoc moemy
zaprogramowa kady procesor AVR i nie
ktre procesory z rodziny 51 (np.
AT89S8252). Procesory mona programo
wa zarwno w podstawkach wyposaonych
w niezbdny rezonator kwarcowy, jak
i w systemie, za pomoc specjalnego zcza
ISP. Poniewa nie wszystkie ukady bazujce
na procesorach AVR posiadaj takie zcza,
pozwoliem sobie zaprojektowa specjalne

18

konektory umoliwiajce programowanie


w systemie bez koniecznoci dolutowywania
przewodw, ani doczania ich za pomoc
chwytakw. Rozmieszczenie wyprowadze
tych zczy (CON2 na schemacie programa
tora i CON8 na schemacie minikomputera)
jest zgodne ze standardem zalecanym przez
firm ATMEL.
Dla szczeglnie dociekliwych Czytelni
kw podaj teraz uproszczony algorytm pro
gramowania procesorw AVR. Ci spord
Was, ktrych zagbianie si w teoretyczne
podstawy dziaania procesorw zbytnio nie
interesuje, mog spokojnie pomin ten frag
ment artykuu.

Aby zaprogramowa pamici procesora,


programator musi wykona nastpujce
czynnoci:
1. Podczas wczania zasilania wymusi stan
niski na wejciach RESET! i SCK procesora.
Nie wszystkie programatory (w tym opisy
wany) s w stanie wykona t czynno
i w taki przypadku konieczne jest, po wymu
szeniu stanu niskiego na wejciu SCK, poda
nie na wejcie RESET! dodatniego impulsu
o czasie trwania dwch cykli zegarowych.
2. Po upywie co najmniej 20 ms programa
tor musi wysa do procesora instrukcj ze
zwolenia na programowanie. Skadnia tej i in
nych instrukcji podana jest w tabeli poniej.
Rys. 4

Elektronika dla Wszystkich

Projekty AVT
sb obudowania programatora daje nam du
wygod w posugiwaniu si urzdzeniem,
ktre z pewnoci bdzie do czsto pod
czane i odczane do komputera, na zmian
z kablem drukarkowym.
Pytk montujemy do nietypowo, ponie
wa ze wzgldu na drastyczne ograniczenie
jej wymiarw musimy montowa elementy
po obydwu jej stronach. Monta rozpoczyna

Komentarz:
a wysze bity adresu
b nisze bity adresu
H=0 niszy bajt, H=1 wyszy bajt
o odczyt danych
i zapis danych
x bez znaczenia
A bit zabezpieczajcy 1
B bit zabezpieczajcy 2

Programming Enable
Chip Erase

Bajt 1
1010 1100
1010 1100

Format instrukcji
Bajt 2
Bajt 3
0101 0011
xxxx xxxx
100x xxxx
xxxx xxxx

Bajt 4
xxxx xxxx
xxxx xxxx

Read Program Memory

0010 H000

xxxx xxaa

bbbb bbbb

oooo oooo

Write Program Memory

0100 H000

xxxx xxaa

bbbb bbbb

iiii iiii

Read EEPROM Memory


Write EEPROM Memory
Write Lock Bits
Read Signature Bits

1010 0000
1100 0000
1010 1100
0011 0000

xxxx xxxx
xxxx xxxx
111x xABx
xxxx xxxx

xbbb bbbb
xbbb bbbb
xxxx xxxx
xxxx xxbb

oooo oooo
iiii iiii
xxxx xxxx
oooo oooo

Instrukcja

3. Kolejn czynnoci bdzie sprawdzenie po


prawnoci transmisji. Po wysaniu przez pro
gramator drugiego bajtu instrukcji Program
ming Enable, procesor powinien odpowiedzie
odesaniem do programatora wartoci tego
bajtu. Jeeli tak si stanie, to naley uzna, e
transmisja jest prawidowa i przystpi do wy
konywania kolejnych instrukcji. Jeeli jednak
programator nie otrzyma echa od procesora,
to naley powtrzy prby nawizania trans
misji. Brak echa po 32 prbie wiadczy
o niemonoci zsynchronizowania ukadw.
4. Po nawizaniu transmisji programator powi
nien wysya do procesora kolejne instrukcje,
przewidziane dla aktualnie wykonywanego za
dania. Moliwe jest zaprogramowanie zarwno
pamici danych, jak i programu, odczyt ich za
wartoci oraz zabezpieczenie pamici programu
za pomoc dwch bitw zabezpieczajcych.
Po zakoczeniu programowania ustawie
nie stanu wysokiego na wejciu RESET pro
cesora umoliwia jego poprawn prac.
Jak wida, algorytm programowania po
przez zcze SPI jest do skomplikowany.
Na szczcie, nie musimy go zna na pami,
poniewa jest on automatycznie i bez nasze
go udzia realizowany przez mdrego BA
SCOMa.
Na rysunku 5 zostaa pokazana mozaika
cieek pytki obwodu drukowanego, wyko
nanego na laminacie dwustronnym z metali
zacj. Pytka programatorka zostaa tak zwy
miarowana, e po zmontowaniu i przyluto
waniu do zcza DB25M mieci si lekko na
wcisk w typowej obudowie DB25. Taki spo
Rys. 5 Pytka drukowana programatora

Elektronika dla Wszystkich

Dziaanie
Zezwolenie na programowanie
Kasowanie obu pamici
Odczyt grnej lub dolnej (H)
czci danych spod adresu a:b
Zapis grnej lub dolnej (H)
czci danych spod adresu a:b
Odczyt z pamici danych spod adresu b
Zapis do pamici danych pod adres b
Zapis bitw zabezpieczajcych A i B
Odczyt typu ukadu o spod adresu b

my od poczenia pytki ze zczem DB25.


Na duszej krawdzi pytki programato
ra, po obydwu jej stronach zosta umieszczo
ny szereg punktw lutowniczych, rozmie
szczonych identycznie do wyprowadze z
cza DB25. Pytk wsuwamy na wcisk po
midzy kocwki lutownicze zcza tak, aby
wyprowadzenia konektora DB25 pokryy si
dokadnie z punktami lutowniczymi. Podczas
dopasowywania pytki do zcza waciwie
nie mona si pomyli, poniewa na jednej
stronie pytki mamy 12, a na drugiej 13 punk
tw lutowniczych. Po dokadnym dopasowa
niu obu elementw do siebie lutujemy wy
prowadzenia zcza, uywajc lutownicy
o cienkim grocie.
Kolejn czynnoci bdzie wlutowanie
w pytk kondensatorw. Oba te elementy lu
tujemy od strony druku, oczywicie w przy
padku pytki dwustronnej jest to strona
umowna. Dla uatwienia: w pytkach AVT
maska lutownicza na stronie cieek jest za
wsze zabarwiona na czerwonawo. Kondensa
tory montujemy na pask, rwnolegle do po
wierzchni pytki, a po przylutowaniu obcina
my jak najkrcej ich kocwki.
Ukad IC1 montujemy po boemu na
stronie elementw pytki drukowanej. Odstp
stwem od regu jest rezygnacja ze stosowania
podstawki, ktrej uycie uniemoliwioby
umieszczenie pytki w malekiej obudowie.
Monta elektryczny koczymy na przylu
towaniu do pytki jedynego rezystora i zcza
CON2. Podwjny szereg ktowych goldpi
nw lutujemy tak, aby jego wolne kocwki
znalazy si jak najbliej paszczyzny po
wierzchni pytki.
A wic, programator mamy ju w zasa
dzie gotowy! Pozostaje tylko wyposay go
w kabel czcy go z programowanym proce
sorem. Kabel ten wykonujemy z odcinka
dziesicioyowego przewodu tamowego
o dugoci ok. 50 cm, zaciskajc na jego ko
cach dwa wtyki 10pinowe. Niestety, nie s
produkowane takie wtyki o szeciu kocw

kach i w naszym kablu cztery przewody po


zostan niewykorzystane.
Na zakoczenie umieszczamy pytk pro
gramatora wraz z doczonym do niej kablem
w przeznaczonej dla niej obudowie od wtyku
DB25 i skrcamy cao rubkami.
Uwieczeniem naszej pracy bdzie teraz
poczenie programatora z minikomputerem
i komputerem PC, na ktrym zosta zainstalo
wany pakiet BASCOM AVR. Pamitajcie, e
poczenia te musimy zawsze wykonywa
przy wyczonym zasilaniu obu urzdze. Na
tomiast przypadkowe, odwrotne poczenie
przewodu prowadzcego od programatora
do zcza ISP na pycie minikomputera nie
grozi adnymi przykrymi konsekwencjami!
Zcze ISP zostao przez ATMELa tak
sprytnie zaprojektowane, e po zmianie kie
runku jego wczenia nie moe doj do
uszkodzenia ani procesora, ani programato
ra i jedynym objawem bdzie nieprawido
we dziaanie caoci. W praktyce, odwrotne
poczenie tego kabla bdzie sygnalizowane
komunikatem o niemonoci zidentyfikowania
doczonego do programatora procesora.
Chciabym jeszcze wyjani spraw wi
docznego na schemacie zcza CON3, o ktre
go roli jak dotd nie wspominalimy. Jest to
zcze nie uywane podczas pracy programa
tora z naszym minikomputerem, poniewa
programator jest tu zasilany z pyty minikom
putera za porednictwem zcza ISP. Mam
jednak nadziej, e wykorzystacie zbudowany
programator nie tylko do programowania PE
CELa, ale take podczas budowy innych
ukadw. Moe wtedy okaza si korzystne,
aby testowany ukad zasilany by z programa
tora (w kadym razie ja czsto stosuj t me
tod, wygodn podczas pracy nad kilkoma
prototypami naraz). Do zcza CON3 naley
wtedy doprowadzi napicie o wartoci
+5VDC, ktrego idealnym rdem moe by
np. game port komputera, a w ostatecznoci
dowolny inny zasilacz o podanym napiciu
i maksymalnym prdzie dostosowanym do
wymaga uruchamianego ukadu.
Czy wiecie, moi Drodzy, do jakiego etapu
pracy doszlimy w tym momencie? Prawd
mwic, zakoczylimy ju budow minikom
putera PECEL i potrzebnego do jego progra
mowania hardware! Pozosta nam jeszcze
wprawdzie jeden kabelek do wykonania, ale
moemy odoy t prac na pniej, do czasu
kiedy zajmiemy si komunikacj nawizywa
n przez nasz minikomputer z duym PC
tem za porednictwem portu RS232. Co zatem
teraz zrobimy? Powinnimy zaj si teraz opi
sem metod programistycznych sucych oy
wieniu PECELa, ale wiem, na co macie bar
dziej ochot! Zapewne chcielibycie wyprbo
wa programator i minikomputer i byoby
z mojej strony okruciestwem, gdybym kaza
Wam na to czeka. A zatem, do dziea!
Wiecie co? Strasznie mi ten artyku
zaczyna si rozazi i mam nadziej, e

19

Projekty AVT
poapiecie si w tych licznych dygresjach!
Przecie zanim wykonamy pierwsze prby
programowania procesora naszego minikom
putera musimy co zrobi z programem,
ktry jest ju umieszczony w jego pamici.
W kicie AVT2550 dostarczany jest procesor
z umieszczonym w jego pamici EEPROM
programem, ktry dla Was napisaem. Dzia
anie tego programu zostanie opisane w dal
szej czci artykuu i nieskromnie mam
nadziej, e zyska on Wasze uznanie. Pami
procesora nie zostaa w jakikolwiek sposb
zabezpieczona przed kopiowaniem, a listing
programu zosta opublikowany na interneto
wej stronie Elektroniki dla Wszystkich
(www.edw.com). Program stanowi zatem
Wasz niepodzieln wasno, ale co zrobi,
jeeli posiadamy tylko jeden, dostarczony
w kicie procesor AT90S8535? Jakakolwiek
prba programowania procesora spowoduje
nieodwoalne zniszczenie zapisanego w jego
pamici fabrycznego programu. Arcydzie
o sztuki programowania to chyba nie jest,
ale moe warto go zachowa na przyszo?
Na szczcie mamy ju gotowy programa
tor, ktry bynajmniej nie suy tylko do pro
gramowania procesora. Ile uytecznych funk
cji moe on jeszcze spenia, dowiecie si
w najbliszej przyszoci, a na razie, troch
wbrew logice, zajmijmy si nie programowa
niem, ale odczytywaniem programu ju zapi
sanego w pamici EEPROM procesora.
O instalacji i oglnym konfigurowaniu
pakietu BASCOM AVR nie bd pisa, po
niewa praktycznie nie rni si one od ob
sugi znanego ju Wam pakietu BASCOM
8051. Wspomnijmy tylko o konfigurowaniu
programatora, poniewa nie mielimy z tym
jeszcze do czynienia.
Po uruchomieniu BASCOMa AVR kli
kamy na pasek OPTIONS i z rozwinitego
menu wybieramy opcj PROGRAMMER.
Ukae si nam wtedy panel pokazany na ry
sunku 6. W okienku PROGRAMMER wy
bieramy teraz typ programatora, ktrym
musi by STK200/STK300 Programmer.
Nastpnie zamykamy okienko i naciskamy
klawisz F4, co owocuje pojawieniem si
okienka programatora pokazanego na rysun
ku 7. Na wszelki wypadek naciskamy je
szcze na przycisk CHIP, a nastpnie IDENTI
FY. Po tym zabiegu w maym okienku obok
napisu CHIP powinien pokaza si napis in
formujcy o typie zidentyfikowanego proce
sora, czyli w naszym przypadku AT90S8535.
Moe si jednak zdarzy, e programator
nie bdzie w stanie zidentyfikowa typu pro
cesora i na ekranie ukae si mao sympa
tyczny napis widoczny na rysunku 8. Jeeli
jestemy cakowicie pewni, e monta mini
komputera i programatora przeprowadzili
my poprawnie, to zapewne przyczyn jest
nieprawidowe podczenie kabla czcego
programator z minikomputerem. Po spraw
dzeniu tego poczenia i ewentualnym od

20

wrceniu wtyku o 180 stopni wszystko po


winno zacz dziaa normalnie.
Zajmijmy si teraz zachowaniem dla po
tomnoci programu zapisanego w EEPROM
ie dostarczonego w kicie procesora. Po iden
tyfikacji typu procesora klikamy na pasek
CHIP, a nastpnie wybieramy opcj READ
CHIPCODE INTO BUFFER (zaaduj kod
zawarty w pamici procesora do bufora).
W tym momencie rozpocznie si proces od
czytywania zawartoci pamici EEPROM,
ktry niestety potrwa chwil, no powiedzmy
dusz chwil. Tak to
ju jest: zawsze co
za co i za liczne udo Rys. 6
godnienia zwizane
z programowaniem
ISP pacimy zwikszo
nym czasem trwania
szeregowej transmisji
danych. Rcz jednak,
e to si Wam opaci!
Mam nadziej, e
programator upora si
ju z mozolnym odczy
tywaniem programu
z pamici procesora.
A zatem, nastpn
czynnoci bdzie za
pisanie tego programu
na dysku, pod dowoln
nazw i w dowolnym,
wskazanym katalogu.
W tym celu klikamy
na pasek BUFFER,
wybieramy opcj SA
VE TO FILE i podaje
my nazw pliku,
w ktrym ma by zapi
sany program w forma
cie binarnym (rysunek
9). Proponuj wykona
przynajmniej jedn ko
pi zapasow tego pli
ku i zapisa j w innym
katalogu, ni orygina.
Nadesza wreszcie
pora, aby sprawdzi Rys. 7
dziaanie zbudowanego
ukadu w jego podsta Rys. 8
wowej, ale nie jedynej
funkcji, jak jest wpro
wadzanie programu do
pamici EEPROM mi
nikomputera PECEL.
Poniewa niewiele je
szcze wiemy o progra
mowaniu procesora
AT90S8535, wykona
my tylko proste testy,
wykorzystujce wiedz
nabyt podczas kursu
BASCOM College.
No, moe poka Wam
co wicej...

Zanim napiszemy nasz pierwszy pro


gram na minikomputer PECEL, musimy je
szcze dokoczy konfigurowanie programa
tora. W jego okienku konfiguracyjnym
zaznaczamy dodatkowo opcje AUTO
FLASH i AUTO VERIFY, tak jak pokazano
na rysunku 10.
Zacznijmy od czego bardzo prostego,
pamitajc e mamy tylko przetestowa pro
gramator, a na nauk programowania PE
CELa przyjdzie czas troch pniej. Napi
szmy zatem:

Elektronika dla Wszystkich

Projekty AVT
'Listing 1
Config Lcd = 16 * 2
$crystal = 8000000
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
Do
Loop

Rys. 9
Rys. 10

Przed kompilacj
tego programiku mu
simy jeszcze poin
struowa kompilator,
jakiego typu proceso
ra bdziemy uywa.
Otwieramy zatem
okienko OPTIONS,
a nastpnie COMPI
LER i CHIP (rysu
nek 11) i zaznacza
my procesor typu
AT90S8535.
Naciskamy teraz
magiczny klawisz
F7. Dlaczego nada
em mu taki przydo
mek? Ano dlatego,
e po jego nacini
ciu napisany przez
nas program zosta
nie tylko skompilo
wany, ale natych
miast umieszczony
w pamici proceso
ra. Procesor zosta
nastpnie zreseto
wany, a efekt dzia
ania pierwszego
programu na PECELa moemy zobaczy
na jego wywietlaczu alfanumerycznym.
Nie musielimy wyjmowa kosztownego
i atwego do uszkodzenia procesora z pod
stawki, wkada go do programatora, a na
stpnie ponownie umieszcza w minikom
Rys. 11

Elektronika dla Wszystkich

puterze. W tym, midzy innymi, tkwi sia


programowania ISP poczona z fantastycz
nymi moliwociami BASCOMa! Fajne,
prawda?
Najwyszy czas, aby rozpocz systema
tyczn nauk programowania minikompute
ra PECEL. Ale nawet mnie samego korci,
aby awansem pokaza Wam jaki fajer
werk, jaki spektakularny przykad moli
woci naszych nowych urzdze. Wspo
mniaem uprzednio, e zbudowany przed
chwil programator moe suy do wielu
celw, czsto nie bardzo zwizanych z sa
mym procesem programowania. Moe pa
mitacie z kursu BASCOM College lub
z wasnych dowiadcze, w jaki sposb za
pisywalimy dane w zewntrznych pami
ciach danych EEPROM? Byo z tym troch
problemw, trzeba byo napisa kilkanacie
linijek programu, nie mwic o konieczno
ci dodawania do systemu dodatkowego
ukadu zewntrznej pamici danych EE
PROM. No to popatrzcie, jak to wyglda
w naszym minikomputerze wspartym si
BASCOMa!
Piszc ostatnie zdanie zauwayem, e na
robio si troch baaganu w stosowanym
w artykule nazewnictwie i e pocztkujcy
Koledzy mog mie z tym troch kopotu.
Procesor AT90S8535 posiada a trzy rodzaje
pamici i musimy dokadnie uprzytomni so
bie, do czego kada z nich suy.
1. Pami programu EEPROM suy do za
pisywania treci programu sterujcego prac
procesora. Jej pojemno wynosi 8kB i moe
by programowana wycznie za pomoc ze
wntrznego programatora. Jakiekolwiek zmia
ny w jej zawartoci bez stosowania programa
tora s niemoliwe. Pami programu moe
by przeprogramowywana do 1000 razy.
2. Pami danych EEPROM suy do zapi
sywania tych informacji, ktre nie mog by
utracone po wyczeniu zasilania. Pami ta
programowana jest przez odpowiednie pole
cenia obsugujcego procesor programu. Ist
nieje take moliwo zaprogramowania pa
mici danych EE
PROM za pomoc
zbudowanego przed
chwil programato
ra, a take odczyta
nia jej zawartoci.
Pami danych EE
PROM moe by
przeprogramowy
wana do 100 000
razy.
3. Pami danych
RAM suy do
chwilowego prze
chowywania
da
nych, a jej zawarto
jest bezpowrotnie
tracona po wycze
niu zasilania.

21

Projekty AVT
Do napisanego uprzednio programu dopi
szmy trzy linijki, tak aby cao wygldaa
tak, jak na listingu 2 (dodatkowe linie zazna
czono pogrubionym drukiem). Nie bdziemy
na razie tumaczy sobie znaczenia nowych
polece i wspomn tylko, e dodatkowym za
daniem programu jest teraz zapisanie w we
wntrznej pamici danych EEPROM pod ad
resem 1 wartoci zmiennej X, czyli 214.
'Listing 2
Config Lcd = 16 * 2
$crystal = 8000000
Dim X As Byte
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
X = 214
Writeeeprom X , 1
Do
Loop

Ponownie naciskamy magiczny klawisz


i... waciwie nic nowego si nie stao. Napis
zosta wywietlony, ale czy warto zmiennej
rzeczywicie znalaza si w pamici? No, to
popatrzcie teraz, jak wygodne narzdzia do
stalicie do rki i jak w przyszoci uatwi
nam one testowanie napisanych programw.
Rzeczywicie, kontrolowanie, czy dane s za
pisywane i czy lokowane s pod takim adre
sem, pod jakim bymy chcieli, nie jest spraw
prost. Podczas posugiwania si normal
nym oprogramowaniem znalezienie ewentu
alnych bdw moe troch potrwa i ko
sztowa troch nerww. Przecie pamici
danych EEPROM nie mona zobaczy! Nie
mona? W BASCOMie wszystko mona!
Zmiemy teraz troch konfiguracj BA
SCOMa, usuwajc zaznaczenie opcji AUTO
FLASH w okienku konfiguracyjnym progra
matora. Nacinijmy nastpnie klawisz F4, co
zaowocuje pojawieniem si na ekranie okien
ka programatora. No i co w tym nowego? Po
patrzcie na rysunek 12: mniej wicej w jednej
trzeciej wysokoci okienka programatora
znajduj si dodatkowe przyciski, a wszystko
R E K L A M A

22

R E K L A M A

wskazuje, e w obe
cnej chwili aktywny
jest pierwszy z nich,
oznaczony
jako
FLASHROM. Naci
nijmy zatem drugi
z przyciskw, ten, na
ktrym widnieje na
pis EEPROM, su
sznie przypuszcza
jc, e moe on mie
co wsplnego z we
wntrzn nieulotn
pamici
danych
EEPROM.
Rzeczywicie, Rys. 12
wydarzyo si co
nowego: na ekranie Rys. 13
pojawia si nowa ta
belka, tylko e w niej
zapisane s same
wartoci FF(HEX),
czyli dziesitnie 255.
Do czasu! Powtrz
my teraz operacj,
ktr wykonywali
my podczas kopio
wania fabrycznego
programu PECELa,
czyli klikamy na pa
sek CHIP, a nastp
nie wybieramy opcj
READ CHIPCODE
INTO
BUFFER.
Tylko e tym razem do bufora adowana b
dzie nie zwarto pamici programu, ale inte
resujca nas pami danych EEPROM!
Efekt naszych poczyna jest widoczny na
rysunku 13. No i co? Nie mona zobaczy
pamici danych EEPROM? Sprawdmy je
szcze: pod adresem 1 widoczna jest tam war
to D6h, zapisana w formacie heksadecy
malnym. Po przeliczeniu na format dziesit
ny mamy: D6(HEX) = 214(DEC).
Chciabym jeszcze na chwil powrci do
charakterystyk rnych pamici, jakimi dys
ponuje
procesor
.
R E K L A M A
AT90S8535, serce
komputera PECEL.
Zgodnie z danymi
zawartymi w karcie
katalogowej tego
ukadu podaem,
e pami progra
mu moe by zapi
sywana do 1000
razy, a pami da
nych EEPROM do
100000 razy. S to
liczby
ogromne
i trudno chyba oba
wia si ich prze
kroczenia. Jednak
w przypadku, kiedy
PECEL byby uy

wany przez grup uytkownikw, np. na zaj


ciach w Technikum Elektronicznym, mona
obawia si przekroczenia liczby dozwolonych
programowa pamici programu. Z dowiad
czenia jednak wiem, e dane podane przez pro
ducenta zostay obliczone mocno na wyrost,
najprawdopodobniej z uwzgldnieniem najbar
dziej krytycznych warunkw pracy procesora.
Nie testowaem nigdy, jak maksymaln
liczb cykli zapisu moe wytrzyma pami
programu, ale dokonaem barbarzyskiego
eksperymentu z pamici danych EEPROM.
Napisaem program, ktrego jedynym zada
niem byo nieustanne zapisywanie caego ob
szaru tej pamici coraz to nowymi danymi.
Kada operacja zapisu bya zliczana a wynik
przekazywany do komputera. I wicie, co si
zdarzyo? Po 324 567 cyklach zapisu daem
sobie spokj z dalszym prowadzeniem eks
perymentu, uznajc procesor ATMELa za
produkt najwyszej klasy, a dane podawane
przez t firm za wicej ni wiarygodne.
Musimy jednak skoczy z tym chaotycz
nym dziaaniem i licznymi dygresjami. Rozpo
czynamy systematyczn nauk programowania
minikomputera PECEL, a tym samym wszyst
kich procesorw AVR, poszerzajc przy okazji
nasze wiadomoci o chipach z rodziny 51.
Zbigniew Raabe
zbigniew.raabe@edw.com.pl

Elektronika dla Wszystkich

Projekty AVT
Chciabym przy okazji rozwia pewne wtpli
woci, ktre jak wiem z listw emailowych nur
tuj od dawna Czytelnikw EdW i EP. Poniewa
na podobne trudnoci mog natrafi take uyt
kownicy minikomputera PECEL, chciabym do
koca wyjani spraw podwietlanych wywie
tlaczy LCD.
W ofercie handlowej AVT znajduj si
obecnie relatywnie tanie wywietlacze 16*2
i 16*1 z podwietlaniem. Takie wywietlacze
znajdowa si bd take w kicie zawieraj
cym czci do budowy naszego minikompu
tera. Problem, na jaki napotkali Czytelnicy

Elektronika dla Wszystkich

polega na... niemonoci wyczenia pod


wietlania w tych wywietlaczach. Rzeczy
wicie, wywietlacze te skonstruowane s
troch niewygodnie i sterowanie podwietla
niem wymaga w nich pewnych, zreszt drob
nych przerbek. Popatrzcie na rysunek, na
ktrym przedstawione zostay pytki dwch
najpopularniejszych wywietlaczy LCD 16*2
i 16*1. Strzakami oznaczono tam elementy,
ktrych wlutowanie przesdzio o permanent
nym wczeniu podwietlania! Elementami
tymi mog by "niby rezystory SMD", czyli
po prostu zworki lub... najzwyklejsze kropel
ki cyny. Chcc wy
czy wywietlanie,
musimy usun jedn
ze zworek. Nie sdz
jednak, aby komu
kolwiek zaleao na
usuniciu podwie
tlania na stae. Naj
lepszym rozwiza
niem byoby zapew
nienie sobie moli
woci
wczania
i wyczania pod
wietlania w zaleno
ci od aktualnych po
trzeb. Jest to moli
K

wo tym bardziej atrakcyjna, e bdziemy


mogli dokonywa tych operacji programowo,
a nawet pynnie regulowa jasno wiecenia
wywietlacza. A zatem, musimy najpierw
zlokalizowa t zwork, ktra odcina zasila
nie podwietlania wywietlacza od strony mi
nusa zasilania. Czynno t najprociej wy
kona za pomoc omomierza, jeszcze przed
wylutowywaniem jakichkolwiek elementw
z pytki wywietlacza. Nastpnie wylutowu
jemy zlokalizowan zwork i podczamy
prowizorycznie zasilanie do samego tylko
wywietlacza (+5VDC nka 2, masa n
ka 1). Po wczeniu zasilania wywietlacz nie
powinien dawa adnych "oznak ycia", co
w tym momencie jest zjawiskiem prawido
wym. Sprbujmy teraz zewrze wyprowadze
nie 15 wywietlacza z mas, co powinno spo
wodowa wczenie podwietlania. Jeeli tak
si nie stanie, to moe to oznacza, e wylu
towalimy niewaciw zwork. Jeeli jednak
podwietlanie wczyo si, to moemy prze
j do dalszego etapu montau komputerka.

Zbigniew Raabe
zbigniew.raabe@edw.com.pl
M

23

Projekty AVT

++

Mikrokomputer PECEL
z procesorem
AT90S8535
2550/P
Cz 3
Od dnia dzisiejszego zestaw czci do budowy minikomputera PECEL bdzie dostarczany z zaprogramowanym wstpnie proceso
rem. Pierwsza wersja Beta programu realizuje funkcj najdokadniejszego zegara wiata, pracujcego z precyzj jednej sekundy
na pi milionw lat!
Program PECEL Ver. 1.0.0 Beta jest wspln wasnoci Autora i Czytelnikw Elektroniki dla Wszystkich. Jako taki bdzie pod
dawany staym modyfikacjom i ulepszeniom. Wszystko wskazuje te na to, e w najbliszym czasie mog powsta zupenie nowe
wersje tego programu, rnice si znacznie od pierwowzoru i penice zupenie nowe funkcje. Mogoby to spowodowa sytuacj,
w ktrej nabywcy pierwszej partii kitw mogliby mimowolnie zosta skrzywdzeni, posiadajc pierwotn, najmniej doskona we
rsj programu. Aby unikn takiej sytuacji kody rdowe WSZYSTKICH kolejnych wersji programu PECEL bd zamieszczane
na stronie internetowej Elektroniki dla Wszystkich.
Jednoczenie zapraszam wszystkich Czytelnikw EdW do wsppracy w tworzeniu oprogramowania dla PECELa.

Mam do Was teraz jedn, w waciwie nawet


dwie proby. Chodzi mi o wykonanie jeszcze
dwch prostych kabelkw: jeden z nich ma
posuy do poczenia PECELa z portem
szeregowym komputera, a drugi umoliwi
wykorzystywanie typowej klawiatury PC AT
do wprowadzania danych do naszego mini
komputera. Schematy pocze obydwu ka
belkw pokazane s na rysunku 14. Do wy
konania pierwszego kabla potrzebowa b
dziemy odcinka przewodu trjyowego
praktycznie dowolnego typu. Nie musi to by
(ale moe) kabel ekranowany. Take dugo
tego przewodu nie jest praktycznie niczym
ograniczona i powinna by dostosowana do
aktualnych potrzeb. Sdz, e najlepszy b
dzie przewd o dugoci 1,5 ... 2mb. Z przy
lutowaniem do przewodw zcza DB9
i gniazdka DIN5 nie bdziemy mieli z pewno
ci najmniejszych problemw. Nieco inaczej
wyglda jednak sprawa z doczeniem prze
wodw do PECELa. Najprostsz metod by
oby ich przylutowanie do zcz CON12
i CON5. Jednak takie rozwizanie utrudnio
by szybk zamian konfiguracji systemu,
szczeglnie w przypadku zablokowania
przylutowanymi przewodami zcza magi

18

strali I2C. Polecabym Wam inn, wielokrot


nie sprawdzon metod, polegajc na zako
czeniu przewodw odpowiednio przycitymi
kawakami zcz tzw. szufladkowych, czyli
eskich odpowiednikw konektorw
goldpin. Uzyskamy w ten sposb moliwo
bezproblemowego odczania przewodw od
pyty gwnej minikomputera, co moe mie
szczeglne znaczenie podczas emula.... no,
tak o mao si nie wyga
daem i przedwczenie nie
zdradziem przygotowa
nej dla Was NIESPO
DZIANKI.
Przygotowanie pierw
szego z przewodw,
ktrego zadaniem bdzie
poczenie PECELa z po
rtem RS232 komputera
PC moemy sobie znacz
nie uatwi jeeli dyspo
nujemy przewodem od
uszkodzonej, e nie po
wiem zdechej myszki.
Odpadnie nam wtedy
konieczno lutowania
zcza DB25, a potrzebne

nam przewody bdziemy mogli zidentyfiko


wa za pomoc omomierza.
Zastanawiaem si, od czego rozpocz
opisywanie metod programistycznych, ktre
posu do tchnicia ycia w nasz minikom
puter. Pocztkowo miaem zamiar rozpocz
od najwaniejszych polece i funkcji
BASCOMa, ktrych nie omawialimy
Rys. 14

Elektronika dla Wszystkich

Projekty AVT
podczas kursu BASCOM College. Jednak do
szedem do wniosku, e tak waciwie to nie
ma wanych i mniej wanych elementw
jzyka programowania: kady fragment jego
skadni moe okaza si w pewnych sytua
cjach najwaniejszy. Dlatego te przyjem
inny porzdek pisania tego artykuu: mam za
miar zredagowa go tak, abycie jak najszyb
ciej mogli zobaczy pierwsze, efektowne re
zultaty Waszej pracy i ju w najbliszych
chwilach oywi minikomputer. Zacznijmy
wic od tych funkcji BASCOMa, ktre s
niezbdne do realizowania komunikacji mini
komputera z otoczeniem. Za to, e szybko zo
baczycie rezultaty Waszej pracy i e bd one
bardziej efektowne, ni si spodziewacie, r
cz gow, na ktrej mi co nieco zaley!

Obsuga wywietlacza LCD


Sposoby wysyanie danych do wywietlacza al
fanumerycznego LCD zostay ju wyczerpuj
co omwione podczas kursu BASCOM Colle
ge. Dlatego te przypomnijmy sobie tylko wa
niejsze polecenia suce wysyaniu tekstw na
ekran LCD, oraz sposb konfigurowania wy
wietlacza, nieco odmienny od sposobu uywa
nego podczas pracy z pytk testow AVT2500.
Pierwsz czynnoci jak bdziemy mu
sieli wykona, zanim jeszcze sprbujemy
wysa cokolwiek na ekran jest poinstruowa
nie kompilatora o parametrach zastosowane
go wywietlacza i sposobu jego doczenia
do wyprowadze procesora. A zatem uyjmy
dwch, znanych ju Wam polece:
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 ktrego doczone s wyprowa
dzenia wywietlacza]
Z okreleniem typu wywietlacza nie b
dziemy mieli najmniejszego kopotu. PECEL
wyposaony jest w wywietlacz dwuliniowy
2* 16 znakw. A zatem, piszemy: Config
LCD = 16*2.
Troch bardziej skomplikowane bdzie
poinstruowanie kompilatora do ktrych pi
nw procesora zostay doczone poszcze
glne wyprowadzenia wywietlacza. Na na
szej prostej pytce testowej AVT2500 wszy
stkie wyprowadzenia wywietlacza byy do
czone do jednego portu. W minikompute
rze, z rnych wzgldw nie byo to moliwe
i poczenia z wywietlaczem prowadz do
rnych portw, pozornie chaotycznie.
W dalszej czci artykuu poinformuj Was,
co wymusio taki, a nie inny ukad tych po
cze, a na razie popatrzmy uwanie na sche
mat i zredagujmy polecenie konfiguracyjne
wywietlacza LCD. Bdzie ono miao po
sta: Config Lcdpin = Pin, Db4 = Portc.4,

Elektronika dla Wszystkich

Db5 = Portc.5, Db6 = Portd.7, Db7 = Porta.7,


E = Portc.3, Rs = Portc.2
A zatem, mamy ju cztery pierwsze linij
ki, od ktrych bdzie zaczyna si kady pro
gram napisany na nasz minikomputer.
$regfile = "8535def.dat" 'poinformowanie kom
pilatora o typie zastosowanego procesora
$crystal = 8000000
'poinformowanie kom
pilatora o czstotliwoci 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 zapamita pewn ce
ch dialektu jzyka MCS BASIC stosowane
go w pakiecie BASCOM AVR:
Piszc program na procesor AVR
poszczeglne piny portw nazywamy
PIN[port][numer pinu], czyli na przykad
PINB.1, PIND.3 itd.
Podczas wysyania danych na
poszczeglne piny uywamy skadni:
PORT[numer portu][pin portu]
np. : SET PORTB.1 lub RESET PORTB.5.
Podczas odczytu stanu pinw portw
uywamy skadni: PIN[port][numer pinu]
np. X= PINB.1 lub IF PIND.3 = 1 THEN ........

Polecenia suce obsudze wywietlacza


alfanumerycznego
byy
szczegowo
omwione podczas kursu BASCOM College.
Przypomnijmy tylko najwaniejsze z nich:
LCD [zmienna lub tekst]
wysya podan
warto na ekran wywietlacza
LOCATE [rzd, kolumna] ustawia kursor
na wskazanej pozycji
CLS
czyci ekran wywietlacza
CURSOR ON / CURSOR OFF wcza i wy
cza wywietlanie kursora
SHIFTLCD [RIGHT/LEFT, ilo pozycji]
przewija napis na ekranie LCD

Obsuga klawiatury
szesnastkowej
komputera PECEL
Jak kady szanujcy si komputer take nasz
PECEL wyposaony jest w klawiatur. Nie
jest to moe klawiatura o moliwociach kon
soli PC, ale do naszych celw bdzie zupenie
wystarczajca. Nie zapominajmy, e w razie
absolutnej koniecznoci bdziemy mogli sko
rzysta take z klawiatury PC, o czym jeszcze
bdziemy mwi w dalszej czci artykuu.
Klawiatura PECELa skada si z szesna
stu klawiszy poczonych w matryc czterech
rzdw i czterech kolumn. Matryca zostaa
doczona do portu B procesora, zajmujc
wszystkie jego 8 pinw. W tym miejscu
chciabym wyjani jedn spraw: to e do
czylimy klawiatur do portu B nie oznacza
bynajmniej, e nie bdziemy mogli wykorzy
stywa jego wyprowadze do innych celw.
W momencie, kiedy klawiatura nie jest skano
wana wszystkie piny portu B wisz w powie

trzu i mog by wykorzystane do sterowania


dowolnymi ukadami. Musimy jedynie zwr
ci uwag, aby aden z tych ukadw nie
zwiera wej portu B ani do masy ani do plu
sa zasilania w czasie korzystania z klawiatury.
No wanie, w jaki sposb mamy dowie
dzie si czy i jaki klawisz zosta nacinity?
Myl, e wielu z Was ju si domyla: nale
y po prostu programowo cyklicznie usta
wia stan niski na kolejnych rzdach klawia
tury i za kadym razem bada, czy ktry
z pinw, do ktrych doczone s kolumny
matrycy nie znalaz si w stanie niskim. Tak,
jest to dobra metoda, a listing programu napi
sanego wedug tej zasady zosta przedstawio
ny na rysunku 15 wraz z ... przekrelajcym
go znakiem! Taki program oczywicie by
dziaa, ale po co mamy pisa tekst nie mie
szczcy si nawet na stronie ekranowej, jee
li Mark ju o wszystkim pomyla? Do ska
nowania szesnastoznakowej klawiatury suy
w MCS BASIC jedno proste polecenie:
Zmienna = GETKBD()
poprzedzone dyrektyw konfiguracyjn:
CONFIG KBD = PORT[numer portu]
po ktrego wydaniu klawiatura jest automa
tycznie przeszukiwana, a podana zmienna
przyjmuje umown warto nacinitego kla
wisza. Za chwil wyjanimy sobie pojcie
umown, a na razie poprosz Was o zapa
mitanie jednej wasnoci
polecenia
GETKBD(), ktrej przeoczenie mogoby spo
wodowa powane komplikacje podczas pisa
nia programu wykorzystujcego to polecenie:
Jeeli aden klawisz nie zosta nacinity,
to polecenie GETKBD() zwraca zawsze
warto 16
A zatem, wiemy ju wszystko, co jest po
trzebne do rozpoczcie nauki obsugi klawiatu
ry minikomputera. Napiszmy sobie zatem pro
sty programik demonstracyjny, ktrego zada
niem bdzie jedynie dowiadczalne potwierdze
nie zdobytej przed chwil wiedzy teoretycznej.
Rys. 15

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
Cls
Lcd Key
End If
Loop

Jeeli skompilujemy ten program i zapro


gramujemy nim procesor, to po kadym naci
niciu klawisza na wywietlaczu LCD b
dzie ukazywa si jego kod, czyli warto
cakowicie umowna. Ponadto z pewnoci
zauwaylicie ju co niepokojcego, co co
w niektrych sytuacjach moe spowodowa,
e nasza klawiatura bdzie miaa nieco egzo
tyczny rozkad przyciskw. Ot, okazao si
e kody naciskanych kolejno klawiszy uka
daj si w nastpujcy sposb:
0
1
2
3

4
5
6
7

8
9
10
11

12
13
14
15

co w najmniejszym nawet stopniu nie odpo


wiada ani napisom na pycie czoowej mini
komputera, ani oglnie przyjtym zasadom
konstruowania klawiatur numerycznych.
Czybym popeni jaki bd? Na szczcie
wszystko jest w porzdku. Przecie kody
odbierane z klawiatury s wartociami umow
nymi i tylko od programu zalee bdzie,
w jaki sposb bd interpretowane. Rozkad
przyciskw na klawiaturze zosta wymuszony
podczas projektowania pytki obwodu druko
wanego, na ktrej ze wzgldu na ch obnie
nia kosztw liczy si kady milimetr kwadra
towy. Nie przywizywaem najmniejszej wa
gi do rozkadu klawiszy na pytce obwodu
drukowanego poniewa metodami programi
stycznymi mona bez problemw zmieni
kody poszczeglnych klawiszy. Przerbmy
odrobin napisany program:
' ................................
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

i natychmiast zauwaymy, e kody klawiszy


uoyy si w nastpujcy, cakowicie zgod
ny z napisami na pycie czoowej, sposb:
7 8 9
4 5 6
1 2 3
0 10 11

15
14
13
12

Najmilsza chwila poranka:


dwch komputerw
pogadanka.
To, co za chwil przeczytacie stanowi
z pewnoci najciekawszy fragment tej cz
ci artykuu opisujcego metody programi
styczne stosowane przy tworzeniu software
dla minikomputera PECEL. Chciabym
wreszcie teraz poruszy spraw komunika
cji pomidzy ukadami mikroprocesorowy
mi, a komputerami klasy PC, a take pomi
dzy dwoma minikomputerami. Zauwacie,
e w tym momencie otwiera si przed nami
zupenie nowy obszar zastosowa naszego
minikomputera. Moe on by samodziel
nym systemem mikroprocesorowym rwnie
dobrze jak terminalem komputera, ukadem
wsppracujcym cile z PC. Wicej, jak
si w najbliszej przyszoci okae, to kom
puter moe by niekiedy terminalem PE
CELa, skwapliwie wykonujc wysyane
przez minikomputerek rozkazy. Mamy
przed sob wrcz oszaamiajce perspekty
wy: bdziemy mogli budowa np. przyrzdy
pomiarowe (pamitajmy o omiu wejciach
analogowych procesora 8535) mogce pra
cowa jako samodzielne urzdzenia, a take
jako terminale przekazujce komputerowi
PC dane do dalszej obrbki. Poruszymy sze
rzej ten temat w dalszych czciach artyku
u, a jak na razie zapraszam Was do lektury
EP 9/01 i 10/01, gdzie opisano wanie kon
strukcj wielofunkcyjnego miernika czsto
tliwoci wsppra
cujcego z kompu
terem PC, zbudo
wanego
take
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 rki
wyjtkowo potne
narzdzia progra
mowe i sprztowe,
ktre mog uczyni
programowanie PE
CELa nie tylko
dziecinnie atwym

zadaniem, ale take prawdziw przyjemno


ci i relaksujc rozrywk. O opisanie pro
cedur umoliwiajcych wymian danych za
porednictwem cza RS232 dopominali si
ju Studenci BASCOM College. A wic
prosz: macie co chcecie i jeszcze troch
wicej!
Jedn z najwikszych zalet procesorw
produkowanych przez firm ATMEL jest
wbudowany w struktur tych ukadw sprz
towy UART, umoliwiajcy stosunkowo a
tw realizacje transmisji danych w standar
dzie RS232. Poczenie systemu mikroproce
sorowego z komputerem pozwala na budow
najrniejszego typu terminali do PC, apara
tury pomiarowej z ktrej dane mona przeka
zywa i poddawa dalszej obrbce w kompu
terze. Magistrala komunikacyjna RS232 jest
chyba najlepszym sposobem na poczenie
ze sob dwch ukadw mikroprocesoro
wych i umoliwienie im rozmowy nawet
na bardzo due odlegoci.
Nie s to jednak jedyne zastosowania
transmisji RS232 odbywajcej si pomidzy
procesorem i komputerem. Za chwil dowie
my si, jak bardzo ta moliwo moe okaza
si uyteczna podczas uruchamiania i testo
wania programw dla systemw mikroproce
sorowych, ktre ... nawet nie bd nigdy wy
korzystywa transmisji szeregowej podczas
normalnej pracy.
Zarwno procesory 51 produkcji ATMEL
jak i prawie wszystkie (wyjtkami s: AT TI
NY22, AT90S2343 i AT90S2333) chipy
AVR wyposaone s w sprztowy ukad
UART (Universal Asynchronous Receiver
and Transmitter), umoliwiajcy realizacj
transmisji RS232 na drodze sprztowej.
W artykule, ktry w tej chwili czytacie, przy
jlimy zasad podobn do regu obowizu
jcych w BASCOM College: jak najmniej
Rys. 16

Elektronika dla Wszystkich

Projekty AVT
teorii: praktyka, praktyka i jeszcze raz prak
tyka! Dlatego te nie bdziemy szczegowo
opisywa budowy UART i zadowolimy si
jedynie pokazaniem na rysunku 16 pogldo
wego schematu, przedstawiajcego jego licz
niki i rejestry. Koledzy pragncy pogbi
swoj wiedz o UART znajd wszelkie po
trzebne dane w karcie katalogowej dowolne
go procesora AVR (www.atmel.com), a my
bdziemy traktowa ten ukad o do skom
plikowanej budowie jako ma czarn
skrzynk, ktra po prostu wykonuje wyda
wane w jzyku MCS BASIC polecenia.
Przekazywanie danych za pomoc cza
szeregowego jest w przypadku procesorw
ATMELa szczeglnie atwa, a przy korzy
staniu z pakietw BASCOM wrcz dziecin
nie prosta. Oczywicie, zanim rozpocznie
my transmitowanie danych musimy przygo
towa odpowiednie rodowisko sprztowe,
a nastpnie poinstruowa kompilator o na
szych zamierzeniach. rodowisko sprzto
we ju posiadamy: minikomputer PECEL,
komputer klasy PC oraz przygotowany
przed chwil przewd, z pomoc ktrego
poczymy ze sob obydwie maszyny. A za
tem, bierzmy si za pisanie pierwszego
programu.
Najwaniejsz spraw, jak musimy zaa
twi przed rozpoczciem pracy nad kadym
programem wykorzystujcym transmisj
RS232 jest prawidowe okrelenie szybkoci
przekazywania danych. Zaniedbanie tej
czynnoci bd przeprowadzenie jej w nie
waciwy sposb zawsze prowadzi do total
nej katastrofy czyli niemonoci nawizania
kontaktu pomidzy komputerami. Z listw
email od Czytelnikw wiem, e wanie nie
prawidowe zadeklarowanie szybkoci trans
misji lub nie podanie jej w ogle jest najcz
stsz przyczyn problemw pojawiajcych
si podczas uruchamiania programw wyko
rzystujcych cze RS232.
Szybko transmisji danych okrelana jest
za pomoc dyrektywy:
Rys. 17

Kwarc

Baudrate
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200

1000000Hz

4000000Hz

7372800Hz

0.2%
0,2%
7,5%
7,8%
7,8%
7,8%
22,9%
7,8%
22,9%
84,3%

0,2%
0,2%
0,2%
2,1%
0,2%
3,7%
7,5%
7,8%
7,8%
7,8%

0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%

$Baud= X [2400, 4800, 9600, 14400,


19200, 28800, 38400, 57600, 76800 lub
115200]
A wic, wydawao by si, e wszystko jest
bardzo proste: ustawiamy po prostu najwik
sz prdko transmisji i przystpujemy do
pisania programu. No dobrze, moemy
sprbowa, napiszmy sobie najprostszy pro
gramik, ktrego zadaniem jest jedynie wysa
nie prostego tekstu do komputera:
$crystal = 8000000
$baud = 115200
Print " PECEL wita Czytelnikw Elektroniki dla
Wszystkich!"
End

Wyjanieniem dziaania nowego polece


nia PRINT zajmiemy si za chwil, a teraz
zastanwmy si, czy ten program ma choby
najmniejsz szans na poprawne dziaanie.
Z gry mog Wam powiedzie, e nie ma!
Wyczmy teraz na chwil opcj PRO
GRAM AFTER COMPILE z menu
OPTIONS\ENVIRONMENT i skompilujmy
napisany programik. Kompilacja programu,
w ktrym BASCOM nie znalaz bdu ska
dni przebiega, oczywicie prawidowo, co
jednak nie oznacza e program bdzie dziaa
poprawnie. Kliknijmy teraz na przycisk
PROGRAM, a nastpnie wybierzmy opcj
SHOW RESULTS, co spowoduje otworzenie
nowego okienka z ca kopal
ni bezcennych informacji
o naszym programie (rysu
nek 17). Pniej zajmiemy
si bardziej szczegowym
ich opisem, a na razie zwr
my uwag tylko na trzy linij
ki wywietlonego tekstu:
BAUD
: 115200 Baud
XTAL
: 8000000 Hz
BAUD error : 7.84%

Okazuje si, e przy cz


stotliwoci oscylatora syste
mowego rwnej 8MHz, a taki
wanie kwarc zosta doczo
ny do naszego PECELa bd

Elektronika dla Wszystkich

8000000Hz

0,2%
0,2%
0,2%
0,8%
0,2%
2,1%
0,2%
3,7%
7,5%
7,8%

11059200Hz

0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%

Tabela 1 Bd czstotliwoci w zalenoci


od czstotliwoci kwarcu

generacji czstotliwoci zegarowej UART


wynosi a 7,8% co praktycznie uniemoliwia
prawidowe przeprowadzenie transmisji da
nych. Nie bdziemy tu wdawa si w do
skomplikowane obliczenia i bada jak cz
stotliwo zegarow UART moemy wyge
nerowa przy czstotliwoci zegara systemo
wego rwnej 8MHz. Nie obciajmy si
zbytnio teori, zainteresowanych odsyam do
karty katalogowej dowolnego procesora
AVR, a my posumy si teraz gotow tabel
k, skopiowan z takiej wanie strony.
Z tabeli tej wynika niezbicie, e przy cz
stotliwoci zegara systemowego wynoszcej
8MHz nie uda nam si wygenerowa wik
szej szybkoci transmisji RS232 ni 38400,
w ostatecznoci 57600Baud. Bd generacji
czstotliwoci nie wikszy ni 4% pozwala
jeszcze mie nadziej na prawidow wymia
n danych. Jednak jest to zabieg do ryzy
kowny i lepiej pozosta przy mniejszej cz
stotliwoci, np. 19200Baud.
A zatem przerbmy troch nasz program
testowy, ktry bdzie teraz wyglda
nastpujco:
$crystal = 8000000
$baud = 19200
Do
Print " PECEL wita Czytelnikw Elektroniki dla
Wszystkich!"
Wait 1
Loop
End

Raport wygenerowany przez BAS


COMa wyglda teraz take zupenie ina
czej: moemy mie cakowit pewno,
e transmisja danych bdzie przebiega
poprawnie.
BAUD
XTAL
BAUD error

: 19200 Baud
: 8000000 Hz
: 0.16%

Nadszed teraz doniosy moment przepro


wadzenia pierwszego eksperymentu z trans
misj danych z PECELa do komputera PC.

21

Projekty AVT
Moemy ju zaprogramowa procesor i... za
miast podziwia rezultaty naszej pracy wzi
si za konfigurowanie rodowiska programo
wego odpowiedzialnego za porozumiewanie
si z PECELem.
Bardzo wane jest prawidowe ustawie
nie szybkoci transmisji w urzdzeniu,
z ktrym procesor ma nawiza czno.
Takim urzdzeniem najczciej bdzie moni
tor interfejsu szeregowego, najlepiej ten, ktry
zosta wbudowany w pakiety BASCOM. Po
raz kolejny moemy teraz przekona si, jak
wspaniaym zestawem narzdzi jest nasz BA
SCOM. W pakiecie tym zaszyte s bowiem
wszystkie funkcje pozwalajce nie tylko na
monitorowanie portu RS232, ale i na dwukie
runkowe przekazywani danych pomidzy PC
a innym urzdzeniem wyposaonym w port
komunikacyjny RS232. Monitor konfiguruje
my po otwarciu okienka OPTIONS\COMMU
NICATION, tak jak pokazano na rysunku 18.
Musimy take zawsze pamita, e po ka
dej zmianie szybkoci transmisji w uka
dzie, ktry ma wsppracowa z kompute
rem musimy zmieni take ustawienia mo
nitora obsugujcego t transmisj. Uwaga
ta dotyczy nie tylko monitora zawartego
w pakiecie BASCOM, ale take wszystkich
Rys. 18

innych powszechnie stosowanych monito


rw portw RS232.
Oprcz szybkoci transmisji musimy tak
e okreli, przez ktry port szeregowy ma
si ona odbywa. Oczywicie, musi to by
ten port, do ktrego nie jest podczona my
szka. W przypadku mojego komputera by to
port COM1. Pozostae parametry w okienku
konfiguracyjnym pozostawiamy bez zmian,
tak jak jest to widoczne na rysunku 18.
Wikszo wspczenie uytkowanych
komputerw PC posiada fabrycznie zain
stalowane dwa porty szeregowe: COM1
i COM2, i do jednego z nich jest na stae do
czona myszka. Drugi port pozostaje najcz
ciej niewykorzystany i do niego wanie do
czymy przewd transmitujcy dane do
i z PECELa. Jednak po uruchomieniu pro
gramu monitora moe si zdarzy, e np. my
szka umieszczona zostaa 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 wyjcia z sytuacji. Moemy
przenie myszk do drugiego portu i po
nownie uruchomi komputer, lub wykorzy
stujc tylko klawiatur skonfigurowa moni
tor do ledzenia wolnego aktualnie portu.

Podsumujmy teraz wykonane czynnoci


i ich nastpstwa:
1. W procesorze minikomputera PECEL znaj
duje si napisany przez nas programik wysy
ajcy do komputera komunikat powitalny
2. Monitor portu szeregowego pakietu
BASCOM zosta odpowiednio skonfigu
rowany, okrelona zostaa szybko trans
misji numer wykorzystywanego do niej
portu COM.
A zatem nadesza dawno oczekiwana
chwila! Klikamy na przycisk TOOLS i na
stpnie wybieramy opcj TERMINAL EMU
LATOR, lub po prostu naciskamy kombina
cj klawiszy CTRL + T. Jeeli wszystkie opi
sane uprzednio czynnoci wykonalimy po
prawnie, to nasze oczy powinien ucieszy
widok pokazany na rysunku 19.
No i tak, Moi Drodzy, dokonalimy wiel
kiej rzeczy! Jak wielkiej, pokae najblisza
przyszo. W kadym razie jest to milowy
krok na drodze do budowy inteligentnego ter
minala komputerowego o ogromnych moli
wociach, jakim moe sta si nasz PECEL.
Cig dalszy w nastpnym numerze EdW

Zbigniew Raabe,
zbigniew.raabe@edw.com.pl
Rys. 19

UWAGA!
BARDZO WANE!
Kilka dni temu stwierdzilimy, e
w czasie procesu produkcyjnego
jednej z serii pytek obwodw
drukowanych do minikomputera
PECEL powstaa przerwa w obwo
dzie masy. Na szczcie wada ta
jest bardzo atwa do naprawienia:
wystarczy poczy za pomoc
odcinaka przewodu dwa punkty:
pin 6 zcza CON8 i pin 2 stabiliza
tora napicia IC4. Sposb wykona
nia dodatkowego poczenia zosta
pokazany na rysunku.

22

Elektronika dla Wszystkich

Projekty AVT

Mikrokomputer PECEL
z procesorem
AT90S8535
2550/P
Cz 4
Oczywicie, program przedstawiony w po
przednim odcinku ma tylko jedno zastosowa
nie: pokazanie e nawizanie cznoci po
midzy dwoma komputerami jest moliwe
i sprawdzenie poprawnoci konfiguracji uy
wanych do transmisji narzdzi. Poza tym nie
suy on do niczego. Aby jednak mc napisa
bardziej rozbudowany program, musimy
wreszcie zapozna si choby z podstawo
wymi poleceniami programowymi jzyka
MCS BASIC sucymi przekazywaniu in
formacji poprzez cze RS232.
Podstawowymi poleceniami jzyka MCS
BASIC stosowanymi podczas wymiany da
nych poprzez interfejs RS232 s:
PRINT [zmienna, warto, zmienna
tekstowa lub tekst]
pozwalajce wysa do portu szeregowego
komputera dowoln warto, zmienn licz
bow lub tekstow, oraz
INPUT [opcjonalny tekst zachty],
[zmienna liczbowa lub tekstowa]
ktre umoliwi rczne przesanie informa
cji poprzez port szeregowy do systemu mikro
procesorowego. Jeeli polecenie INPUT zo
stanie zastosowane cznie z tekstem zachty
podanym w cudzysowie, to tekst ten zostanie
wywietlony na ekranie terminala komputera.
Czy jednak to drugie polecenie naprawd
dziaa? Aby to sprawdzi, napiszmy sobie
prosty programik:
$crystal = 8000000
$baud = 19200
Dim Name$ As String * 10
Do
Print " Jestem PECEL"
Input "Jak masz na imi? " , Name$
Print "Witaj " ; Name$ ; "!"
Print "Wiem e jeste ";
If Right(name$ , 1) = "a" Then
Print "kobiet"
Else
Print "mczyzn"
End If
Loop

22

Napisany program kompilujemy i na e musimy jeszcze poruszy temat obiecanej


wszelki wypadek testujemy w symulacji pro niespodzianki, podam Wam tylko jeden
gramowej (rysunek 20). Uruchamianie emu przykad. Obiecuj, bdzie to przykad wy
latora programowego niczym si nie rni od jtkowo spektakularny!
podobnej operacji dokonywanej
w rodowisku BACOMa 8051
i ktr opisywalimy w BASCOM
College. Jeeli nie popenilimy b
du, to powinnimy nawiza z PE
CELem dwustronn czno.
Aby si upewni, czy nasz program
dziaa poprawnie otwieramy okienko
monitora portu RS232 i odpowiadamy
na pytanie zadane przez PECELa.
Tekst wprowadzamy z klawiatury
komputera, a nastpnie potwierdzamy
podanie imienia za pomoc klawisza
ENTER (rysunek 21). Czytelnikom
pozostawiam odpowied na pytanie,
w jaki sposb procesor okrela pe
rozmwcy i jakie trzy mskie imiona
mog wprowadzi go w bd.
No tak, przeomowy moment ma
my ju za sob: PECEL potrafi poro
zumiewa si z PECETem! Pozosta
je jednak otwarte pytanie, do czego
to mona wykorzysta? Przecie Rys. 20
chyba nie do pisania prostych, za
bawkowych programikw? Ot, Rys. 21
z pewnoci komunikacja pomi
dzy dwoma komputerami nie b
dzie wykorzystywana tylko do
bahych spraw. Wprost przeciw
nie, wykorzystujc narzdzia,
z ktrymi zapoznalimy si przed
chwil, bdziemy mogli zbudo
wa, a waciwie zaprogramowa
wiele bardzo powanych urz
dze, a przede wszystkim zestaw
przyrzdw
laboratoryjnych
o ogromnych moliwociach. Te
matowi temu powicona bdzie
wiksza poowa kolejnej czci
tego artykuu, na razie, pamitajc

Elektronika dla Wszystkich

Projekty AVT
Mam nadziej, e dysponujecie choby
jednym egzemplarzem popularnego termo
metru cyfrowego typu DS1820? Jeeli nie, to
warto zakupi nawet kilka sztuk tych tanich
i niezwykle uytecznych elementw. Przyda
dz si nam wielokrotnie, nie tylko podczas
nauki programowania PECELa. Jeden taki
termometr podczamy do zcza CON6 mi
nikomputera, dokadnie tak, jak pokazano na
rysunku 22. Nastpnie piszemy kolejny pro
gram, kompilujemy go i programujemy nim
procesor. Programu tego nie bd komento
wa, poniewa procedury odczytu danych
z termometrw DS1820 zostay ju opisane
w ramach kursu BASCOM College.
W tym memencie $crystal = 8000000
musz wspomnie $baud = 19200
o jednej, do wsty Config 1wire = Pind.6
Dim Bd(9) As Byte
dliwej sprawie. Mo Dim Tmp As Byte
je, legendarne ju Dim T As Integer
Dim T1 As Integer
roztargnienie dao je Dim Reg_no(8) As Byte
szcze raz o sobie, Declare Sub Read1820
"Nacinij klawisz
tym razem owocujc Input
ENTER", tmp
przeoczeniem pew " Uwaga! Wydanie
nego
elementu, polecenia INPUT
powoduje wstrzymanie
ktrego umieszcze pracy programu do
nie w konstrukcji momentu nacinicia
klawisza ENTER
PECELa byoby jak Do
1wwrite &HCC
najbardziej wskaza
1wwrite &H44
ne. Mam tu na myli
Wait 1
przycisk sucy do
Read1820
Print T
rcznego resetowa
Loop
nia procesora. W Sub Read1820
1wreset
warunkach normal
1wwrite &HCC
nej eksploatacji taki
1wwrite &HBE
Bd(1) = 1wread(9)
element nie byby
1wreset
specjalnie uyteczny,
Tmp = Bd(1) And 1
ale podczas prowa
If Tmp = 1 Then
dzenia eksperymen DecrTBd(1)
= Makeint(bd(1) ,
tw jego zastosowa Bd(2))
T
= T * 50
nie moe znacznie
T = T 25
usprawni
prac.
T1 = Bd(8) Bd(7)
T1 = T1 * 100
Wyczanie i ponow
T1 = T1 / Bd(8)
ne wczanie zasila
T = T + T1
T = T / 10
nia w celu rozpocz
End Sub
cia pracy programu
jest do uciliwe,
a dodanie przycisku RESET, niekoniecznie
umieszczonego na pycie czoowej bdzie
czynnoci bardzo prost. Jako taki element
moemy wykorzysta zwyky microswitch lub
dowolny inny przycisk monostabilny o niewiel
kich wymiarach, doczony do PECELa zgo
dnie ze schematem pokazanym na rysunku 23.
Otwieramy teraz po raz kolejny okienko
terminala RS232 i albo naciskamy dodany do
ukadu przycisk RESET, albo wyczamy
i ponownie wczamy zasilanie PECELa.
Na ekranie monitora ukae si napis zachca
jcy do nacinicia klawisza ENTER, co te
bez obaw moemy natychmiast uczyni.
Zgodnie z przewidywaniami na ekranie
rozpoczo si cykliczne wywietlanie zmie
rzonej przez DS1820 temperatury. Poniewa
w programie zabrako polece przeliczaj

Elektronika dla Wszystkich

cych wynik pomiaru, wywietlane wartoci s


dziesiciokrotnie zawyone, tj. zamiast np.
28,3 stopni wywietlane jest 283. Nie przej
mujmy si tym jednak, za chwil okae si, e
w niczym nie bdzie nam to przeszkadza.
Pobawmy si teraz chwil tak wykonanym
termometrem, sprawdzajc czy prawidowo
reaguje na podgrzanie i ochadzanie czujnika.

Rys. 22
Rys. 23

Myl, e cz Czytelnikw jest nieco


rozczarowana: tyle zachodu, aby zbudowa
prosty termometr! Poczekajcie jednak chwi
l, a ju teraz mog Wam przypomnie, e
zbudowalimy termometr, ale nie taki znowu
byle jaki: do PECELa moemy przecie do
czy absolutnie dowoln ilo czujnikw
DS1820, pracujcych na jednym, wsplnym
przewodzie. To tego tematu powrcimy je
szcze w przyszoci, a na razie chciabym po
kaza Wam co innego.
Otwrzmy teraz po raz kolejny okienko
terminala portu RS232 i zajmijmy si dodat
kowymi przyciskami umieszczonymi na jego
grnej krawdzi (rysunek 24). Najbardziej
powinien nas zainteresowa przycisk OPEN
Rys. 24

LOG, poniewa otwiera on drog do niezna


nych dotd, rewelacyjnych moliwoci BA
SCOMa. Wykonajmy kolejno nastpujce
czynnoci:
1. Zresetujmy minikomputer bd za pomo
c dodanego przycisku, bd za pomoc
wyczenia i wczenia zasilania.
2. Kliknijmy na przycisk OPEN LOG. Spo
woduje to pojawienie si na ekranie
okienka, w ktrym musimy poda nazw
pliku, do ktrego zapisywane bd wszel
kie dane przechodzce przez monitorowa
ny port COM.
3. Po nadaniu nazwy pliku zamykamy
okienko OPEN LOG i naciskamy klawisz
ENTER. Od tego momentu wszystkie in
formacje ukazujce si na ekranie monito
ra bd take zapisywane w pliku o poda
nej przez nas nazwie.
4. Pomczmy teraz troch nasz termometr.
Osobicie polecabym seri sadystycz
nych eksperymentw polegajcych na
przypiekaniu go lutownic lub innym go
rcym przedmiotem. Zwracajmy jednak
uwag, aby temperatura czujnika nie prze
kroczya 120 stopni (na ekranie liczba
1200!).
5. Po upywie 1 ... 2 minut kliknijmy ponow
nie na przycisk na krawdzi terminala i tym
razem wybierzmy opcj CLOSE LOG.
Moemy teraz zapozna si z treci pli
ku, w ktrym zapisalimy wyniki pomiarw
temperatury. To ju zaczyna by interesujce:
mamy tam dokadny zapis zmian temperatury
odbywajcego si na okrelonym odcinku
czasu, a pomiary dokonywane byy mniej
wicej co 1 sekund. Oczywicie, ten skrom
ny sposb zapisu moemy metodami progra
mistycznymi dowolnie rozbudowa. Moemy
do kadego pomiaru doda informacj o cza
sie jego dokonania, moemy dowolnie zmie
nia czstotliwo dokonywanych pomiarw,
moemy te wreszcie zastosowa dowoln
ilo czujnikw i ich wyniki zapisywa w od
dzielnych kolumnach. Teraz chyba moglicie
zorientowa si, jakie moliwoci daje trans
misja danych z PECELa do komputera PC.
W najbliszej przyszoci zaprogramujemy
PECELa tak, aby sta si wszechstronnym
laboratoryjnym przyrzdem pomiarowym.
Poczenie z komputerem da nam wtedy mo
liwo zapisywania wynikw wszelkich po
miarw i archiwizowania ich w celu pniej
szego wykorzystania. Ale czy
tylko archiwizowania? Przecie
dane uzyskane z PECELa moe
my podda dalszej obrbce, wy
korzystujc w tym celu arkusze
kalkulacyjne czy te edytory gra
ficzne pracujce pod kontrol
MS WINDOWS. Nie mog si
po prostu powstrzyma, aby nie
zaprezentowa Wam kolejnego,
spektakularnego pokazu moli
woci, jakie dostalimy do rk.

23

Projekty AVT
Dane opisujce barbarzyski eksperyment
z przypiekaniem nieszczsnego czujnika lu
townic przeniosem jako plik ASCII do ar
kusza kalkulacyjnego MS EXCEL. Nastp
nie wyniki pomiarw zostay podzielone
przez 10. Wykonanie z tak przetworzonych
danych wykresu sprowadzio si ju tylko do
kilku klikni myszk, a efekt wszystkich
tych operacji nie trwajcych duej ni minu
t zosta pokazany na rysunku 25. Wyglda
ciekawie, prawda? Na wykresie wida nawet
krtki moment wahania, w ktrym chciaem
da ju spokj drczonemu czujnikowi, ale
ostatecznie postanowiem torturowa go
nadal.
Rys. 25

Moi Drodzy, to tylko prosty, najprostszy


przykad moliwoci PECELa uywanego
w roli inteligentnego terminala komputero
wego. W najbliszym czasie zajmiemy si
szerzej tym tematem, ale dopiero po omwie
niu wszystkich (lub prawie wszystkich) me
tod programistycznych stosowanych przy pi
saniu programw na nasz minikomputer.
Do tej pory mwilimy o dwukierunkowej
transmisji danych pomidzy komputerem
a procesorem wycznie w kontekcie ewen
tualnej budowy urzdze wykorzystujcych
tak wymian informacji. Istnieje jednak je
szcze jedno zastosowanie cza RS232, ge
nialnie upraszczajce odpluskwianie i testo
wanie pisanego oprogramowania. Transmisj
szeregow moemy wykorzysta jako narz
dzie do podgldania pracujcego programu,
i to na ywo, w jego naturalnym rodowi
sku. Wystarczy nieraz, w punkcie programu,
ktrego dziaania nie jestemy pewni, dopisa
instrukcje wysyajce na ekran terminala np.
informacje o wartoci pewnych zmiennych,
od ktrych w decydujcy sposb zaley dzia
anie programu. Z kolei, jeeli chcemy przete
stowa program zmieniajc zdalnie para
metry jego pracy, to stosujc instrukcj
INPUT moemy w wybranych momentach
zmienia wartoci wybranych zmiennych.
Omawianie podstawowych zagadnie
zwizanych z transmisj danych poprzez z
cze RS232 zajo nam tyle miejsca, e ju
niewiele go pozostao na opisanie niespo
dzianki, jak dla Was przygotowaem. Tak
wic z koniecznoci omwimy t spraw
w najwikszym skrcie, pozostawiajc reszt
do nastpnego numeru EdW.
Opis PECELa nie jest BASCOM College
i nie mam prawa zadawa Wam jakichkol

24

wiek wicze czy prac domowych do odro


bienia. Mam jednak prob: moe zechcieli
bycie w wolnej chwili przepisa do edytora
BASCOMa program, ktrego listing zosta
zamieszczony poniej.
Program ten nie jest mojego autorstwa, nie
mog wiec go ani zmienia ani komentowa.
Tak wiec, po prostu przepiszcie go, nie wnika
jc na razie w jego tre. Nastpnie poprosz
Was o skompilowanie tego programu i wpisa
nie go do pamici procesora. Uprzedzam, e
bezporednio po wykonaniu tej czynnoci spo
tka Was przykre rozczarowanie: PECEL nie
bdzie dawa dnych widocznych z zewntrz
oznak ycia. Nastpnie poczcie ponownie
PECELa z komputerem za pomoc zcza
RS232 i na wszelki wypadek odczmy od nie
go kabel programatora.
'MONITOR SYMULACJI
SPRZTOWEJ
$regfile = "8535def.dat"
$crystal = 8000000
$baud = 57600
Dim Krk As Byte
Dim Adr As Word
Dim Adrl As Byte , Adrh
As Byte
Dim Vl As Byte
Do
Krk = Inkey()
If Krk = "T" Then
Print Chr(13);
Elseif Krk = "W" Then
Adr = Waitkey()
Vl = Waitkey()
Out Adr , Vl
Print Chr(13);
Elseif Krk = "R" Then
Adr = Waitkey()
Vl = Inp(adr)
Print Chr(vl);
Elseif Krk = "O" Then
Adrl = Waitkey()
Adrh = Waitkey()
Vl = Waitkey()
Adr = Adrh * 256
Adr = Adr + Adrl
Out Adr , Vl
Print Chr(13);
End If
Loop

Kolejn czynnoci bdzie napisanie proste


go programu, wykorzystujcego np. wywie
tlacz alfanumeryczny LCD i klawiatur szes
nastkow. Nie musi to by jaki nowy
i skomplikowany program, na pocztek zu
penie wystarczy prosty programik, ktry ju
wykorzystywalimy do demonstracji obsugi
wywietlacza LCD i klawiatury. Tu bardzo
wana uwaga: na samym pocztku pro
gramu napiszcie $SIM! Nastpnie skom
pilujcie ten program, ale w adnym wypad
ku nie adujcie go do pamici procesora!
Kolejn czynnoci bdzie wykonanie
drobnej zmiany w konfiguracji BASCOMa.
Musimy zmieni uprzednio ustawion prd
ko transmisji danych poprzez zcze RS232
z 19200 na 57600 baud (rysunek 26).
No i wreszcie dochodzimy do koca: pozo
stao nam ju tylko otworzenie okienka sy
mulatora (klawisz F2), kliknicie na ikonk
wczania symulacji sprztowej (rysunek 27)

i nacinicie na strzak wczajc symula


cj. Nastpnie moemy ju przeprowadzi te
sty klawiatury za pomoc uniwersalnego
emulatora sprztowego, ktry w tym mo
mencie dostalicie do dyspozycji. Nie bdzie
ju potrzebne wielokrotne przeprogramowy
wanie procesora w celu przetestowania drob
nych zmian w programie. Wszystkie testy b
dziemy mogli przeprowadzi w real world

Rys. 26
Rys. 27

Rys. 28

wycznie w symulacji sprztowej.


Poruszony temat jest tak obszerny, e jego
kontynuacj odkadamy do dalszej czci ar
tykuu o minikomputerze PECEL.
Zbigniew Raabe,
zbigniew.raabe@edw.com.pl

Elektronika dla Wszystkich

You might also like