ADuC832
Data Sheet
Rev. B | Page 76 of 92
MODE 0: 8-BIT SHIFT REGISTER MODE
Mode 0 is selected by clearing both the SM0 and SM1 bits in
the SCON SFR. Serial data enter and exit through RxD. TxD
outputs the shift clock. Eight data bits are transmitted or received.
Transmission is initiated by any instruction that writes to SBUF.
The data is shifted out of the RxD line. The eight bits are transmit-
ted with the least significant bit (LSB) first, as shown i
n Figure 81.CORE
CLK
ALE
RxD
(DATA
OUT)
TxD
(SHIFT
CLOCK)
DATA BIT 0
DATA BIT 1
DATA BIT 6
DATA BIT 7
S6
S5
S4
S3
S2
S1
S6
S5
S4
S3
S2
S1
S6
S5
S4
S3
S2
S1
MACHINE
CYCLE 8
MACHINE
CYCLE 7
MACHINE
CYCLE 2
MACHINE
CYCLE 1
02
98
7-
07
0
Figure 81. UART Serial Port Transmission, Mode 0
Reception is initiated when the receive enable bit (REN) is 1
and the receive interrupt bit (RI) is 0. When RI is cleared, the
data is clocked into the RxD line and the clock pulses are output
from the TxD line.
MODE 1: 8-BIT UART, VARIABLE BAUD RATE
Mode 1 is selected by clearing SM0 and setting SM1. Each data
byte (LSB first) is preceded by a start bit (0), followed by a stop
bit (1). Therefore, 10 bits are transmitted on TxD or received on
RxD. The baud rate is set by the Timer 1 or Timer 2 overflow
rate, or a combination of the two (one for transmission and the
other for reception).
Transmission is initiated by writing to SBUF. The write to SBUF
signal also loads a 1 (stop bit) into the ninth bit position of the
transmit shift register. The data is output bit by bit until the stop
bit appears on TxD and the transmit interrupt flag (TI) is
029
87-
09
7
TxD
TI
(SCON[1])
START
BIT
D0
D1
D2
D3
D4
D5
D6
D7
STOP BIT
SET INTERRUPT
THAT IS, READY FOR MORE DATA
Figure 82. UART Serial Port Transmission, Mode 0
Reception is initiated when a 1-to-0 transition is detected on
RxD. Assuming a valid start bit was detected, character recep-
tion continues. The start bit is skipped and the eight data bits
are clocked into the serial port shift register. When all eight bits
have been clocked in, the following events occur:
The eight bits in the receive shift register are latched
into SBUF.
The ninth bit (stop bit) is clocked into RB8 in SCON.
The receiver interrupt flag (RI) is set.
These events occur only if the following conditions are met at
the time the final shift pulse is generated:
RI = 0 and either SM2 = 0 or SM2 = 1
The received stop bit = 1
If either of these conditions is not met, the received frame is
irretrievably lost, and RI is not set.
MODE 2: 9-BIT UART WITH FIXED BAUD RATE
Mode 2 is selected by setting SM0 and clearing SM1. In this
mode, the UART operates in 9-bit mode with a fixed baud rate.
The baud rate is fixed at Core_CLK/64 by default, although by
setting the SMOD bit in PCON, the frequency can be doubled
to Core_CLK/32. Eleven bits are transmitted or received, a start
bit (0), eight data bits, a programmable ninth bit, and a stop bit
(1). The ninth bit is most often used as a parity bit, although it
can be used for anything, including a ninth data bit if required.
To transmit, the eight data bits must be written into SBUF. The
ninth bit must be written to TB8 in SCON. When transmission
is initiated, the eight data bits (from SBUF) are loaded onto the
transmit shift register (LSB first). The contents of TB8 are loaded
into the ninth bit position of the transmit shift register. The
transmission starts at the next valid baud rate clock. The TI flag
is set as soon as the stop bit appears on TxD.
Reception for Mode 2 is similar to that of Mode 1. The eight
data bytes are input at RxD (LSB first) and loaded onto the
receive shift register. When all eight bits have been clocked in,
the following events occur:
The eight bits in the receive shift register are latched
into SBUF.
The ninth data bit is latched into RB8 in SCON.
The receiver interrupt flag (RI) is set.
These events occur only if the following conditions are met at
the time the final shift pulse is generated:
RI = 0 and either SM2 = 0 or SM2 = 1
The received stop bit = 1
If either of these conditions is not met, the received frame is
irretrievably lost, and RI is not set.
MODE 3: 9-BIT UART WITH VARIABLE BAUD RATE
Mode 3 is selected by setting both SM0 and SM1. In this mode,
the 8051 UART serial port operates in 9-bit mode with a variable
baud rate determined by either Timer 1 or Timer 2. The operation
of the 9-bit UART is the same as for Mode 2 but the baud rate
can be varied as for Mode 1.
In all four modes, transmission is initiated by any instruction
that uses SBUF as a destination register. Reception is initiated in
Mode 0 by the condition RI = 0 and REN = 1. Reception is
initiated in the other modes by the incoming start bit if REN = 1.