Forum: Mikrocontroller und Digitale Elektronik Microc-Board 8051 brauche unbedingt hilfe.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Giovanni M. (magi88)


Lesenswert?

Guten Tag ,
bin etwas am verzweifeln.
Habe eine Aufgabe wo ich einfach nicht weiter komme.
Ich muss einen Schaltplan entwickeln mit folgenden Komponenten:
-Mikrocontroller 8051
-1 EProm (8K x 8)
-2 Rams (8k x 8)
- Paralleler io- Baustein 8255

Rahmenbedingungen:
Durchflusssensor mit A/D Wandler wird parallel über einen Port geprüft 
ob Minimalwert unterschreitet wird. Wenn ein bestimmter Wert 
unterschreitet soll eine Led leuchten.


Zusätzlich soll jeder Messwert an einen PC gesendet werden. Als 
Datensicherungsverfahren bei der Datenübertragung zum PC soll die 
Blocksicherung verwendet werden.

Bei den Lernmodulen bin ich über ein sogenanntes Latch gestoßen benötige 
ich es ? Im Lernmodul wird nicht wirklich näher darauf eingegangen darum 
verstehe ich den Nutzen nicht ganz. Dann habe ich ja einen externen 
Datenspeicher meine 2 Rams, diese können über eine 8bit adresse erreicht 
werden oder nicht. Wenn nicht brauche ich einen Multiplexer ? Wie genau 
funtkioniert das Prinzip dann. Wie ihr seht habe ich noch so einige 
Fragen. Bisher habe ich auf dem Papier nur meine meinen Quarz für die 
Takterzeugung eingezeichnet. Helft mir bitte ich will dieses Thema 
verstehen, habe das Gefühl umso mehr ich mit beschäftige umso weniger 
blicke ich durch lach

von google (Gast)


Lesenswert?

Du solltest dringend das Datenblatt des

Giovanni M. schrieb:
> Mikrocontroller 8051

lesen. Alles andere ist wenig hilfreich für den Moment.

von Lothar (Gast)


Lesenswert?

Giovanni M. schrieb:
> Ich muss einen Schaltplan entwickeln

Microc oder Microe Board?

Geht es hier nur um den Schaltplan als Übung? Dann kannst Du hier EPROM 
und RAM Anschluss entnehmen:

www.mikrocontroller.net/topic/379403

Und hier Anschluss eines parallelen 8-bit ADC:

http://www.edsim51.com/8051simulator/images/logicDiagrams/logicDiagram.png

Oder soll tatsächlich ein Board gemacht werden? Dann überrede Deinen 
Lehrer einen modernen 8051 mit integriertem RAM und ADC zu nehmen z.B. 
der kostet nur 40 Cent:

http://de.farnell.com/silicon-labs/efm8bb10f8g-a-soic16/mcu-8bit-aec-q100-8051-25mhz-soic16/dp/2468081

von Uwe B. (uwe_beis)


Lesenswert?

Die Empfehlung, das Datenblatt zu lesen (und zumindest erst mal die 
Hardware zu verstehen) ist vollkommen richtig.

Das Dumme ist nur: Es gibt anscheinend gar kein vollständiges Datenblatt 
mehr. Immer nur so ein paar Übersichtsseiten, und die helfen wenig. 
Insbesondere bei deiner Aufgabenstellung: 8051 mit externem ROM und 8255 
macht seit langer Zeit niemand mehr (bzw. so wenige, dass es schon gar 
keine vollständige Doku dafür zu geben scheint), weil moderne 
8051-Versionen genug davon on-Chip haben. Deswegen hat der Lothar mit 
seinem Tipp vollkommen recht.

Ohne z. B. das Intel MCS-51 User's Manual, was ich hier habe, könnte ich 
dir gar keinen guten Einstieg nennen. Vielleicht findest du das ja im 
Netz.

Wenn du allerdings (noch) nicht weist, wie ein µC prinzipiell 
funktioniert und was Digitaltechnik (Latch, Register, Adressdecoder 
etc.) ist, hast du eine ziemlich große Aufgabe vor dir.

von TomA (Gast)


Lesenswert?

Hallo  Giovanni,

schau dir im Link das Lehrbuch "MCS51LB.PDF" an. Dort ist der externe 
Speicher der 51er auf deutsch beschrieben.

Beitrag "MCS51-Kurs sinnvoll?"

Im Moment arbeite ich grad an einer 51er Platine, mehr dazu ist in 
diesem Link zu finden.

Beitrag "Layout für MCS51 Experimentierboard"

Viel Erfolg. Tom

von Giovanni M. (magi88)


Angehängte Dateien:

Lesenswert?

