InBCD函数

此函数读取每个指定的8位端口的输入状态,将其作为2位二进制编码十进制(BCD)读取,并转换为十进制数返回。

格式
InBCD (端口编号)

参数

端口编号
指定I/O的输入字节。

返回值
以BCD(0~9)返回输入端口(0~99)的状态。

说明
InBCD通过BCD同时读取8个输入列。通过InBCD命令的参数“端口编号”指定读取哪个位组的状态。例如,端口编号=0时读取0~7输入位的状态;端口编号=1时读取8~15输入位的状态。

以BCD返回8个输入位的状态。返回值是0~99的1位或2位的数值。第1位(10的位)对应按端口编号指定的8个输入位中的高4位。第2位(1的位)对应按端口编号指定的8个输入位中的低4位。

由于BCD的各个位的有效值在0~99范围,因此,不能满足I/O的所有组合。下表显示了端口编号=0时的部分可能的I/O状态组合和返回值。

输入数值(输入编号)

返回值 7 6 5 4 3 2 1 0
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 On Off Off On On Off Off On

只能用10进制数指定BCD。这意味着在特定端口将所有输入位同时打开时,使用BCD的InBCD命令无法计算有效值。InBCD的最大返回值是“99”。通过上表可以看出,返回值是“99”时,不是所有输入都是ON。返回值是“99”时,输入位0、3、4、7为ON,而其他位全部OFF。

注意


  • InBCD与In的不同

  • InBCD函数将指定的8位端口的状态读取为分为高4位和低4位的2位BCD数据。因此,如果4位的状态为&B1010至&B1111,超过9(&B1001),则会发生错误。

  • In函数返回转换为十进制数的指定8位端口的状态。


参阅
In、MemOff、MemOn、MemOut、MemSw、Off、On、OpBCD、Oport、Out、Sw、Wait

InBCD使用示例
如下所示为利用命令窗口的简单操作示例。

假设输入位0、4、10、16、17、18 为On,其他输入位为Off。

> Print InBCD(0)
11
> Print InBCD(1)
04
> Print InBCD(2)
07
>