Die Formel dafür :-) Y= (X0-9*X2-2*X1) / 11 Hab ein Problem. Aufgabe: Für den 8051 Mikoprozessor soll ein Programm entworfen werden, das einen gewichteten Mittelwert von 3 Input-Ports berechnet werden und auf den einzigen noch freien Port ausgibt. Die Eingabekanäle für die Variablen X0,X1,X2 sind die entsprechenden Ports P1,P2,P3. Die Messwerte der Eingabekanäle werden von A/D-Umsetzern mit 7Bit Auflösung gespeist. (Lösungshinweise: Die LSB der Eingabesignale stimmen mit den LSB der Ports überein. Die Darstellung der Messwerte ist vorzeichenlos. Die Ausgabe Y erfolgt auf dem noch freien Port. Beachten Sie erforderliche Maskierung! Die Multiplikation mit 2 ist durch den RLC-Befehl zu implementieren.) Wie mach ich sowas???? Vielen Dank für eure Hilfe
Ich glaube nicht das hier deine Hausaufgaben gelöst werden. Du solltest das Skript lesen, das du mit ziemlicher Sicherheit von deinem Dozent gekriegt hast, dann löst du deine Aufgaben selbst, oder wenn es Probleme gibt kannst du hier fragen, die werden dann auch meist beantwortet. Anderer Post von Alex: Beitrag "8051 Programm schreiben" mfg Andreas
Du brauchst keine Math-Lib dazulinken, das geht mit ein paar ASM-Befehlen locker, der 8051 kennt "div" und "mul", (nicht für "mal 2" hernehmen) und mit den vorgegebenen Größen geht es mit den vorhandenen ASM-Befehlen. Und nun bitte selber! denken.
so also??? clr A clear akku clr C clear carry mov A,P1 lade P1=X1 in akku LLC A multipliziere akku mit 2 mov R1,A sicher akku in R1 mov A,#9 lade 9 in akku mov B,A sicher akku in B mov A,P2 lade P2=X2 in akku mul AB multipliziere A mit B mov R2,A sicher akku in R2 mov A,P0 lade P0=X0 in akku clr C clear carry subb A,R1 subtrarie vom akku R1 subb A,R2 subtrariere vom akku R2 mov B,#11 lade 11 in B div AB teile akku durch B mov P3,A ausgabe von akku an port 3
Axel schrieb: > Y= (X0-9*X2-2*X1) / 11 9*X2 überschreitet 8Bit, d.h. die Rechnungen müssen 16bittig erfolgen. Die 12Bit/4Bit Division ist etwas tricky, wenn man den Divisionsbefehl verwenden will. Auch kann es ein negatives Ergebnis geben, d.h. vor der Division muß eine Betragsbildung erfolgen und danach das Vorzeichen wieder hinzugefügt werden. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.