Die Übung stammt vom Daa evtl. sagt es euch was.(Fernstudium Techniker)
Es soll ein Schaltplan für ein Microcontroller-Board erstellt werden.
Hilft das weiter ? Könnte mir einer von euch seine Email adresse da 
lassen dann könnte ich euch meine Lernmodule zukommen lassen auf die ich 
zurückgreifen muss. In den Datenblättern die ich zur Verfügung habe 
steht nix von einem Latch und ich lese auch nicht raus ob jetzt einen 
Multiplexer brauche oder nicht.
Hier habe ich etwas was jemand online gestellt hat bezüglich der Aufgabe 
ob es richtig ist weiß ich nicht.

von Peter D. (peda)


Lesenswert?

Giovanni M. schrieb:
> Ich muss einen Schaltplan entwickeln mit folgenden Komponenten:
> -Mikrocontroller 8051
> -1 EProm (8K x 8)
> -2 Rams (8k x 8)
> - Paralleler io- Baustein 8255

Warum mußt Du das?
Hat sich Dein Auftraggeber 35 Jahre lang einfrieren lassen und wurde nun 
wieder aufgetaut.
Niemand bei Verstand baut MC-Schaltungen aus 1980 nach.
Der 8255 war sogar mir schon zu alt und wenn schon 8051, dann wenigstens 
nen Flash-Typ mit internem Bootloader.

Früher gabs mal das 8051-Kochbuch, da waren auch Schaltpläne für 
externen Speicher drin. Sollte in Bibliotheken noch zu finden sein.

von Georg G. (df2au)


Lesenswert?

Das MCS-51 User's Manual gibt es im Netz als PDF. Beispielsweise bei
 web.mit.edu/6.115/www/document/8051.pdf

Und ja, du brauchst sowohl das Latch als auch den 1:8 Decoder.

Der von dir gezeigte Schaltplan ist doch schon fast komplett.

von Giovanni M. (magi88)


Lesenswert?

Musste jetzt erst einmal lachen...
wie gesagt lerne beim Daa dort sind die Lernhefte die letzten Jahre 
nicht wirklich erneuert worden.

von Tom M. (Gast)


Lesenswert?

Schau dir mal diesen Schaltplan an, da ist alles dabei. Statt zweier 
PIOs  kommt dann halt ein weiterer SRAM dazu.

https://www.pjrc.com/tech/8051/dev-board-schematic.html

von Peter D. (peda)


Lesenswert?

Giovanni M. schrieb:
> Die Übung stammt vom Daa evtl. sagt es euch was.(Fernstudium Techniker)

Also nichts für den praktischen Einsatz.
Der Schaltplan sieht doch vollständig aus.
Oder ist Dein Problem nur, die logik-ICs rauszusuchen?
Latch: 74HC573
Dekoder: 74HC238
AND: 74HC08
OR: 74HC32
NOT: 74HC04

von google (Gast)


Lesenswert?

Giovanni M. schrieb:
> Musste jetzt erst einmal lachen...
> wie gesagt lerne beim Daa dort sind die Lernhefte die letzten Jahre
> nicht wirklich erneuert worden.

Du gestattest, dass ich lache. Wenn Du wirklich gelernt hättest, 
könntest Du die Aufgabe lösen. Es ist egal, wie alt die Hefte sind.

von Giovanni M. (magi88)


Lesenswert?

Georg G. schrieb:
> Das MCS-51 User's Manual gibt es im Netz als PDF. Beispielsweise bei
>  web.mit.edu/6.115/www/document/8051.pdf
>
> Und ja, du brauchst sowohl das Latch als auch den 1:8 Decoder.
>
> Der von dir gezeigte Schaltplan ist doch schon fast komplett.

Den Latch benötige ich doch nur wenn ich 16 bit adressen anspreche  oder 
?
Warum reicht es nicht die Externen Rams mit einer 8bit adresse 
anzusprechen ?

An alle damit ihr meine Situation versteht. ich habe die Lernmodule alle 
durchgeackert, nur verstehe ich den Zusammenhang teilweise noch nicht 
ganz.Die Hefte vom Daa sind auch nicht wirklich das Wahre muss man dazu 
sagen....
In den lernmodulen vom Daa habe ich zum Beispiel nie etwas gesehen von 
"und" oder "oder" Gliedern gesehen zwischen Daten und Adressbus (siehe 
obiges Beispiel welches ich gepostet habe).
Ich werde mir jetzt erst einmal eure Links zu gemüte führen evtl. klären 
sich dann paar fragen

von Giovanni M. (magi88)


Lesenswert?

google schrieb:
> Giovanni M. schrieb:
>> Musste jetzt erst einmal lachen...
>> wie gesagt lerne beim Daa dort sind die Lernhefte die letzten Jahre
>> nicht wirklich erneuert worden.
>
> Du gestattest, dass ich lache. Wenn Du wirklich gelernt hättest,
> könntest Du die Aufgabe lösen. Es ist egal, wie alt die Hefte sind.

