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
Du solltest dringend das Datenblatt des Giovanni M. schrieb: > Mikrocontroller 8051 lesen. Alles andere ist wenig hilfreich für den Moment.
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
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.
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
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.
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.
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.
Musste jetzt erst einmal lachen... wie gesagt lerne beim Daa dort sind die Lernhefte die letzten Jahre nicht wirklich erneuert worden.
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
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
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.
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
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
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.
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
Hallo Giovanni, jetzt hast du die Adressierung des externen Speichers und die Funktion des Latch verstanden. Gratuliere. Tom :)
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
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.....
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
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.
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 ?
Giovanni M. schrieb: > internen Speicher hast du nicht, dein Programm liegt komplett im externen Eprom.
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
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.