Comentarios al comienzo del artículo: Este artículo es sólo una introducción específica al funcionamiento de 12864. Es solo para los recién llegados que acaban de contactar con 12864. Por favor, échale un vistazo. La redacción del artículo es relativamente imprecisa. Se recomienda que los principiantes consulten primero el manual 12864 y el manual en inglés del controlador de control ST7920. , Lea este artículo nuevamente después de tener una comprensión preliminar, tendrá una comprensión más profunda. Se recomienda encarecidamente leer atentamente el manual en inglés del ST7920. Hay una introducción detallada en los detalles, y la mayor parte del 12864 chino también se traduce del chino.
Este artículo se divide en tres pasos para presentar el principio de recursos internos de 12864, una explicación detallada del conjunto de instrucciones y ejemplos de aplicación.
Hay cuatro tipos de operaciones para 12864:
1). Leer el estado de ocupado (el contenido de la dirección del puntero se leerá al mismo tiempo). Después de la inicialización, cada lectura y escritura en el 12864 debe ser una detección de ocupación. 2) Escribir comandos: puede consultar la lista de comandos para todos los comandos, y el uso detallado de los comandos se explicará más adelante. La dirección de escritura también es el comando de escritura. 3) Escribir datos: Los objetos de operación son DDRAM, CGRAM, GDRAM.
4), leer datos: el objeto de operación también es DDRAM, CGRAM, GDRAM.

Para el estudio de 12864, primero debe comprender sus recursos internos. Sabiendo lo que contiene, puede usarlo de manera más conveniente.
Primero introduzca brevemente algunos nombres en inglés:
DDRAM: (Data DisplayRam), RAM de visualización de datos, lo que escribe en él, mostrará lo que mostrará la pantalla.
CGROM: (ROM de generación de caracteres), ROM de generación de caracteres. En el interior se encuentran las fuentes para almacenar caracteres chinos, también conocida como biblioteca de caracteres chinos. Los métodos de codificación son GB2312 (chino simplificado) y BIG5 (chino tradicional). El autor está utilizando el QC12864B de Yusong Electronics y la explicación se basa en este ejemplo. CGRAM: (RAM de generación de caracteres), RAM de generación de caracteres, 12864 proporciona CGRAM de 64x2B, que se puede utilizar para 4 caracteres de 16 × 16 definidos por el usuario, cada carácter ocupa 32 bytes.
GDRAM: (DisplayRAM gráfico): RAM de visualización gráfica. Esta área se utiliza para dibujar. Lo mismo es cierto: lo que esté escrito en él, la pantalla mostrará lo que se muestra. La diferencia entre este y DDRAM es que los datos escritos en DDRAM son La codificación de caracteres y la visualización de caracteres se encuentran primero en el CGROM y luego se asignan a la pantalla, y cuando se escriben datos en GDRAM, la información de la matriz de puntos de los gráficos usa 1 bit para guardar su visualización o no.
HCGROM: (ROM de generación de caracteres de media altura): generador de caracteres de medio ancho, que son letras y números, es decir, código ASCII. En cuanto a ICONRAM (IRAM): Parece que 12864 actualmente en el mercado no tiene esta función, y no la encontré. Información de la aplicación, así que no la presentaré aquí.
A continuación, comenzaremos una explicación de 12864 en torno a la lista de recursos enumerados anteriormente: DDRAM:
El 12864 utilizado por el autor tiene 4 filas x 32 bytes de espacio DDRAM en su interior. Pero en un momento determinado, la pantalla solo puede mostrar 2 líneas x 32 bytes de espacio, entonces, ¿qué pasa con el espacio restante? Se pueden usar para caché, y estos espacios pueden ser útiles al implementar la visualización de desplazamiento.
La estructura DDRAM es la siguiente:
80H, 81H, 82H, 83H, 84H, 85H, 86 H, 87H, 88H, 89H, 8AH, 8BH, 8CH, 8DH, 8EH, 8FH90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H , 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FHAOH, A1H, A2H, A3H, A4H, A5H, A6H, A7H, A8H, A9H, AAH, ABH, ACH, ADH, AEH, AFHBOH, B1H, B2H , B3H, B4H, B5H, B6H, B7H, B8H, B9H, BAH, BBH, BCH, BDH, BEH, BFH
La correspondencia entre la dirección y la visualización en pantalla es la siguiente:
Fila-80H, 81H, 82H, 83H, 84H, 85H, 86 H, 87H Segunda fila: 90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H Tercera fila: 88H, 89H, 8AH, 8BH , 8CH, 8DH, 8EH, 8FH Cuarta fila: 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FH
Nota: Los datos de la parte roja se muestran en la mitad superior de la pantalla y los datos de la parte verde se muestran en la mitad inferior de la pantalla. Generalmente, usamos el espacio de las dos líneas anteriores para mostrar caracteres, es decir, 80H ~ 8FH, 90H ~ 9FH. El espacio de cada dirección es de 2 bytes, que es 1 palabra, por lo que se puede utilizar para almacenar caracteres. El espacio total de codificación es de 128 bytes. Debido a que la codificación de cada carácter chino es de 2 bytes, cada dirección necesita usar 2 bytes para almacenar un carácter chino. Por supuesto, también es posible utilizar estos 2 bytes separados, es decir, se muestran 2 caracteres de medio ancho.
Los datos almacenados en DDRAM son todos códigos de caracteres, y los códigos que se pueden escribir incluyen código ASCII, código GB2312 y código BlG5. La biblioteca de fuentes 12864 utilizada por el autor parece estar incompleta, y el" número" de los caracteres no se pueden mostrar, pero se muestran otros caracteres. Si muestra un artículo largo en caracteres chinos, la ventaja no es adecuada.
Lectura y escritura de datos DDRAM:
Todos los datos de lectura y escritura deben enviar la dirección primero, y luego leer y escribir. Al escribir datos en DDRAM, asegúrese de que estén en el conjunto de instrucciones básicas (abra con la instrucción 0x30), luego escriba la dirección y luego escriba dos bytes de datos consecutivamente. Al leer datos, primero escriba la dirección en el conjunto de instrucciones básicas, luego léala de nuevo y luego lea 2 bytes de datos de forma continua. Después de leer, el puntero de dirección es automáticamente uno y salta a la siguiente palabra. Si necesita leer el siguiente El contenido de la palabra solo necesita leer 2 bytes de datos de forma continua. Debe tenerse en cuenta la lectura falsa aquí. No solo leer CGRAM requiere una lectura falsa, sino que leer otros GDRAM y DDRAM primero requiere una lectura falsa, y luego la lectura posterior es una lectura verdadera. La lectura falsa es leer los datos una vez, pero los datos no se almacenarán. Es decir, los datos leídos por primera vez después de enviar la dirección son incorrectos y los datos posteriores son correctos. (tonto significa lectura falsa)

