Forum: Mikrocontroller und Digitale Elektronik Microcontroller 80535


von Stefan Richter (Gast)


Lesenswert?

Hallo,

und zwar habe ein Riesenproblem. Muss für die Schule ein Programm in 
Assembler schreiben. Wollte heute das machen, habe aber leider null 
Ahnung.

Und das muss ich machen:

Ich muss alle Eingänge und Ausgänge testen, ob sie noch funktionieren. 
Eingänge soll an Schalter gelegt werden und Ausgänge an LED's.

Bitte helft mir weiter.
Wen jemand so nett ist und mir das Programm schreibt, bekommt auch 10 
Euro oder so dafür.

Wenn net, sagt mir einfach bitte, wie man das für einen Eingang und 
einen Ausgang macht.

Danke schonmal im voraus. Meldet euch bitte per E-Mail an mich.
Mail: Stefan17Richter@web.de
Cya.

von crazy horse (Gast)


Lesenswert?

glaub nicht das das Sinn der Sache ist, es von jemand machen zu lassen. 
Eine kleine Nachfrage von seiten der Lehrer und schon stehst du im 
Regen.
Aber ein paar Anregungen kann ich dir geben:
Prinzipiell besteht ein Programm aus 3 Teilen:
1. Initialisierungsphase
da werden definierte Startbedingungen geschaffen, insbesondere
-Löschen der Register/Speicher
-Einstellung der On-Chip-Peripherie (Timer, Ports, UART etc)
-ganz wichtig: Laden des Stackpointers

2. Hauptprogramm
besteht i.a. aus einer Endlosschleife, in deren Verlauf entweder die zu 
lösenden Probleme direkt nacheinander bearbeitet werden oder dafür 
entsprechende Unterprogramme aufgerufen werden

3. Unterprogramme
sind sinnvoll, wenn ähnliche Aufgaben mehrfach benötigt werden, aber 
auch als Strukturelement, macht das eigentliche Hauptprogramm 
übersichtlicher.

In deinem Fall könnte das so aussehen:

reset: rjmp init

init:  diverses

main:  rcall eingabe
       rcall ausgabe
       rjmp main

eingabe: diverses
        ret

ausgabe: diverses
        ret

und noch ein paar Details zum Schluss: Die Richtung eines I/O-Ports 
legst du mit dem entsprechenden DDRx-Register fest, Eingaben liest du 
vom Register PINx, Ausgabewerte werden in das Register PORTx 
geschrieben.
So, nun isses schon fast fertig.

von Stefan Richter (Gast)


Lesenswert?

Hi,

das Problem ist ja, dass ich das über die Ferien machen muss, und ich 
keinen Lehrer fragen kann.

Weißt du, wie man das für nur einen Eingang und einen Ausgang macht?? 
Der Rest dürfte ja net so schwierig sein.

Cya.

von thkais (Gast)


Lesenswert?

Du hast am 80535 sogenannte "Ports". Diese können sowohl Ein- als auch 
Ausgang sein - je nach Definition, wobei die Ports des 80535 die 
Eigenheit aller MCS-51 - Derivate haben, daß sie nur Masse ausgeben 
können und quasi jederzeit auch als eingang verwendet werden können.
Ein fertiges Programm wirst Du hier nicht bekommen - aber die notwendige 
Hilfe, es zu erstellen, auf jeden Fall.
Wie sieht die Aufgabe konkret aus? Es ist alles noch etwas diffus. 
Sollen die Eingänge einfach auf entsprechende Ausgänge kopiert werden, 
ist ein Display angeschlossen, LEDs oder sollen die Informationen 
seriell zum PC weitergegeben werden? Welche Entwicklungsumgebung hast Du 
zur Verfügung - wie sieht die Architektur Deines Boards aus? Hast Du 
irgendwelche Unterlagen (Datenblätter, Anleitungen, Schaltplan) 
bekommen? Welches Vorwissen hast Du?
Versuche doch einfach, mal ein Konzept zu erstellen. Wenn Du nicht 
weiterkommst, können wir Dir bei konkreten Problemen helfen.

von Stefan Richter (Gast)


Lesenswert?

Hi,

so lautet die Aufgabe genau:

Für die vorhandene Mikrocontrollerplatine soll eine Testumgebung 
geschaffen werden, mit deren Hilfe in kurzer Zeit die Funktion dieser 
Platine nachgewiesen werden soll.

Anforderungen:
      Test sämtlicher Ports in beide Richtungen

Vorgehensweise: geeigneter Hardwareaufbau (Testplatine  mit Anzeigen und 
Schaltern)
geeignetes Programm mit entsprechern Anzeige

Ziel: Unterstützung bei der Fehlersuche und Reperatur der 
Mikrocontrollerplatine.

Entwicklungsumgebung: Wickenhäuser

So, mein Problem besteht darin, wie ich die Ports testen kann, sowohl 
als Eingang als auch als Ausgang. Wie schreibe ich das??


Danke schonmal im voraus.
Cya.

von Stefan Richter (Gast)


Lesenswert?

Weiß jemand, wie ich die Ports teste. Wäre echt dringend, das Programm 
sollte nämlich heute abend fertig sein.

Danke schonmal im voraus.

Cya.

von edi (Gast)


Lesenswert?

hi,

nie was von assembler gehoert?
warst du zu lange im urlaub?
bist du ueberhaupt motiviert?

ed

von Stefan Richter (Gast)


Lesenswert?

Doch klar weiß ich, wie sowas funktioniert. Nur das Problem liegt, ja 
daran, wie ich die Ports testen soll, ob sie funktionieren. Da bräuchte 
ich halt Hilfe.

von edi (Gast)


Lesenswert?

hi stefan,

hast du die hardware,die in der aufgabenstellung erwaehnt
wird?
dein programm muss sich ja irgendwie auf eine zusatz-testschaltung 
beziehen...

fuer jeden port brauchst du pro pin eine kleine anordnung
bestehend aus LED und vorwiderstand(1kohm)zwischen +5volt
und portpin.(als kontrolle fuer ausgang ..mov P1,#0h : alle LEDs muessen 
leuchten)

fuer den eingang schaltest du zwischen den portpin und 0volt
einen taster ....mov a,P1  achtung: der port muss vor dem lesen  mov 
p1,#0ffh bekommen,damit er den eingang auch lesen kann)
um zu testen ob der jeweils gedrueckte taster / eingang funktioniert 
kannst du zb. P1.0 testen mit jb oder jnb  und
danach jeweils clr p1.0 (led leuchtet pin OK)schreiben

org und end nicht vergessen!

so schwierig ist das doch nicht

ed

von Stefan Richter (Gast)


Lesenswert?

Danke, das hat mir sehr sehr geholfen.

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
Noch kein Account? Hier anmelden.