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
>