BARDZO PILNE

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
moleto
-
Posty: 3
Rejestracja: 12 wrz 2005, 14:19

BARDZO PILNE

Post autor: moleto » 22 mar 2006, 17:04

Bardzo prosze jeżeli by ktoś mógł to niech napisze mi następujący program w asemblerze dla mikrokontrolera '51.
TEMAT:
Porównaj dwie dane w rejestrach R6 i R7. Jeżeli R6 jest większe bądź równe R7 to podświetl czerwoną diode LED (P4.3).

Awatar użytkownika
jejek
-
Posty: 63
Rejestracja: 12 lip 2005, 8:16
Lokalizacja: Będzin
Kontakt:

Post autor: jejek » 23 mar 2006, 8:26

No ale mnie to nerwi, nie odpuszczę :)
Kolego, lista rozkazów przed ślepka i napisz które według Ciebie będą przydatne. Wtedy będziemy dalej myśleć.

Pozdro, Jejek

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 23 mar 2006, 9:12

moleto pisze:Bardzo prosze jeżeli by ktoś mógł to niech napisze mi następujący program
jejek pisze:No ale mnie to nerwi, nie odpuszczę
Ewentualnie można by zadać pytanie: "za ile?". To może propozycja zlecenia jest?

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 23 mar 2006, 10:53

Kod: Zaznacz cały

        clr p4_3
        clr c
        mov A,r6
        subb A,r7
        jc exit
        setb p4_3
exit:
        ret
nie wiem jaki adres ma bit p4_3, nie chce mi się szukać

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 23 mar 2006, 13:09

tasza pisze: nie wiem jaki adres ma bit p4_3, nie chce mi się szukać
Tasza, więc piszesz P4.3 i niech martwi się o to kompilator.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 23 mar 2006, 13:50

gaweł pisze:Tasza, więc piszesz P4.3 i niech martwi się o to kompilator.
a co? myślisz że jemu się będzie chciało szukać? no skoro tak...

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 23 mar 2006, 16:13

Kompilator? On ma obowiązek to wiedzieć.

Awatar użytkownika
kildas
-
Posty: 78
Rejestracja: 26 lip 2005, 12:51

Post autor: kildas » 23 mar 2006, 16:58

gaweł pisze:Kompilator? On ma obowiązek to wiedzieć.
:D :D :D :D :D :D :D :D :D

Przez ciebie oplułem monitor.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 23 mar 2006, 17:01

aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
no i widzisz co się narobiło.

[ Dodano: 23-03-2006, 17:03 ]
kildas pisze:Przez ciebie oplułem monitor.
no, a potem będzie w opiniach o forum, że się posty po ekranie rozmazują...

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 23 mar 2006, 17:35

tasza pisze:aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
no i widzisz co się narobiło.
Rózne adresy poszczególnych rejestrów w niczym nie przeszkadzają. Każdy dobry asembler (bo kompilatorem raczej tego programu nazwać nie można) umozliwia dołączanie plików (coś ala *.h z C) z definicjami rejestrów a w tych plikach specyficznych dla każdego mikrokontrolera są własciwe adresy przypisane do odpowiednich rejestrów. Oczywiście 'przenośność' takiego programu w tej sytuacji jest żadna (oczywiście mowa o skompilowanym <o rany> tzn zasemblowanym programie).

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 23 mar 2006, 18:58

no no, a to ci... :wink:

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 23 mar 2006, 19:28

tasza pisze:aa...? kompilator...no niby tak
tylko że w 80C535 port P4 ma adres 0xE8, a w Philips 80C552 ten port ma adres 0xC0,
a 0xE8 to jest rejestr IEN1, taki malutki, od przerwań, a 0xC0 to jest adres rejestru IRCON,
tylko że w 80C535....
No, tak ...
Przecież w każdym programie jest jakiś include "..z czymś tam.." (jak w http://www.edw.com.pl/forum/viewtopic.php?t=3162 ), które definiuje podstawowe zasoby danego modelu procka. Sam kompilator oczywiście, że nie zna wymienonych stałych, nawet nie powienien ich znać, ale czy takich oczywistych rzeczach trzeba pisać? Wychodzi, że tak, bo zdarzają się przypadki oplucia monitorów.
tasza pisze:no i widzisz co się narobiło.
Na przyszłość :mrgreen: będę pisać bardziej "od potopu świata".
Ale się porobiło ... też się uśmiałem, ale mój monitor nie ucierpiał :mrgreen:

ODPOWIEDZ