AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wer kann Assembler (Microcontroller) ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wer kann Assembler (Microcontroller) ?

Ein Thema von MrKnogge · begonnen am 24. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Wer kann Assembler (Microcontroller) ?

  Alt 24. Nov 2003, 19:14
Servus miteinander !

Ich schreib morgen ne Arbeit, und da ich so meine
Probleme mit Assembler habe (es lebe Delphi !),
wollte ich euch fragen, ob mir nicht jemand n bissl Erklären kann.

Ich meine natürlich nicht den kompletten Befehlssatz, sondern nur
Standardbefehle wie mov, cjne etc.


Beispielaufgabe:

Ein Sägeblatt soll solange nach links fahren, sobald
es eine Lichtschranke durchbricht soll es nach rechts
fahren, und umgekehrt.

Wenn ein Schalter betätigt wird, oder beide
Lichtschranken (gleichzeitig) durchbrochen werden.
soll die Säge stehen bleiben.

Eingänge
P1.0-P1.7
Ausgänge
P2.0-P2.7


Nun, wie gehe ich am besten an so eine Aufgabe ran ?
Woher weis ich wohin ich bestimmte Stände specihern soll (Register o. Accu)?


Ich hoff Ihr könnt mir helfen.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Vegeto19

Registriert seit: 24. Nov 2003
1 Beiträge
 
#2

Re: Wer kann Assembler (Microcontroller) ?

  Alt 24. Nov 2003, 23:23
Befehlserklärung:

Sprungbefehle:
lcall = ein Unterprogramm wird aufgerufen
lcall ms100 = ein Unterprogramm das 100ms wartet
CJNE Rn,#data,rel = Sprung nach rel, wenn Akku ungleich Konstante ist
rel = + - 7-Bit-Sprungdistanz für Sprungbefehle z.B.: M1
SJMP rel = Sprung mit + - 7-Bit-Sprungdistanz
JB bit,rel = Sprung wenn Bit-Adresse = 1
JNB bit,rel = Sprung wenn Bit-Adresse = 0

Datentransferbefehle:
mov dptr,#data16 = Die 16 Bit-Konstante wird in den Datenpointer geladen
mov Rn,#data = Konstante wird in ein Register geladen
mov A,#data = Konstante wird in den Akku geladen
ret = vom Unterprogramm, Sprung zurück ins Hauptprogramm
mov A,Rn = Register wird in den Akku geladen
movc A,@A+DPTR = Datenpointer wir mit dem Akku addiert und in den Akku geladen
mov direct,A = Der Akku wird in das Direkt-Byte geladen

Arithmetische Befehle:
inc Rn = erhöht das Register um 1
dec Rn = erniedrigt das Register um 1

Logische Befehle:
RR A = Akku rotiert nach rechts
RL A = Akku rotiert nach links
Angehängte Dateien
Dateityp: rar mcprog.rar (18,4 KB, 6x aufgerufen)
2BKI2
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz