Napomene na početku članka: Ovaj članak je samo konkretan uvod u rad 12864. Namijenjen je samo za pridošlice koji su upravo kontaktirali 12864. Molimo pogledajte ga. Pisanje članka je relativno slobodno. Preporuča se da početnici prvo pogledaju priručnik 12864 i upravljački program ST7920 na engleskom jeziku. , Pročitajte ovaj članak ponovno nakon preliminarnog razumijevanja, imat ćete dublje razumijevanje. Preporuča se pažljivo pročitati ST7920 engleski priručnik! Postoji detaljan uvod u pojedinostima, a većina kineskog 12864 također je prevedena s kineskog.
Ovaj je članak podijeljen u tri koraka za uvođenje načela internog resursa 12864, detaljno objašnjenje skupa instrukcija i primjere primjene.
Postoje četiri vrste operacija za 12864:
1). Pročitajte stanje zauzetosti (istovremeno će se pročitati sadržaj adrese pokazivača). Nakon inicijalizacije, svako čitanje i pisanje na 12864 mora biti detekcija zauzetosti. 2) Pisanje naredbi: Popis naredbi možete provjeriti za sve naredbe, a detaljna upotreba naredbi bit će objašnjena kasnije. Adresa za pisanje je također naredba za pisanje. 3) Pisanje podataka: Objekti rada su DDRAM, CGRAM, GDRAM.
4), čitanje podataka: objekt rada je također DDRAM, CGRAM, GDRAM.

Za proučavanje 12864, prvo morate razumjeti njegove unutarnje resurse. Znajući što je u njemu, možete ga koristiti praktičnije.
Prvo ukratko predstavite nekoliko engleskih naziva:
DDRAM: (Data DisplayRam), RAM za prikaz podataka, ono što upišete u njega, prikazat će ono što će prikazati ekran.
CGROM: (ROM za generiranje znakova), ROM za generiranje znakova. Unutra su fontovi za pohranjivanje kineskih znakova, također poznati kao biblioteka kineskih znakova. Metode kodiranja su GB2312 (pojednostavljeni kineski) i BIG5 (tradicionalni kineski). Autor koristi QC12864B tvrtke Yusong Electronics, a objašnjenje se temelji na ovom primjeru. CGRAM: (RAM za generiranje znakova), RAM za generiranje znakova, 12864 pruža 64x2B CGRAM, koji se može koristiti za korisnički definirana 4 16×16 znakova, svaki znak zauzima 32 bajta.
GDRAM: (Graphic DisplayRAM): RAM za grafički prikaz. Ovo područje se koristi za crtanje. Isto vrijedi - što god je u njemu napisano, ekran će prikazati ono što je prikazano. Razlika između njega i DDRAM-a je u tome što su podaci zapisani u DDRAM. Kodiranje znakova i prikaz znakova prvo se nalaze u CGROM-u, a zatim se preslikavaju na ekran, a prilikom pisanja podataka u GDRAM, matrične informacije grafike koriste 1 bit za spremanje prikaza ili ne.
HCGROM: (ROM za generiranje znakova pola visine): Generator znakova polovične širine, koji se sastoji od slova i brojeva, odnosno ASCII koda. Što se tiče ICONRAM-a (IRAM): Čini se da 12864 trenutno na tržištu nema ovu funkciju, a ja je nisam našao. Informacije o aplikaciji, tako da ih ovdje neću predstavljati.
U nastavku ćemo započeti objašnjenje 12864 oko popisa gore navedenih resursa: DDRAM:
12864 koji koristi autor ima 4 reda x 32 bajta DDRAM prostora. Ali u određenom trenutku zaslon može prikazati samo 2 retka x 32 bajta prostora, pa što je s preostalim prostorom? Mogu se koristiti za predmemoriju, a ti prostori mogu biti korisni pri implementaciji pomicanja zaslona.
Struktura DDRAM-a je sljedeća:
80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H, 88H, 89H, 8AH, 8BH, 8CH, 8DH, 8EH, 8FH90H, 91H, 92H, 94H,H95, , 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FHAOH, A1H, A2H, A3H, A4H, A5H, A6H, A7H, A8H, A9H, AAH, ABH, ACH, ADH, AEH, B1HBOH2, , B3H, B4H, B5H, B6H, B7H, B8H, B9H, BAH, BBH, BCH, BDH, BEH, BFH
Korespondencija između adrese i prikaza na ekranu je kako slijedi:
Red-80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H Drugi red: 90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H Treći red: 8H8H, 8H8H , 8CH, 8DH, 8EH, 8FH Četvrti red: 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FH
Napomena: Podaci u crvenom dijelu prikazani su u gornjoj polovici zaslona, a podaci u zelenom dijelu prikazani su u donjoj polovici zaslona. Općenito, koristimo prostor od gornja dva retka za prikaz znakova, odnosno 80H~8FH, 90H~9FH. Prostor svake adrese je 2 bajta, što je 1 riječ, tako da se može koristiti za pohranjivanje znakova. Ukupni prostor kodiranja je 128 bajtova. Budući da je kodiranje svakog kineskog znaka 2 bajta, svaka adresa treba koristiti 2 bajta za pohranu kineskog znaka. Naravno, moguće je koristiti i ova 2 bajta odvojeno, odnosno, prikazuju se 2 znaka polovične širine.
Podaci pohranjeni u DDRAM su svi znakovni kodovi, a kodovi koji se mogu napisati uključuju ASCII kod, GB2312 kod i BlG5 kod. Čini se da je biblioteka fontova 12864 koju koristi autor nepotpuna, a"broj" znakova se ne mogu prikazati, ali se prikazuju drugi znakovi. Ako prikazujete dugačak članak kineskog karaktera, prednost nije prikladna.
DDRAM podaci čitaju i pišu:
Svi podaci za čitanje i pisanje trebali bi prvo poslati adresu, a zatim čitati i pisati. Kada upisujete podatke u DDRAM, provjerite jesu li u osnovnom skupu instrukcija (otvoreno s uputom 0x30), zatim upišite adresu, a zatim upišite dva bajta podataka uzastopno. Prilikom čitanja podataka prvo upišite adresu pod osnovni skup instrukcija, zatim je ponovno pročitajte, a zatim neprekidno čitajte 2 bajta podataka. Nakon čitanja, pokazivač adrese automatski je jedan i preskače na sljedeću riječ. Ako trebate pročitati sljedeću. Sadržaj riječi treba neprekidno čitati samo 2 bajta podataka. Ovdje treba napomenuti lažno čitanje. Ne samo da čitanje CGRAM-a zahtijeva lažno čitanje, već čitanje drugog GDRAM-a i DDRAM-a zahtijeva prvo lažno čitanje, a zatim je naknadno čitanje pravo čitanje. Lažno čitanje je čitanje podataka jednom, ali podaci neće biti pohranjeni. To znači da su podaci prvi put pročitani nakon slanja adrese pogrešni, a podaci nakon toga točni. (lutka znači lažno čitanje)

