Εμφάνιση αποτελεσμάτων : 1 έως 6 από 6

Θέμα: Ερωτησεις για κυκλωμα μετατροπεα απο αναλογικο σε ψηφιακο!!

  1. #1
    Νέο Μέλος
    Όνομα
    Θοδωρης
    Εγγραφή
    Dec 2013
    Περιοχή
    Λαρυμνα
    Μηνύματα
    7

    Προεπιλογή Ερωτησεις για κυκλωμα μετατροπεα απο αναλογικο σε ψηφιακο!!

    Καλησπέρα Χρόνια Πολλά και Καλή Χρονιά να έχουμε. Θέλω τη βοήθειά σας! Έχω κάνει έναν μετατροπέα απο αναλογικό σε ψηφιακό σήμα και θέλω α)Να μου πείτε πως μπορώ να διαβάσω τα περιεχόμενα του καταχωρητή Α (υποθέτω πωε είναι η ένδειξη στην οθόνη αλλά δεν είμαι σίγουρος και μπερδεύτηκα) και β)Μπορώ να τροφοδοτήσω με τάση πάνω από 5 V γα να πάρω τιμές πάνω από τα 5volt? Ο μικροελεγκτής είναι ο AT89S51 και ο μετατροπέας είναι ο ADC0804. Σας ευχαριστώ προκαταβολικά!

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2006
    Περιοχή
    KN10gi
    Μηνύματα
    258

    Προεπιλογή

    Τί εννοείς "Έχω κάνει έναν μετατροπέα απο αναλογικό σε ψηφιακό σήμα"; Απ' ό,τι αντιλαμβάνομαι έχεις συνδέσει έναν μετατροπέα A/D τύπου ADC0804 σε έναν μΕ ΑΤ89S51.

    α) Ο καταχωρητής Α, προφανώς είναι του μΕ. Τί εννοείς να τον διαβάσεις και σε ποιά οθόνη αναφέρεσαι; Μερικές πληροφορίες παραπάνω θα βοηθούσαν και ειδικότερα κάποιο σχηματικό διάγραμμα.
    Θα πρέπει με κάποιο κύκλωμα αποκωδικωποίησης διευθύνσεων να αναθέσεις κάποια διεύθυνση στον A/D (ακροδέκτης /CS) και αφού (προγραμματιστικά) τον επιλέξεις, να εκκινήσεις μια μετατροπή (/WR) και μόλις τα δεδομένα της μετατροπής είναι διαθέσιμα (/INTR) να τα διαβάσεις (να τα φέρεις στον καταχωρητή Α-ccumulator) και ακολούθως να τα χρησιμοποιήσεις όπως θές. Εναλλακτικά μπορείς να χρησιμοποιήσεις τον A/D σε free running mode (/INTR -> /WR, /CS=0) και να τον διαβάζεις. Συμβουλέψου τα timing diagrams από το datasheet του μετατροπέα.
    Το πως ακριβώς θα το κάνεις (προφανώς με κάποια εντολή της οικογένειας MOV, εφόσον αναφέρεσαι σε assembly, με το κατάλληλο στήσιμο του addressing mode και των βοηθητικών καταχωρητών) υποθέτω πως το γνωρίζεις. Αν πάλι αναφέρεσαι σε γλώσσα υψηλότερου επιπέδου π.χ C και πάλι υποθέτω πως γνωρίζεις πως μπορείς να αναφερθείς, να διαβάσεις και να γράψεις σε εξωτερικές διευθύνσεις. Αν πάλι δεν τα γνωρίζεις εξοικειώσου πρώτα με τις εντολές που σε ενδιαφέρουν με ανάγνωση/εγγραφή απλούστερων εξωτερικών διατάξεων όπως διακοπτών/led.

    β) Και βέβαια μπορείς, χρησιμοποιώντας έναν διαιρέτη τάσης με αντιστάσεις (σχετικής ακρίβειας ή προσεκτικά επιλεγμένες κατόπιν μετρήσεων. Σημειωτέον πως αυτό που μετράει είναι η ακρίβεια του λόγου τους κι όχι η απόλυτη τιμή τους). Επίσης συμβουλέψου το datasheet του μετατροπέα εκεί που λέει "Handling ±10V Analog Inputs"

    0 Not allowed! Not allowed!

  3. #3
    Νέο Μέλος
    Όνομα
    Θοδωρης
    Εγγραφή
    Dec 2013
    Περιοχή
    Λαρυμνα
    Μηνύματα
    7

    Προεπιλογή

    ADC0804 WITH AT89S51 (LCD).JPG
    Καλησπέρα! Έχεις δίκιο ήταν πολύ ξεκάρφωτο έτσι όπως το έγραψα. Λοιπόν το κύκλωμα είναι αυτό που έβαλα με τη φωτογραφία και λειτουργεί ως εξής : Αφού βάλω τάση, με το ποτενσιόμετρο R2 επιλέγω διάφορες τιμές οι οποίες μετατρέπονται σε δεκαδικό αριθμό και προβάλλονται στην οθόνη (Δηλαδή π.χ : για 0(V) παίρνω ένδειξη 000(δεκαδικό), για 2,5(V) παίρνω ένδειξη 128(δεκαδικό) και για 5(V) παίρνω ένδειξη 255(δεκαδικό)). Επειδή (προφανώς) έχω κάποιο πρόβλημα στο πρόγραμμα δεν παίρνω σωστές ενδείξεις. οπότε μιλώντας με τον καθηγητή μου (καθότι πρόκειται για πτυχιακή) μου είπε να βάλω διάφορες τιμές που μου έχει δώσει και να του πω τις εξόδους στον Μετατροπέα (έχω βάλει led και θα το δω) και τα περιεχόμενα στον καταχωρητή Α. Αυτό που με μπέρδεψε είναι ότι μου ζητάει τιμές πάνω από 5 Volt και δεν ξέρω αν μπορώ να το κάνω και πως μπορώ να διαβάσω (έτσι όπως είναι το κύκλωμα) τα περιεχόμενα του καταχωρητή Α (Υποθέτω πως είναι η ένδειξη της LCD οθόνης αλλά δεν είμαι σίγουρος και γι'αυτό ζητώ πληροφορίες .

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2006
    Περιοχή
    KN10gi
    Μηνύματα
    258

    Προεπιλογή

    α) Κατ' αρχάς, πρέπει να έχεις κατανοήσει τη διαδικασία μετατροπής και το πότε είναι διαθέσιμα τα δεδομένα (valid) στην έξοδο του μετατροπέα ώστε να πάς και να τα διαβάσεις.
    Τον μετατροπέα τον έχεις μόνιμα επιλεγμένο (/CS=0)
    Η μετατροπή ξεκινά όταν κάνεις write (/WR -> LOW) στον μετατροπέα.
    Η μετατροπή έχει ολοκληρωθεί όταν το /INTR γίνει LOW
    Τότε κάνεις read (/RD -> LOW) και διαβάζεις τα δεδομένα που βρίσκονται στην έξοδο του μετατροπέα (στην είσοδο του P1)
    Πρόσεξε πως χρησιμοποιείς τα P2.5, P2.6, P2.7 και όταν ενεργοποιείς κάποιο από αυτά σε τι κατάσταση βάζεις τα άλλα.


    β) Ποια είναι η περιοχή τάσεων εισόδου που σε ενδιαφέρει; Με έναν διαιρέτη τάσης μπορείς να την φέρεις στα μέτρα του μετατροπέα.
    Δες το datasheet της TI (http://www.ti.com/general/docs/lit/g...umber=snosbi1b) σελ.12 Fig.28 Handling ±10V Analog Inputs, αν αφαιρέσεις την αντίσταση 5k προς τη Vcc η περιοχή σου γίνεται 0..10V
    Αν R1 είναι η αντίσταση από την είσοδό σου προς το Vin(+) και R2 η αντίσταση από το Vin(+) προς το Vin(-) και τη γη τότε η περιοχή τάσεων εισόδου θα είναι από 0 έως Vεισ.=5*(R1+R2)/R2
    Για μικρότερες τάσεις των 5V θα πρέπει να παίξεις με τη Vref/2 ή να χρησιμοποιήσεις ενισχυτή DC ή κάποια άλλη διάταξη DC conditioning.

    Η τιμή του μετατροπέα προφανώς αφού διαβαστεί, πριν εμφανιστεί στο display πρώτα περνά από τον καταχωρητή Α. Άλλωστε αυτό σημαίνει "διαβάζω κάτι από ένα port" χρησιμοποιώντας έναν μΕ. Αυτό που σου λέει ο καθηγητής σου είναι να δεις πριν κάνεις οτιδήποτε άλλο ποια είναι αυτή η τιμή που διαβάζεις ώστε να σιγουρευτείς ότι διαβάζεις σωστά και δεν πρόκειται για σφάλμα στο κομμάτι του προγράμματος που ασχολείται με την εμφάνιση της τιμής.

    0 Not allowed! Not allowed!

  5. #5
    Νέο Μέλος
    Όνομα
    Θοδωρης
    Εγγραφή
    Dec 2013
    Περιοχή
    Λαρυμνα
    Μηνύματα
    7

    Προεπιλογή

    Έχω καταλάβει πως γίνεται η μετατροπή και σε τι κατάσταση είναι το κάθε pin του μετατροπέα δεν με δυσκολεύει αυτό. Τώρα χάρη στη βοήθειά σου κατάλαβα πως μπορώ να πάρω Vin(+) μέχρι 10V. Αυτό που ακόμα με δυσκολεύει είναι το πως θα διαβάσω τη τιμή του Α. Θα συνδέσω κάποιο led και αν ναι που?Στο πρόγραμμα βλέπω σε ποιο σημείο παίρνει ο Α την τιμή της εξόδου αλλά δεν μπορώ να καταλάβω πως θα τη διαβάσω. Μήπως να μην τη μετατρέψω σε δεκαδικό και να πάρω με led την έξοδο στη πόρτα 0(Ρ0)?

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2006
    Περιοχή
    KN10gi
    Μηνύματα
    258

    Προεπιλογή

    Εφόσον έχεις γράψει εσύ τις ρουτίνες ανάγνωσης του A/D και απεικόνισης στο display δε νομίζω να είναι δύσκολο να συμπεριλάβεις μια ρουτίνα απεικόνισης της τιμής του Α στο display. Δεν χρειάζεται να διαβάσεις την τιμή του Α, την έχεις την τιμή του Α εφόσον διάβασες τον A/D. Πως αλλιώς εννοείς "Στο πρόγραμμα βλέπω σε ποιο σημείο παίρνει ο Α την τιμή της εξόδου"; Αποθήκευσέ την προσωρινά κάπου (μνήμη; καταχωρητή; ) και στη συνέχεια κάλεσε τη ρουτίνα σου να την απεικονίσεις με όσο το δυνατόν απλούστερη μορφή.
    Παρ' όλα αυτά, μια που έχεις μια ελεύθερη πόρτα (P3) μπορείς να την χρησιμοποιήσεις και να οδηγήσεις ένα octal latch (όπως τα 74LS373/74LS374 ή 74LS573/74LS574 - παίζουν και 74HCTxxx) βάζοντας στις εξόδους του leds (high efficiency) με αντιστάσεις 330Ω σε σειρά ώστε να γράφεις κατευθείαν εκεί το περιεχόμενο του Α και να το βλέπεις στα led. Υπόψιν ότι θα πρέπει να χρησιμοποιήσεις και ένα ακόμη ελεύθερο pin κάποιας άλλης πόρτας (P2; ) ως σήμα συγκράτησης των δεδομένων στο latch.

    0 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. Προταση για ψηφιακο κυκλωμα
    By giwrgos77 in forum Ηλεκτρονικά
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 05-11-15, 17:23
  2. Απαντήσεις: 9
    Τελευταίο Μήνυμα: 07-01-13, 00:27
  3. Αναλογικο οργανο για μετρηση ESR πυκνωτων
    By papkir in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 17-04-12, 21:02
  4. Απαντήσεις: 45
    Τελευταίο Μήνυμα: 23-03-10, 18:22
  5. Απαντήσεις: 3
    Τελευταίο Μήνυμα: 11-03-06, 21:02

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας