Hur använder man 12864 LCD-modul i detalj?

May 07, 2017

Lämna ett meddelande

Anmärkningar i början av artikeln: Denna artikel är bara en specifik introduktion till driften av 12864. Den är endast för nykomlingar som just har kontaktat 12864. Ta en titt på den. Skrivandet av artikeln är relativt löst. Det rekommenderas att nybörjare först hänvisar till 12864-manualen och den engelska manualen för kontrolldrivrutinen ST7920. , Läs den här artikeln igen efter att ha en preliminär förståelse, du kommer att få en djupare förståelse. Det rekommenderas starkt att läsa ST7920 engelska manual noggrant! Det finns en detaljerad introduktion i detaljerna, och det mesta av det kinesiska 12864 är också översatt från kinesiska.

Den här artikeln är uppdelad i tre steg för att introducera den interna resursprincipen för 12864, en detaljerad förklaring av instruktionsuppsättningen och applikationsexempel.

Det finns fyra typer av operationer för 12864:

1). Läs upptaget (innehållet i pekaradressen läses samtidigt). Efter initieringen måste varje läsning och skrivning till 12864 vara upptagen detektering. 2) Skriv kommandon: Du kan kontrollera kommandolistan för alla kommandon, och den detaljerade användningen av kommandona kommer att förklaras senare. Skrivadressen är också skrivkommandot. 3) Skriv data: Operationsobjekten är DDRAM, CGRAM, GDRAM.

4), läs data: operationsobjektet är också DDRAM, CGRAM, GDRAM.



12864液晶模块


För studien av 12864 måste du först förstå dess interna resurser. Genom att veta vad som finns i den kan du använda den mer bekvämt.

Först kort presentera några engelska namn:

DDRAM: (Data DisplayRam), datadisplay RAM, vad du skriver in i det, det kommer att visa vad skärmen kommer att visa.

CGROM: ​​(CharacterGeneration ROM), teckengenererings-ROM. Inuti finns typsnitten för att lagra kinesiska tecken, även kända som det kinesiska teckenbiblioteket. Kodningsmetoderna är GB2312 (förenklad kinesiska) och BIG5 (traditionell kinesiska). Författaren använder QC12864B från Yusong Electronics, och förklaringen är baserad på detta exempel. CGRAM: (CharacterGeneration RAM), teckengenererings-RAM, 12864 tillhandahåller 64x2B CGRAM, som kan användas för användardefinierade 4 16×16 tecken, varje tecken upptar 32 byte.

GDRAM: (Graphic DisplayRAM): Grafiskt display-RAM. Detta område används för att rita. Detsamma gäller – vad som än står i det, kommer skärmen att visa det som visas. Skillnaden mellan det och DDRAM är att data som skrivs till DDRAM är teckenkodningen och teckenvisningen hittas först i CGROM och mappas sedan till skärmen, och när du skriver data till GDRAM använder punktmatrisinformationen för grafiken 1 bit för att spara dess visning eller inte.

HCGROM: ​​(Half height Character Generation ROM): Halvbredds teckengenerator, som är bokstäver och siffror, det vill säga ASCII-kod. När det gäller ICONRAM (IRAM): Det verkar som att 12864 för närvarande på marknaden inte har den här funktionen, och jag hittade den inte. Ansökningsinformation, så jag kommer inte att presentera den här.

Nedan kommer vi att börja en förklaring av 12864 runt listan med resurser som listas ovan: DDRAM:

12864 som används av författaren har 4 rader x 32 byte DDRAM-utrymme inuti. Men vid ett visst tillfälle kan skärmen bara visa 2 rader x 32 byte utrymme, så hur är det med det återstående utrymmet? De kan användas för cache, och dessa utrymmen kan komma till nytta när du implementerar rullande display.

DDRAM-strukturen är som följer:

80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H, 88H, 89H, 8AH, 8BH, 8CH, 8DH, 8EH, 8FH90H, 91H, 92H, 93H, 9H, 9H, 9H, 9H, 9H, 9H , 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FHAOH, A1H, A2H, A3H, A4H, A5H, A6H, A7H, A8H, A9H, AAH, ABH, ACH, ADH, AEH, AFHBOH, B2, , B3H, B4H, B5H, B6H, B7H, B8H, B9H, BAH, BBH, BCH, BDH, BEH, BFH

Överensstämmelsen mellan adressen och skärmvisningen är som följer:

Rad-80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H Andra raden: 90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H Tredje raden: 88B, 8AH, 8H , 8CH, 8DH, 8EH, 8FH Fjärde raden: 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FH

Obs: Data i den röda delen visas på den övre halvan av skärmen och data i den gröna delen visas på den nedre halvan av skärmen. I allmänhet använder vi utrymmet på ovanstående två rader för att visa tecken, det vill säga 80H~8FH, 90H~9FH. Utrymmet för varje adress är 2 byte, vilket är 1 ord, så det kan användas för att lagra tecken. Det totala kodningsutrymmet är 128 byte. Eftersom kodningen av varje kinesiskt tecken är 2 byte, måste varje adress använda 2 byte för att lagra ett kinesiskt tecken. Naturligtvis är det också möjligt att använda dessa 2 byte isär, det vill säga 2 halvbreddstecken visas.

