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

Δυαδικός έως δεκαδικός υπολογιστής: 8 βήματα
Δυαδικός έως δεκαδικός υπολογιστής: 8 βήματα

Βίντεο: Δυαδικός έως δεκαδικός υπολογιστής: 8 βήματα

Βίντεο: Δυαδικός έως δεκαδικός υπολογιστής: 8 βήματα
Βίντεο: Μετατροπή αριθμού από το Δεκαδικό στο Δυαδικό σύστημα (ΠΛΗ10) 2024, Νοέμβριος
Anonim
Δυαδικός σε δεκαδικός υπολογιστής
Δυαδικός σε δεκαδικός υπολογιστής

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

Η δημιουργία αυτού του έργου απαιτεί πολλή έρευνα, η οποία περιλαμβάνει κυρίως την κατανόηση του τρόπου λειτουργίας ενός πλήρους και μισού αθροιστή.

Βήμα 1: Απαιτούνται υλικά

Για αυτό το έργο, θα χρειαστείτε τα ακόλουθα υλικά:

  • Arduino UNO
  • τέσσερις σανίδες ψωμιού
  • μπαταρία εννέα βολτ
  • επτά πύλες XOR (2 μάρκες XOR)
  • επτά πύλες AND (2 AND μάρκες)
  • τρεις OR πύλες (1 OR τσιπ)
  • πέντε LED
  • οκτώ αντιστάσεις 330 ohm
  • οθόνη LCD
  • τέσσερα αρσενικά-θηλυκά σύρματα
  • πολλά αρσενικά-αρσενικά σύρματα
  • απογυμνωτής σύρματος
  • κοινή άνοδος RGB LED

Κόστος (χωρίς καλώδια): 79,82 $

Όλο το κόστος του υλικού βρέθηκε στα ηλεκτρονικά ABRA.

Βήμα 2: Κατανόηση του Ad Bit Adder

Κατανόηση του Ad Bit 4 Adder
Κατανόηση του Ad Bit 4 Adder

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

www.youtube.com/watch?v=mZ9VWA4cTbE&t=619s

Βήμα 3: Δημιουργία του Ad Adder 4 Bit

Δημιουργία του Ad Bit 4 Adder
Δημιουργία του Ad Bit 4 Adder
Κατασκευή του Ad Bit 4 Adder
Κατασκευή του Ad Bit 4 Adder

Είναι πολύ δύσκολο να εξηγήσετε πώς να φτιάξετε έναν αθροιστή τεσσάρων bit, καθώς περιλαμβάνει πολλές καλωδιώσεις. Με βάση αυτές τις εικόνες, μπορώ να σας δώσω μερικά κόλπα για να δημιουργήσετε αυτό το κύκλωμα. Πρώτον, ο τρόπος με τον οποίο τακτοποιείτε τα λογικά σας τσιπ μπορεί να είναι πολύ σημαντικός. Για να έχετε ένα καθαρό κύκλωμα, παραγγείλετε τις μάρκες σας με αυτή τη σειρά: XOR, AND, OR, AND, XOR. Έχοντας αυτήν την παραγγελία, όχι μόνο το κύκλωμά σας θα είναι τακτοποιημένο, αλλά θα είναι επίσης πολύ εύκολο για εσάς να οργανωθείτε.

Ένα άλλο υπέροχο κόλπο είναι να χτίσετε κάθε αθροιστή ένα κάθε φορά και από τη δεξιά πλευρά στην αριστερή πλευρά. Ένα κοινό λάθος που έχουν κάνει πολλοί άνθρωποι είναι να κάνουν όλες τις προσθήκες ταυτόχρονα. Με αυτόν τον τρόπο, θα μπορούσατε να μπερδευτείτε στην καλωδίωση. Ένα λάθος στον αθροιστή 4-bit θα μπορούσε να προκαλέσει το όλο πράγμα να μην λειτουργήσει,

Βήμα 4: Παροχή ισχύος και γείωσης στο κύκλωμα

Χρησιμοποιώντας την μπαταρία των 9 βολτ, δώστε ισχύ και γείωση στον πίνακα ψωμιού που πρόκειται να περιέχει τον αθροιστή τεσσάρων bit. Για τις υπόλοιπες 3 σανίδες, δώστε δύναμη και έδαφος σε αυτό μέσω του Arduino UNO.

Βήμα 5: LED για καλωδίωση

LED για καλωδίωση
LED για καλωδίωση

Για αυτό το έργο, τα πέντε LED θα χρησιμοποιηθούν ως συσκευή εισόδου και εξόδου. Ως συσκευή εξόδου, η λυχνία LED θα φωτίσει έναν δυαδικό αριθμό, ανάλογα με τις εισόδους που τοποθετούνται στον αθροιστή τεσσάρων δυαδικών ψηφίων. Ως συσκευή εισόδου, ανάλογα με το ποια LED είναι ενεργοποιημένα και σβηστά, θα μπορούμε να προβάλλουμε τον μετατρεπόμενο δυαδικό αριθμό στην οθόνη LCD ως δεκαδικό αριθμό. Για να συνδέσετε το LED, θα συνδέσετε ένα από τα αθροίσματα που σχηματίζει ο αθροιστής τεσσάρων δυαδικών ψηφίων στο σκέλος ανόδου του LED (μακρύ πόδι LED), ωστόσο ανάμεσα σε αυτά τα δύο, τοποθετήστε μια αντίσταση 330 ohm. Στη συνέχεια, συνδέστε το σκέλος καθόδου του LED (κοντό πόδι LED) στη ράγα γείωσης. Μεταξύ της αντίστασης και του καλωδίου αθροίσματος, συνδέστε ένα αρσενικό σε αρσενικό καλώδιο σε οποιαδήποτε ψηφιακή ακίδα στο Arduino UNO. Επαναλάβετε αυτό το βήμα για τα τρία υπόλοιπα ποσά και την εκτέλεση. Οι ψηφιακές ακίδες που χρησιμοποίησα ήταν 2, 3, 4, 5 και 6.

Βήμα 6: Καλωδίωση κοινού Anode RGB LED

Καλωδίωση κοινού LED Anode RGB
Καλωδίωση κοινού LED Anode RGB

Για αυτό το έργο, ο σκοπός αυτού του LED RGB είναι να αλλάζει χρώματα κάθε φορά που σχηματίζεται νέος δεκαδικός αριθμός στην οθόνη LCD. Όταν κοιτάξετε για πρώτη φορά το κοινό anode RGB led, θα παρατηρήσετε ότι έχει 4 πόδια. ένα πόδι κόκκινου φωτός, ένα πόδι ισχύος (άνοδος), ένα πόδι πράσινου φωτός και ένα πόδι μπλε φωτός. Το σκέλος ισχύος (άνοδος) θα συνδεθεί με τη ράγα ισχύος, λαμβάνοντας 5 βολτ. Συνδέστε τα υπόλοιπα τρία πόδια χρώματος με αντιστάσεις 330 ohm. Στο άλλο άκρο της αντίστασης, χρησιμοποιήστε ένα αρσενικό προς αρσενικό καλώδιο για να το συνδέσετε με έναν πείρο ψηφιακού PWM στο Arduino. Ο ψηφιακός πείρος PWM είναι οποιοσδήποτε ψηφιακός ακροδέκτης με μια ευδιάκριτη γραμμή δίπλα του. Οι ακίδες PWM που χρησιμοποίησα ήταν 9, 10 και 11.

Βήμα 7: Καλωδίωση της οθόνης LCD

Καλωδίωση της οθόνης LCD
Καλωδίωση της οθόνης LCD

Για αυτό το έργο, η οθόνη LCD θα προβάλει τον μετατρεπόμενο δυαδικό αριθμό σε δεκαδικό. Όταν κοιτάμε την οθόνη LCD, θα παρατηρήσετε 4 αρσενικές ακίδες. Αυτές οι ακίδες είναι VCC, GND, SDA και SCL. Για το VCC, χρησιμοποιήστε σύρμα αρσενικό προς θηλυκό για να συνδέσετε τον πείρο VCC στη ράγα τροφοδοσίας στο ψωμί. Αυτό παρέχει 5 βολτ στον πείρο VCC Για τον πείρο GND, συνδέστε τον στη ράγα γείωσης με αρσενικό προς θηλυκό σύρμα. Με τις καρφίτσες SDA και SCL, συνδέστε το σε έναν αναλογικό πείρο με αρσενικό προς θηλυκό καλώδιο. Συνδέσα τον πείρο SCL στον αναλογικό πείρο A5 και τον πείρο SDA στον αναλογικό πείρο Α4.

Βήμα 8: Γράφοντας τον Κώδικα

Τώρα που εξήγησα το δομικό μέρος αυτού του έργου, ας ξεκινήσουμε τώρα τον κώδικα. Πρώτον, πρέπει πρώτα να κατεβάσουμε και να εισαγάγουμε τις ακόλουθες βιβλιοθήκες. Βιβλιοθήκη LiquidCrystal_I2C και η βιβλιοθήκη σύρματος.

#συμπεριλάβω #συμπεριλάβω

Μόλις το κάνετε αυτό, πρέπει να δηλώσετε όλες τις απαραίτητες μεταβλητές. Σε οποιονδήποτε τύπο κώδικα, πρέπει πρώτα να δηλώσετε τις μεταβλητές σας.

const int ψηφίο1 = 2;

const int ψηφίο2 = 3;

const int digit3 = 4;

const int digit4 = 5;

const int digit5 = 6;

int ψηφία1 = 0;

int ψηφιακό2 = 0;

int digitum3 = 0;

int ψηφιακό4 = 0;

int digitum5 = 0;

char array1 = "Δυαδικό σε δεκαδικό";

char array2 = "Μετατροπέας";

int tim = 500; // η αξία του χρόνου καθυστέρησης

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

#ορίστε COMMON_ANODE

LiquidCrystal_I2C LCD (0x27, 16, 2);

Στο void setup (), δηλώνετε τον τύπο του pin για όλες τις μεταβλητές σας. Θα χρησιμοποιήσετε επίσης μια σειριακή έναρξη επειδή χρησιμοποιούμε το analogWrite ()

void setup ()

{

Serial.begin (9600);

pinMode (digit1, INPUT);

pinMode (digit2, INPUT);

pinMode (digit3, INPUT);

pinMode (digit4, INPUT);

pinMode (digit5, INPUT);

lcd.init ();

lcd. backlight ();

pinMode (redPin, OUTPUT);

pinMode (greenPin, OUTPUT);

pinMode (bluePin, OUTPUT);

Στο void setup (), δημιούργησα έναν βρόχο for για να δημιουργήσω ένα μήνυμα που λέει το όνομα αυτού του έργου. Ο λόγος για τον οποίο δεν βρίσκεται στον κενό βρόχο () είναι ότι εάν είναι σε αυτό το κενό, το μήνυμα θα συνεχίσει να επαναλαμβάνεται

lcd.setCursor (15, 0); // ορίστε τον κέρσορα στη στήλη 15, γραμμή 0

για (int positionCounter1 = 0; positionCounter1 <17; positionCounter1 ++)

{

lcd.scrollDisplayLeft (); // Μετακινεί το περιεχόμενο της οθόνης ένα διάστημα προς τα αριστερά.

lcd.print (array1 [positionCounter1]); // Εκτυπώστε ένα μήνυμα στην οθόνη LCD.

καθυστέρηση (tim)? // περιμένετε 250 μικροδευτερόλεπτα

}

lcd.clear (); // Καθαρίζει την οθόνη LCD και τοποθετεί τον κέρσορα στην επάνω αριστερή γωνία.

lcd.setCursor (15, 1); // ορίστε τον κέρσορα στη στήλη 15, γραμμή 1

για (int positionCounter = 0; positionCounter <9; positionCounter ++)

{

lcd.scrollDisplayLeft (); // Μετακινεί το περιεχόμενο της οθόνης ένα διάστημα προς τα αριστερά.

lcd.print (array2 [positionCounter]); // Εκτυπώστε ένα μήνυμα στην οθόνη LCD.

καθυστέρηση (tim); // περιμένετε 250 μικροδευτερόλεπτα

}

lcd.clear (); // Καθαρίζει την οθόνη LCD και τοποθετεί τον κέρσορα στην επάνω αριστερή γωνία.

}

Τώρα που τελειώσαμε το void setup (), ας προχωρήσουμε στον κενό βρόχο (). Στον κενό βρόχο, δημιούργησα πολλές προτάσεις if-else για να βεβαιωθώ ότι όταν ορισμένες λυχνίες είναι ενεργοποιημένες ή σβηστές, θα εμφανίζει έναν ορισμένο δεκαδικό αριθμό στην οθόνη. Έχω επισυνάψει ένα έγγραφο που δείχνει τι υπάρχει μέσα στον κενό μου βρόχο και τα πολλά άλλα κενά που έχω δημιουργήσει. Κάντε κλικ εδώ για να επισκεφθείτε το έγγραφο

Τώρα το μόνο που έχετε να κάνετε είναι να εκτελέσετε τον κώδικα και να απολαύσετε τον νέο μετατροπέα δυαδικών σε δεκαδικούς.

Συνιστάται: