Pętla w asemblerze dla Atmela 89C2051 - wystawianie logicznej jedynki na porcie 1
programowanie atmela 89c2051
From: "apart" <apartyka_at_nospam_kointech.com.pl>
Subject: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 16:35:44 +0200
witam
jestem zupelnie poczatkujacym assemblerowcem,
i mam problem z napisaniem banalnego programu,
ktory bedzie na port 1 mojego mikrokontrolera
(atmel 89c2051) wystawial logiczna jedynke w petli.
czy ktos moglby mi pomoc ?
From: =?iso-8859-2?Q?Micha=B3_Lankosz?= <nie_at_nospam_lubie.spamu>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 16:48:42 +0200
ktory bedzie na port 1 mojego mikrokontrolera
(atmel 89c2051) wystawial logiczna jedynke w petli.
start:
mov p1,#0ffh
sjmp start
Czy o to chodziło?
--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
e-mail: mike2001 (małpa) tlen.pl
From: "apart" <apartyka_at_nospam_kointech.com.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 16:54:55 +0200
chyba tak ;)
a nie powinno sie uzywac instrukcji
out ? mozesz mi podac jakis adres,
gdzie jest opis asemblera dla
tego kontrolera?
Użytkownik "Michał Lankosz" <nie_at_nospam_lubie.spamu> napisał w wiadomości
news:aamar7$hil$1_at_nospam_news.tpi.pl...
ktory bedzie na port 1 mojego mikrokontrolera
(atmel 89c2051) wystawial logiczna jedynke w petli.
start:
mov p1,#0ffh
sjmp start
Czy o to chodziło?
--
> Michał, SQ9FQQ http://sq9fqq.prv.pl/
> GG:374157 http://free.ngo.pl/~sp9zcj/
> e-mail: mike2001 (małpa) tlen.pl
>
>
From: "Filip <DragonMaster>" <filip_gd_at_nospam_wp.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 17:05:03 +0200
a nie łatwiej bascoma...........
tak tak assambler jest lepszy ale bascom chyba z lekka prostszy, wręcz
banalny
ja też się uczę i w miarę idzie...
pozdr
From: "Bartosz Sarama" <quasimod_at_nospam_poczta.onet.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 18:32:11 +0200
Użytkownik "Filip <DragonMaster>" <filip_gd_at_nospam_wp.pl> napisał w wiadomości
news:17927-1020179035_at_nospam_as1-212.starogard.dialup.inetia.pl...
a nie łatwiej bascoma...........
Nie zaczynaj nauki od zlych nawykow :))
Jesli zaczniesz od assemblera, ktory nie jest wcale taki straszny, to na
pewno znacznie wiecej sie nauczysz
W razie czego pisz na priv.
Pozdrawiam
Bartosz Sarama
From: =?iso-8859-2?Q?Micha=B3_Lankosz?= <nie_at_nospam_lubie.spamu>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 17:32:08 +0200
out ? mozesz mi podac jakis adres,
gdzie jest opis asemblera dla
tego kontrolera?
'51 nie ma takiego rozkazu jak out.
PDF z listą rozkazów znajdziesz na stronach Atmela.
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 18:35:37 +0200
Użytkownik "apart" <apartyka_at_nospam_kointech.com.pl> napisał w wiadomości
news:3cceb01a$1_3_at_nospam_news.vogel.pl...
chyba tak ;)
a nie powinno sie uzywac instrukcji
out ? mozesz mi podac jakis adres,
gdzie jest opis asemblera dla
tego kontrolera?
Opis architektury MSC-51 i listę rozkazów masz np. tutaj:
http://www.ampr.intertele.pl/sq8feu/8051/index.htm
i jeszcze w 100 innych miejscach. (google -> '8051 kurs' )
Układy z serii 51 aczkolwiek oparte na tym samym (z grubsza) rdzeniu różnią
się w kwestii dostępnej pamięci i układów peryferyjnych. Np. nie ma sensu
użycie rozkazu MOVX w 89C2051 pozbawionej zewn. pamięci danych (xdata).
Dlatego zawsze musisz zacząć od karty katalogowej danej kości, aby zobaczyć
jakimi zasobami dysponujesz.
Lista rozkazów (poza wspomnianym wyjątkiem) jest identyczna dla wszystkich
wersji. Różnice uwidaczniają się przede wszystkim w obecności i znaczeniu
poszczególnych rejestrów SFR. A także w niektórych wersjach np. w obecności
drugiego rejestru DPTR.
Oprócz listy rozkazów musisz jeszcze znać szczegóły wynikające z używanego
przez Ciebie kompilatora asemblera. Dotyczy to przede wszystkim składni
dyrektyw (org, set, equ, macro, endm, db, dw, segmenty, itp ...).
Niektóre asemblery pozwalają np. na stosowanie ujednoliconych
pseudorozkazów call i jmp tłumaczonych automatycznie do odpowiedniej postaci
(sjmp, ljmp, acall, lcall).
Jeszcze uwaga co do wspomnianego w innym poście Bascoma:
Świetne narzędzie, żeby raz-dwa napisać prostą aplikację. Np. do szybkiego
'przegwizdania' uruchamianego sterownika. Zwłaszcza dzięki obsłudze I2C,
LCD... w kilku instrukcjach. Natomiast Bascom na tyle skutecznie ukrywa
szczegóły sprzętowe, że nie nauczysz się z nim efektywnego czy też
niestandardowego wykorzystania możliwości układu. Tzn. jeżeli od niego
zaczniesz nie znając porządnie architektury to prawdopodobnie na nim
poprzestaniesz. Do końca nie dowiadując się np. o tym, że istnieje wskaźnik
stosu i na dzień dobry trzeba go ustawić. Tym bardziej, że ztcw w bascomie
nie da się podejrzeć jak wygląda w asemblerze to co napisałeś w basicu.
MDz
From: "apart" <apartyka_at_nospam_kointech.com.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 19:31:18 +0200
jakiego kompilatora mam uzyc?
czy podawac jakies specjalne opcje ?
czy moge uzywac masma ?
Użytkownik "apart" <apartyka_at_nospam_kointech.com.pl> napisał w wiadomości
news:3cceab9b_3_at_nospam_news.vogel.pl...
witam
jestem zupelnie poczatkujacym assemblerowcem,
i mam problem z napisaniem banalnego programu,
ktory bedzie na port 1 mojego mikrokontrolera
(atmel 89c2051) wystawial logiczna jedynke w petli.
czy ktos moglby mi pomoc ?
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 20:56:17 +0200
Użytkownik "apart" <apartyka_at_nospam_kointech.com.pl> napisał w wiadomości
news:3cced4c1$1_1_at_nospam_news.vogel.pl...
jakiego kompilatora mam uzyc?
czy podawac jakies specjalne opcje ?
czy moge uzywac masma ?
Potrzebujesz kompilator asemblera:
- rozpoznający mnemoniki 51-ki
- generujacy kod wynikowy dla 51-ki
Imho masm nie jest do tego przeznaczony :-)
Jeżeli do zabawy to wystarczy na 5 min. założyć google. Np:
http://www.logonet.com.pl/~fortech/ (demo - max 2500B kodu wynikowego, dla
2051 wystarczy)
http://www.micromade.com.pl/urzprog1.htm#dsm51ass.zip
Jeżeli zamierzasz zajać się uC na poważnie to w perspektywie nastaw się
raczej na kompletne środowisko m.in. wyposażone w odrębny linker. Np.
zaopatrz się w demo uVision Keila ( www.keil.com ) .Ztcp zawiera m.in: A51,
C51, linker i debuger (z ograniczeniem do 2KB kodu wynikowego)
MDz
From: Ireneusz Niemczyk <i.niemczyk_at_nospam_multispedytor.com.pl>
Subject: Re: programowanie atmela 89c2051
Date: Tue, 30 Apr 2002 21:14:31 +0200
Jeżeli zamierzasz zajać się uC na poważnie to w perspektywie nastaw się
raczej na kompletne środowisko m.in. wyposażone w odrębny linker. Np.
zaopatrz się w demo uVision Keila ( www.keil.com ) .Ztcp zawiera m.in: A51,
C51, linker i debuger (z ograniczeniem do 2KB kodu wynikowego)
Dokładnie i na dodatek jest zaj....piiiiiii-y! ;-))))))))
--
PZD, Irek.N.