Wie programmiere ich einen zähler?(8051)

Gast #5636827
Hallo,

Ich habe ein Problem. Ich schreibe demnächst eine Arbeit in Assembler 
mit dem 8051. Ich muss ein Bitmuster implementieren, dass ich natürlich 
nicht kenne. Das Problem ist das ich überhaupt keine Ahnung habe wie man 
überhaupt programmiert. Ich habe nur dieses Codebeispiel:

anfang:

mov P2,# 01111110b ; 0
lcall pause
mov P0, #01111110b ; 0
lcall pause
mov P0, #00010010b ;1
lcall pause
Was bedeutet dieses mov P2 und P0? Was sind diese Zahlen und wie kommt 
man darauf?

Danke.
Gast
Ich habe keine Blätter bekommen, nur wie ich ein Projekt erstelle und 
wie man auf diese Zahlen kommt. Das habe ich allerdings mit einen 
Microcontroler herausgefunden, aber den darf ich nicht verwenden.

Ich habe nächstes Jahr Projektprüfung und muss das  verstehen, ich hätte 
keinen Grund mich vor den Aufgaben zu drücken. Ich möchte nur wissen was 
das alles bedeutet.
Gast
Danke. Wir sind allerdings ganz am Anfang des Themas. Ich möchte nur das 
wichtigste lernen. Wir haben bis jetzt nur einen Zähler bis 99 
programmiert. Wenn ich in Youtube schauen wollte, was müsste ich 
eingeben?
Gast
Lexa schrieb:
> Google:
> Assembler 8051 Tutorial Deutsch
> Bringt tolle Videos hoch.
>
> Kopf hoch,  das wird schon noch, die Weihnachtsfeier sind ja bald

Hoffe ich. Ich schreibe morgen eine Arbeit in Jave wo ich was 
implementieren muss und dann noch Assembler. Das erste wird einfach, 
aber beim zweiten habe ich leider keine Ahnung. Ich muss das aber 
lernen, das ist die Grundlage für das J1 und J2.
Gast
Ergänzung: Besorge dir eine einfache Hardware und teste das aus.

Ich habe vor 40 Jahren mit den einfachsten Boards mit 8080 und 6502 und 
Monitorprogramm am meisten gelernt.
Gast
karadur schrieb:
> Na dann bist du ja früh dran!!!

Ja ist mir klar das ich früher hatte was machen müssen, aber ich musste 
mich auf meine Netzwerkprüfung vorbereiten und habe das verschoben, weil 
ich sowieso keine Hoffnung hatte es zu verstehen. Es gibt ja leider 
nicht das eine assembler.
karadur schrieb:
> Ich habe vor 40 Jahren mit den einfachsten Boards mit 8080 und 6502 und
> Monitorprogramm am meisten gelernt.

Ach, Du bist auch so Einer - habe mir damals gebraucht den SDK-8085 für 
immerhin 400 Mark geleiste (Neupreis 2.100 !!)
Hexdezimal-Tastatur und 6-stellige Sieben-Segment-Anzeige - 2K 
Monitor-Programm und 8k Ram (erweitert)
zu Fuß mit Bleistift, Papier und Code-Tabelle assembliert und die 
Programme über die Hex-Tastatur eingehackt. Erstes großes Projekt war 
ein Programm zum schreiben der RAM-Daten auf einen Casetten-Rekorder. 
Modem mit XR2206. Ich habe es einmal am laufen gehabt. Dann habe ich 
doch einmal versehentlich die Versorgungsspannung ausgeschaltet und das 
Programm war weg. Ich wollte es ursprünglich in ein Eprom brennen - ist 
aber nicht mehr dazu gekommen, weil ich mit Diplom-Arbeit angefangen 
hatte. Habe das Teil mit 50% Wertverlust wieder verkaufen können an den 
nächsten Studenten.......

aber jetzt: Auschalten(Nostalgie)

Deine Frage "wie soll das weitergehen" kann ich schon irgendwie 
nachvollziehen. Manche der Forumsmitglieder scheinen in so etwas wie 
einem Parallel-Universum zu leben das mit meinem nicht all zu viel zu 
tun hat.....
Gast
Christian S. schrieb:
> " habe mir damals gebraucht den SDK-8085 für immerhin 400 Mark geleiste
> (Neupreis 2.100 !!)"
>
> Früher war es sehr kostspielig, ein Computer-Nerd zu werden. Alleine
> schon deshalb gab es nur wenige davon.


Da muss ich widersprechen.
Ich habe mit einem i8049 angefangen, den ich samt anderen Bauteilen von 
alten Waschmaschinenplatinen runtergelötet habe. Fehlende Bauteile für 
ein paar Mark von den damals noch existierenden 
Elektronikbauteile-Händlern in der Stadt dazu gekauft, dazu dann den 
simplen selbst gebastelten Epromemulator und es konnte losgehen.
Gast
HilfeSa schrieb:
> ich sowieso keine Hoffnung hatte es zu verstehen. Es gibt ja leider
> nicht das eine assembler.

Wenn es nur um das Verstehen geht - das ist bei Allen sehr aehnlich bis 
gleich.
Unterschiedlich sind dann nur die Details.

wendelsberg
HilfeSa schrieb:
> mov P2,# 01111110b ; 0
> lcall pause
> mov P0, #01111110b ; 0
> lcall pause
> mov P0, #00010010b ;1
> lcall pause
> Was bedeutet dieses mov P2 und P0? Was sind diese Zahlen und wie kommt
> man darauf?

Es bedeutet, daß Du nicht mal eine Sekunde versucht hast, es zu 
verstehen.
An P2 und P0 hängen 2 7-Segmentanzeigen (P2 = Zehner, P0 = Einer).
Und
1
#00010010b ;1
 bedeutet, daß das Pattern für die "1" angezeigt wird (Segment B und C).

Natürlich zählt kein Mensch bei Verstand so bis 99, da es eine riesen 
Schreibarbeit wäre.
Man zählt ein Register hoch, trennt dann per "DIV AB" die Stellen und 
wandelt sie per "MOVC A, @A+DPTR" in 7-Segment um.
Gast
Peter D. schrieb:
> Man zählt ein Register hoch, trennt dann per "DIV AB" die Stellen und
> wandelt sie per "MOVC A, @A+DPTR" in 7-Segment um.

Das will der TO doch weder wissen noch verstehen. Er braucht eine 
fertige Lösung, die er nur abzuschreiben braucht.
Gast
Na ist ja frühzeitig in die Vorbereitung gegangen. Wer schon eine 
Hochsprache programmieren kann, schafft es in ein paar Wochen das zu 
verstehen. Da sind 24 h doch echt genug Zeit…
Gast
m.n. schrieb:
> Warum nur habe ich Musik als Pflichtfach gewählt?

Wir alle haben einen Vogel... aber meiner kann singen.

Manchmal frage ich mich, wie Leute in so ein Lehrfach hineinkommen. Wenn 
man Chemiker ist oder Germanist oder Jura studiert, dann wird man dort 
schwerlich eine Arbeit über den 8051 zu schreiben haben - also ist das 
Fach doch eher einschlägig, aber vor einer Arbeit hat es garantiert 
sowohl Vorlesungen dazu gegeben, als auch persönliches Interesse der 
Studenten an der Sache. Aber dann käme nie und nimmer solch 
Fragestellung auf.

W.S.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.