RTV forum PL | NewsGroups PL

Asembler 8051: Dziwne zachowanie procesora 89C2051 z kodem w ASM

Asembler 8051 - problemy.

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Asembler 8051: Dziwne zachowanie procesora 89C2051 z kodem w ASM

Goto page 1, 2  Next

Robert R
Guest

Sun Nov 25, 2007 3:43 pm   



Witam,chciałem sobie poćwiczyć programowanie 51 w asm. Posiadam płytkę
prototyopwą dla procesora 89c2051 i właśnie na tym ic chciałbym zrobić parę
prostych rzeczy w asm.

Na początku natknąłem się na problem - prosty kod:

mov P1 , #00001111b
label:
sjmp label
end

kompilujący się bez błędów na kompilatorze Ride 6.1 daje hexa którym
programuję procesor korzystając z bascoma 51 i programatora mcs flash
programmer - wiesza procesor - same jedynki na 2 portach.
Zawartość pliku hex:
:0500000075900F80FE69
:00000001FF

Próby programowania w bascomie dają pozytywne wyniki. (P1 = 00001111b)
ustawia stany na pinach proc. jak potrzeba.
Próby z asemblerem asem5113 dają podobne, negatywne wyniki.
W ridzie na początku doklejone są oczywiście rejestry 51. Dostawianie na
początku kodu komendy org 0 nie zmienia nic.
Gdzie robię błąd? Proszę o pomoc.




--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Irek_K
Guest

Sun Nov 25, 2007 10:19 pm   



Robert R pisze:
Quote:
Witam,chciałem sobie poćwiczyć programowanie 51 w asm. Posiadam płytkę
prototyopwą dla procesora 89c2051 i właśnie na tym ic chciałbym zrobić parę
prostych rzeczy w asm.

Na początku natknąłem się na problem - prosty kod:

mov P1 , #00001111b
label:
sjmp label
end

kompilujący się bez błędów na kompilatorze Ride 6.1 daje hexa którym
programuję procesor korzystając z bascoma 51 i programatora mcs flash
programmer - wiesza procesor - same jedynki na 2 portach.
Zawartość pliku hex:
:0500000075900F80FE69
:00000001FF

Próby programowania w bascomie dają pozytywne wyniki. (P1 = 00001111b)
ustawia stany na pinach proc. jak potrzeba.
Próby z asemblerem asem5113 dają podobne, negatywne wyniki.
W ridzie na początku doklejone są oczywiście rejestry 51. Dostawianie na
początku kodu komendy org 0 nie zmienia nic.
Gdzie robię błąd? Proszę o pomoc.




Może pisanie do portu w pierwszym cyklu nie jest najlepszym pomysłem.

Teoretycznie wszystko OK (przynajmniej symulatory nic nie wykazują).
Praktycznie proponuję jednak odczekać kilka cykli zegarowych zanim
zaczniesz pisać po portach i zacznij może standardowo od
ORG 0
LJMP Start
omijając obszar skoków do procedur obsługi przerwań.
Bascom pewnie dopisuje mnóstwo śmieci na początku programu tak że zapis
do portu odbywa się w n-astym cyklu.

Roman
Guest

Mon Nov 26, 2007 10:38 am   



"Robert R" <czernkow@WYTNIJ.gazeta.pl> wrote in message
news:fibuq9$o9p$1@inews.gazeta.pl...
Quote:
Witam,chciałem sobie poćwiczyć programowanie 51 w asm. Posiadam płytkę
prototyopwą dla procesora 89c2051

A jaki jest schemat tej płytki (zwłaszcza układ RESETa) ?
To jakiś gotowiec, czy sam to "kleiłeś" ?

Roman
P.S. Zgodnie z sugestiami kolegów daj na start programików trochę pustych
instrukcji opóźnieniających.

Górski Adam
Guest

Mon Nov 26, 2007 12:32 pm   



Robert R pisze:
Quote:
Witam,chciałem sobie poćwiczyć programowanie 51 w asm. Posiadam płytkę
prototyopwą dla procesora 89c2051 i właśnie na tym ic chciałbym zrobić parę
prostych rzeczy w asm.