Las cosas que deben explicarse sobre el almacenamiento del código en DDRAM son las siguientes:
1) Cada vez que la unidad de operación de DDRAM es una palabra, es decir, 2 bytes. Al escribir datos en DDRAM, primero escriba la dirección y luego envíe continuamente 2 bytes de datos y envíe primero la palabra alta. Se envían los datos de la sección, luego los datos del byte bajo. Lo mismo ocurre con la lectura de datos. Primero escriba la dirección, luego lea los datos de byte alto y luego lea los datos de byte bajo (preste atención a la lectura falsa al leer datos).
2). Al mostrar caracteres de medio ancho de código ASCII, envíe 2 bytes de código ASCII a cada dirección, y se mostrarán 2 caracteres de medio ancho correspondientes a la posición en la pantalla. El de la izquierda es el carácter de byte alto y el de la derecha es un carácter de byte bajo.
3). Al mostrar caracteres chinos, los dos bytes de codificación de caracteres chinos deben almacenarse en el mismo espacio de direcciones y no pueden almacenarse en dos direcciones por separado; de lo contrario, los caracteres mostrados no serán los caracteres que desea. Los 2 bytes de cada palabra se combinan automáticamente para encontrar la fuente y mostrar los caracteres. Por lo tanto, si escribimos la codificación de 2 bytes de un carácter chino en una dirección, el carácter se mostrará correctamente. El byte alto de la codificación se almacena en el byte bajo de la dirección anterior y el byte bajo de la codificación se almacena en la palabra alta de la siguiente dirección. Sección, obviamente no se combinarán para encontrar la fuente, sino para encontrar la fuente en conjunto con el byte correspondiente de cada dirección.

4). Debido a que el controlador ST7920 proporciona 4 caracteres personalizados, estos 4 caracteres personalizados también se pueden mostrar por completo. Del mismo modo, estos 4 caracteres personalizados también están codificados, pero la codificación de estos 4 caracteres es fija, son 0000H, 0002HO004H y 0006H respectivamente. Como se muestra abajo:

La imagen de arriba solo dibuja el espacio CGRAM de 2 caracteres, y habrá 2 caracteres en el futuro. Se puede ver que cada carácter tiene 16 filas y 16 columnas, y cada fila usa 2 bytes. Por lo tanto, el espacio que ocupa un carácter es de 32 bytes y la dirección es de 6 bits. Las direcciones de los 4 caracteres son: O0H ~ OFH,
10H ~ 1FH, 20H ~ 2FH, 30H ~ 3FH. La codificación utiliza 2 bytes. Se puede ver que 2 bits son arbitrarios, lo que indica que puede haber múltiples codificaciones para estos 4 caracteres, pero a menudo usamos las 4 codificaciones enumeradas anteriormente.
CGRAM: (lectura y escritura de datos)
La estructura de CGRAM se muestra arriba. Aquí agregamos algo de contenido para leer y escribir CGRAM. Antes de leer y escribir, escriba primero la dirección. La instrucción para escribir CGRAM es la dirección Ox4O {{1}}. Pero cuando escribimos la dirección, solo necesitamos escribir la dirección de la primera línea. Por ejemplo, el primer carácter es Ox40+OOH, y luego escribe 2 bytes de datos de forma continua, y luego el puntero de dirección aumentará automáticamente en uno y saltará a la siguiente línea. Dirección y, a continuación, escriba 2 bytes de datos. De hecho, la programación consiste en escribir la dirección y luego escribir 32 bytes de datos de forma continua. Para leer datos, escriba primero la primera dirección, luego lea falsamente una vez y luego lea 32 bytes de datos continuamente.
GDRAM: (RAM de pantalla gráfica)
La estructura espacial de la RAM de dibujo se muestra en la siguiente figura:

