Inhaltsverzeichnis:

Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik - Gunook
Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik - Gunook

Video: Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik - Gunook

Video: Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik - Gunook
Video: Künstliche Intelligenz - Büchse der Pandora? | Prof. Dr. Thomas Villmann 2024, November
Anonim
Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik
Bauen Sie einen Computer mit grundlegendem Verständnis der Elektronik

Wollten Sie schon immer so tun, als wären Sie wirklich schlau und Ihren eigenen Computer von Grund auf neu bauen? Wissen Sie nicht, was es braucht, um einen minimalen Computer herzustellen? Nun, es ist einfach, wenn Sie genug über Elektronik wissen, um einige ICs richtig zusammenzufügen. Dieses anweisbare wird davon ausgehen, dass Sie in diesem Teil gut sind, plus ein paar andere Dinge. Und wenn nicht, sollte es nicht allzu schwierig sein, mitzumachen, wenn Sie wissen, wie Breadboarding / Prototyping durchgeführt wird. Der Zweck dieses instructible ist es, Ihnen einen funktionierenden "Computer" zu verschaffen, ohne viel darüber zu wissen, wie sie funktionieren. Ich werde die Verkabelung und die Grundlagen der Programmierung behandeln und Ihnen ein sehr kurzes Programm zur Verfügung stellen. Also lasst uns anfangen.

Schritt 1: Teile und Sachen

Teile und Sachen
Teile und Sachen
Teile und Sachen
Teile und Sachen

Ein "Computer" benötigt: Leistung, Eingabe, Verarbeitung, Speicher und Ausgabe. Technisch werden wir all diese Dinge haben. Ich werde diese Dinge in dieser Reihenfolge behandeln.

Für die Stromversorgung benötigen Sie eine 5-Volt-Quelle (hier als 5V bezeichnet). Es wird empfohlen, dass es sich um eine geregelte Quelle handelt, damit Sie nicht versehentlich Teile in Ihrem Stromkreis braten. Unsere Eingabe werden Schaltflächen sein. Die Verarbeitung ist selbsterklärend; Wir verwenden einen Prozessor. Der Speicher besteht nur aus ROM. Die internen Universalregister des Prozessors reichen aus, um als RAM verwendet zu werden. Die Ausgabe erfolgt über LEDs.

1 LM7805C - 5V-Regler

1 ZYLOG Z80 - Prozessor

1 AT28C64B - EEPROM

1 74LS273 - Oktal-D-Flip-Flop

1 74HC374E - Oktal-D-Flip-Flop

3 CD4001BE - Quad-NOR-Gatter

1 NE555 - Taktgenerator

2 1K Ohm Widerstand

1 10K Ohm Widerstand

1 10K Ohm Widerstandsnetzwerk; 8 Busse oder 8 zusätzliche 10K-Widerstände

1 1uF Kondensator

1 100uF Kondensator

1 Drucktaste

1 3x4-Tastenmatrix ODER 8 zusätzliche Drucktasten

8 LED - Farbwahl spielt keine Rolle

8 330-Ohm-Widerstände oder Widerstandsnetzwerk

1 wirklich großes Steckbrett oder mehrere kleine

Viel, viel Draht

In meinem Schaltplan habe ich einen SRAM-Stick installiert. Darüber brauchen Sie sich nicht einmal Gedanken zu machen. Ich habe es nur dem Schaltplan hinzugefügt, um meine tatsächliche Schaltung genau widerzuspiegeln, und ich habe es der Schaltung für die zukünftige Verwendung hinzugefügt. Dem Schaltplan wird auch ein Quad-ODER-Gatter (74LS36) hinzugefügt. Die Eingänge der beiden unbenutzten Gatter sind mit VCC verbunden und ihre Ausgänge bleiben schwebend (nicht gezeichnet). Ebenfalls nicht gezeichnet oder oben aufgeführt sind zwei Kondensatoren im Stromkreis.

