Ansluta Nokia 3310 LCD till USB med hjälp av AVR (6 / 9 steg)
Steg 6: Förstå LCD
The Nokia 3310 Visa adresser det är 84 x 42 bildpunkter med 0-83 på X-axeln, och 0-5 på Y-axeln. Displayen har 6 pixlar "Banker" på Y-axeln, och dessa banker är 8 pixlar hög och 84 pixlar bred. Genom att göra detta kan vi representerar 8 pixlar på Y-axeln i bara 1 byte! Som ni vet, består 1 byte av 8 bitar. 11111111 översätts till 8 fasta pixlar på Y-axeln. Den enda nackdelen är att du har att skriva 8 pixlar i taget och skriva över befintliga data på plats.
Varje gång du ritar pixlar till displayen, flyttar displayen automatiskt till den nästa byten på X-axeln. Du kommer att finna detta mycket bekvämt, eftersom du inte har att flytta manuellt varje gång du ritar något. Om du är på den sista byten i en bank, displayen istället skickar du till den 1: a byten på nästa bank, och om det är på undersidan av skärmen, du kommer att fortsätta från toppen.
Observera att den 1: a bit i byte du ritar är den övre pixelnoch 8 bit är den lägre pixeln!
Att skriva pixlar display, använder du funktionen LCD_writeData (data) på mikrokontroller. Detta kommer att dra 8 pixlar på den aktuella platsen XY, skriva över de befintliga pixlarna på den platsen.
Du kan också skicka kommandon till displayen, med hjälp av funktionen LCD_writeCommand (data) . Det finns inte alltför många kommandon du kan skicka till displayen som är av intresse än initierar, men de kommandon som du använder är:
* 0b00001000 - tom skärm (inte klart displayen)
* 0b00001100 - Normal-läge (inaktiverar Invertera läge och blank/fyllning lägen)
* 0b00001001 - uppvisning fylld skärmen (inte klart displayen)
* 0b00001101 - Invertera läge (inverterar skärmen)
Att flytta till XY platser, du också använda kommandon, men vi har en funktion som gör det för oss: LCD_gotoXY (X, Y), men om du behöver dem, de är:
* 0b01000YYY - flyttar till 0bYYY på Y-axeln (ersätta Y med önskad binärvärde)
* 0b1XXXXXXX - filmer till 0bXXXXXXX på X-axeln (Ersätt X med önskat värde)