PREVIEW
Pixel Screen (16x16)

Pixel Screen (16x16)

Visualization signal_cellular_alt Advanced schedule 30 min

Interactive Circuit

像素屏幕 (16x16)

概述

  • 用途:像素屏幕 (16x16) 是一种可视化组件,显示 16x16 的像素网格,每个像素的状态由内存值决定。此组件可用于创建简单的图形、显示图案或可视化数字电路中的内存内容。
  • 符号:像素屏幕以矩形显示网格表示。它没有外部连接引脚——它直接从连接的 RAM 组件的内部存储器中读取显示数据。
  • DigiSim.io 角色:为数字电路提供视觉输出功能,支持图形显示、图案可视化和内存内容监控。

Pixel Screen 16x16 component

功能描述

像素屏幕组件从连接的 RAM 组件读取显示数据,将内存中的每一位解释为一个像素,可以是开启或关闭状态。该组件提供 16x16 像素(共 256 个像素)的分辨率,需要 32 字节的内存来表示(每像素 1 位)。

引脚

像素屏幕有 0 个输入0 个输出。它没有任何外部连接引脚。相反,它直接从连接的 RAM 组件的内部存储器中读取显示数据,使用配置的起始地址来定位像素数据。

配置

像素屏幕有几个可配置的属性:

  1. 起始地址:显示数据开始的内存起始地址(默认:0xE0)
  2. 前景色:活动(ON)像素的颜色
  3. 背景色:非活动(OFF)像素的颜色
  4. 像素缩放:显示中每个像素的大小

内存映射

16x16 像素网格映射到内存的方式如下:

  • 内存中的每个字节代表 8 个水平像素
  • 32 个连续字节(256 位)用于整个显示
  • 位在每个字节内从 MSB 到 LSB 映射

例如,起始地址为 0xE0 时:

地址 字节 描述
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 位代表 8 个水平像素,从 MSB 到 LSB 映射

使用方法

要使用像素屏幕组件:

  1. 将该组件与 RAM 组件一起添加到电路中

  2. 像素屏幕自动从连接的 RAM 组件的存储器中读取——不需要引脚接线

  3. 在组件属性中设置起始地址,指定 RAM 中显示数据的起始位置

  4. 将位模式写入内存地址以创建显示:

    • 写入 1 开启像素
    • 写入 0 关闭像素
  5. 当 RAM 内容发生变化时,显示自动更新

应用示例

简单图案显示

// 存储棋盘格图案
// 第一行(交替像素)
RAM[0xE0] = 0b10101010;
RAM[0xE1] = 0b10101010;
// 第二行(反转图案)
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;

创建动画

要创建动画:

  1. 为每帧更新 RAM 内容
  2. 使用时钟分频器控制刷新率
  3. 将 RAM 写入与显示的刷新周期同步以防止闪烁

提示和技巧

  • 使用单独的 RAM 区域作为"后备缓冲区"来准备下一帧,然后将其复制到显示区域以防止闪烁
  • 创建绘图程序,通过计算适当的位和字节来设置单个像素
  • 对于颜色效果,可以通过组件属性修改前景色和背景色
  • 与计数器或控制单元等其他组件结合使用,创建自主显示
  • 为实现平滑动画,确保电路以一致的速率更新显示

school 学习路径

arrow_forward 下一步

help_outline 常见问题

像素屏幕如何工作?

16x16屏幕有256个像素,每个由二进制信号控制。寻址X和Y坐标并设置像素值。

像素数据如何组织?

通常使用X和Y地址输入来选择像素,用数据输入来设置其状态(开/关或颜色值)。

play_arrow 运行在线电路

查看其他组件