Écran de pixels (16x16)
Vue d'ensemble
- Objectif : L'écran de pixels (16x16) est un composant de visualisation qui affiche une grille de 16x16 pixels, l'état de chaque pixel étant déterminé par des valeurs en mémoire. Ce composant est utile pour créer des graphiques simples, afficher des motifs ou visualiser le contenu de la mémoire dans vos circuits numériques.
- Symbole : L'écran de pixels est représenté par une grille d'affichage rectangulaire. Il ne possède aucune broche de connexion externe — il lit les données d'affichage directement depuis la mémoire interne d'un composant RAM connecté.
- Rôle dans DigiSim.io : Fournit une capacité de sortie visuelle pour les circuits numériques, permettant l'affichage graphique, la visualisation de motifs et la surveillance du contenu mémoire.
![]()
Description fonctionnelle
L'écran de pixels lit ses données d'affichage depuis un composant RAM connecté, interprétant chaque bit en mémoire comme un pixel pouvant être allumé ou éteint. Le composant offre une résolution de 16x16 pixels (256 pixels au total), ce qui nécessite 32 octets de mémoire pour la représentation (1 bit par pixel).
Broches
L'écran de pixels possède 0 entrée et 0 sortie. Il ne dispose d'aucune broche de connexion externe. Il lit les données d'affichage directement depuis la mémoire interne d'un composant RAM connecté, en utilisant l'adresse de départ configurée pour localiser les données de pixels.
Configuration
L'écran de pixels possède plusieurs propriétés configurables :
- Adresse de départ : adresse mémoire à laquelle commencent les données d'affichage (par défaut : 0xE0)
- Couleur de premier plan : couleur des pixels actifs (ON)
- Couleur d'arrière-plan : couleur des pixels inactifs (OFF)
- Échelle de pixel : taille de chaque pixel à l'affichage
Mappage mémoire
La grille de 16x16 pixels est mappée en mémoire comme suit :
- Chaque octet en mémoire représente 8 pixels horizontaux
- 32 octets consécutifs (256 bits) sont utilisés pour l'ensemble de l'affichage
- Les bits sont mappés du MSB au LSB dans chaque octet
Par exemple, avec une adresse de départ de 0xE0 :
| Adresse | Octet | Description |
|---|---|---|
| 0xE0 | [76543210] | 8 premiers pixels de la ligne 0 |
| 0xE1 | [76543210] | 8 derniers pixels de la ligne 0 |
| 0xE2 | [76543210] | 8 premiers pixels de la ligne 1 |
| 0xE3 | [76543210] | 8 derniers pixels de la ligne 1 |
| ... | ... | ... |
| 0xFE | [76543210] | 8 premiers pixels de la ligne 15 |
| 0xFF | [76543210] | 8 derniers pixels de la ligne 15 |
Remarque : les bits 7 à 0 dans chaque octet représentent 8 pixels horizontaux, mappés du MSB au LSB
Utilisation
Pour utiliser le composant écran de pixels :
Ajouter le composant à votre circuit aux côtés d'un composant RAM
L'écran de pixels lit automatiquement la mémoire du composant RAM connecté — aucun câblage de broche n'est requis
Définir l'adresse de départ dans les propriétés du composant pour spécifier où, en RAM, commencent les données d'affichage
Écrire des motifs binaires aux adresses mémoire pour créer votre affichage :
- Écrire un 1 pour allumer un pixel
- Écrire un 0 pour éteindre un pixel
L'affichage se met à jour automatiquement à mesure que le contenu de la RAM change
Exemples d'applications
Affichage d'un motif simple
// Stocker un motif en damier
// Première ligne (pixels alternés)
RAM[0xE0] = 0b10101010;
RAM[0xE1] = 0b10101010;
// Deuxième ligne (motif inversé)
RAM[0xE2] = 0b01010101;
RAM[0xE3] = 0b01010101;
// Répéter le motif pour les lignes restantes...
Affichage d'un sprite 16x16
// Afficher un visage simple
// Yeux (lignes 4-5)
RAM[0xE8] = 0b00100100;
RAM[0xE9] = 0b00000000;
RAM[0xEA] = 0b00100100;
RAM[0xEB] = 0b00000000;
// Bouche (ligne 10)
RAM[0xF4] = 0b00011000;
RAM[0xF5] = 0b00100100;
Création d'animations
Pour créer des animations :
- Mettre à jour le contenu de la RAM pour chaque image
- Utiliser un diviseur d'horloge pour contrôler le taux de rafraîchissement
- Synchroniser les écritures en RAM avec le cycle de rafraîchissement de l'affichage pour éviter le scintillement
Astuces et conseils
- Utiliser une zone RAM séparée comme « tampon arrière » pour préparer l'image suivante, puis la copier dans la zone d'affichage afin d'éviter le scintillement
- Créer des routines de tracé pour définir des pixels individuels en calculant le bit et l'octet appropriés
- Pour des effets de couleur, vous pouvez modifier les couleurs de premier plan et d'arrière-plan via les propriétés du composant
- Combiner avec d'autres composants comme des compteurs ou des unités de commande pour créer des affichages autonomes
- Pour des animations fluides, veiller à ce que votre circuit mette à jour l'affichage à un rythme constant