Πίνακας περιεχομένων:

Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών: 9 βήματα (με εικόνες)
Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών: 9 βήματα (με εικόνες)

Βίντεο: Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών: 9 βήματα (με εικόνες)

Βίντεο: Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών: 9 βήματα (με εικόνες)
Βίντεο: Πώς Κάνω ΔΩΡΕΑΝ Αναβάθμιση Σε Windows 10 Από Windows 7 / 8.1 | Αναλυτικές Οδηγίες Για Αρχάριους 2024, Ιούλιος
Anonim
Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών
Δημιουργήστε έναν υπολογιστή με βασική κατανόηση των ηλεκτρονικών

Θέλατε ποτέ να προσποιηθείτε ότι είστε πραγματικά έξυπνοι και να φτιάξετε τον υπολογιστή σας από την αρχή; Δεν γνωρίζετε τίποτα για το τι χρειάζεται για να φτιάξετε έναν ελάχιστο υπολογιστή; Λοιπόν, είναι εύκολο αν γνωρίζετε αρκετά για τα ηλεκτρονικά για να συνδυάσετε σωστά ορισμένα IC μαζί. Αυτό το διδακτικό θα υποθέσει ότι είστε καλοί σε αυτό το μέρος, συν μερικά άλλα πράγματα. Και αν όχι, δεν θα πρέπει να είναι πολύ δύσκολο να το ακολουθήσετε αν γνωρίζετε πώς γίνεται το breadboarding/prototyping. Ο σκοπός αυτού του οδηγού είναι να σας προσφέρει έναν «υπολογιστή» που λειτουργεί χωρίς να γνωρίζετε πολλά για το πώς λειτουργούν. Θα καλύψω την καλωδίωση και τα βασικά του προγραμματισμού, καθώς και θα σας δώσω ένα πολύ σύντομο πρόγραμμα. Ας ξεκινήσουμε λοιπόν.

Βήμα 1: Μέρη και πράγματα

Ανταλλακτικά και πράγματα
Ανταλλακτικά και πράγματα
Ανταλλακτικά και πράγματα
Ανταλλακτικά και πράγματα

Ένας "υπολογιστής" απαιτεί: ισχύ, είσοδο, επεξεργασία, μνήμη και έξοδο. Τεχνικά θα τα έχουμε όλα αυτά. Θα καλύψω αυτά τα πράγματα με αυτή τη σειρά.

Για τροφοδοσία, θα χρειαστείτε μια πηγή 5 βολτ (εδώ επισημαίνεται ως 5V). Συνιστάται να είναι ρυθμιζόμενη πηγή, ώστε να μην τηγανίζετε κατά λάθος εξαρτήματα στο κύκλωμά σας. Η εισαγωγή μας θα είναι κουμπιά. Η επεξεργασία είναι αυτονόητη. χρησιμοποιούμε επεξεργαστή. Η μνήμη θα αποτελείται μόνο από ROM. Οι εσωτερικοί καταχωρητές γενικής χρήσης του επεξεργαστή θα είναι αρκετοί για χρήση ως RAM. Η έξοδος θα είναι LED.

1 ρυθμιστής LM7805C - 5V

1 ZYLOG Z80 - Επεξεργαστής

1 AT28C64B - EEPROM

1 74LS273 - Octal D Flip -Flop

1 74HC374E - Octal D Flip -Flop

3 CD4001BE - Quad NOR Gate

1 NE555 - Γεννήτρια ρολογιού

2 Αντίσταση 1K Ohm

1 10K Ohm Resistor

1 Δίκτυο αντίστασης 10K Ohm. 8 Διασυνδεδεμένος ή 8 Πρόσθετες αντιστάσεις 10Κ

Πυκνωτής 1 1uF

Πυκνωτής 1 100uF

1 κουμπί

1 3x4 Button Matrix 8 8 Πρόσθετα Πλήκτρα

8 LED - Η επιλογή χρώματος δεν έχει σημασία

8 330 Ohm Resistors or Resistor Network

1 Πραγματικά μεγάλο Breadboard ή πολλαπλά μικρά

Πολλά και πολλά καλώδια