Ich speise geregelte 12V in den 5V-Regler ein, um das gesamte Steckbrett zu speisen. Es wird ziemlich warm, also habe ich einen Kühlkörper angebracht, um ihn zu kühlen. Wenn Sie weniger als 12 V verwenden, um den Regler zu speisen (mindestens 7 V verwenden), sollte er kühler laufen.

Die Z80 ist der Ort, an dem die Magie passiert. Es nimmt Anweisungen, die im ROM gespeichert sind, und führt sie aus. Das EEPROM speichert unser Programm zur Ausführung durch den Prozessor.

Das oktale Flip-Flop, das unser Ausgabegerät ist, das die Daten auf dem Datenbus an seinem eigenen Ausgang zwischenspeichert. Dies ermöglicht es uns, zu ändern, was auf dem Bus ist, was ein sehr wichtiger Schritt ist, der mehrmals pro Anweisung ausgeführt wird, ohne zu ändern, was der Benutzer/Zuschauer sieht. Das Flip-Flop kann nicht den Strom treiben, der zum Leuchten der Ausgangs-LEDs erforderlich ist, daher speisen sie in zwei der Quad-NOR-Gate-Chips ein, die die 8 Datenleitungen zum Ansteuern der LEDs puffern. Da die Ausgänge der Gates invertiert sind, müssen wir auch die zu invertierenden LEDs verdrahten, aber dazu kommen wir, wenn wir dazu kommen. Der andere NOR-Chip wird für die Logikdecodierung verwendet, aber es werden nur drei Gatter verwendet.

Das für die Eingabe verwendete Oktal-Flip-Flop ist im Wesentlichen dasselbe. Die Ausgangs-Flip-Flops halten ihren Ausgang entweder hoch oder niedrig, sodass er nicht zum Ansteuern des Busses verwendet werden kann; es würde Daten auf dem Bus halten. Das für die Eingabe verwendete Flip-Flop ersetzt den /RESET-Pin durch /EN, der die Ausgänge (und vom) des Chips mehr oder weniger trennt, damit keine Daten (Tri-State-Ausgänge) gespeichert werden.

Schritt 2: Verdrahten der Strom-, Takt- und Reset-Schaltungen

Verdrahten der Strom-, Takt- und Reset-Schaltungen
Verdrahten der Strom-, Takt- und Reset-Schaltungen
Verdrahten der Strom-, Takt- und Reset-Schaltungen
Verdrahten der Strom-, Takt- und Reset-Schaltungen
Verdrahten der Strom-, Takt- und Reset-Schaltungen
Verdrahten der Strom-, Takt- und Reset-Schaltungen

HINWEIS: Verdrahten Sie bei allen Teilen zuerst die Stromschienen. Von allen Dingen, die man vergessen sollte, zu verkabeln, werden die Chips mit viel geringerer Wahrscheinlichkeit vergessene Stromanschlüsse überleben.

Der Stromkreis ist am einfachsten zu verdrahten, gefolgt von den Rücksetz- bzw. Taktkreisen. Im Bild befindet sich der 12V-Eingang an der Steckdosenleiste ganz rechts. Das braune Kabel, das ein gelbes darunter verbirgt, speist die 12V zum Regler. Der Ausgang des Reglers speist jede zweite Steckdosenleiste auf dem Steckbrett und jede Steckdosenleiste hat eine gemeinsame Masse, denn so funktioniert die Elektronik.

