Intel 8XC196MC User Manual

Page of 579
7-15
SERIAL I/O (SIO) PORT
7.4.5
Determining Serial Port Status
You can read the SPx_STATUS register (Figure 7-8) to determine the status of the serial port.
Reading SPx_STATUS clears all bits except TXE. For this reason, we recommend that you copy
the contents of the SPx_STATUS register into a shadow register and then execute bit-test instruc-
tions such as JBC and JBS on the shadow register. Otherwise, executing a bit-test instruction
clears the flags, so any subsequent bit-test instructions will return false values. You can also read
the interrupt pending register or peripheral interrupt pending register (see Table 7-2 on page 7-2)
to determine the status of the serial port interrupts.
SP
x
_STATUS
x
 = 0–1 (8XC196MH)
Address:
Reset State:
1F81H, 1F89H
00H
The serial port status (SP
x
_STATUS) register contains bits that indicate the status of serial port
 x
.
7
0
8XC196MH
RPE/RB8
RI
TI
FE
TXE
OE
Bit 
Number
Bit 
Mnemonic
Function
7
RPE/RB8
Received Parity Error/Received Bit 8
RPE is set if parity is disabled (SP
x
_CON.2 = 0) and the ninth data bit 
received is high.
RB8 is set if parity is enabled (SP
x
_CON.2 = 1) and a parity error occurred.
Reading SP
x
_STATUS clears this bit.
6
RI
Receive Interrupt
This bit is set when the last data bit is sampled. Reading SP
x
_STATUS 
clears this bit.
5
TI
Transmit Interrupt
This bit is set at the beginning of the stop bit transmission. Reading 
SP
x
_STATUS clears this bit.
4
FE
Framing Error
This bit is set if a stop bit is not found within the appropriate period of time. 
Reading SP
x
_STATUS clears this bit.
3
TXE
SBUF
x
_TX Empty
This bit is set if the transmit buffer is empty and ready to accept up to two 
bytes. It is cleared when a byte is written to SBUF
x
_TX.
2
OE
Overrun Error
This bit is set if data in the receive shift register is loaded into SBUF
x
_RX 
before the previous bit is read. Reading SP
x
_STATUS clears this bit.
1:0
Reserved; for compatibility with future devices, write zeros to these bits.
Figure 7-8.  Serial Port Status
 (SPx_STATUS) Register