Στο σχηματικό μου έχω εγκαταστήσει ένα ραβδί SRAM. Δεν χρειάζεται καν να ανησυχείτε για αυτό. Το πρόσθεσα μόνο στο σχήμα για να αντικατοπτρίζει με ακρίβεια το πραγματικό κύκλωμά μου και το πρόσθεσα στο κύκλωμα για μελλοντική χρήση. Στο σχήμα προστίθεται επίσης μια τετραπλή πύλη OR (74LS36). Οι είσοδοι των δύο αχρησιμοποίητων θυρών συνδέονται με το VCC και οι έξοδοι τους αφήνονται να επιπλέουν (δεν σχεδιάζονται). Επίσης δεν σχεδιάζονται ούτε αναφέρονται παραπάνω δύο πυκνωτές στο κύκλωμα ισχύος.

Τρέφω ρυθμιζόμενο 12V στον ρυθμιστή 5V για να τροφοδοτώ ολόκληρο το breadboard. Γίνεται αρκετά ζεστό, οπότε έβαλα μια ψύκτρα για να κρυώσει. Εάν χρησιμοποιείτε λιγότερο από 12V για τροφοδοσία του ρυθμιστή (χρησιμοποιήστε τουλάχιστον 7V), θα πρέπει να λειτουργεί πιο ψυχρά.

Το Z80 είναι εκεί που συμβαίνει η μαγεία. Παίρνει οδηγίες αποθηκευμένες σε ROM και τις εκτελεί. Το EEPROM αποθηκεύει το πρόγραμμά μας για την εκτέλεση του επεξεργαστή.

Το οκτάδικο flip-flop που είναι η συσκευή εξόδου μας που κλειδώνει τα δεδομένα στο δίαυλο δεδομένων στη δική του έξοδο. Αυτό μας επιτρέπει να αλλάξουμε αυτό που υπάρχει στο δίαυλο, το οποίο είναι ένα πολύ σημαντικό βήμα που γίνεται πολλές φορές ανά εντολή, χωρίς να αλλάζουμε αυτό που βλέπει ο χρήστης/ο θεατής. Το flip-flop δεν μπορεί να οδηγήσει το ρεύμα που απαιτείται για να ανάψει τα LED εξόδου, έτσι τροφοδοτούνται σε δύο από τα τσιπ πύλης quad NOR τα οποία λειτουργούν ως buffer των 8 γραμμών δεδομένων για να οδηγήσουν τα LED. Δεδομένου ότι η έξοδος των θυρών είναι ανεστραμμένη, πρέπει επίσης να συνδέσουμε τα LED για να αναστραφούν, αλλά θα φτάσουμε σε αυτό όταν φτάσουμε σε αυτό. Το άλλο τσιπ NOR χρησιμοποιείται για λογική αποκωδικοποίηση, αλλά χρησιμοποιούνται μόνο τρεις πύλες.

Το οκτάδικο flip-flop που χρησιμοποιείται για την είσοδο είναι ουσιαστικά το ίδιο πράγμα. Οι σαγιονάρες εξόδου διατηρούν την έξοδό τους είτε υψηλή είτε χαμηλή, οπότε δεν μπορούν να χρησιμοποιηθούν για την οδήγηση του διαύλου. θα κρατούσε δεδομένα στο λεωφορείο. Το flip-flop που χρησιμοποιείται για είσοδο αντικαθιστά τον ακροδέκτη /RESET με /EN, ο οποίος αποσυνδέει τις εξόδους του τσιπ (και από) έτσι ώστε να μην κρατάει δεδομένα (έξοδοι τριών καταστάσεων).

Βήμα 2: Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς

Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς
Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς
Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς
Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς
Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς
Καλωδίωση των κυκλωμάτων τροφοδοσίας, ρολογιού και επαναφοράς

ΣΗΜΕΙΩΣΗ: Για όλα τα μέρη, συνδέστε πρώτα τις ράγες τροφοδοσίας. Από όλα τα πράγματα που πρέπει να ξεχάσετε να συνδέσετε, τα τσιπ θα είναι πολύ λιγότερο πιθανό να επιβιώσουν σε ξεχασμένες συνδέσεις ρεύματος.

Το κύκλωμα ισχύος είναι το πιο απλό κύκλωμα στο καλώδιο, ακολουθούμενο από τα κυκλώματα επαναφοράς και ρολογιού, αντίστοιχα. Στην εικόνα, η είσοδος 12V βρίσκεται στο πολύπριζο στα δεξιά. Το καφέ σύρμα, που κρύβει ένα κίτρινο από κάτω, τροφοδοτεί το 12V στον ρυθμιστή. Η έξοδος του ρυθμιστή τροφοδοτεί κάθε άλλο πολύπριζο στο breadboard και κάθε ηλεκτρικό ρεύμα μοιράζεται ένα κοινό έδαφος γιατί έτσι λειτουργούν τα ηλεκτρονικά.

