Binärcode mit Lampen darstellen

mola2

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe ein Programm geschrieben, um Binärzahlen mithilfe von 8 Leuchtmeldern darzustellen. Die Leuchtmelder sind in einer Reihe fest montiert.
Zur Auswahl habe ich die Ausgänge 100.0 bis 100.7.
Das Programm ist sehr kurz und besteht nur aus einem Zähler, einem nachgeschalteten BCD-Umwandler und einem Move-Befehl, der alle Ausgänge mittels Merkerwort (MW99) setzt.
Mein Problem ist nun, dass natürlich bei Ausgang 100.0 angefangen wird, diese Lampe befindet sich aber ganz links.
Wenn der Zähler also hochzählt und bei 1 anfängt, zeigen die Leuchtmelder:
1000 0000 und nicht 0000 0001.
Habe ich die Möglichkeit, das Problem softwaretechnisch zu lösen?

Danke, Mola
 
Eine kurze Lösung für die Mittagspause... bis heute abend gibt es vielleicht sogar noch eine "edle" Lösung, aber das fällt mir auf die Schnelle ein:

U M99.0
= A100.7
U M99.1
= A100.6
U M99.2
= A100.5
U M99.3
= A100.4
U M99.4
= A100.3
U M99.5
= A100.2
U M99.6
= A100.1
U M99.7
= A100.0

Es gibt bestimmt eine schöne Version, aber es müsste funktionieren- dann kommt man schon mal weiter.

Gruß, Tobi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Entschuldigung,aber ich habe mich verschrieben. Der Move-Befehl steuert die Ausgänge per AW99 an. Das wären ja dann A100.0, A100.1 usw...
Das funktioniert leider so nicht, aber danke schon mal für die schnelle Antwort!
 
Hallo


Code:
l "Zählerstand"
T "Merkerword"

L "LinkesMerkerbyte" // aus Merkerword
T AB100

L "rechtesMerkerbyte" // aus Merkerword
T AB99
 
Hallo,
danke für die Antworten.
Da ich eher ein Anfänger bin, konnte ich mit dem letzten Vorschlag leider nur wenig anfangen. Was meinst du genau?
Des Weiteren habe ich die Programme bis jetzt fast ausschließlich nur als FUP geschrieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf einfache Art und Weise kannst du das Problem nur mittels Einzelzuweisung der betreffenden Ausgänge lösen:

Code:
U M100.0
= A100.7

U M100.1
= A100.6

usw.

Mir würde auf Anhieb auch nur sehr bedingt eine "elegantere" Lösung einfallen, höchstens noch mit einer Schleife,
aber bei 8 Zuweisungen sprengt das den Rahmen total ...

Mfg
Manuel
 
Zuletzt bearbeitet:
L mw99
taw
t ab 100

vorrausgesetzt das zweite byte von mw 100 hat den wert 0
 
Zuletzt bearbeitet:
Hallo,

GENAU

Klebe ein elektrisches Pflaster (umverdrahten) auf eine mechanische Wunde (Lampen sind falsch montiert)

Es ist wie meistens im Leben: die Mechaniker schlampern und die Elektriker müssen´s ausbaden *ROFL*

*DuckUndWeg*


MfG
 
ok ;)
danke für eure antworten!

Jetzt noch eine andere Sache. Ich wollte die Zahlenwerte auf einer zweistelligen 7-Segementanzeige ausgeben und habe das mithilfe eines Zählers und des Move-Befehls relaisiert:

U(
U(
U(
U M 200.3
U(
U "-S2"
S M 30.0
UN "-S0"
U M 40.3
R M 30.0
U M 30.0
)
ZV Z 2
NOP 0
NOP 0
NOP 0
U(
UN "-S0"
S M 30.1
U "-S2"
R M 30.1
U M 30.1
)
R Z 2
NOP 0
LC Z 2
T MW 90
U Z 2
)
S M 30.2
U(
U "-S3"
S M 30.3
U "-S4"
R M 30.3
U M 30.3
)
R M 30.2
U M 30.2
)
SPBNB _001
L MW 90
BTI
T MW 92
SET
SAVE
CLR
_001: U BIE
)
SPBNB _002
L MW 92
T AB 101
_002: NOP 0

Die verschiedenen Abbruchanweisen dienenn dazu, den Zähler komplett zurück zu setzen bzw ihn an einer Stelle zu stoppen und mithilfe eines weiteren Tasters wieder zu starten.

Meine Ausgänge der Anzeigen liegen auf A101.0 bis 101.7. Starte ich nun das Programm, zählt nur die vordere Segmentanzeige vorwärts.

Wie kann ich das Problem beheben?
 
Zurück
Oben