Na początku natknąłem się na problem - prosty kod:

mov P1 , #00001111b
label:
sjmp label
end

kompilujący się bez błędów na kompilatorze Ride 6.1 daje hexa którym
programuję procesor korzystając z bascoma 51 i programatora mcs flash
programmer - wiesza procesor - same jedynki na 2 portach.
Zawartość pliku hex:
:0500000075900F80FE69
:00000001FF

Próby programowania w bascomie dają pozytywne wyniki. (P1 = 00001111b)
ustawia stany na pinach proc. jak potrzeba.
Próby z asemblerem asem5113 dają podobne, negatywne wyniki.
W ridzie na początku doklejone są oczywiście rejestry 51. Dostawianie na
początku kodu komendy org 0 nie zmienia nic.
Gdzie robię błąd? Proszę o pomoc.





A może by tak ustawić kierunek portów ?

Adam

Marek Lewandowski
Guest

Mon Nov 26, 2007 12:41 pm   



On Nov 26, 12:32 pm, Górski Adam
Quote:
A może by tak ustawić kierunek portów ?

w 8051? Jeszcze jakies dobre rady?

--
Marek Lewandowski
ICQ#/GG#: ask per mail. mail: locust[X]poczta/onet/pl
my gallery: http://www.pbase.com/mareklew
my kind-of-a-blog: http://lockaphoto.stufftoread.com

Robert R
Guest

Mon Nov 26, 2007 1:42 pm   



Quote:
Gdzie robię błąd? Proszę o pomoc.

Znalazłem przyczynę problemów. Jak się okazało kompilator raisonance i drugi
z którego korzystałem działają prawidłowo. Program obsługujący programator w
bascomie wymaga plików wejściowych hex innych niż intel hex. Zamiana
programem hexbin pliku wynikowego z hex-a do bin-a i zaprogramowanie
kontrolera plikiem wynikowym bin rozwiązało problemy.
Dziękuję za zainteresowanie,Pozdrawiam.




--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

J.F.
Guest

Mon Nov 26, 2007 1:48 pm   



On Mon, 26 Nov 2007 12:04:55 +0000 (UTC), Robert R wrote:
Quote:
Gdzie robię błąd? Proszę o pomoc.
Znalazłem przyczynę problemów. Jak się okazało kompilator raisonance i drugi
z którego korzystałem działają prawidłowo. Program obsługujący programator w
bascomie wymaga plików wejściowych hex innych niż intel hex. Zamiana
programem hexbin pliku wynikowego z hex-a do bin-a i zaprogramowanie
kontrolera plikiem wynikowym bin rozwiązało problemy.

A daj moze tego hexa ktory sie poprawnie programuje ?
Bo ten co dales wyglada jak najbardziej sensownie.

J.

Robert R
Guest

Mon Nov 26, 2007 2:42 pm   



Quote:
A daj moze tego hexa ktory sie poprawnie programuje ?
Bo ten co dales wyglada jak najbardziej sensownie.

Korzystam z tego hexa który dołączyłem w poście na początku,zamieniam go na
bina, ponieważ programator obsługuje inny format hex-a najwidoczniej.



--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Robert R
Guest

Mon Nov 26, 2007 2:42 pm   



Mój błąd: Programator czyta do bufora tylko pliki bin. Ja zaznaczałem czytaj
*.* i ładowałem hex-a.Zasugerowałem się obrazowaniem wczytanego pliku w
postaci szesnastkowej.

Jeśli mam wyłączone przerwania i z nich nie korzystam, to nie muszę omijać
obszaru obsługi przerwań.
Sekwencja:

org 0
sjmp Start

:start
.....
.....

nic mi nie da.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Roman
Guest

Mon Nov 26, 2007 3:04 pm   



"Robert R" <czernkow@NOSPAM.gazeta.pl> wrote in message
news:fiehsu$bjb$1@inews.gazeta.pl...
[quote:6e70e2ce8f]Mój błąd: Programator czyta do bufora tylko pliki bin. Ja zaznaczałem
czytaj
*.* i ładowałem hex-a.
[/quote:6e70e2ce8f]
Dżizas ! Programator wczytał hex-a zamiast bin-a i nawet się nie zająknął
?, nie wysłał jakiegoś ostrzeżenia?