Ο επεξεργαστής απαιτεί ένα κύκλωμα ρολογιού για να λειτουργήσει. Χωρίς αυτό, θα καθίσει εκεί στην αρχική του κατάσταση και δεν θα κάνει τίποτα. Το ρολόι λειτουργεί τους εσωτερικούς καταχωρητές βάρδιας των επεξεργαστών, ώστε να μπορεί να παράγει σήματα για να κάνει πράγματα. Οποιαδήποτε είσοδος ρολογιού θα κάνει, ακόμη και μια απλή αντίσταση και ένα κουμπί. Χρειάζονται όμως πολλοί κύκλοι ρολογιού για την εκτέλεση οδηγιών. Η οδηγία για εγγραφή στην έξοδο διαρκεί 12 κύκλους από μόνη της. Πιθανότατα δεν θέλετε να καθίσετε εκεί και να πατήσετε ένα κουμπί 100+ φορές για να πάρετε μόνο έναν βρόχο του κώδικα (οι πραγματικοί αριθμοί βρίσκονται στο τέλος του οδηγού). Για αυτό είναι το NE555. Κάνει την εναλλαγή για εσάς και το κάνει με (σχετικά) γρήγορο ρυθμό.

Πριν ξεκινήσετε την καλωδίωση οτιδήποτε, μπορεί να θέλετε να προχωρήσετε και να καταλάβετε πώς θέλετε τα εξαρτήματά σας να τοποθετούνται στον πίνακα. Το κύκλωμα του ρολογιού μου είναι κάπως τοποθετημένο στο κάτω μέρος του πίνακα, έτσι ώστε να μην ξεφεύγει από άλλα εξαρτήματα. Υποθέτουμε ότι ξέρετε πώς να φτιάξετε ένα βασικό ρολόι με το χρονόμετρο. Εάν δεν το κάνετε, θα θέλετε να αναζητήσετε το "555 Astable" και να ακολουθήσετε ένα σεμινάριο. Χρησιμοποιήστε την αντίσταση 1K για να μεταβείτε μεταξύ της ράγας 5V και του πείρου 7 του χρονοδιακόπτη (R1) και του 10K μεταξύ του πείρου 7 και του πείρου 2 (R2). Βεβαιωθείτε ότι έχετε συνδέσει τον πείρο επαναφοράς, τον πείρο 4, στη ράγα 5V, ώστε να μπορεί να λειτουργήσει ο χρονοδιακόπτης. Έβαλα ένα LED στην έξοδο του δικού μου για να μπορώ να επαληθεύσω ότι το ρολόι πράγματι λειτούργησε, αλλά δεν χρειάζεται.

Μια άλλη επιλογή με το NE555 είναι να το ρυθμίσετε ως πύλη NOT και να χρησιμοποιήσετε μια αντίσταση 1K για να συνδέσετε την έξοδο πίσω στην είσοδο. Συνήθως συνιστάται να χρησιμοποιείτε 3 χρονοδιακόπτες για να το κάνετε αυτό, αλλά διαπίστωσα ότι μόνο 1 πρέπει να λειτουργεί καλά. Απλά να ξέρετε ότι αν το κάνετε αυτό, θα ταλαντεύεται σε πολύ υψηλή ταχύτητα και θα είναι πολύ δύσκολο, αδύνατο ακόμη, να πείτε ότι οι λυχνίες LED εξόδου αναβοσβήνουν. Αυτή η ρύθμιση ονομάζεται "ταλαντωτής δακτυλίου".

Σημειώστε ότι δεν συνδέουμε ακόμη το ρολόι στον επεξεργαστή. Απλώς το ετοιμάζουμε. Σημειώστε επίσης το λογικό τσιπ ακριβώς πάνω από το ρολόι στην εικόνα. Προστέθηκε αργότερα και αυτό ήταν το μόνο ημι-λογικό σημείο που έμεινε για να το τοποθετήσουμε. Χρησιμοποιείται για την επιλογή RAM/ROM. Αυτό το οδηγό αγνοεί τη μνήμη RAM, οπότε δεν θα έχετε αυτό το τσιπ στον πίνακα σας.

