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
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License