A byte represents an
Table 3.3 - Bit Assignments for I/O Lines
| MOST SIGNIFICANT I/O BYTE |
|
|
| |||||
I/O Line # | 15 | 14 | 13 | 12 | 11 |
| 10 | 9 | 8 |
Bit Position | 7 | 6 | 5 | 4 | 3 |
| 2 | 1 | 0 |
Hex Weight | 80 | 40 | 20 | 10 | 8 |
| 4 | 2 | 1 |
Dec. Weight | 128 | 64 | 32 | 16 | 8 |
| 4 | 2 | 1 |
|
|
|
| ||||||
| LEAST SIGNIFICANT I/O BYTE |
|
| ||||||
I/O Line # | 7 | 6 | 5 | 4 | 3 |
| 2 | 1 | 0 |
Bit Position | 7 | 6 | 5 | 4 | 3 |
| 2 | 1 | 0 |
Hex Weight | 80 | 40 | 20 | 10 | 8 |
| 4 | 2 | 1 |
Dec. Weight | 128 | 64 | 32 | 16 | 8 |
| 4 | 2 | 1 |
To set an output to a HIGH state the corresponding bit position must be set to a "1". Conversely to set an output LOW the corresponding bit position must be set to a "0". When reading I/O lines, any bit set to a "0" indicates the corresponding I/O line is in the LOW state and any bit set to a "1" indicates the corresponding I/O line is in the HIGH state.
Example 3.1 - To set outputs 15, 8, 1, and 0 to a HIGH state, and all other outputs to a LOW state (shown in bold face) -
Shown in binary - | MS Byte |
| LS Byte |
10000001 |
| 00000011 | |
Shown in decimal - | 129 | 3 | |
Shown in hexadecimal - | (128+1) | (2+1) | |
81 | 3 | ||
| (80h+1h) |
| (2h+1h) |
Example 3.2 - Reply from Read I/O command (shown in bold face) -
Shown in binary - | MS Byte |
| LS Byte |
11001000 |
| 01010010 | |
Shown in decimal - | 200 | 82 | |
Shown in hexadecimal - | (128+64+8) | (64+16+2) | |
C8 | 52 | ||
| (80h+40h+8h) |
| (40h+10h+2h) |
I/O lines #15, 14, 11, 6, 4, 1 are HIGH and all other I/O lines are LOW.
11 |
Read I/O Lines Command
The Read I/O Lines command returns two data bytes that reflect the state of the I/O lines. The first data byte contains the most significant I/O lines (15 - 8). The second data byte contains the least significant I/O lines (7 - 0). If a bit is a "0" then the state of that I/O line is LOW. If a bit is a "1" then the state of that I/O line is HIGH.
Command: !{addr}RD
Argument: none
Response: the state of the 16 I/O lines in two 8 bit bytes. (shown in bold face)
ASCII Example: !0RDÈR
Dec. Example: !0RD<200><82>
Hex. Example: !0RD<C8><52>
Bin. Example: !0RD<11001000><01010010>
Description: Read module 0's (decimal 48) I/O lines. The first byte indicates that I/O lines #15, 14, & 11 are HIGH and I/O lines # 13, 12, 10, 9, & 8 are LOW; the second byte indicates that I/O lines # 6, 4, & 1 are HIGH and I/O lines # 7, 5, 3, 2, & 0 are LOW.
Set Output Lines Command
The Set Output Lines command is used to set the states of the output lines. This command requires two data bytes. These data bytes specify the output state of each output line. The first data byte represents the most significant I/O lines (15 - 8). The second data byte represents the least significant I/O lines (7 - 0). If a bit position is set to a "0" then the state of that output line will be set LOW. If a bit position is set to a "1" then the state of that output line will be set HIGH.
NOTE: Refer to the "Define I/O Lines" command to define an I/O line as an output.
Command: | !{addr}SO |
Argument: | {I/O msb}{I/O lsb} |
Response: | none |
ASCII Example: !0SOUA
Dec. Example: !0SO<85><65>
Hex. Example: !0SO <55><41>
Bin. Example: !0SO<01010101><01000001>
Description: Set module 0's (decimal 48) output lines. The first byte sets output lines #14, 12, 10, & 8 HIGH and output lines #15, 13, 11, & 9 LOW; the second byte sets output lines #6, & 0 HIGH and output lines # 7, 5, 4, 3, 2, & 1 LOW. Note: If any of these lines are defined as inputs the bit settings are ignored.
12 |
B&B Electronics | B&B Electronics |
PH (815) | PH (815) |