Musik spelas väckarklocka (7 / 24 steg)
Steg 7: LCD-Display grunderna
Detta är den exakta modellen jag har använt: http://www.sparkfun.com/products/9052
Du kan välja färg men se till att det är HD44780 kompatibel och körs i 3.3V
Jag gillade "vitt på svart" eftersom det är läsbar på natten men inte oroväckande ljus.
Betydelsen av att det är HD44780 kompatibel är eftersom det är vanligt. Alla vet hur man använder den. Här finns flera tutorials genom att helt enkelt söka efter "HD44780 tutorial"
http://joshuagalloway.com/LCD.html
http://jallib.blogspot.com/2009/01/Step-by-Step-interfacing-hd44780.html
http://www.8051projects.net/LCD-interfacing/Introduction.php
http://www.robotenthusiasts.com/Page/index.html/_/tutorials/pic-Microcontrollers/hd44780-LCD-R14
Märker hur alla dessa tutorials var identiska?
Ta nu tag i databladet för visning (detta är från Sparkfuns produktsida):
http://www.Sparkfun.com/datasheets/LCD/ADM1602K-NSW-FBS-3.3V.pdf
Data skickas via en parallell buss, data är placerade på data stift, och provtas när "E" PIN-koden ska växlas.
Ta notis om timing diagram på sidan 7. Om vi gör en snabb kalkyl, innebär Teensy på 8 MHz den tid det tar för en församling instruktion är 125 nanosekunder. LCD kommunikation koden har beaktat detta (leta efter där jag har lagt "_NOP();"). Varje kommando också ta en minsta tid att utföra, som du kommer att se.
Ta notis om kommandona som finns på sidan 10, det kommer att hjälpa dig förstå initialisering koden senare när du läser källkoden. Också som jag sa tidigare, varje kommando tar en minsta tid att utföra, och hur lång tid är listade här. Också vi kommer inte att läsa data från LCD-skärmen, bara skriva, det betyder "Läs/skrivbar" eller "R/W" pin kan anslutas till marken, vilket betyder "Skriv bara".
Titta på tabellen tecken inuti databladet, det är nästan samma som ASCII med några små undantag. Detta gör det enkelt att Visa textsträngar.
Observera också att vi kommer att använda 4 bitars läge för att spara stift och kablar. Beskrivning av hur 4 bitars läge fungerar är inte precis i databladet men kommandot kallas "funktionen in" är vad som används för att 4 bitars läge. Märker att 4 bitars läge använder bitar DB7 DB4 och "fungerar uppsättning" är utformat så att DB3 till DB0 inte krävs för att aktivera 4 bitars läge.
För att förstå mer om 4 bitarsläge, försöka läsa den här först
http://ESD.cs.UCR.edu/Labs/Interface/Interface.html
I grund och botten du skicka de mest betydande 4 bitarna först, och sedan de minst signifikanta 4 bitarna andra. När LCD har ställts in till 4 bitars läge, det alltid förväntar sig 2 data överföringar, medan i 8-bitars läge, det bara förväntar sig 1 dataöverföring, därför är inställningen 4 bitars läge måste göras tidigt, även om kommandona som är utformade så att det inte behöver vara det första kommandot.
Kontrasten kontrolleras av stift 3 på LCD-skärmen, finner jag använder en 10 kilo-ohm trimmer potientiometer som en spänningsavdelare ingång till stift 3 är den enklaste metoden för att kontrollera kontrast.
Bakgrundsbelysning LED kommer att kontrolleras av våra mikrokontroller. Det bör finnas en strömbegränsande motstånd i serie så att LED eller våra microcontroller GPIO inte bränna ut.
Nästa steg blir ett exempel demonstration, som också visar dig ledningar anslutningarna.