Gruppe 3
Programm 1 - Durchleiter
Beschreibung des Problems
Alle Signale, die an Port A anliegen, sollen nach Port B weitergeleitet werden.
Beschreibung der Lösung
Es werden die Signale an PINA ausgelesen und an PORTB wieder ausgegeben.
Code
.include "8515def.inc"
.def temp =R16
clr temp
out DDRA, temp
ser temp
out DDRB, temp ; Dies ist für uns noch nicht von Bedeutung
loop: ; Sprungmarke
in temp, PINA ; Einlesen der Signale von PINA nach temp
out PORTB, temp ; Ausgeben der Signale aus temp auf PORTB
rjmp loop ; Befehl um zur Sprungmarke zu springen
Programm 2 - Verfünfacher
Beschreibung des Problems
Das an PINA anliegende Signal soll mit 5 multipliziert werden und dann an PORTB ausgegeben werden.
Beschreibung der Lösung
Der Wert von PINA wird nach Zahl ausgelesen. Mit dem lsl Befehl wird der Wert von Zahl zwei mal mit 2 multipliziert und dann noch einmal mit add hinzu addiert. Das Ergebnis erg entspricht dann dem fünffachem von Zahl. Das Ergebnis wird dann auf PORTB ausgegeben.
Code
.include "8515def.inc"
.def Zahl =R16
.def erg =R17
clr Zahl
out DDRA, Zahl
ser Zahl
out DDRB, Zahl ; Dies ist für uns noch nicht von Bedeutung
loop: ; Sprungmarke
clr erg ; erg wird geleert
in Zahl, PINA ; Einlesen der Signale von PINA nach Zahl
add erg, Zahl ; Zahl wird zum erg hinzu addiert
lsl erg ; Der Wert in erg wird mit 2 multipliziert
lsl erg ; s.o.
add erg, Zahl ; Zahl wird zu erg addiet die und der Wert von Zahl in erg ist vervielfacht
out PORTB, erg ; erg wird inPORTB ausgegeben
rjmp loop ; Befehl um zur Sprungmarke zu springen
page revision: 9, last edited: 09 Sep 2009 20:45