Radioelektronik Audio-HiFi-Video 8/2001
Opis programu AT51.EXE
Do obs³ugi przedstawionego w artykule pro-
gramatora s³u¿y program AT51.EXE, napi-
sany w jêzyku Pascal z kilkoma wstawkami
w assemblerze. Jest on przeznaczony do
uruchamiania w systemie operacyjnym MS-
DOS nie starszym ni¿ 3.3. Mo¿na go uru-
chomiæ nawet na zabytkowym komputerze
wyposa¿onym w pamiêæ RAM o pojemno-
ci 512 kB i procesor 80286.
Istnieje mo¿liwoæ uruchamiania programu
w systemie Windows, co jest niezwykle
wa¿n¹ rzecz¹ dla u¿ytkowników systemu
Windows Millenium. Autor artyku³u udo-
stêpnia demonstracyjn¹ wersjê programu
1
.
Wszystkie komunikaty generowane przez
program s¹ przygotowane w jêzyku pol-
skim. Do wywietlenia polskich liter wykorzy-
stano stronê kodow¹ 852.
Program nale¿y umieciæ na dowolnym dys-
ku twardym znajduj¹cym siê w systemie
(domylnie c:\), na jednej ze cie¿ek do-
stêpu zdefiniowanej zmienn¹ PATH w pliku
AUTOEXEC.BAT. Dla przyk³adu w syste-
mach MS-DOS 6.22 i ni¿szych bêdzie to
cie¿ka c:\dos\, natomiast w Windows 95,
98, Millenium, 2000, bêdzie to cie¿ka
c:\windows\command\.
Po wpisaniu AT51 w linii poleceñ systemu
DOS pojawia siê wizytówka programu z krót-
k¹ wskazówk¹ pos³ugiwania siê nim. Pro-
gram nale¿y wywo³aæ z trzema parametra-
mi. Miêdzy nazw¹ programu i poszczegól-
nymi parametrami jego wywo³ania powinny
znajdowaæ siê spacje. Je¿eli zamiast trzech
parametrów wywo³ania podamy tylko jeden
o postaci /?, ?, /h, h, /H lub H to program wy-
wietli krótk¹ pomoc.
Pierwszy parametr jest nazw¹ pliku zawie-
raj¹cego program skompilowany (rozszerze-
nie domylne .hex dla plików w formacie
Intel.Hex).
Drugi z parametrów jest numerem wyko-
rzystywanego ³¹cza równoleg³ego LPT, do
którego jest do³¹czony programator, mog¹
to byæ: LPT1, LPT2, LPT3 i LPT4.
Trzeci parametr wywo³ania programu AT51
okrela typ programowanego mikrokompu-
tera. Mo¿e to byæ AT89C1051, AT89C2051
lub AT89C4051. Nale¿y okrelaæ szczegól-
nie uwa¿nie poniewa¿ nie ma mo¿liwoci
automatycznego okrelenia typu uk³adu
w podstawce przez odczyt jego sygnatury.
W trakcie wykonywania programu jestemy
informowani o ró¿nego rodzaju b³êdach
i sytuacjach szczególnych jakie mog¹ zaist-
nieæ w trakcie programowania. Program
jest w stanie generowaæ 43 ró¿ne komuni-
katy, z których kilka omówiono poni¿ej.
PROGRAMATOR AT51
(2)
q
Ten port równoleg³y nie istnieje ! _ komu-
nikat wywietlany w przypadku b³êdnego
okrelenia ³¹cza równoleg³ego w systemie.
q
Nie okrelono poprawnie typu mikro-
komputera ! _ komunikat wywietlany w sy-
tuacji, gdy nie dokonano poprawnego okre-
lenia typu programowanego uk³adu.
q
Plik nie istnieje lub nie zosta³ pomylnie
otworzony _ b³¹d ten pojawia siê po poda-
niu z³ej nazwy pliku lub braku dostêpu do po-
danego pliku.
q
B³¹d, rozmiar pliku z danymi nie mo¿e
przekraczaæ 12 kB ! _ komunikat wywie-
tlany wówczas, gdy pojemnoæ pliku skom-
pilowanego z kodem do zaprogramowania
jest wiêksza ni¿ 12 kB; przy dopuszczalnej
pojemnoci 4 kB,
q
Podany plik Nazwa nie ma prawid³o-
wego formatu Intel.Hex _ komunikat poja-
wiaj¹cy siê, gdy plik okrelony przez pierw-
szy parametr wywo³ania programu AT51
nie odpowiada standardowi Intel.Hex.
q
Niedozwolony znak w pliku Nazwa o ko-
dzie #Kod ! _ Program akceptuje w plikach
Intel.Hex jedynie znaki: #13, #10, :, 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f;
pojawienie siê innego znaku ASCII jest trak-
towane jako b³¹d i przerywa pracê programu.
q
B³¹d, plik zawiera wiêcej kodu ni¿ mo¿-
na go zapisaæ w uk³adzie AT89CX051 ! Po-
praw kod ród³owy i spróbuj ponownie _
b³¹d ten pojawia siê, gdy pojemnoæ pliku ty-
pu Intel.Hex jest wiêksza ni¿ pojemnoæ
pamiêci Flash EPROM w wybranym typie
mikrokomputera. Nale¿y wtedy zmieniæ za-
stosowane mikrokomputery, np. wstawiæ
2051 lub 4051 zamiast 1051 lub zoptyma-
lizowaæ program tak, aby by³ krótszy.
q
Plik z danymi Nazwa prawdopodobnie
nie zawiera kodu programu. Popraw plik
z kodem ród³owym i spróbuj ponownie _
komunikat pojawiaj¹cy siê wówczas, gdy
program obs³ugi programatora wykryje plik
nie zawieraj¹cy ¿adnego skompilowanego
programu.
q
Programowanie mikrokomputera
AT89CX051 _ komunikat informuj¹cy o ty-
pie mikrokomputera aktualnie programo-
wanym przez programator.
q
B³¹d, brak mikrokomputera lub goto-
woci mikrokomputera? _ komunikat poja-
wiaj¹cy siê przy braku w pod³¹czonym pro-
gramatorze programowanego mikrokom-
putera lub braku generacji prawid³owej od-
powiedzi podczas programowania. Drugi
przypadek mo¿e oznaczaæ uszkodzenie
lub niepe³nosprawnoæ uk³adu.
q
B³¹d, brak programatora ? _ komuni-
kat sygnalizuj¹cy brak po³¹czenia programa-
tora z ³¹czem transmisji równoleg³ej lub
brak zasilania programatora.
q
Programowanie zakoñczono _ komu-
nikat pojawiaj¹cy siê w chwili pomylnego
zakoñczenia procesu programowania mikro-
komputera.
q
Czy zaprogramowaæ nastêpny uk³ad
AT89CX051 ? t _ tak, dowolny klawisz _ nie
_ po zakoñczeniu procesu programowania
program obs³ugi AT51 proponuje programo-
wania mikrokomputera tego samego typu.
W trakcie programowania, program wywietla
wskanik postêpu programowania w central-
nej czêci ekranu wraz z towarzysz¹c¹ skal¹.
Integraln¹ czêci¹ oprogramowania do³¹czo-
nego do programatora jest program
LINIJKA.ASM i jego skompilowana wersja LI-
NIJKA.HEX. Efektem dzia³ania programu jest
w³¹czanie i wy³¹czanie wiecenia LED do³¹-
czonych do portu P1 mikrokomputera.
Opis miniuk³adu uruchomieniowego
Do realizacji projektu zawieraj¹cego mikro-
komputer jest potrzebne, oprócz progra-
matora, jakie urz¹dzenie, które umo¿liwi
ocenê efektów pracy. Takie zadanie spe³nia
przedstawiony na rys. 6 mini-uk³ad urucho-
1
Jest ona dostêpna na redakcyjnej stronie WWW.
Rys. 6. Schemat mini-uk³adu uruchomieniowego
15
mieniowy. Zawiera on w swej podstawowej
strukturze rezonator kwarcowy 12 MHz,
uk³ad umo¿liwiaj¹cy rêczne i automatyczne
resetowania po w³¹czeniu napiêcia zasila-
j¹cego oraz kilka pól ³¹cznikowych do ³¹cze-
nia wyprowadzeñ uk³adu z podzespo³ami
zewnêtrznymi. Dodatkowo na p³ytce monta-
¿owej znajduj¹ siê: LED-y z rezystorami
ograniczaj¹cymi, brzêczyk, modu³ klawiatu-
ry i gniazdo szufladowe DB9 umo¿liwiaj¹ce
ewentualne wykorzystanie, istniej¹cego
w uk³adach rodziny AT89, sterownika trans-
misji szeregowej.
Miniuk³ad uruchomieniowy nale¿y zmonto-
waæ na p³ytce drukowanej przedstawionej na
rys. 7 zgodnie z rozmieszczeniem elemen-
tów przedstawionym na rys. 8. W miejscu
uk³adu scalonego nale¿y wstawiæ podstaw-
kê u³atwiaj¹c¹ w³¹czanie programowanych
uk³adów. Jako klawiatury i przycisku RE-
SET nale¿y u¿yæ miniaturowych prze³¹czni-
ków normalnie rozwartych (NO). W miej-
sce pól ³¹cznikowych wstawiono koñcówki,
które potem mo¿na ³¹czyæ zwieraczami
(jumper) lub wykonanymi specjalnie odcin-
kami przewodów zakoñczonymi wsuwkami.
Testowanie ca³oci
Programator nale¿y do³¹czyæ do kompute-
ra za pomoc¹ kabla po³¹czeniowego.
W podstawce nale¿y umieciæ jeden z uk³a-
Radioelektronik Audio-HiFi-Video 8/2001
dów rodziny AT89, a nastêpnie w³¹czyæ
komputer i zasilanie programatora.
Uruchomienie programu obs³ugi z dowolne-
go katalogu mo¿e mieæ postaæ, np. at51
d:\at89\linijka.hex 1 2 , co oznacza progra-
mowanie mikrokomputera AT89C2051. Po-
danie rozszerzenia pliku, jeli ma domylne
.hex, nie jest konieczne. Je¿eli program ob-
s³ugi uruchamiamy z katalogu zawieraj¹-
cego plik z programem, to nie trzeba poda-
waæ cie¿ki dostêpu, a wystarczy sama na-
zwa pliku.
Je¿eli programowanie przebiegnie pomy-
lnie, to nale¿y wyj¹æ uk³ad z podstawki
programatora i umieciæ go w podstawce mi-
niuk³adu uruchomieniowego. Na polu ³¹cz-
nikowym nale¿y po³¹czyæ wyprowadzenia
portu P1 z LED-ami, a nastêpnie w³¹czyæ
napiêcie zasilaj¹ce +5 V. W razie potrzeby
nale¿y uk³ad rêcznie zresetowaæ przyci-
skiem RESET. Je¿eli wszystko przebieg³o
pomylnie, bêdzie widoczny prosty efekt
wietlny zawiecaj¹cych siê i gasn¹cych
LED-ów.
W przypadku uruchamiania programu w syste-
mie Windows nale¿y pos³u¿yæ siê poleceniem
Uruchom (Run), a nastêpnie wpisaæ w okien-
ku nazwê programu obs³ugi (AT51) wraz ze
wszystkimi wymaganymi parametrami.
Uwagi
Obecnie autor publikacji nie dysponuje pro-
gramem nadzoruj¹cym przesy³anie danych
za porednictwem ³¹cza szeregowego. Je-
¿eli program taki pojawi siê w przysz³oci, to
czytelnicy zostan¹ o tym poinformowani za
porednictwem witryny internetowej autora
http://bc107.republika.pl, na której znajduj¹
siê dodatkowe materia³y uzupe³niaj¹ce do
artyku³u w postaci programu obs³ugi progra-
matora AT51.EXE, programu linijka.asm
i jego wersji skompilowanej linijka.hex.
Pod podanym wy¿ej adresem s¹ równie¿
dostêpne materia³y ród³owe firmy ATMEL
opisuj¹ce uk³ady rodziny AT89. Czytelnicy
którzy zechc¹ pog³êbiæ wiedzê o budowie
i zasobach komputera IBM-PC, szczególnie
³¹cza transmisji równoleg³ej wykorzystane-
go w przedstawionej konstrukcji, powinni
siêgn¹æ po literaturê [1], gdzie znajd¹ szcze-
gó³owe omówienie tego i innych zagadnieñ.
Zasady programowania w assemblerze zgo-
dnie ze standardem przemys³owym MCS-
51 znajd¹ czytelnicy w [2], a opis budowy mi-
krokomputerów i ich zastosowañ wraz
z przyk³adowymi programami mo¿na zna-
leæ w [3], gdzie równie¿ podano zasady ich
wspó³pracy z otoczeniem.
n
Mariusz Janikowski bc107
@
priv.onet.pl
L I T E R A T U R A
[1] Metzger P.: Anatomia PC, wydanie drugie rozszerzo-
ne, Helion, Gliwice 1996.
[2] Ga³ka P.: Podstawy programowania mikrokontrolera
8051, Mikom, Warszawa 1995
[3] Pe³ka R.: Mikrokontrolery. Architektura, programowa-
nie, zastosowania., WK£, Warszawa 1999
Rys. 7. P³ytka drukowana mini-uk³adu uruchomieniowego
Rys. 8. Rozmieszczenie elementów na p³ytce drukowanej mini-uk³adu
uruchomieniowego