Ja moment ich befinde mich noch im Lernprozess also verstehe ich deine 
Reaktion nicht ganz. Mag ja sein dass jemand auf Anhieb alles versteht 
für mein Empfinden waren die Beispiele im heft nicht ausreichend. Oder 
was stört dich jetzt ?

Bevor ich es vergesse erst einmal vielen vielen Dank an euch Allen dass 
ihr euch die Zeit für mich nimmt

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Wie viele Adressleitungen hat dein Eprom? Wie viele hat dein SRAM? Wieso 
sollten also 8 Adressleitungen ausreichen?
Dann nimm mal das Datenblatt des 8051 und sieh dir an, wo die unteren 
Adressbits herauskommen und wie man sie dekodiert.

von Giovanni M. (magi88)


Lesenswert?

So mal gucken ob ich es verstanden habe:

Wenn ich mein Eprom ansprechen möchte geschieht dies erst einmal über 
den Adressbus. Da mein Eprom 1FFF H Speicherstellen hat brauche ich eine 
16 bit adresse um irgendeine Speicherstelle auf dem Eprom zu 
lesen/schreiben. Dies geschieht einmal über Port 0 L-Adresse und einmal 
über Port 2 H-Adresse. Also will ich die Speicherstelle 1FFE auf meinen 
Eprom lesen/schreiben. Habe ich am Port 0 FE H und am Port 2 1F H.
Da jetzt aber Port beim 8051 auch gleichzeitig für den Datenbus 
zuständig ist kommt das Latch ins Spiel. Dieser speichert FE H also das 
Low-Adresse und dann wird über den Datenbus der Befehl der in der 
Speicherstelle 1FFE H steht über den Datenbus zum 8051 geladen/gelesen. 
Geladen/gelesen dann wenn der Steuerbus den RD auf Masse schaltet (Masse 
weil RD low aktiv).

Habe ich das so ungefähr richtig wiedergegeben ?
Tschuldigung für laienhafte erklärung

Wie es sich mit dem Demultiplexer verhält muss ich mir jetzt noch 
angucken...

: Bearbeitet durch User
von TomA (Gast)


Lesenswert?

Hallo  Giovanni,

jetzt hast du die Adressierung des externen Speichers und die Funktion 
des Latch verstanden.

Gratuliere. Tom :)

von Giovanni M. (magi88)


Lesenswert?

Noch eine Frage bei dem HC08 im link handelt es sich um ein "und" glied 
oder ?
https://www.pjrc.com/tech/8051/dev-board-schematic.html

von Giovanni M. (magi88)


Lesenswert?

So also bleiben wir beim Schaltplan vom Link:
Das Hc08 Glied ist ein And glied dachte es müsste ein Nand glied sein 
aber hatte einen Denkfehler. Auf den Demultiplexer gehen die 3 letzten 
Bits vom Port 2 (8051) diese werden auch auch zum Ansprechen der 
Adressen nicht benötigt, gehen also direkt vom 8051 auf meinen 
Demultiplexer. Mein Demultiplexer schaltet immer nur einen Ausgang Auf 
low. Das heisst egal ob ich meinen externen Ram schreiben oder lesen 
will muss ich beim Adressaufruf des Rams beachten das meine Bits A13-A15 
die am Multiplexer hängen auch so geschaltet sind dass mein "/CS 
eingang" an den Ram auf den ich zugreifen möchte auch aktiv ist. Das ist 
notwendig egal ob ich den Ram lesen oder schreiben möchte. Je nachdem ob 
ich lesen oder schreiben will werden die Ausgänge (am 8051) /Psen und 
/Rd aktiv beim lesen, oder eben der /WR Ausgang beim schreiben.

Soweit richtig ?
Sorry für die Rechtschreibung.....

von TomA (Gast)


Lesenswert?

Hallo Giovanni,

der Arbeitsspeicher des 8051 ist in Harvard-Architektur angelegt. Das 
bedeutet er besitzt getrennten Programm- und Datenspeicher. Der 
Programmspeicher kann nur gelesen werden, dazu dient das Signal PSEN 
(Program Store ENable). Der Datenspeicher ist RAM, mit Schreib- und 
Lesezugriff. Die zugehörigen Steuersignale sind RD (ReaD) und WR 
(WRite). Möchte man den Speicher umorganisieren zu von Neumann 
(gemischter Programm- Datenspeicher) braucht es das UND-Gatter. Aus dem 
Ausgang kommt ein lowaktives Lesesignal, sowohl bei PSEN als auch bei 
RD. Somit fühlt sich der angeschlossene Speicher als Programm- als auch 
als Datenspeicher angesprochen.

Den Dekoder hast du auch verstanden.

Warum fragst du, wenn du es doch schon weißt. :)

Gruß. Tom

von Giovanni M. (magi88)


Lesenswert?

TomA schrieb:
> der Arbeitsspeicher des 8051 ist in Harvard-Architektur angelegt. Das
> bedeutet er besitzt getrennten Programm- und Datenspeicher.

Meinst du jetzt den Internen Arbeitspeicher ? Noch einmal einmal damit 
ich das richtig verstehe Programmspeicher ist der ROM und Datenspeicher 
der Ram.

TomA schrieb:
> Der
> Programmspeicher kann nur gelesen werden, dazu dient das Signal PSEN
> (Program Store ENable). Der Datenspeicher ist RAM, mit Schreib- und
> Lesezugriff. Die zugehörigen Steuersignale sind RD (ReaD) und WR
> (WRite). Möchte man den Speicher umorganisieren zu von Neumann
> (gemischter Programm- Datenspeicher) braucht es das UND-Gatter. Aus dem
> Ausgang kommt ein lowaktives Lesesignal, sowohl bei PSEN als auch bei
> RD. Somit fühlt sich der angeschlossene Speicher als Programm- als auch
> als Datenspeicher angesprochen.

Im ersten Satz von dir liest es sich so als wenn du den Internen 
Speicher meinst, für diesen ist aber PSEN doch uninteressant. Ich gehe 
also mal von aus das du den externen Speicher meinst. Das umorganisieren 
eines Speichers ist nur mit einen Ram möglich oder ?Warum organisiert 
man einen Speicher um? Ich hätte jetzt noch ein paar Fragen mehr aber 
diese würden sich erledigen wenn ich schon jetzt falsch liege...

Danke an Alle bis hierher, blicke schon etwas besser durch.

von Giovanni M. (magi88)


Lesenswert?

Die Adressen der externen Speicher lege ich im Assembler fest oder ?
Wie sieht so eine Zeile als Beispiel aus ?
Den internen Speicher den ich über EA aktiviere brauch ich nicht zu 
deklarieren da dieser feste Adressen hat ?

von Georg G. (df2au)


Lesenswert?

Giovanni M. schrieb:
> internen Speicher

hast du nicht, dein Programm liegt komplett im externen Eprom.

von TomA (Gast)


Lesenswert?

Hallo Giovanni,

ich spreche nur vom externen Speicher. Auf die Signale des internen 
Speichers hat man keinen Einfluß, den kann man über EA nur aktivieren 
oder deaktivieren.

Mit umorganisieren meine ich die Speicherarchitektur "Harvard" oder "von 
Neumann". Harvard hat den Vorteil der doppelten Speichermenge, es gibt 
bis zu 64k Programmspeicher und gleichzeitig bis zu 64k Datenspeicher. 
Leider kann in den Programmspeicher, während des Betriebs, nichts 
geschrieben werden.

Dieses schreiben in den Programmspeicher ist aber erforderlich, wenn man 
z.B. über eine serielle Schnittstelle Programme in den externen 
Programmspeicher schreiben möchte. Das darfst du jetzt nicht mit flashen 
des Bausteins verwechseln. Beim Flashen wird der interne 
Programmspeicher neu programmiert.

Die Startadresse legt der 8051 fest, nach Reset beginnt er mit der 
Befehlsabarbeitung immer bei Adresse 0000h. Dort muß Festwertspeicher 
(ROM) mit seinem Programm vorhanden sein - egal ob intern oder extern. 
Unterprogrammadressen oder die Adressen von Variablen und Konstanten 
kann der Programmierer festlegen.

Die Adressen der externen Speicherbausteine legt der Hardwareentwickler 
fest. Die Software muß sich dann nach diesen, durch Hardware fest 
vorgegebenen Adressen, richten.

In deinem Beispielbild sind drei Speicherbausteine verbaut. Der erste 
ist ein EPROM mit 8K Adressen (8192 Adressen) und durch die Hardware im 
Adressraum 0000h bis 1FFFh erreichbar. Er wird nur aktiviert, wenn die 
Software eine Speicherzelle in diesem Adressraum anspricht (lesen mit 
PSEN). In diesem EPROM befindet sich das Programm des 8051, deshalb 
beginnt sein Adressraum bei 0000h.

Die beiden anderen Bausteine sind jeweils RAM's mit 8K Adressen. Der 
Dekoder sorgt dafür, daß das eine RAM im Adressraum 2000h bis 3FFFh 
aktiviert wird und der andere RAM-Baustein im Adressraum 4000h bis 5FFFh

Gruß. Tom

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]
  • [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.