Der Prozessor benötigt zum Betrieb eine Taktschaltung. Ohne sie wird es einfach in seinem initialisierten Zustand sitzen und nichts tun. Die Uhr betreibt die internen Schieberegister des Prozessors, damit sie die Signale erzeugen kann, um Dinge zu tun. Jeder Takteingang reicht aus, sogar ein einfacher Widerstand und ein Druckknopf. Aber es dauert viele Taktzyklen, um Befehle auszuführen. Die Anweisung zum Schreiben in den Ausgang dauert selbst 12 Zyklen. Sie möchten wahrscheinlich nicht dort sitzen und mehr als 100 Mal eine Taste drücken, um nur eine Schleife des Codes zu erhalten (die tatsächlichen Zahlen sind am Ende der Anleitung). Dafür ist der NE555 da. Es übernimmt das Umschalten für Sie und dies mit einer (relativ) schnellen Geschwindigkeit.

Bevor Sie mit der Verdrahtung beginnen, sollten Sie sich überlegen, wie Ihre Komponenten auf der Platine angeordnet sein sollen. Meine Taktschaltung ist irgendwie einfach unten auf der Platine platziert, damit sie anderen Komponenten nicht im Weg ist. Wir gehen davon aus, dass Sie wissen, wie Sie mit dem Timer eine grundlegende Uhr erstellen. Wenn Sie dies nicht tun, sollten Sie "555 Astable" nachschlagen und einem Tutorial folgen. Verwenden Sie den 1K-Widerstand, um zwischen der 5V-Schiene und Pin 7 des Timers (R1) und den 10K zwischen Pin 7 und Pin 2 (R2) zu gehen. Achten Sie darauf, den Reset-Pin, Pin 4, an die 5-V-Schiene zu binden, damit der Timer funktionieren kann. Ich habe eine LED an den Ausgang von mir gelegt, damit ich überprüfen konnte, ob die Uhr tatsächlich funktioniert hat, aber sie wird nicht benötigt.

Eine andere Option mit dem NE555 besteht darin, es als NOT-Gate einzurichten und einen 1K-Widerstand zu verwenden, um den Ausgang wieder mit dem Eingang zu verbinden. Es wird normalerweise empfohlen, dafür 3 Timer zu verwenden, aber ich fand, dass nur 1 gut funktionieren sollte. Wissen Sie nur, dass es in diesem Fall mit sehr hoher Geschwindigkeit schwingt und es sehr schwierig oder sogar unmöglich ist, zu erkennen, dass die Ausgangs-LEDs blinken. Dieser Aufbau wird als "Ringoszillator" bezeichnet.

Beachten Sie, dass wir die Uhr noch nicht mit dem Prozessor verbinden. Wir bereiten es gerade vor. Beachten Sie auch den Logikchip direkt über der Uhr im Bild. Es wurde viel später hinzugefügt und das war die einzige halbwegs vernünftige Stelle, um es zu platzieren. Es wird für die RAM/ROM-Auswahl verwendet. Dieses anweisbare ignoriert RAM, so dass Sie diesen Chip nicht auf Ihrem Board haben.

Jetzt verdrahten wir die Reset-Schaltung. Zuerst müssen Sie einen Platz auf Ihrem Board dafür finden. Ich habe direkt neben der Uhr gewählt. Fügen Sie Ihre Schaltfläche dem Board hinzu. Verwenden Sie einen 1K-Widerstand, um eine Seite des Knopfes an die 5V-Schiene zu binden. Unsere RESET-Pins sind aktiv niedrig, was bedeutet, dass wir sie hoch halten müssen. Dafür ist der Widerstand da. Diese Verbindung ist auch der Anschluss der Reset-Pins. Die andere Seite des Knopfes geht direkt auf Masse. Wenn Sie ein Zurücksetzen beim Einschalten wünschen, fügen Sie auch den 10uF-Kondensator zu dieser Verbindung hinzu. Es hält die Spannung an den Reset-Pins lange genug niedrig, um die Reset-Schaltung innerhalb des Prozessors und des Flip-Flops zu aktivieren.

Schritt 3: Verkabelung des Z80

