Skip to main content

绘图与显示指令

本页指令可以在辅助屏上显示主机内置,或者我们自己设计的图形、图案等。
同时也为在屏幕上显示字符提供了各种可能,包括设置格式、字号等等。

0x50 背景区描点

从指定坐标开始,按照指定值的二进制值,横排描画16个bit对应的像素点。

INST_MARK_GFX_BG_DOTS编号sOP00sOP01OP-1
从背景区指定坐标开始横排描画16个像素点5000043603

背景区像素范围是X[0,127],Y[0,63]X∈[0,127], Y∈[0,63],转换到十六进制值也就是X[0,(7F)16,Y[0,(3F)16]X∈[0,(7F)_{16}, Y∈[0,(3F)_{16}]
描画的像素根据指定的二进制值表示。0描画实心像素点■,1描画空心像素点□。

示例中OP-1的值是3603,转化为二进制:

(3603)16=(0011  0110  0000  0011)2(3603)_{16}=(0011\;0110\;0000\;0011)_{2}

所以在辅助屏背景图像页(0,4)的位置,描画对应的像素点:

辅助屏

■■□□■□□■■■■■■■□□

info
OP/sOP取值含义
sOP0000~7F背景区指定像素点横坐标X
sOP0100~3F背景区指定像素点纵坐标Y
OP-10000~FFFF描画像素对应的十六进制值

0x51 指定贴图缓存描点

在指定编号的贴图缓存,选择指定行。
按照指定值的二进制值,横排描画16个bit对应的像素点。

tip

贴图缓存总共有16个,所以编号范围是00~0F

INST_MARK_GFX_FG_DOTS编号sOP00sOP01OP-1
0F贴图缓存的07行横排描画16个像素点510F073603
info
OP/sOP取值含义
sOP0000~0F指定贴图缓存编号
sOP0100~0F指定行号
OP-10000~FFFF描画像素对应的十六进制值

0x55 绘图 显示格式化数值

将寄存器中的值按照指定格式在屏幕指定位置显示。

INST_PUT_TEXT_WITH_FMT编号sOP00sOP01sOP10sOP11
在(0,16)的位置以0x11格式显示寄存器01内的数值5511010010
R04数值表示的位置以0x12格式显示寄存器01内的数值5512018004
info
  • sOP00 格式与字号,例如格式代码0x11表示无符号十进制整数、中号字体:

    • 高位取值:

      取值定义取值定义
      0有符号十进制整数4十六进制
      1无符号十进制整数5浮点数
      2二进制8定长有符号十进制整数
      3八进制9定长无符号十进制整数
    • 低位取值:

      取值字号
      0小号
      1中号
      2大号
  • sOP01 寄存器编号;

  • sOP10

    取值定义
    0x00~0x7F背景区目标像素点X,范围即十进制0~127
    0x80sOP11 值对应编号的寄存器中读取坐标位置
  • sOP11

    sOP10 取值sOP11 定义
    0x00~0x7F背景区目标像素点Y,范围即十进制0~127
    0x80寄存器编号,位置以寄存器的高低8位为X值和Y值
特别说明
  • 背景区像素范围 0 ≤ X ≤ 127,0 ≤ Y ≤ 63;
  • 上述例一中寄存器01中的数值将以0x11所对应的中号字体无符号十进制整数显示在显示屏(0,16)的位置上;
  • 上述例二中,假设R04的内容为0x0420,则寄存器01中的数值将以0x12所对应的大号字体无符号十进制整数显示在显示屏(4,32)的位置上。

0x56 绘制空心圆形

以指定位置为圆心绘制指定半径的空心圆形,可选择白色或黑色边线。

INST_DRAW_CIRCLE编号sOP00sOP01sOP10sOP11
在(16,16)位置绘制一个半径为5像素的空心圆形5605001010
R04数值表示的位置用黑色边线绘制一半径为18像素的空心圆形5612018004
info
  • sOP00 半径,取值00~FF

  • sOP01 边线颜色;

    取值定义
    0x00黑色边线
    0x01白色边线
  • sOP10

    取值定义
    0x00~0x7F背景区目标像素点X,范围即十进制0~127
    0x80sOP11 值对应编号的寄存器中读取坐标位置
  • sOP11

    sOP10 取值sOP11 定义
    0x00~0x7F背景区目标像素点Y,范围即十进制0~127
    0x80寄存器编号,位置以寄存器的高低8位为X值和Y值
特别说明
  • 背景区像素范围 0 ≤ X ≤ 127,0 ≤ Y ≤ 63;
  • 上述例二中,假设R04的内容为0x0420,则将在(4,32)的位置绘制半径18(0x12)像素的黑色边线圆形;
  • 如绘制时背景与圆形颜色相同,圆形将无法辨别。

0x5C 在指定位置显示两个ASCII字符

在指定位置显示两个ASCII字符。

INST_DISP_CHAR编号sOP00sOP01sOP10sOP11
在(16,16)位置显示ASCII字符 "AB"5C41421010
R04所表示的坐标显示ASCII字符 "cd"5C63648004
info
  • sOP00 ASCII 字符,从0x20(空格)起为有效显示字符;

  • sOP01 ASCII 字符,从0x20(空格)起为有效显示字符;

  • sOP10

    取值定义
    0x00~0x7F背景区目标像素点X,范围即十进制0~127
    0x80sOP11 值对应编号的寄存器中读取坐标位置
  • sOP11

    sOP10 取值sOP11 定义
    0x00~0x7F背景区目标像素点Y,范围即十进制0~127
    0x80寄存器编号,位置以寄存器的高低8位为X值和Y值
特别说明
  • 示例二中,假设R04的内容为0x0420,则将在(4,32)坐标位置显示字符”AB“

0x5D 在指定位置显示连续寄存器字符

在指定位置显示指定连续寄存器内容所表示的ASCII字符。

INST_DRAW_REGx_CHAR编号sOP00sOP01sOP10sOP11
在(16,16)位置从R01开始显示5个ASCII字符5D05011010
R04表示的坐标位置从R01开始显示5个ASCII字符5D05018004
info
  • sOP00 显示的字符个数,取值范围1-16;

  • sOP01 寄存器编号,从该编号的寄存器开始,显示 sOP00 所指定字符数量;

  • sOP10

    取值定义
    0x00~0x7F背景区目标像素点X,范围即十进制0~127
    0x80sOP11 值对应编号的寄存器中读取坐标位置
  • sOP11

    sOP10 取值sOP11 定义
    0x00~0x7F背景区目标像素点Y,范围即十进制0~127
    0x80寄存器编号,位置以寄存器的高低8位为X值和Y值
特别说明
  • 上述例一中,假设R01的内容为0x4865('H'和'e'),R02的内容为0x6C6C('l'和'l'),R03的内容为0x6F21('o'和'!'),则将在(16,16)坐标位置显示连续字符'Hello',因设置显示数量为5,因此'!'不会显示;
  • 上述例二中,R04中的内容为0x0420R01R03中的内容和例一中的相同,则将在(4,32)坐标位置显示连续字符'Hello'。