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

Θέμα: Εμφάνιση τιμής καταχωρητή σε LCD 2x16

  1. #1
    Μέλος Το avatar του χρήστη Thansavv
    Όνομα
    Θανάσης
    Εγγραφή
    Nov 2008
    Περιοχή
    Φινλανδία
    Μηνύματα
    557

    Προεπιλογή Εμφάνιση τιμής καταχωρητή σε LCD 2x16

    Γεια σας,
    Πως θα μπορούσα να εμφανίσω την τιμή ενός καταχωρητή σε ένα LCD display.
    Αναφέρομαι σε επεξεργαστή Atmel και χρήση Assembly...Δηλαδή πως θα μπορούσα να βλέπω στο Display, την τιμή που έχει κάθε φορά π.χ. η R20..

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη hardcode
    Όνομα
    Πέτρος
    Εγγραφή
    Apr 2006
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    122

    Προεπιλογή

    Πρέπει να γίνεις λίγο πιο ξεκάθαρος στο τι έχεις κάνει ως τώρα. Έχεις συνδέσει το LCD στον atmel; Απεικόνισες κάποιο απλό κείμενο; Θες πληροφορίες για όλη τη διαδικασία της σύνδεσης display με μικροελεγκτή;
    Έχεις συνδέσει το display, έχεις απεικονίσει κείμενο αλλά δε μπορείς να απεικονίσεις τα περιεχόμενα του καταχωρητή;

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη Επιστήμων
    Όνομα
    atmel
    Εγγραφή
    Oct 2005
    Περιοχή
    Σέρρες
    Μηνύματα
    450

    Προεπιλογή

    Θα πρέπει να μετατρέψεις την τιμή που θα περιέχεται
    σε δεκαδική μορφή (εκατοντάδες,δεκάδες,μονάδες)
    και έπειτα πρίν κάνεις την εμφάνιση του κάθε αριθμού
    θα κάνεις μετατροπή σε νούμερο LCD.

    Ευτυχώς βέβαια τα νούμερα στην LCD είναι εύκολο
    να μετατραπούν. Απλά προσθέτεις σε κάθε προς
    εμφάνιση αριθμό το $30 ( π.χ andi dekades,$30).

    Έπειτα στέλνεις στην οθόνη , προς εγγραφή, το
    περιεχόμενο του καταχωρητή (π.χ. dekades)

    0 Not allowed! Not allowed!
    Αν δεν μάθεις σε κάποιον να μιλάει , πως θα ακούσεις τι έχει να σου πεί . Σίμος . Τ.

  4. #4
    Μέλος Το avatar του χρήστη Thansavv
    Όνομα
    Θανάσης
    Εγγραφή
    Nov 2008
    Περιοχή
    Φινλανδία
    Μηνύματα
    557

    Προεπιλογή

    Έστω ότι ο καταχωρητής ICR1 έχει κάποια στιγμή τη δεκαδική τιμή χ. (πχ 28467)...
    Με ποιό τρόπο θα μπορούσε να εμφανιστεί η τιμή αυτή στο display... Όχι φυσικά να του στείλω εγώ τους αντίστοιχους χαρακτήρες $32,$38,$34 κοκ....Να γίνεται αυτόματα...
    Να στείλω συγκεκριμένους χαρακτήρες σε συγκεκριμένη θέση μπορώ...

    Το να "σπάσω" τον αριθμό σε δεκάδες, εκατοντάδες, χιλιάδες κλπ εκτός του ότι είναι χρονοβόρο, δεν ξέρω και να το κάνω, λόγω του ότι ο αριθμός είναι σε δυαδική μορφή (16bit)...

    Δηλ. ο ICR1 (input capture register) μέτρησε ένα χρόνο χ μsec... Πως θα απεικονίσω αυτήν την τιμή χ στο display, με χρήση assembly...
    ευχαριστώ...

    0 Not allowed! Not allowed!

  5. #5
    Μέλος
    Εγγραφή
    Apr 2006
    Περιοχή
    Κέρκυρα
    Μηνύματα
    5.962

    Προεπιλογή

    κατ' αρχήν πρέπει να αποφασίσεις αν το θέλεις να το δείς σε δεκαδική ή σε δεκαεξαδικη μορφή.
    Αν θές να το δείς σε δεκαδική πέρασε το από μια υπορουτίνα binary to decimal (έχει έτοιμες η atmel σε application note) και στη συνέχεια πάρε ένα ένα τα ψηφία πρόσθεσε τον $30 για να μετατραπούν σε ascii και στείλτα στην lcd.

    Αν θες να τα δεις σε δεκαεξαδική πάρε ένα ένα τα ψηφία κάνε αντιστοίχηση των χαρακτήρων 0-f από binary σε ascii και στείλε τα στην οθόνη. (λέγοντας ένα ένα τα ψηφία εννοώ ομάδες των 4bit)

    0 Not allowed! Not allowed!

  6. #6
    Μέλος Το avatar του χρήστη Thansavv
    Όνομα
    Θανάσης
    Εγγραφή
    Nov 2008
    Περιοχή
    Φινλανδία
    Μηνύματα
    557

    Προεπιλογή

    Σε δεκαδική μορφή τον θέλω τον αριθμό... Θα ψάξω να βρω την εν λόγω ρουτίνα...
    Σ' ευχαριστώ...

    0 Not allowed! Not allowed!

  7. #7
    Μέλος Το avatar του χρήστη Thansavv
    Όνομα
    Θανάσης
    Εγγραφή
    Nov 2008
    Περιοχή
    Φινλανδία
    Μηνύματα
    557

    Προεπιλογή

    Δεν βρήκα τελικά την συγκεκριμένη ρουτίνα... Δε θέλω να μετατρέψω ένα μόνο χαρακτήρα πχ το δεκαδικό 3 σε ascii δηλ. $33 για να το στείλω στο display, αλλά έναν ακέραιο πχ 12456 (0b11000010101000) ( ο οποίος είναι σε κάποιο καταχωρητή αποθηκευμένος) να τον εμφανίσω στο display....

    0 Not allowed! Not allowed!

  8. #8
    Μέλος Το avatar του χρήστη lastid
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    841

    Προεπιλογή

    Ένας ψευδοκώδικας είναι ο εξής:
    Κώδικας:
    N = o αρχικός αριθμός
    S =   digit(10000)
    S = S+digit(1000)
    S = S+digit(100)
    S = S+digit(10)
    S = S+digit(1)
    print S
    , όπου η υπορουτίνα digit(d) κάνει τα εξής:
    Κώδικας:
    I = 0
    while N >= d
       N = N - d
       I = I + 1
       end while
    return char( I+48 )
    Το πλεονέκτημά του είναι ότι γλυτώνεις πολλαπλασιασμούς και διαιρέσεις.

    0 Not allowed! Not allowed!

  9. #9
    Μέλος Το avatar του χρήστη Thansavv
    Όνομα
    Θανάσης
    Εγγραφή
    Nov 2008
    Περιοχή
    Φινλανδία
    Μηνύματα
    557

    Προεπιλογή

    thnx Δημήτρη...Προσπαθώ να βρω τον τρόπο σε assembly...

    0 Not allowed! Not allowed!

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

  1. LCD 2x16 απορία
    By AR15 in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 12-07-12, 20:28
  2. LCD 2x16
    By Mr.Linatsa69 in forum Μικροελεγκτές
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 13-03-11, 20:43
  3. lcd 2x16 problima
    By Zak in forum Διάφορα Κυκλώματα
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 02-11-09, 13:46
  4. LCD 2x16
    By viper in forum Μικροελεγκτές
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 16-06-09, 12:27
  5. Απαντήσεις: 3
    Τελευταίο Μήνυμα: 09-04-09, 17:40

Tags for this Thread

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

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