Skillnad mellan versioner av "HD44780"
Strombom (diskussion | bidrag) |
Strombom (diskussion | bidrag) |
||
Rad 1: | Rad 1: | ||
== Mycket vanlig styrkrets för {{LCD-Displayer}}. == | == Mycket vanlig styrkrets för {{LCD-Displayer}}. == | ||
Ladda hem [[HD44780.pdf databladet]]. | Ladda hem [[http://www.altronix.se/elwiki/files/HD44780.pdf databladet]]. | ||
Det här är en kort guide till hur man använder LCD displayer med HD44780. Guiden är inte komplett men beskriver de viktigaste sakerna för att kunna få igång sin display. Informationen jag presenterar fungerar på tvåradiga displayer, men skulle lätt kunna justeras för andra displaystorlekar. På sista sidan finns ett exempel på hur man kan koppla en display till parallellporten på en PC. | Det här är en kort guide till hur man använder LCD displayer med HD44780. Guiden är inte komplett men beskriver de viktigaste sakerna för att kunna få igång sin display. Informationen jag presenterar fungerar på tvåradiga displayer, men skulle lätt kunna justeras för andra displaystorlekar. På sista sidan finns ett exempel på hur man kan koppla en display till parallellporten på en PC. |
Versionen från 4 mars 2006 kl. 15.30
Mycket vanlig styrkrets för Mall:LCD-Displayer.
Ladda hem [databladet].
Det här är en kort guide till hur man använder LCD displayer med HD44780. Guiden är inte komplett men beskriver de viktigaste sakerna för att kunna få igång sin display. Informationen jag presenterar fungerar på tvåradiga displayer, men skulle lätt kunna justeras för andra displaystorlekar. På sista sidan finns ett exempel på hur man kan koppla en display till parallellporten på en PC.
Pinkonfiguration
Först gäller det att ta reda på vilka in/utgångar som är vilka. De är numrerade från 1 till 14 och sitter alltid i nummerordning. Pin 1 och 14 brukar vara markerade med text på kretskortet. Står det inte markerat kan du ganska enkelt ta reda på vilket ben som är vilket:
Börja med att leta upp pin 1, jord. Det kan du göra genom att testa med en multimeter vilken av pinnarna som är kopplade till de små kopparområdena som displayens metallskal är fästa vid.
Om alla 14 pinnar sitter på rad på din lcd-display är det bara att utgå från pin 1 så vet du precis vilken som är vilken. Om de 14 pinnarna istället är konfigurerade i två kolumner så får du räkna radvis, på första raden sitter alltså pin 1 och 2, på andra raden pin 3 och 4 osv. pin 3 sitter under pin 1.
Förklaring av in-/utångarna
LCD-displayen har följande benkonfiguration:
Pin nr | Namn | Funktion |
1 | Vss | Jord (0V) |
1 | Vss | Jord (0V) |
2 | Vcc | Kraftförsörjning +5V |
3 | Vee | Kontrast |
4 | RS | 0 = instruktion, 1 = data |
5 | R/W | 0 = skriv, 1 = läs |
6 | E | Dataöverföringspuls |
7 | D0 | Databitar 0 - 7 |
8 | D1 | |
9 | D2 | |
10 | D3 | |
11 | D4 | |
12 | D5 | |
13 | D6 | |
14 | D7 |
På pin 3, kontrasten, skall det ligga en spänning som för de flesta displayer är mellan 0V och -5V. Det kan vara lite lurigt att generera negativ spänning, men man kan exempelvis köpa en LMC 7660 (ELFAs ordernummer 73-141-07, kostar bara 15 kr) för att enkelt få ut en lämplig spänning. Ibland har man dock tur, då går det bra med en positiv spänning, det är bara att testa!
Man använder pin 6, E, för att skicka en puls när de 8 databitarna skall skickas. Man lägger alltså först ut data på datapinnarna för att sedan skicka en puls till E.
Med pin 4, RS, bestämmer man om de åtta bitarna som ska skickas är instruktion eller data, mer information om detta kommer nedan.
Pin 5, R/W, avgör åt vilket håll databitarna ska skickas, jag brukar dra denna pinne till jord eftersom jag aldrig brukar läsa av vad det står på displayen i efterhand.
Initiering
Se sidan 212 i databladet för mer information.
Det första man måste göra när man kopplat in sin LCD och satt på strömmen är att initialisera HD44780 kretsen.
Nedanstående data skall skickas till displayen, en byte i taget. RS ska vara 0 under hela initialisationen. D7 är biten längst till vänster och D0 biten längst till höger. Mellan varje kommando måste man vänta minst 40 mikrosekunder, förutom de första där längre tid krävs. Vänta minst 20ms med att initiera displayen efter det att den fått ström.
00110000 - vänta minst 5 ms |
00110000 - vänta minst 0.1 ms |
00110000 |
00111000 |
00001000 |
00000001 |
00000110 |
För varje byte gör man så här: Lägger ut de åtta databitarna på respektive D-pinne på displayen. Sätter E till 1 en kort stund (hur lång tid spelar ingen roll, men måste vara längre än 0.5 mikrosekunder) för att sedan sätta den till 0 igen, nu är databyten skickad och man kan fortsätta med att lägga ut nästa…
Om man använder en PC kanske det är lättare att använda decimala eller hexadecimala tal, initialisationsdatan ser då ut så här:
Hex: 30, 30, 30, 38, 08, 01, 06 |
Dec: 48, 48, 48, 56, 8, 1, 6 |
När alla 7 talen har skickats till displayen är den redo att användas!
Kommandon
Se sidan 191 i databladet för mer information om kommandon.
Innan vi börjar skriva text på displayen vill jag introducera några kommandon man kan använda, RS ska alltid vara 0 när man skickar kommandon.
Kommando | Binärt | Övrigt |
Rensa skärmen | 00000001 | Tömmer hela displayen på all text |
Gå till första teckenplatsen | 00000010 | Flyttar cursorn till adress 0, alltså längst upp till vänster |
På/Av och cursor | 00001DCB | D = 1 display på, C = 1 cursor på, B = 1 cursor blinkar |
Flytta cursor | 1xxxxxxx | Adress där cursorn ska hamna, bättre förklaring nedan |
Varje gång man skriver ett tecken flyttar sig cursorn, så man behöver inte tänka på att flytta cursorn själv. Dock måste man själv byta rad, Första tecknet på rad 1 har adressen 0 och första tecknet på rad 2 har adressen 40h (100000 binärt och 64 decimalt).
Det är viktigt att ta hänsyn till hur lång tid ovanstående kommandon tar innan de har utförts. Att rensa skärmen och att gå till första teckenplatsen tar max 5ms och övriga kommandon tar 40 mikrosekunder.
Skriva text
Nu är vi redo att skiva text på displayen! När man skriver text ska RS vara 1. Sedan är det bara att lägga ut ett valfritt tecken på D7-D0 (se teckentabell på sista sidan) och skicka en puls på E-pinnen.
Låt det gå minst 40 mikrosekunder mellan varje skrivet tecken!
4-bitarsinterface
I många situationer, exempelvis då man använder små enchipsdatorer, kan det vara bra att spara in på antalet anslutningar. På LCD-displayer med kretsen HD44780 räcker det med att använda 4 anslutningar för data, vilket medför att det räcker med 6 anslutningar för att styra displayen.
När man använder 4-bitars interface ansluter man endast D4, D5, D6 och D7. Det är viktigt att övriga datapinnar, alltså D0, D1, D2 och D3 kopplas till jord, det är vanligt att man missar detta och följden blir att displayen inte initieras rätt.
Initialisationen skiljer sig mellan 8- och 4-bitars interface, nedan följer den data som skall överföras till displayen för att 4-bitars interface skall aktiveras. RS skall vara 0 under initialisationen. Mellan varje kommando måste man vänta minst 40 mikrosekunder, förutom de första där längre tid krävs. Vänta minst 20ms med att initiera displayen efter det att den fått ström.
Bitarna är i ordningen D7, D6, D5, D4.
0011 – vänta minst 5 ms |
0011 – vänta minst 0.1 ms |
0011 |
0010 |
0010 |
1000 |
0000 |
1000 |
0000 |
0001 |
0000 |
0110 |
När du skickat ovanstående data är det bara att börja använda displayen! För att skicka text och kommandon gör man som i 8-bitars läge med den skillnaden att man delar upp data i två delar. Först lägger man ut den första halvan av databyten på port D7-D4 och skickar en puls på E porten, sedan tar man de sista 4 bitarna och lägger ut på D7-D4, också detta följt av en puls på E porten. Det är bitarna 7-4 som skickas först, följt av 3-0.
Teckentabell
(Bilden hämtad från http://home.iae.nl/users/pouweha/index.shtml )
LCD-display kopplad till parallellporten på en PC
(Bilden hämtad från http://www.beyondlogic.org/parlcd/parlcd.htm )
Ladda hem [databladet].