beautypg.com

Serial i/o port, Mode selection, Baud rate generator – Rainbow Electronics AT89C51SND1C User Manual

Page 134: At8xc51snd1c

background image

134

AT8xC51SND1C

4109E–8051–06/03

Serial I/O Port

The serial I/O port in the AT8xC51SND1C provides both synchronous and asynchro-
nous communication modes. It operates as a Synchronous Receiver and Transmitter in
one single mode (Mode 0) and operates as an Universal Asynchronous Receiver and
Transmitter (UART) in three full-duplex modes (Modes 1, 2 and 3). Asynchronous
modes support framing error detection and multiprocessor communication with auto-
matic address recognition.

Mode Selection

SM0 and SM1 bits in SCON register (see Figure 125) are used to select a mode among
the single synchronous and the three asynchronous modes according to Table 123.

Table 123. Serial I/O Port Mode Selection

Baud Rate Generator

Depending on the mode and the source selection, the baud rate can be generated from
either the Timer 1 or the Internal Baud Rate Generator. The Timer 1 can be used in
Modes 1 and 3 while the Internal Baud Rate Generator can be used in Modes 0, 1
and 3.

The addition of the Internal Baud Rate Generator allows freeing of the Timer 1 for other
purposes in the application. It is highly recommended to use the Internal Baud Rate
Generator as it allows higher and more accurate baud rates than Timer 1.

Baud rate formulas depend on the modes selected and are given in the following mode
sections.

Timer 1

When using Timer 1, the Baud Rate is derived from the overflow of the timer. As shown
in Figure 94 Timer 1 is used in its 8-bit auto-reload mode (detailed in Section "Mode 2
(8-bit Timer with Auto-Reload)", page 53)
. SMOD1 bit in PCON register allows doubling
of the generated baud rate.

Figure 94. Timer 1 Baud Rate Generator Block Diagram

SM0

SM1

Mode

Description

Baud Rate

0

0

0

Synchronous Shift Register

Fixed/Variable

0

1

1

8-bit UART

Variable

1

0

2

9-bit UART

Fixed

1

1

3

9-bit UART

Variable

TR1

TCON.6

0

1

GATE1

TMOD.7

Overflow

C/T1#

TMOD.6

TL1

(8 bits)

TH1

(8 bits)

INT1

T1

PER

CLOCK

÷

6

0

1

SMOD1

PCON.7

÷

2

T1

CLOCK

To serial
Port