Roman

J.F.
Guest

Mon Nov 26, 2007 3:29 pm   



On Mon, 26 Nov 2007 15:04:28 +0100, Roman wrote:
[quote:522283a708]"Robert R" <czernkow@NOSPAM.gazeta.pl> wrote in message
Mój błąd: Programator czyta do bufora tylko pliki bin. Ja zaznaczałem czytaj
*.* i ładowałem hex-a.

Dżizas ! Programator wczytał hex-a zamiast bin-a i nawet się nie zająknął
?, nie wysłał jakiegoś ostrzeżenia?
[/quote:522283a708]
A czemu mialby to robic ? programator/opcja jest tylko binarny,
jesli miales kaprys nazwac sobie plik .hex, .txt, .xls to juz tylko
twoj problem :-)

J.

Roman
Guest

Mon Nov 26, 2007 4:41 pm   



"J.F." <jfox_xnospamx@poczta.onet.pl> wrote in message
news:htllk3tkh7gb71tu0k2nhrclaqtv7592d2@4ax.com...
[quote:67578dc02a]programator/opcja jest tylko binarny,
jesli miales kaprys nazwac sobie plik .hex, .txt, .xls to juz tylko
twoj problem Smile
[/quote:67578dc02a]
Fakt - każdy plik może być czytany jak binarny, zmyłka gotowa ;-(

Roman

Górski Adam
Guest

Mon Nov 26, 2007 4:49 pm   



Marek Lewandowski pisze:
[quote:bf7ee6221f]On Nov 26, 12:32 pm, Górski Adam
A może by tak ustawić kierunek portów ?

w 8051? Jeszcze jakies dobre rady?
[/quote:bf7ee6221f]
Sorry ale nie pamiętam już 8051. Wobec tego na jakiej zasadzie ustawiało
się tam kierunek portów ?
Czy one wymagały pull- up - ów?

Adam

Irek_K
Guest

Mon Nov 26, 2007 5:25 pm   



Robert R pisze:
[quote:d9a7aa24ab]Mój błąd: Programator czyta do bufora tylko pliki bin. Ja zaznaczałem czytaj
*.* i ładowałem hex-a.Zasugerowałem się obrazowaniem wczytanego pliku w
postaci szesnastkowej.

Jeśli mam wyłączone przerwania i z nich nie korzystam, to nie muszę omijać
obszaru obsługi przerwań.
Sekwencja:

org 0
sjmp Start

:start
....
....

nic mi nie da.

Teoretycznie masz rację.[/quote:d9a7aa24ab]
Gdyby jednak procek był uszkodzony i z jakiegoś powodu generował sobie
przerwania to mając tam wpisane 0 czyli NOP "poleciałby" to Twojego
fragmentu programu.
Są nawet "szkoły programowania" mówiące, że niewykorzystane obszary
pamięci należy wypełniać NOPami a kończyć je skokiem do jakieś procedury
obsługi błędów.
(Nie jestem jednak pewny czy z taką usterką mógłby wykonać jakikolwiek
program z powodu przepełniania stosu adresami powrotu).

Marek Lewandowski
Guest

Mon Nov 26, 2007 6:42 pm   



On Nov 26, 4:49 pm, Górski Adam
<gorskia@.................wp....................pl..................>
wrote:

[quote:ec8ae31558]w 8051? Jeszcze jakies dobre rady?

Sorry ale nie pamiętam już 8051. Wobec tego na jakiej zasadzie ustawiało
się tam kierunek portów ?
[/quote:ec8ae31558]
wcale

[quote:ec8ae31558]Czy one wymagały pull- up - ów?
[/quote:ec8ae31558]
Wyjscia OD z wewnetrznym pull-up. Silne zero, slaba jedynka. Wejscia
podlaczone do drenow bezposrednio.

--
Marek

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Asembler 8051: Dziwne zachowanie procesora 89C2051 z kodem w ASM

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map