20
Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

Page 2: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Σχηματικό Διάγραμμα μιας Οθόνης Υγρών Κρυστάλλων

To Lcd εσωτερικά έχει έναν controller που είναι υπεύθυνος για την επεξεργασία τον δεδομένων που εισέρχονται σε αυτό.

Ο Controller αυτός έχει δυο καταχωρητές τους IR Instructions Register & DR Data Register).

Ο καταχωρητής IR είναι υπεύθυνος μόνο για εγγραφή και αποθηκεύει εντολές όπως Clear Display ή Cursor Shift. Επίσης αποθηκεύει και διευθύνσεις για τις θέσεις μνήμης RAM της οθόνης Lcd.

Ο DR χρησιμοποιείται για να αποθηκεύει δεδομένα (data) όταν αυτά διαβάζονται από τις θέσεις μνήμης RAM ή γράφονται σε αυτές.

Page 3: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Φυσικές διασυνδέσεις LCD με τις θύρες του μικροελεγκτή 8051

5V

8

0

5

1

Ρ0

Ρ2.0

Ρ2.2

Ρ2.1

RS EN R/W

7

13

Vss

1

4 6 5

LCD Display

VDD=5V V0

2 3

Page 4: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Γενικά οι οθόνες LCDs έχουν 14 ακίδες (pins) όπως φαίνεται στον πίνακα που ακολουθεί.

Αριθμός Ακίδας (Pin) Σύμβολο Λειτουργία

1 Vss 0V2 Vdd 5V3 Vo contrast adjustment voltage4 RS [P2.0] Low (0):instruction code input

Εάν RS=0 (clr rs) στέλνουμε εντολές όπως για καθαρισμό οθόνης, μετατόπιση του κέρσορα, αλλαγή γραμμής κτλ.High (1):Character Data input Εάν RS=1 (setb rs) στέλνουμε δεδομένα για εμφάνιση στην οθόνη του LCD.

5 R/W [P2.1] High (1):data read

Εάν R_W=1 (setb R_W) ανάγνωση δεδομένων από το LCDLow (0):data writeΕάν R_W=0 (clr R_W) εγγραφή δεδομένων στο LCD

6 EN [P2.2] Enable signal

H ακίδα enable χρησιμοποιείται για να αναγνωστούν τα περιεχόμενατης θύρας P0 από το LCD. Όταν τα περιεχόμενα προωθούνται στιςακίδες [P0.0–P0.7], ένας παλμός εφαρμόζεται στην ακίδα enable ώστεκατά την μετάβαση από high σε low η οθόνη lcd να αναγνώσει τοπεριεχόμενο (εντολές ή δεδομένα) . (setb en – clr en). Αυτός ο παλμόςπρέπει να έχει διάρκεια τουλάχιστον 450ns.

7-14 P0.0 έως P0.7 8-bit data bus line (ακίδες δεδομένων)

Page 5: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

ΑΠΕΙΚΟΝΙΣΗ ΣΧΕΣΗΣ 8051 ΜΕ ΤΟ LCD

•Οι ακίδες P0.0 έως P0.7 αποτελούν την βασική θύρα επικοινωνίας του 8051 με το Lcd.•Η ακίδα P2.0 του 8051 καθορίζει αν στέλνονται εντολές (instructions) ή δεδομένα (data) στο Lcd.(P2.0 = 0 Instruction Mode, P2.0 = 1 Data Mode).•Η ακίδα P2.1 του 8051 καθορίζει αν θα γραφούν ή θα αναγνωστούν δεδομένα στο Lcd.•Η ακίδα P2.2 του 8051 δημιουργεί τον παλμό ανάγνωσης των περιεχομένων της θύρας P0 από το Lcd.

8pins

Page 6: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Η οθόνη Lcd του αναπτυξιακού έχει 32 θέσεις εμφάνισης χαρακτήρων ισοκατανεμημένες σε δύο γραμμές.

Οι θέσεις της πρώτης σειράς της οθόνης διευθυνσιοδοτούνται με τους αριθμούς 80h έως 8Fh.

Αντίστοιχα, οι θέσεις της 2ης σειράς της οθόνης διευθυνσιοδοτούνται με τους αριθμούς C0h έως CFh.

Της αποστολής και εμφάνισης ενός χαρακτήρα σε συγκεκριμένη θέση προηγείται η αποστολή της πληροφορίας θέσης στο Lcd με την επιλογή εντολής (Instruction Mode)

θέση

Page 7: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

List of Dot Matrix LCD Instructions

Page 8: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Dot Matrix LCD Software Initialization

Page 9: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

INIT_LCD:

CLR R_W ; R_W =0, Write Mode

CLR RS ; RS =0, Command ModeACALL DELAY ; Διασφάλιση του χρόνου των 15msec από τροφοδοσία

MOV A,#38H ; Η εντολή 38h κάνει high τα bits DB5,DB4,DB3.

ACALL CONTROL; (DL:DataLength,N: Number of Lines, F: 5x7 dots.

MOV A,#38H

ACALL CONTROL

MOV A,#38H

ACALL CONTROL

MOV A,#38H

ACALL CONTROL

MOV A,#06H ; Η εντολή #06Η ρυθμίζει την μετατόπιση του κέρσορα

ACALL CONTROL; προς τα δεξιά.

MOV A,#0EH ; Η εντολή #0EH ενεργοποιεί οθόνη και κέρσορα

ACALL CONTROL; Επίσης ενεργοποιεί τον κέρσορα να αναβοσβήνει.

MOV A,#01H; Η εντολή #01H καθαρίζει την οθόνη

ACALL CONTROL

MOV A,#80H; Η εντολή #80H μεταφέρει τον κέρσορα στην πρώτη

ACALL CONTROL ; γραμμή & πρώτη στήλη όπου θα εμφανιστεί ο

RET ; πρώτος χαρακτήρας.

Διαδικασία Αρχικοποίησης της Οθόνης LCD (1/10)

Power ON

38H

38H

38H

38H

06H

0EH

01H

02H

≥15ms

≥4.1ms

≥100μs

≥40μs

≥40μs

≥40μs

≥40μs

≥1.64ms

Cursor home≥40μs

Page 10: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

$nomod51#include <REG420.h>

org 0000hljmp mainorg 0030h

rs equ p2.0r_w equ p2.1en equ p2.2

main: acall INIT_LCDacall AUTHORSsjmp $

Ανάπτυξη Κώδικα Εμφάνισης Μηνύματος στο LCD (2/10)

Page 11: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Καθυστέρησης Delay (3/10)

DELAY: MOV R6,#28HDEL6: MOV R7,#0FFHDEL7: DJNZ R7,DEL7

DJNZ R6,DEL6RET

Page 12: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Καθυστέρησης Delaya (4/10)

DELAYA: MOV R5,#0AHDEL8: MOV R6,#28HDEL9: MOV R7,#0FFHDEL0: DJNZ R7,DEL0

DJNZ R6,DEL9DJNZ R5,DEL8RET

Page 13: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Αποστολής Εντολών σε LCD (5/10)

CONTROL: CLR RSMOV P0,ASΕΤΒ ΕΝACALL DELAYCLR ENRET

Page 14: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Αποστολής Δεδομένων σε LCD (6/10)

DATUM: SETB RSMOV P0,ASΕΤΒ ΕΝACALL DELAYACLR ENRET

Page 15: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Αλλαγής στη 2η γραμμή LCD (7/10)

CHLINE: MOV A,#0C0hACALL CONTROLRET

Page 16: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Καθαρισμού Οθόνης LCD (8/10)

CLRSCR: CLR RS MOV A,#01HACALL CONTROL RET

Page 17: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Μεταφοράς Κέρσορα στην αρχική θέση (9/10)

CRSHM: CLR RSMOV A, ,#02HACALL CONTROLRET

Page 18: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Ρουτίνα Μεταφοράς Μηνυμάτων στο LCD (10/10)

AUTHORS: MOV A,#80HACALL CONTROLCLR R_W

MOV A,#'8'ACALL DATUMMOV A,#'0'ACALL DATUMMOV A,#'5'ACALL DATUMMOV A,#'1'ACALL DATUM

ACALL CHGLINEMOV A,#'P'ACALL DATUMMOV A,#'R'ACALL DATUMMOV A,#'O'ACALL DATUMMOV A,#'C'ACALL DATUMMOV A,#'E'ACALL DATUMMOV A,#'S'ACALL DATUMMOV A,#'S'ACALL DATUMMOV A,#'O'ACALL DATUMMOV A,#'R'ACALL DATUMRET

Page 19: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

Delays: 8051 vs DS89C4X0

• Οι ρουτίνες CONTROL και DATUMχρησιμοποιούν τις υπορουτίνεςκαθυστέρησης ονόματι delay καιdelaya αντίστοιχα. Οι υπορουτίνεςαυτές χρησιμοποιούνται για ναεπιτευχθεί επικοινωνία μεταξύ της«αργής» οθόνης LCD και του «πολύγρήγορου» μικροϋπολογιστή 8051.

F8051=Fosc/12 Fds89c4x0=Fosc/1 Η διαφορά των δύο

μικροϋπολογιστών είναι 12 παλμοί της συχνότητας του κρυστάλλου.

• Παρατήρηση: Ο χρόνος που δεσμεύουν από τον μικροϋπολογιστή οι ρουτίνες καθυστέρησης είναι υπολογίσιμος και ανάλογος της συχνότητας ταλαντωτή.

• T=1/F: (T ορίζεται ο χρόνος ενός κύκλου μηχανής <mc>)

• Tmc8051=1.085μs• Tmcds89c4x0=0.09μs• Oι κύκλοι μηχανής που χρειάζεται η

κάθε εντολή για να εκτελεστεί στον κάθε ένα μικροϋπολογιστή δίνεται από τον κατασκευαστή.

• Π.χ. η εντολή RET στον 8051χρειάζεται 2mc ενώ στον ds89c4x0χρειάζεται 3mc.

Page 20: Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal ... · 2015. 6. 6. · To Lcdεσωτερικά έχει έναν controller που είναι

MOV A, #01h ;Καθαρισμός της οθόνης LCDMOV A, #02h ;Μεταφορά του κέρσορα στην 1η γραμμή και 1η στήληMOV A, #04h ;Μετατόπιση του κέρσορα προς τα αριστεράMOV A, #06h ;Μετατόπιση του κέρσορα προς τα δεξιάMOV A, #05h ;Μετατόπιση μηνύματος δεξιάMOV A, #07h ;Μετατόπιση μηνύματος αριστεράMOV A, #08h ;Απενεργοποίηση (σβήσιμο) οθόνης και εξαφάνιση του κέρσοραMOV A, #0Αh ;Απενεργοποίηση (σβήσιμο) οθόνης και εμφάνιση του κέρσοραMOV A, #0Ch ;Ενεργοποίηση (άναμμα) οθόνης και εξαφάνιση του κέρσοραMOV A, #0Εh ;Ενεργοποίηση (άναμμα) οθόνης και ο κέρσορας αναβοσβήνειMOV A, #0Fh ;Ενεργοποίηση (άναμμα) οθόνης και ο κέρσορας αναβοσβήνειMOV A, #10h ;Μετατόπιση θέσης κέρσορα προς τα αριστεράMOV A, #14h ;Μετατόπιση θέσης κέρσορα προς τα δεξιάMOV A, #18h ;Μετατόπιση ολόκληρης της οθόνης προς τα αριστεράMOV A, #1Ch ;Μετατόπιση ολόκληρης της οθόνης προς τα δεξιάMOV A, #0C0h ;Μεταφορά του κέρσορα στην 2η γραμμή 1η στήληMOV A, #80h ;Μεταφορά του κέρσορα στην 1η γραμμή και 1η στήληMOV A, #81h ;Μεταφορά του κέρσορα στην 1η γραμμή και 2η στήλη

Χρήσιμες εντολές για πειραματισμό στον έλεγχο του LCD.