Stvari koje treba objasniti o pohranjivanju koda u DDRAM su sljedeće:
1) Svaki put operativna jedinica DDRAM-a je jedna riječ, odnosno 2 bajta. Kada pišete podatke u DDRAM, prvo upišite adresu, a zatim kontinuirano šaljite 2 bajta podataka i prvo pošaljite visoku riječ. Šalju se podaci sekcije, zatim podaci nižeg bajta. Isto vrijedi i za čitanje podataka. Najprije napišite adresu, zatim pročitajte podatke visokog bajta, a zatim pročitajte podatke nižeg bajta (obratite pažnju na lažno čitanje prilikom čitanja podataka).
2). Prilikom prikazivanja znakova polovice širine ASCII koda, pošaljite 2 bajta ASCII koda na svaku adresu, a prikazat će se 2 znaka polovice širine koji odgovaraju poziciji na ekranu. Lijevi je znak visokog bajta, a desni znak niskog bajta.
3). Prilikom prikazivanja kineskih znakova, dva bajta kodiranja kineskih znakova moraju biti pohranjena u istom adresnom prostoru i ne mogu se pohraniti na dvije adrese odvojeno, inače prikazani znakovi neće biti znakovi koje želite. 2 bajta u svakoj riječi automatski se kombiniraju kako bi se pronašao font i prikazali znakovi. Stoga, ako upišemo 2-bajtno kodiranje kineskog znaka na adresu, znak će biti ispravno prikazan. Visoki bajt kodiranja pohranjen je u niži bajt prethodne adrese, a niži bajt kodiranja pohranjen je u višoj riječi sljedeće adrese. Odjeljak, očito se neće kombinirati da bi pronašli font, već da bi pronašli font u sprezi s odgovarajućim bajtom svake adrese.

4). Budući da kontroler ST7920 pruža 4 prilagođena znaka, ova 4 prilagođena znaka također se mogu u potpunosti prikazati. Slično, ova 4 prilagođena znaka su također kodirana, ali kodiranje ova 4 znaka je fiksno, to su 0000H, 0002HO004H, odnosno 0006H. Kao što je prikazano niže:

Gornja slika samo crta CGRAM prostor od 2 znaka, a u budućnosti će biti 2 znaka. Vidi se da svaki znak ima 16 redaka i 16 stupaca, a svaki red koristi 2 bajta. Dakle, prostor koji zauzima znak je 32 bajta, a adresa 6 bitova. Adrese 4 znaka su: O0H~ OFH,
10H~1FH, 20H~2FH, 30H~3FH. Kodiranje koristi 2 bajta. Može se vidjeti da su 2 bita proizvoljna, što ukazuje da može postojati više kodiranja za ova 4 znaka, ali često koristimo 4 gore navedena kodiranja.
CGRAM: (čitanje i pisanje podataka)
Struktura CGRAM-a prikazana je gore. Ovdje dodajemo nešto sadržaja za čitanje i pisanje CGRAM-a. Prije čitanja i pisanja prvo napišite adresu. Uputa za pisanje CGRAM-a je Ox4O{{1}} adresa. Ali kada pišemo adresu, trebamo napisati samo adresu prvog retka. Na primjer, prvi znak je Ox40+OOH, a zatim upišite 2 bajta podataka neprekidno, a zatim će se pokazivač adrese automatski povećati za jedan i skočiti na sljedeći redak. Adresa, a zatim upišite 2 bajta podataka. Zapravo, programiranje je zapisivanje adrese, a zatim kontinuirano pisanje 32 bajta podataka. Za čitanje podataka prvo upišite prvu adresu, zatim jednom lažno pročitajte, a zatim neprekidno pročitajte 32 bajta podataka.
GDRAM: (RAM za grafički prikaz)
Prostorna struktura RAM-a za crtanje prikazana je na donjoj slici:

