绘图与显示指令
本页指令可以在辅助屏上显示主机内置,或者我们自己设计的图形、图案等。
同时也为在屏幕上显示字符提供了各种可能,包括设置格式、字号等等。
0x50
背景区描点
从指定坐标开始,按照指定值的二进制值,横排描画16个bit对应的像素点。
INST_MARK_GFX_BG_DOTS | 编号 | sOP00 | sOP01 | OP-1 |
---|---|---|---|---|
从背景区指定坐标开始横排描画16个像素点 | 50 | 00 | 04 | 3603 |
背景区像素范围是,转换到十六进制值也就是。
描画的像素根据指定的二进制值表示。0描画实心像素点■,1描画空心像素点□。
示例中OP-1的值是3603
,转化为二进制:
所以在辅助屏背景图像页(0,4)的位置,描画对应的像素点:
辅助屏
■■□□■□□■■■■■■■□□
info
OP/sOP | 取值 | 含义 |
---|---|---|
sOP00 | 00 ~7F | 背景区指定像素点横坐标X |
sOP01 | 00 ~3F | 背景区指定像素点纵坐标Y |
OP-1 | 0000 ~FFFF | 描画像素对应的十六进制值 |
0x51
指定贴图缓存描点
在指定编号的贴图缓存,选择指定行。
按照指定值的二进制值,横排描画16个bit对应的像素点。
tip
贴图缓存总共有16个,所以编号范围是00
~0F
。
INST_MARK_GFX_FG_DOTS | 编号 | sOP00 | sOP01 | OP-1 |
---|---|---|---|---|
在0F 贴图缓存的07 行横排描画16个像素点 | 51 | 0F | 07 | 3603 |
info
OP/sOP | 取值 | 含义 |
---|---|---|
sOP00 | 00 ~0F | 指定贴图缓存编号 |
sOP01 | 00 ~0F | 指定行号 |
OP-1 | 0000 ~FFFF | 描画像素对应的十六进制值 |
0x55
绘图 显示格式化数值
将寄存器中的值按照指定格式在屏幕指定位置显示。
INST_PUT_TEXT_WITH_FMT | 编号 | sOP00 | sOP01 | sOP10 | sOP11 |
---|---|---|---|---|---|
在(0,16)的位置以0x11 格式显示寄存器01 内的数值 | 55 | 11 | 01 | 00 | 10 |
在R04 数值表示的位置以0x12 格式显示寄存器01 内的数值 | 55 | 12 | 01 | 80 | 04 |
info
sOP00 格式与字号,例如格式代码
0x11
表示无符号十进制整数、中号字体:高位取值:
取值 定义 取值 定义 0 有符号十进制整数 4 十六进制 1 无符号十进制整数 5 浮点数 2 二进制 8 定长有符号十进制整数 3 八进制 9 定长无符号十进制整数 低位取值:
取值 字号 0 小号 1 中号 2 大号
sOP01 寄存器编号;
sOP10
取值 定义 0x00
~0x7F
背景区目标像素点X,范围即十进制0~127 0x80
从 sOP11 值对应编号的寄存器中读取坐标位置 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 | 编号 | sOP00 | sOP01 | sOP10 | sOP11 |
---|---|---|---|---|---|
在(16,16)位置绘制一个半径为5像素的空心圆形 | 56 | 05 | 00 | 10 | 10 |
在R04 数值表示的位置用黑色边线绘制一半径为18像素的空心圆形 | 56 | 12 | 01 | 80 | 04 |
info
sOP00 半径,取值
00
~FF
;sOP01 边线颜色;
取值 定义 0x00
黑色边线 0x01
白色边线 sOP10
取值 定义 0x00
~0x7F
背景区目标像素点X,范围即十进制0~127 0x80
从 sOP11 值对应编号的寄存器中读取坐标位置 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 | 编号 | sOP00 | sOP01 | sOP10 | sOP11 |
---|---|---|---|---|---|
在(16,16)位置显示ASCII字符 "AB" | 5C | 41 | 42 | 10 | 10 |
在R04 所表示的坐标显示ASCII字符 "cd" | 5C | 63 | 64 | 80 | 04 |
info
sOP00 ASCII 字符,从0x20(空格)起为有效显示字符;
sOP01 ASCII 字符,从0x20(空格)起为有效显示字符;
sOP10
取值 定义 0x00
~0x7F
背景区目标像素点X,范围即十进制0~127 0x80
从 sOP11 值对应编号的寄存器中读取坐标位置 sOP11
sOP10 取值 sOP11 定义 0x00
~0x7F
背景区目标像素点Y,范围即十进制0~127 0x80
寄存器编号,位置以寄存器的高低8位为X值和Y值
特别说明
- 示例二中,假设
R04
的内容为0x0420,则将在(4,32)坐标位置显示字符”AB“
0x5D
在指定位置显示连续寄存器字符
在指定位置显示指定连续寄存器内容所表示的ASCII字符。
INST_DRAW_REGx_CHAR | 编号 | sOP00 | sOP01 | sOP10 | sOP11 |
---|---|---|---|---|---|
在(16,16)位置从R01 开始显示5个ASCII字符 | 5D | 05 | 01 | 10 | 10 |
在R04 表示的坐标位置从R01 开始显示5个ASCII字符 | 5D | 05 | 01 | 80 | 04 |
info
sOP00 显示的字符个数,取值范围1-16;
sOP01 寄存器编号,从该编号的寄存器开始,显示 sOP00 所指定字符数量;
sOP10
取值 定义 0x00
~0x7F
背景区目标像素点X,范围即十进制0~127 0x80
从 sOP11 值对应编号的寄存器中读取坐标位置 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
中的内容为0x0420
,R01
至R03
中的内容和例一中的相同,则将在(4,32)坐标位置显示连续字符'Hello'。