如何用代码实现下面的字符叠加器的命令?

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:25:06
某一字符叠加器的显示字符命令的命令格式如下:
起始码,机器地址, 命令方式字, [命令内容], 校验和
1 1 1 28 1
起 始 码: 1字节,0xFFH
机器地址: 1字节(00H—FFH),表示视频数据叠加器地址。
命 令 码: 1位命令代码(高四位为命令位,低四位为八路视频叠加通道选择,0选择第一路OSD,1选择第二路OSD,依次7表示选择第八路OSD、VDM200的通道选择位只能为0)。
字符显示行:1字节,数据范围00H-0BH
字符显示列:1字节,数据范围00H-017H
闪烁起始位:1字节,数据范围00H-017H
闪烁停止位:1字节,数据范围00H-017H
数 据 位: 24个字节数据位,为欲显示的汉字或字符的ASCII码
校 验 和: 1个起始码、1个地址码后的所有内容的异或值(不包括起始码字节、地址码字节和校验和)。
想用DEPHI代码向字符叠加器输入如下命令:
ff 00 40 00 00 00 00 30 31 32 2d 31 32 33 34 34 35 36 37 2d 30 38 b9 00 00 00 00 00 00 00 00 c0
视频显示为:
012-1234567-08元
用以下实现代码可以实现:
setlength(sbuf,32);
sbuf[0]:=byte($ff);
sbuf[1]:=byte($00);
sbuf[2]:=byte($40);
sbuf[3]:=byte($00);
sbuf[4]:=byte($00);
sbuf[5]:=byte($00);
sbuf[6]:=byte($00);
sbuf[7]:=byte($30);
sbuf[8]:=byte($31); //工号
sbuf[9]:=byte($32);
sbuf[10]:=byte($2D); //-
sbu

太长了,头都晕了

如何用代码实现下面的字符叠加器的命令?
悬赏分:20 - 离问题结束还有 10 天 20 小时
某一字符叠加器的显示字符命令的命令格式如下:
起始码,机器地址, 命令方式字, [命令内容], 校验和
1 1 1 28 1
起 始 码: 1字节,0xFFH
机器地址: 1字节(00H—FFH),表示视频数据叠加器地址。
命 令 码: 1位命令代码(高四位为命令位,低四位为八路视频叠加通道选择,0选择第一路OSD,1选择第二路OSD,依次7表示选择第八路OSD、VDM200的通道选择位只能为0)。
字符显示行:1字节,数据范围00H-0BH
字符显示列:1字节,数据范围00H-017H
闪烁起始位:1字节,数据范围00H-017H
闪烁停止位:1字节,数据范围00H-017H
数 据 位: 24个字节数据位,为欲显示的汉字或字符的ASCII码
校 验 和: 1个起始码、1个地址码后的所有内容的异或值(不包括起始码字节、地址码字节和校验和)。
想用DEPHI代码向字符叠加器输入如下命令:
ff 00 40 00 00 00 00 30 31 32 2d 31 32 33 34 34 35 36 37 2d 30 38 b9 00 00 00 00 00 00 00 00 c0
视频显示为:
012-1234567-08元
用以下实现代码可以实现:
setlength(sbuf,32);
sbuf[0]:=byte($ff);
sbuf[1]:=byte($00);
sbuf[2]:=byte($40);
sbuf[3]:=byte($00);
sbuf[4]:=byte($00);
sbuf[5]:=byte($00);
sbuf[6]:=byte($00);
sbuf[7]:=byte($30);
sbuf[8]:=byte($31); //工号
sbuf[9]:=byte($32);