Data som lagras i DDRAM är alla teckenkoder, och koderna som kan skrivas inkluderar ASCII-kod, GB2312-kod och BlG5-kod. 12864-teckensnittsbiblioteket som används av författaren verkar vara ofullständigt, och"numret" av tecknen kan inte visas, men andra tecken visas. Om du visar en artikel med lång kinesisk karaktär är fördelen inte lämplig.

DDRAM-data läsa och skriva:

All data som läser och skriver bör skicka adressen först, och sedan läsa och skriva. När du skriver data till DDRAM, se till att den finns i den grundläggande instruktionsuppsättningen (öppen med instruktion 0x30), skriv sedan adressen och skriv sedan två byte data i följd. När du läser data, skriv först adressen under den grundläggande instruktionsuppsättningen, läs den sedan igen och läs sedan 2 byte data kontinuerligt. Efter läsning är adresspekaren automatiskt en och hoppar till nästa ord. Om du behöver läsa nästa Innehållet i ordet behöver bara läsa 2 byte data kontinuerligt. Den falska läsningen här måste noteras. Att läsa CGRAM kräver inte bara en falsk läsning, utan att läsa andra GDRAM och DDRAM kräver en falsk läsning först, och sedan är den efterföljande läsningen en sann läsning. Den falska läsningen är att läsa data en gång, men data kommer inte att lagras. Det vill säga, data som läses för första gången efter att du har skickat adressen är felaktig, och data efter det är korrekta. (dummy betyder falsk läsning)

12864液晶模块




De saker som behöver förklaras om lagringen av koden i DDRAM är följande:

1) Varje gång är operationsenheten för DDRAM ett ord, det vill säga 2 byte. När du skriver data till DDRAM, skriv först adressen, och skicka sedan kontinuerligt in 2 byte med data, och skicka det höga ordet först. Data för sektionen, sedan data för den låga byten skickas. Detsamma gäller vid läsning av data. Skriv adressen först, läs sedan högbytedata och läs sedan lågbytedata (var uppmärksam på falsk läsning när du läser data).

2). När du visar ASCII-kod halvbreddstecken, skicka 2 byte ASCII-kod till varje adress, och 2 halvbreddstecken kommer att visas motsvarande positionen på skärmen. Den vänstra är tecknet med hög byte och den högra är ett tecken med låg byte.

3). När kinesiska tecken visas måste de två byten av kinesisk teckenkodning lagras i samma adressutrymme och kan inte lagras i två adresser separat, annars kommer de visade tecknen inte att vara de tecken du vill ha. De 2 byten i varje ord kombineras automatiskt för att hitta teckensnittet och visa tecknen. Därför, om vi skriver 2-byte-kodningen av ett kinesiskt tecken till en adress, kommer tecknet att visas korrekt. Den höga byten för kodningen lagras i den låga byten för den föregående adressen, och den låga byten för kodningen lagras i det höga ordet för nästa adress. Avsnittet kommer de uppenbarligen inte att kombinera för att hitta teckensnittet, utan för att hitta teckensnittet i samband med motsvarande byte för varje adress.


12864液晶模块


4). Eftersom styrenheten ST7920 har 4 anpassade tecken, kan dessa 4 anpassade tecken också visas fullt ut. På samma sätt är dessa 4 anpassade tecken också kodade, men kodningen av dessa 4 tecken De är fasta, de är 0000H, 0002HO004H respektive 0006H. Enligt nedanstående:

12864液晶模块




Ovanstående bild ritar bara CGRAM-utrymmet på 2 tecken, och det kommer att finnas 2 tecken i framtiden. Det kan ses att varje tecken har 16 rader och 16 kolumner, och varje rad använder 2 byte. Därför är utrymmet som upptas av ett tecken 32 byte, och adressen är 6 bitar. Adresserna för de 4 tecknen är: O0H~ OFH,

10H~1FH, 20H~2FH, 30H~3FH. Kodningen använder 2 byte. Det kan ses att 2 bitar är godtyckliga, vilket indikerar att det kan finnas flera kodningar för dessa 4 tecken, men vi använder ofta de 4 kodningarna som anges ovan.

CGRAM: (data läsa och skriva)

Strukturen för CGRAM visas ovan. Här lägger vi till lite innehåll för att läsa och skriva CGRAM. Innan du läser och skriver, skriv adressen först. Instruktionen för att skriva CGRAM är Ox4O{{1}} adress. Men när vi skriver adressen behöver vi bara skriva adressen till den första raden. Till exempel är det första tecknet Ox40+OOH, och skriv sedan 2 byte data kontinuerligt, och sedan kommer adresspekaren automatiskt att öka med en och hoppa till nästa rad. Adress och skriv sedan 2 byte data. I själva verket är programmering att skriva adressen och sedan skriva 32 byte data kontinuerligt. För att läsa data, skriv den första adressen först, läs sedan felaktigt en gång och läs sedan 32 byte data kontinuerligt.

GDRAM: (grafisk display RAM)

Den rumsliga strukturen för att rita RAM visas i bilden nedan:




Skicka förfrågan