Λύσεις — Άσκηση 11η · Κωδικοποιητές (σελ. 33-34)
Κωδικοποιητής προτεραιότητας δεκαδικό→BCD με το Ο.Κ. 74HC147 (ενεργές-LOW), προτεραιότητα στην υψηλότερη ενεργή είσοδο, εφαρμογή σε interrupts.
Πίνακας αληθείας 74HC147
Ζητούμενο: Δώστε τους συνδυασμούς στις εισόδους I1–I9 (ενεργές-LOW) και συμπληρώστε τον πίνακα αληθείας του κωδικοποιητή προτεραιότητας 74HC147.
Πώς σκεφτόμαστε: Η ενεργή είσοδος είναι «0». Ο κωδικοποιητής δίνει τον BCD κωδικό της υψηλότερης ενεργής εισόδου· επειδή έξοδοι ενεργές-LOW, ο κωδικός εμφανίζεται συμπληρωμένος.
Λύση:
- Καμία ενεργή (όλες «1») → τιμή 0 (έξοδοι DCBA=1111).
- \(I_9=0\) (ανεξ. των άλλων, X) → τιμή 9 (BCD 1001, έξοδοι 0110).
- \(I_8=0, I_9=1\) → τιμή 8· \(I_7=0\) (I8,I9=1) → 7· … · \(I_1=0\) (οι μεγαλύτερες ανενεργές) → 1.
- Δηλαδή σε κάθε γραμμή η έξοδος αντιστοιχεί στην ΥΨΗΛΟΤΕΡΗ ενεργή είσοδο (τα X δηλώνουν αδιαφορία για τις χαμηλότερες).
Απάντηση: Η έξοδος αντιστοιχεί στην υψηλότερη ενεργή είσοδο (0 όταν καμία). Έξοδοι σε ενεργή-LOW μορφή (συμπληρωμένος BCD). Ταυτίζεται με το data sheet του 74HC147.
Πρόσεξε:
- Ενεργή είσοδος = «0» (ενεργή-LOW).
- Δεν υπάρχει I0: η απουσία ενεργής εισόδου αντιστοιχεί στο 0.
Ταυτόχρονη ενεργοποίηση δύο εισόδων
Ζητούμενο: Ενεργοποιήστε ταυτόχρονα δύο εισόδους. Σε ποια από τις δύο αντιστοιχεί ο κωδικός εξόδου; Γιατί;
Πώς σκεφτόμαστε: Ο 74HC147 είναι κωδικοποιητής ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ: όταν ενεργές πολλές είσοδοι, υπερισχύει η μεγαλύτερη.
Λύση:
- Ο κωδικός εξόδου αντιστοιχεί στην υψηλότερη (μεγαλύτερη) από τις δύο ενεργές εισόδους.
- Συμβαίνει γιατί το Ο.Κ. είναι κωδικοποιητής προτεραιότητας — η εσωτερική λογική δίνει προτεραιότητα στη μεγαλύτερη είσοδο, αγνοώντας τις χαμηλότερες.
Απάντηση: Ο κωδικός αντιστοιχεί στην ΥΨΗΛΟΤΕΡΗ από τις δύο ενεργές εισόδους — γιατί ο 74HC147 είναι κωδικοποιητής προτεραιότητας.
Πρόσεξε:
- Χωρίς προτεραιότητα, δύο ταυτόχρονες ενεργές είσοδοι θα έδιναν αμφίβολο/λάθος αποτέλεσμα.
- Εφαρμογή: συστήματα διακοπών (interrupts) — εξυπηρετείται η υψηλότερης προτεραιότητας συσκευή.
Συμπεράσματα
Ζητούμενο: Διατυπώστε τα συμπεράσματα για τη λειτουργία του κωδικοποιητή προτεραιότητας.
Πώς σκεφτόμαστε: Συνοψίζουμε: κωδικοποίηση (γραμμή→κωδικός), προτεραιότητα, ενεργές-LOW.
Λύση:
- Ο κωδικοποιητής μετατρέπει μία ενεργή γραμμή εισόδου σε δυαδικό κωδικό (αντίστροφο του αποκωδικοποιητή).
- Η προτεραιότητα εξασφαλίζει σαφές αποτέλεσμα όταν ενεργοποιούνται πολλές είσοδοι (υπερισχύει η μεγαλύτερη).
- Οι ενεργές-LOW είσοδοι/έξοδοι απαιτούν προσοχή στην ανάγνωση (ενεργή = «0»).
Απάντηση: Ο 74HC147 κωδικοποιεί δεκαδικό→BCD με προτεραιότητα στη μεγαλύτερη ενεργή είσοδο, με ενεργές-LOW είσοδους/εξόδους.
Πρόσεξε:
- Οι κωδικοποιητές χρησιμοποιούνται σε πληκτρολόγια, interrupts, συμπίεση γραμμών.
- Ο 74HC147 έχει 9 εισόδους (όχι 10): το «0» προκύπτει από απουσία ενεργής εισόδου.