Βοήθεια με LCD διεπαφή μικροϋπολογιστικά

S

scs83

Guest
Γεια σου,

Πραγματικά χρειάζεται κάποια βοήθεια εδώ.Είμαι σήμερα κάνει μια επιστημονική αριθμομηχανή έργο και έχω κάποιο πρόβλημα θα διασυνδέεται με το μικροελεγκτή.Έχω ένα πηγαίο κώδικα αναφοράς σε αυτό το δικτυακό τόπο http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/sam/LCD.ASM

Χρησιμοποιεί δύο 16X1 LCD, αλλά θα ήθελα να χρησιμοποιούν μόνο μία 16X2 LCD.Μπορεί κανείς να με βοηθήσει με αυτό;Είμαι πολύ κακή με τον προγραμματισμό που είμαι νέος.

Σε ευχαριστώ.

 
Δεν ξέρω τι μικροελεγκτή που χρησιμοποιείτε, αλλά από τα σχόλια που φαίνεται στην οθόνη ελεγκτή που χρησιμοποιείτε είναι HD44780
της Hitachi.
Αν αυτό είναι σωστό, τότε να χρησιμοποιήσει τη δεύτερη γραμμή που μόλις χρειαστεί να ρυθμίσετε τη διεύθυνση του επόμενου χαρακτήρα που θα εμφανίζεται να 40H, η οποία είναι η αρχή της δεύτερης γραμμής.

Ένα άλλο πράγμα που πρέπει να θυμόμαστε είναι ότι αυτή η HD44780 χρησιμοποιείται με άλλα είδη εμφανίζει, όπως 20x2 ή 24x2.Όμως, η πρώτη γραμμή πάντα ξεκινά στις DD RAM διεύθυνση 00H και η δεύτερη στο 40H.

Το τσιπ έχει περισσότερες θέσεις μνήμης (40x2) σε σχέση με τις περισσότερες οθόνες LCD έχουν χαρακτήρες, έτσι ώστε να δείτε μόνο τα πρώτα 16, 20 ή 24, κτλ χαρακτήρες από την αρχή κάθε γραμμής.Το υπόλοιπο των θέσεων μπορεί να χρησιμοποιηθεί ως γενικής χρήσης RAM.

Σημειώστε επίσης ότι το τέλος της πρώτης γραμμής και την έναρξη του δεύτερου δεν είναι συνεχόμενες.

Ελπίζω ότι αυτό βοηθά.Αλλιώς, παρακαλώ μετά το ακριβές τσιπ τύπου που χρησιμοποιείτε.

 
Γεια vvv,

Είμαι με τη χρήση μικροελεγκτή Atmel 8515 και Hitachi HD44780 LCD.Έχω κάνει σήμερα ένα σχέδιο που βασίζεται σε ιστοσελίδα που στην πρώτη μου θέση.I προβλέπονται για την χρήση ενός 16X2 LCD, αλλά δεν ξέρω πώς να αλλάξετε την LCD διασυνδέεται πρόγραμμα στην ιστοσελίδα χρησιμοποιεί δύο 16X1 LCD.

Τέλος πάντων, ευχαριστώ για τη βοήθειά σας.

 
Γεια σου,
κοίτα το βιβλίο
του MazidiΚωδικός:

Μικροϋπολογιστικά 8051 και τα ενσωματωμένα συστήματα
 
Τότε είναι HD44870 όπως ύποπτα.
Στην περίπτωση αυτή, όλα που πρέπει να κάνετε για να μεταβείτε στην αρχή της δεύτερης γραμμής είναι να στείλετε μια εντολή για να ρυθμίσετε τη διεύθυνση στην 40H.Το υπόλοιπο του κώδικα παραμένει αμετάβλητο.

 
Γεια σου άποψη-με τον τρόπο αυτό.Στο μέρος 2 είναι ένα παράδειγμα για 16x2 lcd με 16f84.
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
Το ίδιο πρέπει lcd σύνδεση με το πρόγραμμα δήλωση.

Υπάρχει τρόπος για την σύνδεση δύο μία LCD:

1.io σύνδεση.D0 .. D7, RS, WR, E είναι συνδεδεμένα με io του μικροελεγκτή.
2.μνήμης σύνδεση.Η LCD αντιστοιχίζεται στη μνήμη χαρτογράφηση σε μικροελεγκτή.

thx

 
Γεια σου, scs83,

Ξέχασα ένα πράγμα: πρέπει επίσης να πω την HD44780 κατά τη διάρκεια της αρχικοποίησης ακολουθία (lcdinit ρουτίνας) ότι υπάρχουν 2 γραμμές στην οθόνη.
Εδώ είναι η τροποποίηση της αρχικής κωδικός:
================================================
? Τέλος,

? Σε αυτό το σημείο, η κανονική 4 σύρμα εντολή ρουτίνας μπορεί να χρησιμοποιηθεί

? LDI wreg, 0b00100000? λειτουργία που, 4 σύρματα, 1 γραμμή, 5x7 γραμματοσειρά
? Ι σχολίασε την προηγούμενη γραμμή,
η οποία σήμερα έχει ως εξής:

LDI wreg, 0b00101000

rcall lcdcmd
================================================

Το υπόλοιπο παραμένει η ίδια.Και όπως είπα και προηγουμένως, όταν θέλετε να προχωρήσετε στην δεύτερη γραμμή πρέπει πρώτα να ορίσετε τη διεύθυνση στην DD RAM 40H.Αυτό μπορεί να γίνει κάπως έτσι:

LDI wreg, 0b11000000
rcall lcdcmd

Αυτό που διαπίστωσα σχετικά με αυτό το πρόγραμμα είναι ότι δεν χρησιμοποιεί id εξισώνει.Αυτό κάνει τροποποιήσεις πραγματικά δύσκολη, διότι εάν το ίδιο σταθερό χρησιμοποιείται σε αρκετά σημεία και θα πρέπει να το αλλάξουμε, τότε θα πρέπει να chage χειροκίνητα σε όλες τις τοποθεσίες.Εάν ξεχάσετε μία θέση, μπορείτε να λάβετε ένα σφάλμα.Δεν μπορεί να είναι ovious αμέσως, αλλά θα εμφανιστούν τελικά.
Ως εκ τούτου, να μου συμβουλή: εξισώνει χρήση.Για παράδειγμα:
LCD_FSET EQU 0b00101000? LCD λειτουργία που η εντολή
CRLF_CMD EQU 0b11000000? ΛΑΧ CR LF εντολή (μεταφορά επιστροφής γραμμή των ζωοτροφών,
λόγω της έλλειψης ενός καλύτερου ορισμού? Στην πραγματικότητα αυτό είναι που κάνει τη διοίκηση, επιστρέφει το δρομέα στην αρχή της δεύτερης γραμμής)

Με αυτές, η τροποποίηση του κώδικα θα έχει ως εξής:

LDI wreg, LCD_FSET? LCD που λειτουργεί με 4 σύρματα διασύνδεσης, 2 γραμμές, 5x7 char.

Για να ξεκινήσει να εμφανίζει τη δεύτερη γραμμή, θα σας κώδικας:

LDI wreg, CRLF_CMD? στείλετε CRLF εντολή
rcall lcdcmd?

Τώρα που είναι πιο κατανοητή, και εγώ, έστω και αν δεν το σχολιάσω.Εάν νομίζετε ότι έχετε κάνει λάθος όταν ορίζεται CRLF (ή άλλα σταθερά), το μόνο που έχετε να κάνετε είναι να αλλάξετε τη γραμμή EQU νέους και το πρόγραμμα.Ο assembler θα κάνει την αντικατάσταση για σας σε όλα τα σημεία, δεν λείπει.

Και κάτι ακόμα: προφανώς αυτό το πρόγραμμα χρησιμοποιεί μια πολύ σκληρή-κωδικευμένα σταθερές, που περιλαμβάνει τον αριθμό των χαρακτήρων ανά γραμμή,
γεγονός που σημαίνει ότι μπορεί να χρειαστεί να αλλάξει αυτό.Χρησιμοποίησε EQU της.

Λυπούμαστε για μια τέτοια μακρά απάντηση.Νόμιζα ότι αυτό θα μπορούσε να βοηθήσει.
Επιτρέψτε μου να μάθω αν έχετε την επιτυχία με αυτό.

 
Γεια VVV,

Ευχαριστώ για την απάντησή σας, αλλά δυστυχώς επίκλισης δοκιμάσω τώρα γιατί είμαι σε διακοπές σήμερα.Θα πιθανώς δοκιμή πριν από τον κωδικό του νέου έτους.Μπορείτε να ελέγξετε τον κώδικα για μένα όταν τελείωσα την επεξεργάζεστε;

Ευχαριστώ

 
Νομίζω ότι είναι το καλύτερο για να επικοινωνούν με την lcd με 6pin (4data / δυνατή / rs) τα άλλα δεν σας ενδιαφέρει ........

 
Γεια σου, scs83,

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

 
Γεια σου,

Θέλω να ξεκαθαρίσω κάτι.Από αυτή την ιστοσελίδα, http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s1999/sam/, θα πρέπει να γνωρίζουν το διάγραμμα του κυκλώματος αυτού του έργου.Έχω ήδη συνδεθεί η LCD που Πληκτρολόγια και να το μικροελεγκτή.Έχω επίσης να συνδεθεί το κρύσταλλο ταλαντωτής.Υπάρχει κάτι που έχω χάσει έξω;Μπορεί κάποιος να με βοηθήσει;

Ευχαριστώ

 
μπορείτε επίσης να συνδέσετε ένα reset κύκλωμα ...
προσπαθούν να λάβουν τελικό σχέδιο ως σημείο αναφοράς, υπάρχουν πολλά σχέδια στο διαδίκτυο σχετικά με τη σύνδεση ενός 2-line LCD σε Atmel ελεγκτή.Δείτε για παράδειγμα στο http://www.avrprojects.net/lcd_interface.htm
Θα πρέπει να είναι εύκολο να προσαρμοστούν preety εργασίας ενός σχεδιασμού ...

 

Welcome to EDABoard.com

Sponsor

Back
Top