InBCD函數
此函數讀取每個指定的8位元連接埠的輸入狀態,將其讀取為兩位數的二進化十進數(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 |
BCD只能用於指定十進位。這表示特定連接埠的所有輸入位元同時為ON時,無法以使用BCD的InBCD命令求出有效值。InBCD的最大傳回值為「99」。從上表可知,傳回值為「99」時,所有輸入不會變為ON。當傳回值為「99」時,ON的輸入位元為0、3、4、7,其它位元皆為OFF。
注意
InBCD和In的差異
InBCD函數將指定的8位元連接埠的狀態分為高4位元和低4位元的二位數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
>