Pantalla de pixeles (16x16)
Descripcion general
- Proposito: La pantalla de pixeles (16x16) es un componente de visualizacion que muestra una cuadricula de 16x16 pixeles, con el estado de cada pixel determinado por valores de memoria. Este componente es util para crear graficos simples, mostrar patrones o visualizar contenidos de memoria en sus circuitos digitales.
- Simbolo: La pantalla de pixeles esta representada por una cuadricula de visualizacion rectangular. No tiene pines de conexion externos: lee los datos de visualizacion directamente de la memoria interna de un componente RAM conectado.
- Rol en DigiSim.io: Proporciona capacidad de salida visual para circuitos digitales, permitiendo la visualizacion de graficos, visualizacion de patrones y monitoreo del contenido de memoria.
![]()
Descripcion funcional
El componente de pantalla de pixeles lee sus datos de visualizacion de un componente RAM conectado, interpretando cada bit en memoria como un pixel que puede estar encendido o apagado. El componente ofrece una resolucion de 16x16 pixeles (256 pixeles en total), lo que requiere 32 bytes de memoria para representar (1 bit por pixel).
Pines
La pantalla de pixeles tiene 0 entradas y 0 salidas. No tiene ningun pin de conexion externo. En su lugar, lee los datos de visualizacion directamente de la memoria interna de un componente RAM conectado, utilizando la direccion de inicio configurada para localizar los datos de pixeles.
Configuracion
La pantalla de pixeles tiene varias propiedades configurables:
- Direccion de inicio: La direccion de memoria inicial donde comienzan los datos de visualizacion (predeterminada: 0xE0)
- Color de primer plano: El color de los pixeles activos (ON)
- Color de fondo: El color de los pixeles inactivos (OFF)
- Escala de pixel: El tamano de cada pixel en la pantalla
Mapeo de memoria
La cuadricula de pixeles de 16x16 se mapea a la memoria de la siguiente manera:
- Cada byte en memoria representa 8 pixeles horizontales
- Se utilizan 32 bytes consecutivos (256 bits) para toda la pantalla
- Los bits se mapean de MSB a LSB dentro de cada byte
Por ejemplo, con una direccion de inicio de 0xE0:
| Direccion | Byte | Descripcion |
|---|---|---|
| 0xE0 | [76543210] | Primeros 8 pixeles de la fila 0 |
| 0xE1 | [76543210] | Ultimos 8 pixeles de la fila 0 |
| 0xE2 | [76543210] | Primeros 8 pixeles de la fila 1 |
| 0xE3 | [76543210] | Ultimos 8 pixeles de la fila 1 |
| ... | ... | ... |
| 0xFE | [76543210] | Primeros 8 pixeles de la fila 15 |
| 0xFF | [76543210] | Ultimos 8 pixeles de la fila 15 |
Nota: Los bits 7-0 dentro de cada byte representan 8 pixeles horizontales, mapeados de MSB a LSB
Uso
Para usar el componente de pantalla de pixeles:
Agregue el componente a su circuito junto con un componente RAM
La pantalla de pixeles lee automaticamente de la memoria del componente RAM conectado: no se requiere cableado de pines
Establezca la direccion de inicio en las propiedades del componente para especificar donde comienzan los datos de visualizacion en la RAM
Escriba patrones de bits en las direcciones de memoria para crear su visualizacion:
- Escriba un 1 para encender un pixel
- Escriba un 0 para apagar un pixel
La pantalla se actualiza automaticamente cuando cambian los contenidos de la RAM
Ejemplos de aplicacion
Visualizacion de patron simple
// Almacenar un patron de tablero de ajedrez
// Primera fila (pixeles alternados)
RAM[0xE0] = 0b10101010;
RAM[0xE1] = 0b10101010;
// Segunda fila (patron invertido)
RAM[0xE2] = 0b01010101;
RAM[0xE3] = 0b01010101;
// Repetir patron para las filas restantes...
Visualizacion de sprite 16x16
// Mostrar una cara simple
// Ojos (filas 4-5)
RAM[0xE8] = 0b00100100;
RAM[0xE9] = 0b00000000;
RAM[0xEA] = 0b00100100;
RAM[0xEB] = 0b00000000;
// Boca (fila 10)
RAM[0xF4] = 0b00011000;
RAM[0xF5] = 0b00100100;
Creacion de animaciones
Para crear animaciones:
- Actualice los contenidos de la RAM para cada cuadro
- Use un divisor de reloj para controlar la tasa de refresco
- Sincronice las escrituras de RAM con el ciclo de refresco de la pantalla para evitar parpadeo
Consejos y trucos
- Use un area separada de RAM como "buffer trasero" para preparar el siguiente cuadro, luego copielo al area de visualizacion para evitar parpadeo
- Cree rutinas de dibujo para establecer pixeles individuales calculando el bit y byte apropiados
- Para efectos de color, puede modificar los colores de primer plano y fondo a traves de las propiedades del componente
- Combine con otros componentes como contadores o unidades de control para crear pantallas autonomas
- Para animaciones suaves, asegurese de que su circuito actualice la pantalla a un ritmo constante