Τώρα συνδέουμε το κύκλωμα επαναφοράς. Πρώτα πρέπει να βρείτε ένα σημείο στο σκάφος σας για αυτό. Διάλεξα δίπλα στο ρολόι. Προσθέστε το κουμπί σας στον πίνακα. Χρησιμοποιήστε μια αντίσταση 1Κ για να συνδέσετε τη μία πλευρά του κουμπιού στη ράγα 5V. Οι καρφίτσες μας RESET είναι ενεργές χαμηλά, πράγμα που σημαίνει ότι πρέπει να τις κρατήσουμε ψηλά. Για αυτό είναι η αντίσταση. Αυτή η διασταύρωση είναι επίσης όπου συνδέονται οι ακίδες επαναφοράς. Η άλλη πλευρά του κουμπιού πηγαίνει κατευθείαν στη γείωση. Αν θέλετε επαναφορά ενεργοποίησης, προσθέστε και τον πυκνωτή 10uF σε αυτήν τη διασταύρωση. Θα διατηρήσει την τάση στους πείρους επαναφοράς αρκετά χαμηλή για να ενεργοποιήσει το κύκλωμα επαναφοράς εντός του επεξεργαστή και του flip-flop.

Βήμα 3: Καλωδίωση του Z80

Τώρα φθάνουμε στα σπασμωδικά. Θα συνδέσουμε το θηρίο που είναι το Z80. Στον πίνακα μου, έβαλα το Z80 στο επάνω μέρος στο ίδιο τμήμα του σκάφους με το κύκλωμα επαναφοράς. Όπως αναφέρθηκε προηγουμένως, συνδέστε πρώτα τις ράγες τροφοδοσίας. Το 5V πηγαίνει στον πείρο 11 στα αριστερά και το έδαφος είναι ένα πείρο κάτω αλλά στα δεξιά. Μπορεί επίσης να έχετε παρατηρήσει το περίεργο πλάτος του τσιπ. Θα σας κάνει να έχετε 3 ανοιχτούς συνδέσμους στη μία πλευρά στο ψωμί και 2 στην άλλη. Το καθιστά λιγότερο βολικό να συνδέσετε επιπλέον αντικείμενα εάν το επιλέξετε.

Οι ακόλουθοι αριθμοί ακίδων-υποθέτω ότι γνωρίζετε πώς να μετράτε τις καρφίτσες σε ένα IC-είναι αχρησιμοποίητες είσοδοι και πρέπει να είναι συνδεδεμένοι με τη ράγα 5V: 16, 17, 24, 25.

Θυμάστε το ρολόι μας; Η έξοδός του πηγαίνει στο pin 6 στο z80. Το κύκλωμα επαναφοράς συνδέεται με τον πείρο 26. Χωρίς να έχω τα άλλα εξαρτήματα στην πλακέτα, αυτό είναι όσο μπορώ να σας πω με την καλωδίωση του ίδιου του z80. Περισσότερες καλωδιώσεις θα γίνουν σε επόμενα βήματα.

Επειδή είχα ήδη κατασκευάσει το κύκλωμα πριν καν σκεφτώ να γράψω αυτό το διδακτικό, θα κρατήσω την εικόνα μέχρι το επόμενο βήμα.

Βήμα 4: Καλωδίωση της ROM

Καλωδίωση της ROM
Καλωδίωση της ROM

ΣΗΜΕΙΩΣΗ: Μπορεί να θέλετε να σταματήσετε να το τοποθετείτε πραγματικά στον πίνακα, εάν εξακολουθεί να χρειάζεται προγραμματισμό (περισσότερα για αυτό αργότερα).

Για τη ROM, το τοποθέτησα δίπλα από το Z80 στα δεξιά και επίσης το μετατόπισα μία ακίδα κάτω από το ψωμί. Αυτό μου επέτρεψε να συνδέσω απευθείας το δίαυλο διευθύνσεων, αλλά περισσότερα αργότερα. Το AT28C64B είναι ένα EEPROM, που σημαίνει ότι μπορεί να προγραμματιστεί πολλές φορές απενεργοποιώντας και ενεργοποιώντας ορισμένες ακίδες. Δεν θέλουμε το EEPROM να προγραμματίσει κατά λάθος τον εαυτό του όταν βρίσκεται στο κύκλωμα. Μόλις συνδέσετε τις ράγες ισχύος, συνδέστε τον πείρο 27 (/WE) στη ράγα 5V για να απενεργοποιήσετε εντελώς τη λειτουργία εγγραφής.

Το πρόγραμμά μου είναι τόσο μικρό, χρειαζόμουν μόνο τις κάτω 5 γραμμές διευθύνσεων (A0-A4) συνδεδεμένες, αλλά έτσι κι αλλιώς έκανα καλώδια A5, A6 και A7, ώστε να μπορώ να γράφω μεγαλύτερα προγράμματα χωρίς επιπλέον εργασία. Οι πρόσθετες γραμμές διευθύνσεων (A8-A12) συνδέονται απευθείας με τη γείωση για να αποτρέψουν την ανεπιθύμητη πρόσβαση στις υψηλότερες διευθύνσεις από κυμαινόμενες εισόδους. Με τις αχρησιμοποίητες εισόδους διεύθυνσης συνδεδεμένες στο έδαφος και τον έλεγχο εγγραφής συνδεδεμένο με 5V, η καλωδίωση των υπολοίπων είναι μάλλον απλή. Βρείτε A0 στον επεξεργαστή και συνδέστε το σε A0 στη ROM. Στη συνέχεια, βρείτε A1 στον επεξεργαστή και συνδέστε το σε A1 στη ROM. Κάντε αυτό μέχρι να συνδέσετε όλες τις διευθύνσεις μαζί. Στην εικόνα, ο δίαυλος διευθύνσεών μου προς τη ROM γίνεται με μπλε καλωδίωση. Ο δίαυλος διευθύνσεων που πηγαίνει στη μνήμη RAM γίνεται με κόκκινη καλωδίωση. Αυτά τα καλώδια ήταν όλα προ -κομμένα και απογυμνωμένα καθώς έμπαιναν σε ένα κιτ καλωδίωσης για ψωμί και ήταν τέλεια για αυτήν την καλωδίωση.

Αφού λάβετε τις διευθύνσεις ενσύρματα (αυτό ονομάζεται δίαυλος διευθύνσεων), κάντε το ίδιο ακριβώς για τις καρφίτσες με την ένδειξη D0, στη συνέχεια D1, D2, κ.λπ. Κάνετε αυτό για όλες τις ακίδες δεδομένων (D0 - D7) και έχετε δίαυλος δεδομένων ενσύρματο. Έχουμε σχεδόν τελειώσει με την καλωδίωση της ROM. Βρείτε την καρφίτσα της ROM /CE (ενεργοποίηση τσιπ) και συνδέστε την στην ακίδα επεξεργαστών 19, /MREQ (αίτημα μνήμης) και, στη συνέχεια, βρείτε την ROM's /OE (ενεργοποίηση εξόδου) και συνδέστε την στην ακίδα επεξεργαστή 21, /RD (ανάγνωση). Τελειώσαμε τώρα. Όλα αυτά γίνονται με καλώδια jumper επειδή πρέπει να πάνε στην άλλη πλευρά του επεξεργαστή και ένας πίνακας ψωμιού δεν προσφέρει αρκετό χώρο για να χρησιμοποιήσει τέλεια καλωδίωση έτσι.

Βήμα 5: Καλωδίωση της εξόδου

Καλωδίωση της εξόδου
Καλωδίωση της εξόδου
Καλωδίωση της εξόδου
Καλωδίωση της εξόδου

Επειδή ήταν ακατοίκητο, επέλεξα το τμήμα του σκάφους στα αριστερά του Z80 για την έξοδο. Τοποθετήστε το σαγιονάρες εκεί και συνδέστε τις ράγες τροφοδοσίας. Το pin 1, /MR (reset) μπορεί να συνδεθεί απευθείας με τον ακροδέκτη επαναφοράς του επεξεργαστή, αλλά μπορείτε να τον αφήσετε δεμένο στη ράγα 5V. Με αυτόν τον τρόπο θα εμφανίζονται μόνο ανεπιθύμητα δεδομένα μέχρι την πρώτη εγγραφή. Παρατηρήστε πώς το τσιπ έχει είσοδο ρολογιού στον πείρο 11. Αυτή η είσοδος είναι περίεργη καθώς ενεργοποιείται όταν ο πείρος ανεβαίνει ψηλά. Σημειώστε επίσης ότι αυτό το pin δεν είναι το ίδιο ρολόι που κινεί τον επεξεργαστή. Αυτό το ρολόι ασφαλίζει τα δεδομένα που επιβεβαιώνονται στο δίαυλο δεδομένων.

Θυμάστε πώς συνδέσαμε το D0 - D7 στο ROM με τις ίδιες ακίδες στον επεξεργαστή; Κάντε το ίδιο ακριβώς για αυτό το τσιπ. Το D0 του πηγαίνει στο D0 στο δίαυλο δεδομένων και ούτω καθεξής. Οι ακίδες που ξεκινούν με ένα "Q" είναι έξοδοι. Πριν τα συνδέσουμε, πρέπει να προσθέσουμε περισσότερες μάρκες. Χρησιμοποίησα τις πύλες quad NOR επειδή έχω έναν σωλήνα από αυτούς και ήδη χρειαζόμουν, αλλά για οποιοδήποτε τσιπ θα λειτουργήσει αν το συνδέσετε σωστά. Θα μπορούσα να είχα συνδέσει τη μία είσοδο σε όλες τις πύλες στη γείωση και να χρησιμοποιούσα τις άλλες εισόδους ως εισόδους, αλλά επέλεξα να συνδέσω και τις δύο εισόδους μαζί για απλότητα.

Τοποθέτησα τις μάρκες κάτω από το σαγιονάρικο για να διευκολύνω την καλωδίωση απευθείας χωρίς βραχυκυκλωτήρες, αλλά στο τέλος δεν είχα καθόλου καλώδια, οπότε δεν είχε σημασία τελικά. Το Q0, Q1….. Q7 στο flip-flop πηγαίνει στις εισόδους στις μεμονωμένες πύλες. Με 4 πύλες σε κάθε συσκευασία/τσιπ, χρειάστηκα 2 πακέτα και χρησιμοποίησα όλες τις πύλες. Εάν βρείτε μια έκδοση του flip-flop που μπορεί να οδηγήσει τα LED χωρίς να χρειάζεται buffer όπως αυτό, αυτά τα δύο τσιπ δεν χρειάζονται. Εάν χρησιμοποιείτε πύλες ως buffer που δεν έχουν ανεστραμμένες εξόδους (AND/OR/XOR), τότε μπορείτε να συνδέσετε τα LED όπως θα περιμένατε. Εάν χρησιμοποιείτε τα ίδια μέρη με μένα και/ή οι έξοδοι είναι ανεστραμμένες, τα LED θα πρέπει να είναι καλωδιωμένα όπως περιγράφεται παρακάτω. Η πρώτη εικόνα δείχνει το τμήμα IC της εξόδου.

Χρησιμοποιήστε τις αντιστάσεις 330 Ohm για να συνδέσετε τα LED θετικά (Anode) στη ράγα 5V και να συνδέσετε το αρνητικό (κάθοδο) στην έξοδο των θυρών. Μπορείτε να δείτε στη δεύτερη εικόνα ότι χρησιμοποίησα δύο διαύλους αντιστάσεων, το καθένα με μόνο πέντε εσωτερικές αντιστάσεις. Η καλωδίωση των LED όπως αυτή θα τους κάνει να ανάβουν όταν η έξοδος είναι σβηστή. Το κάνουμε αυτό επειδή η έξοδος είναι απενεργοποιημένη όταν η είσοδος είναι ενεργοποιημένη. Βεβαιωθείτε απόλυτα ότι παρακολουθείτε ποιες πύλες εξέρχονται από το χειριστήριο του σαγιονάρου. Εκτός αν τα LED σας είναι διάσπαρτα ή η σειρά τους δεν έχει νόημα, η απώλεια παρακολούθησης μπορεί να προκαλέσει σύγχυση αργότερα όταν αναρωτιέστε γιατί η έξοδος είναι λάθος.

Βήμα 6: Καλωδίωση της εισόδου

Καλωδίωση της εισόδου
Καλωδίωση της εισόδου

Πάρτε αυτό το σαγιονάρες 74HC374 και τοποθετήστε το κάπου. Το δικό μου ήταν κάπου κάτω από το Z80 προς το κάτω μέρος της σανίδας. Θυμάστε την τελευταία φορά που συνδέσαμε το D0 στο D0 και το D1 στο D1 και ούτω καθεξής; Αυτή τη φορά συνδέουμε το Q0 με το D0 και το Q1 με το D1 και ούτω καθεξής. Ευτυχώς δεν χρειάζεται να προσθέσουμε τσιπ buffer αυτή τη φορά, χαχα. Αντ 'αυτού θα συνδέσουμε ένα 10K Ohm σε κάθε καρφίτσα "D" (D0-D7) και γείωση και στη συνέχεια ένα κουμπί στις ίδιες ακίδες και τη ράγα 5V. Or μπορείτε να χρησιμοποιήσετε ένα δίαυλο αντίστασης και να μειώσετε πολύ τον αριθμό των εξαρτημάτων σας. Μια μήτρα κουμπιών 3x4 (χωρίς έξοδο μήτρας !!) θα βοηθήσει επίσης. Η εικόνα δείχνει το σύνολο του κυκλώματος εισόδου μαζί με τη λογική κόλλας (αυτό το μέρος είναι επόμενο).

Βήμα 7: Λογική κόλλας

Έχουμε ένα τελευταίο πράγμα να συνδέσουμε. Ονομάζεται "λογική κόλλας" επειδή χρησιμοποιείται για την αποκωδικοποίηση σημάτων ελέγχου για να λειτουργήσει όλο αυτό. είναι αυτό που συγκρατεί το κύκλωμα μαζί. Όταν ο επεξεργαστής θέλει να γράψει δεδομένα στην έξοδο, τόσο /IORQ όσο και /WR (20 και 22 αντίστοιχα) μειώνονται και τα δεδομένα που αποστέλλονται επιβεβαιώνονται στο δίαυλο δεδομένων. Ο πείρος του ρολογιού και στις δύο σαγιονάρες είναι ενεργός ψηλά, πράγμα που σημαίνει ότι τα δεδομένα ασφαλίζονται όταν ο πείρος λαμβάνει υψηλό σήμα. Χρησιμοποιούμε πύλη NOR και σύρμα /IORQ στη μία είσοδο της πύλης και /WR στην άλλη είσοδο. Όταν ένα από τα δύο είναι υψηλό, δηλαδή δεν επιλέγονται τα κυκλώματα IO ή δεν εκτελείται λειτουργία εγγραφής, η έξοδος τροφοδοσίας του ρολογιού του σαγιονάρου παραμένει χαμηλή. Όταν και οι δύο είσοδοι είναι χαμηλές και μόνο όταν, η έξοδος ανεβαίνει ψηλά και το flip-flop κλειδώνει τα δεδομένα.

Τώρα πρέπει να συνδέσουμε το καλώδιο εισόδου. Μπορούμε να συνδέσουμε τον πείρο του ρολογιού με τον ίδιο τρόπο όπως και ο προηγούμενος, αλλά χρησιμοποιώντας /IORQ και /RD. Σε αντίθεση όμως με το άλλο flip-flop, έχουμε επίσης μια καρφίτσα /OE που χρειάζεται να μειωθεί μόνο όταν /IORQ και /RD είναι χαμηλά. Θα μπορούσαμε να χρησιμοποιήσουμε μια πύλη OR. Or θα μπορούσαμε απλά να πάρουμε το σήμα που έχουμε ήδη για το ρολόι και να το αντιστρέψουμε με μία από τις δύο ανεστραμμένες πύλες που έχουμε ήδη διαθέσιμες. Κατά τη στιγμή της δήλωσης αυτού του οδηγού, δεν είχα διαθέσιμη πύλη OR, οπότε χρησιμοποίησα μία από τις τελευταίες επιλογές. Η χρήση της τελευταίας επιλογής σήμαινε ότι δεν χρειαζόμουν να προσθέσω επιπλέον μέρη ούτως ή άλλως.

Βήμα 8: Προγραμματισμός

Εάν η καλωδίωσή σας είναι σωστή και η εξήγησή μου σαφής, το μόνο που απομένει είναι να προγραμματίσετε την ROM. Υπάρχουν μερικοί τρόποι για να το κάνετε αυτό. Θα μπορούσατε να ακολουθήσετε τον εύκολο τρόπο και να παραγγείλετε ένα νέο τσιπ από το Digikey. Όταν παραγγέλνετε το εξάρτημα, θα έχετε την επιλογή να ανεβάσετε ένα αρχείο HEX και θα το προγραμματίσουν πριν το στείλουν. Χρησιμοποιήστε τα αρχεία HEX ή OBJ που είναι συνημμένα σε αυτό το εκπαιδευτικό και περιμένετε να φτάσει στο ταχυδρομείο. Η επιλογή 2 είναι να δημιουργήσετε έναν προγραμματιστή με ένα Arduino ή κάτι τέτοιο. Δοκίμασα αυτό το δρομολόγιο και απέτυχε να αντιγράψω σωστά ορισμένα δεδομένα και μου πήρε εβδομάδες για να το καταλάβω. Κατέληξα να κάνω την επιλογή 3, η οποία είναι να το προγραμματίσω με το χέρι και τους διακόπτες για να ελέγξω τις γραμμές διεύθυνσης και δεδομένων.

Μόλις μετατραπεί απευθείας στον κωδικό OP του επεξεργαστή, ολόκληρο αυτό το πρόγραμμα στηρίζεται σε μόλις 17 byte χώρου διευθύνσεων, οπότε ο προγραμματισμός με το χέρι δεν ήταν πολύ απαίσιος. Το πρόγραμμα φορτώνει στον καταχωρητή γενικής χρήσης Β την τιμή 00. Το μητρώο Β χρησιμοποιείται για την αποθήκευση ενός αποτελέσματος της προηγούμενης προσθήκης. Καθώς ο καταχωρητής Α είναι το σημείο όπου συμβαίνουν τα μαθηματικά, δεν θα το χρησιμοποιήσουμε για την αποθήκευση δεδομένων.

Μιλώντας για τον καταχωρητή Α, εκτελούμε μια εντολή IN, η οποία διαβάζει την είσοδο και αποθηκεύουμε τα δεδομένα ανάγνωσης στο Α. Στη συνέχεια προσθέτουμε το περιεχόμενο του καταχωρητή Β και εξάγουμε το αποτέλεσμα.

Μετά από αυτό, ο καταχωρητής Α αντιγράφεται στον καταχωρητή Β. Και στη συνέχεια κάνουμε μια σειρά από εντολές άλματος. Επειδή όλα τα άλματα δείχνουν προς το κάτω byte των γραμμών διευθύνσεων και επειδή το ανώτερο byte της εντολής άλματος δίνεται στο δεύτερο όρισμα και είναι "00", μπορούμε να αναγκάσουμε κάθε άλμα να ακολουθείται από NOP. Αυτό το κάνουμε για να δώσουμε χρόνο μεταξύ της εμφάνισης της εισόδου και της ανάγνωσης της εισόδου για να αποτρέψουμε την τυχαία εισαγωγή. Κάθε άλμα χρησιμοποιεί δέκα κύκλους ρολογιού και κάθε NOP χρησιμοποιεί τέσσερις. Εάν ο βρόχος διαρκεί πολύ για να σας αρέσει, μπορείτε να αυξήσετε την ταχύτητα του ρολογιού ή μπορείτε να τον επαναπρογραμματίσετε για να χρησιμοποιήσετε ένα άλμα λιγότερο.

Βήμα 9: Δοκιμή

Εάν έχετε συνδέσει τα πάντα σωστά και η ROM έχει προγραμματιστεί σωστά, πρέπει να κάνετε ένα τελευταίο βήμα: συνδέστε το και δείτε αν λειτουργεί. Πατήστε ένα κουμπί και περιμένετε μερικά δευτερόλεπτα. Χρειάζονται 81 κύκλοι ρολογιού για να φτάσει το πρόγραμμα στον πρώτο του βρόχο και κάθε βρόχος χρειάζεται 74 κύκλους ρολογιού.

Εάν δεν λειτουργεί, ελέγξτε για σορτς και μη συνδεδεμένους πείρους (ανοίγει) και άλλα προβλήματα καλωδίωσης. Εάν επιλέξατε την επαναφορά ενεργοποίησης, θα χρειαστεί να κάνετε μη αυτόματη επαναφορά πριν ο επεξεργαστής κάνει οτιδήποτε. Μπορείτε επίσης να επισυνάψετε LED στο δίαυλο διευθύνσεων για να δείτε αν συμπεριφέρονται. Είχα προβλήματα με τον εαυτό μου, οπότε τα κόλλησα απευθείας στο δίαυλο δεδομένων. Αυτό μου επέτρεψε να δω τι επικοινωνείται μεταξύ του επεξεργαστή και της ROM χωρίς να χρειάζεται να ανησυχώ αν η ROM διαβάζεται σωστά, κάτι που θα απαιτούσε διαγράμματα χρονισμού και απλώς δεν ήθελα να εμπλακώ. Αποδείχθηκε ότι ήταν μια καλή επιλογή επειδή τελικά έπιασα τους προβληματικούς Κώδικες OP που είχαν αποθηκευτεί εσφαλμένα.

Συνιστάται: