Microcontroller 80535

Gast #33179
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.
Gast
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.
Gast
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.
Gast
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.
Gast
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.
Gast
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.
Gast
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.
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.