Jetzt kommen wir zum Kernstück. Wir werden das Biest, das Z80 ist, verkabeln. Auf meiner Platine habe ich den Z80 oben auf den gleichen Platinenabschnitt wie die Reset-Schaltung gelegt. Wie bereits erwähnt, verdrahten Sie zuerst die Stromschienen. 5V gehen an Pin 11 links und Masse ist einen Pin tiefer, aber rechts. Vielleicht haben Sie auch die ungerade Breite des Chips bemerkt. Dadurch haben Sie 3 offene Anschlüsse auf einer Seite des Steckbretts und 2 auf der anderen. Es macht es nur weniger bequem, zusätzliche Dinge zu verkabeln, wenn Sie dies wünschen.

Die folgenden Pin-Nummern – ich nehme an, Sie wissen, wie man Pins auf einem IC zählt – sind unbenutzte Eingänge und müssen an die 5-V-Schiene gebunden werden: 16, 17, 24, 25.

Erinnern Sie sich an unsere Uhr? Sein Ausgang geht an Pin 6 des z80. Die Reset-Schaltung wird an Pin 26 angeschlossen. Ohne die anderen Komponenten auf der Platine zu haben, ist dies so weit, wie ich Sie mit der Verkabelung des z80 selbst erreichen kann. Weitere Verkabelungen werden in späteren Schritten vorgenommen.

Da ich die Schaltung bereits gebaut hatte, bevor ich überhaupt daran dachte, dieses instructable zu schreiben, werde ich das Bild bis zum nächsten Schritt zurückhalten.

Schritt 4: Verdrahten des ROM

ROM verdrahten
ROM verdrahten

ANMERKUNG: Vielleicht möchten Sie mit dem Platzieren auf der Platine warten, wenn es noch programmiert werden muss (dazu später mehr).

Für das ROM habe ich es neben dem Z80 rechts platziert und auch einen Pin nach unten auf dem Steckbrett verschoben. Dadurch konnte ich den Adressbus direkt verdrahten, aber dazu später mehr. Der AT28C64B ist ein EEPROM, d.h. er kann durch Aus- und Einschalten einiger Pins mehrfach programmiert werden. Wir möchten nicht, dass sich unser EEPROM versehentlich neu programmiert, wenn es in der Schaltung ist. Sobald Sie also Ihre Stromschienen angeschlossen haben, verbinden Sie Pin 27 (/WE) mit der 5-V-Schiene, um die Schreibfunktion vollständig zu deaktivieren.

Mein Programm ist so klein, ich brauchte nur die unteren 5 Adressleitungen (A0-A4) angeschlossen, aber A5, A6 und A7 habe ich trotzdem verkabelt, damit ich ohne zusätzlichen Aufwand größere Programme schreiben kann. Die zusätzlichen Adressleitungen (A8-A12) sind direkt mit Masse verbunden, um einen ungewollten Zugriff auf die höheren Adressen von potenzialfreien Eingängen zu verhindern. Da die ungenutzten Adresseingänge mit Masse verbunden sind und die Schreibsteuerung mit 5V verbunden ist, ist die Verdrahtung des Rests ziemlich einfach. Suchen Sie A0 auf dem Prozessor und verbinden Sie es mit A0 im ROM. Suchen Sie dann A1 auf dem Prozessor und verbinden Sie es mit A1 im ROM. Tun Sie dies, bis Sie alle Adressen miteinander verbunden haben. Im Bild ist mein Adressbus zum ROM in blauer Verdrahtung ausgeführt. Der Adressbus zum RAM wird in roter Verdrahtung ausgeführt. Diese Drähte wurden alle vorgeschnitten und abisoliert, wie sie in einem Steckbrett-Verkabelungssatz geliefert wurden und waren perfekt für diese Verkabelung.

Nachdem Sie die Adressen verdrahtet haben (dies wird als Adressbus bezeichnet), machen Sie genau dasselbe für die Pins mit der Bezeichnung D0, dann D1, D2 usw. Tun Sie dies für alle Datenpins (D0 - D7) und Sie haben Ihre Datenbus verkabelt. Wir sind fast fertig mit der Verkabelung des ROMs. Suchen Sie den /CE (Chip-Enable)-Pin des ROMs und verbinden Sie ihn mit dem Prozessor-Pin 19, /MREQ (Speicheranforderung) und suchen Sie dann den /OE (Ausgangsfreigabe) des ROMs und verbinden Sie ihn mit dem Prozessor-Pin 21, /RD (Lesen). Wir sind jetzt fertig. All dies erfolgt mit Überbrückungsdrähten, da sie auf die andere Seite des Prozessors gehen müssen und ein Steckbrett nicht genug Platz bietet, um eine solche saubere Verkabelung zu verwenden.

Schritt 5: Verdrahten des Ausgangs

Ausgang verdrahten
Ausgang verdrahten
Ausgang verdrahten
Ausgang verdrahten

Da es leer war, wählte ich den Platinenabschnitt links vom Z80 für die Ausgabe. Legen Sie das Flip-Flop dort auf und verbinden Sie sie mit den Stromschienen. Pin 1, /MR (Reset) kann direkt mit dem Reset-Pin des Prozessors verbunden werden, aber Sie können ihn an die 5V-Schiene gebunden lassen. Dadurch werden nur Junk-Daten bis zum ersten Schreibvorgang angezeigt. Beachten Sie, dass der Chip einen Takteingang an Pin 11 hat. Dieser Eingang ist insofern seltsam, als er aktiviert wird, wenn der Pin hoch geht. Beachten Sie auch, dass dieser Pin NICHT derselbe Takt ist, der den Prozessor antreibt. Dieser Takt verriegelt die auf dem Datenbus geltend gemachten Daten.

Erinnern Sie sich, wie wir D0 - D7 auf dem ROM mit denselben Pins auf dem Prozessor verbunden haben? Machen Sie dasselbe für diesen Chip. D0 geht auf D0 auf dem Datenbus und so weiter. Die Pins, die mit einem "Q" beginnen, sind Ausgänge. Bevor wir diese verdrahten, müssen wir weitere Chips hinzufügen. Ich habe die Quad-NOR-Gatter verwendet, weil ich eine Röhre davon habe und bereits eine brauchte, aber jeder Chip funktioniert, wenn Sie ihn richtig verdrahten. Ich hätte einen Eingang an allen Gates mit Masse verbinden und die anderen Eingänge auch als Eingänge verwenden können, aber ich entschied mich, beide Eingänge der Einfachheit halber miteinander zu verdrahten.

Ich habe die Chips unter dem Flip-Flop platziert, um es einfacher zu machen, direkt ohne Jumper zu verdrahten, aber mir ging zu diesem Zeitpunkt der Draht zu Ende, sodass es am Ende nicht wirklich wichtig war. Die Q0, Q1….. Q7 des Flip-Flops gehen an die Eingänge der einzelnen Gatter. Mit 4 Gates in jedem Paket / Chip brauchte ich 2 Pakete und habe alle Gates verwendet. Wenn Sie eine Version des Flip-Flops finden, die die LEDs ansteuern kann, ohne dass diese gepuffert werden müssen, werden diese beiden Chips nicht benötigt. Wenn Sie Gates als Puffer verwenden, die keine invertierten Ausgänge (UND/ODER/XOR) haben, können Sie die LEDs wie erwartet verdrahten. Wenn Sie die gleichen Teile wie ich verwenden und / oder die Ausgänge invertiert sind, sollten die LEDs wie unten beschrieben verdrahtet werden. Das erste Bild zeigt den IC-Teil der Ausgabe.

Verwenden Sie die 330 Ohm Widerstände, um die LEDs positiv (Anode) an die 5V-Schiene zu binden und das Negativ (Kathode) an den Ausgang der Gates anzuschließen. Sie können im zweiten Bild sehen, dass ich zwei Widerstandsbusse mit jeweils nur fünf internen Widerständen verwendet habe. Wenn Sie die LEDs so verdrahten, leuchten sie auf, wenn der Ausgang ausgeschaltet ist. Wir tun dies, weil der Ausgang ausgeschaltet ist, wenn der Eingang eingeschaltet ist. Achten Sie unbedingt darauf, welche Gates Ihre Ausgänge von der Flip-Flop-Steuerung ausgeben. Sofern Ihre LEDs nicht verstreut sind oder ihre Reihenfolge bedeutungslos ist, kann es später zu Verwirrung führen, wenn Sie sich fragen, warum die Ausgabe falsch ist.

Schritt 6: Verdrahten des Eingangs

Anschluss des Eingangs
Anschluss des Eingangs

Nehmen Sie das 74HC374-Flip-Flop und platzieren Sie es irgendwo. Meins war irgendwo unter dem Z80 in Richtung der Unterseite des Boards. Erinnern Sie sich an das letzte Mal, als wir D0 mit D0 und D1 mit D1 und so weiter verbunden haben? Diesmal verbinden wir Q0 mit D0 und Q1 mit D1 und so weiter. Zum Glück müssen wir diesmal keine Pufferchips hinzufügen, haha. Stattdessen werden wir einen 10K Ohm an jeden "D" -Pin (D0-D7) und Masse und dann einen Knopf an die gleichen Pins und die 5V-Schiene anschließen. Oder Sie können einen Widerstandsbus verwenden und Ihre Teilezahl stark reduzieren. Eine 3x4-Tastenmatrix (ohne Matrixausgabe!!) hilft auch. Das Bild zeigt die Gesamtheit der Eingangsschaltung zusammen mit der Glue-Logik (dieser Teil ist der nächste).

Schritt 7: Klebelogik

Wir haben noch eine letzte Sache zu verkabeln. Es wird "Glue-Logik" genannt, weil es verwendet wird, um Steuersignale zu decodieren, damit alles funktioniert; es hält die Schaltung zusammen. Wenn der Prozessor Daten in den Ausgang schreiben möchte, gehen sowohl /IORQ als auch /WR (20 bzw. 22) auf Low und die gesendeten Daten werden auf dem Datenbus geltend gemacht. Der Clock-Pin an beiden Flip-Flops ist aktiv hoch, d. h. die Daten werden zwischengespeichert, wenn der Pin ein High-Signal empfängt. Wir verwenden ein NOR-Gatter und verbinden /IORQ mit einem Eingang des Gatters und /WR mit dem anderen Eingang. Wenn einer von beiden hoch ist, was bedeutet, dass die IO-Schaltungen nicht ausgewählt werden oder keine Schreiboperation ausgeführt wird, bleibt der Ausgang, der den Takt des Flip-Flops speist, niedrig. Wenn beide Eingänge niedrig sind, und nur dann, geht der Ausgang hoch und das Flip-Flop speichert die Daten.

Jetzt müssen wir das Eingangs-Flip-Flop verdrahten. Wir können den Clock-Pin auf die gleiche Weise wie beim vorherigen verdrahten, jedoch mit /IORQ und /RD. Aber im Gegensatz zu den anderen Flip-Flops haben wir auch einen /OE-Pin, der nur dann niedrig genommen werden muss, wenn /IORQ und /RD niedrig sind. Wir könnten ein ODER-Gatter verwenden. Oder wir nehmen einfach das Signal, das wir bereits für die Uhr haben, und invertieren es mit einem der beiden invertierenden Gatter, die wir bereits zur Verfügung haben. Zum Zeitpunkt der Angabe dieses instructable hatte ich kein ODER-Gatter zur Verfügung, also benutzte ich eine der letzteren Option. Die Verwendung der letzteren Option bedeutete, dass ich sowieso keine zusätzlichen Teile hinzufügen musste.

Schritt 8: Programmierung

Sollte Ihre Verkabelung korrekt und meine Erklärung klar sein, müssen Sie nur noch das ROM programmieren. Dazu gibt es einige Möglichkeiten. Sie könnten es einfach machen und einen neuen Chip von Digikey bestellen. Wenn Sie das Teil bestellen, haben Sie die Möglichkeit, eine HEX-Datei hochzuladen und sie vor dem Versand zu programmieren. Verwenden Sie die an dieses instructable angehängten HEX- oder OBJ-Dateien und warten Sie nur, bis es in der Post ankommt. Option 2 besteht darin, einen Programmierer mit einem Arduino oder so zu bauen. Ich habe den Router ausprobiert und er konnte bestimmte Daten nicht richtig kopieren und ich brauchte Wochen, um das herauszufinden. Am Ende habe ich Option 3 gemacht, die darin besteht, es von Hand zu programmieren und Schalter umzulegen, um die Adress- und Datenleitungen zu steuern.

Einmal direkt in den OP-Code des Prozessors konvertiert, ruht dieses gesamte Programm in nur 17 Bytes Adressraum, so dass die Programmierung von Hand nicht allzu schlimm war. Das Programm lädt den Wert 00 in das Universalregister B. Das Register B wird zum Speichern eines Ergebnisses der vorherigen Addition verwendet. Da im A-Register Mathematik passiert, werden wir es nicht zum Speichern von Daten verwenden.

Apropos A-Register: Wir führen einen IN-Befehl aus, der den Eingang liest, und speichern die gelesenen Daten in A. Dann fügen wir den Inhalt von Register B hinzu und geben das Ergebnis aus.

Danach wird Register A in Register B kopiert. Und dann führen wir eine Reihe von Sprungbefehlen aus. Da alle Sprünge auf das untere Byte der Adressleitungen zeigen und das obere Byte des Sprungbefehls im zweiten Argument angegeben wird und "00" ist, können wir erzwingen, dass jedem Sprung ein NOP folgt. Wir tun dies, um Zeit zwischen dem Anzeigen der Ausgabe und dem Lesen der Eingabe zu geben, um versehentliche Eingaben zu vermeiden. Jeder Sprung verwendet zehn Taktzyklen und jeder NOP verwendet vier. Wenn die Schleife für Ihren Geschmack zu lange dauert, können Sie die Taktrate erhöhen oder umprogrammieren, um einen Sprung weniger zu verwenden.

Schritt 9: Testen

Wenn Sie alles richtig verkabelt haben und Ihr ROM richtig programmiert ist, gibt es noch einen letzten Schritt: Schließen Sie es an und sehen Sie, ob es funktioniert. Drücken Sie eine Taste und warten Sie einige Sekunden. Es dauert 81 Taktzyklen, bis das Programm seine erste Schleife erreicht, und jede Schleife benötigt 74 Taktzyklen.

Wenn es nicht funktioniert, überprüfen Sie auf Kurzschlüsse und nicht verbundene Pins (offen) und andere Verdrahtungsprobleme. Wenn Sie das Zurücksetzen beim Einschalten deaktiviert haben, müssen Sie einen manuellen Reset durchführen, bevor der Prozessor etwas tut. Sie können auch LEDs an den Adressbus anschließen, um zu sehen, ob sie sich verhalten. Ich hatte selbst Probleme damit, also habe ich sie stattdessen direkt an den Datenbus gesteckt. Dadurch konnte ich sehen, was zwischen Prozessor und ROM kommuniziert wurde, ohne mir Sorgen machen zu müssen, ob das ROM richtig gelesen wurde, was Timing-Diagramme erfordert hätte und ich wollte mich einfach nicht darauf einlassen. Es stellte sich als eine gute Wahl heraus, da ich endlich die problematischen OP-Codes entdeckt habe, die falsch gespeichert wurden.

Empfohlen: