ピクセルスクリーン (16x16)
概要
- 目的: ピクセルスクリーン (16x16) は、16x16のピクセルグリッドを表示する可視化コンポーネントで、各ピクセルの状態はメモリ値によって決定されます。このコンポーネントは、シンプルなグラフィックスの作成、パターンの表示、またはデジタル回路のメモリ内容の可視化に役立ちます。
- シンボル: ピクセルスクリーンは矩形ディスプレイグリッドとして表されます。外部接続ピンはなく、接続されたRAMコンポーネントの内部メモリから直接表示データを読み取ります。
- DigiSim.io での役割: デジタル回路にグラフィックス表示、パターン可視化、およびメモリ内容監視などの視覚的出力機能を提供します。
![]()
機能説明
ピクセルスクリーンコンポーネントは、接続されたRAMコンポーネントから表示データを読み取り、メモリ内の各ビットをオンまたはオフのピクセルとして解釈します。コンポーネントは16x16ピクセル(合計256ピクセル)の解像度を提供し、表現するために32バイトのメモリ(1ピクセルあたり1ビット)が必要です。
ピン
ピクセルスクリーンには入力0個、出力0個のピンがあります。外部接続ピンはありません。代わりに、接続されたRAMコンポーネントの内部メモリから直接表示データを読み取り、設定された開始アドレスを使用してピクセルデータを特定します。
設定
ピクセルスクリーンにはいくつかの設定可能なプロパティがあります:
- 開始アドレス: 表示データが始まるメモリの開始アドレス(デフォルト: 0xE0)
- 前景色: アクティブ(ON)ピクセルの色
- 背景色: 非アクティブ(OFF)ピクセルの色
- ピクセルスケール: 表示における各ピクセルのサイズ
メモリマッピング
16x16ピクセルグリッドは以下のようにメモリにマッピングされます:
- メモリ内の各バイトは8つの水平ピクセルを表す
- 32の連続バイト(256ビット)がディスプレイ全体に使用される
- ビットは各バイト内でMSBからLSBへマッピングされる
例えば、開始アドレスが0xE0の場合:
| Address | Byte | 説明 |
|---|---|---|
| 0xE0 | [76543210] | 行0の最初の8ピクセル |
| 0xE1 | [76543210] | 行0の最後の8ピクセル |
| 0xE2 | [76543210] | 行1の最初の8ピクセル |
| 0xE3 | [76543210] | 行1の最後の8ピクセル |
| ... | ... | ... |
| 0xFE | [76543210] | 行15の最初の8ピクセル |
| 0xFF | [76543210] | 行15の最後の8ピクセル |
注: 各バイト内のビット7-0は、MSBからLSBへマッピングされた8つの水平ピクセルを表します
使い方
ピクセルスクリーンコンポーネントを使用するには:
RAMコンポーネントと一緒に回路にコンポーネントを追加
ピクセルスクリーンは接続されたRAMコンポーネントのメモリから自動的に読み取ります — ピン配線は不要
コンポーネントのプロパティで開始アドレスを設定して、RAM内の表示データの開始位置を指定
メモリアドレスにビットパターンを書き込んで表示を作成:
- 1を書き込むとピクセルがON
- 0を書き込むとピクセルがOFF
RAM内容が変更されると表示は自動的に更新
応用例
シンプルなパターン表示
// チェッカーボードパターンの格納
// 最初の行(交互ピクセル)
RAM[0xE0] = 0b10101010;
RAM[0xE1] = 0b10101010;
// 2番目の行(反転パターン)
RAM[0xE2] = 0b01010101;
RAM[0xE3] = 0b01010101;
// 残りの行もパターンを繰り返し...
16x16スプライト表示
// シンプルな顔の表示
// 目(行4-5)
RAM[0xE8] = 0b00100100;
RAM[0xE9] = 0b00000000;
RAM[0xEA] = 0b00100100;
RAM[0xEB] = 0b00000000;
// 口(行10)
RAM[0xF4] = 0b00011000;
RAM[0xF5] = 0b00100100;
アニメーションの作成
アニメーションを作成するには:
- 各フレームのRAM内容を更新
- クロック分周器を使用してリフレッシュレートを制御
- ちらつきを防ぐために、RAMの書き込みをディスプレイのリフレッシュサイクルと同期
ヒントとコツ
- ちらつきを防ぐために、別のRAM領域を「バックバッファ」として使用して次のフレームを準備し、それを表示領域にコピー
- 適切なビットとバイトを計算して個々のピクセルを設定する描画ルーチンを作成
- カラー効果のために、コンポーネントのプロパティを通じて前景色と背景色を変更可能
- カウンタや制御ユニットなどの他のコンポーネントと組み合わせて自律的なディスプレイを作成
- スムーズなアニメーションのために、回路が一定のレートでディスプレイを更新することを確認