www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Microcontroller 80535


Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

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

ed

Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Richter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das hat mir sehr sehr geholfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.