Philips Semiconductors
Product data
P83C654X2/P87C654X2
80C51 8-bit microcontroller family
16 kB OTP/ROM,
256B RAM, low voltage (2.7 to 5.5 V), low power, high speed
(30/33 MHz)
2004 Apr 20
19
C/T2 = 0
C/T2 = 1
TR2
Control
TL2
(8-bits)
TH2
(8-bits)
÷
16
RCAP2L
RCAP2H
EXEN2
Control
EXF2
Timer 2
Interrupt
T2EX Pin
Transition
Detector
Reload
÷
2
“0”
“1”
RX Clock
÷
16
TX Clock
“0”
“1”
“0”
“1”
Timer 1
Overflow
Note availability of additional external interrupt.
SMOD
RCLK
TCLK
SU01629
n = 1 in 6-clock mode
n = 2 in 12-clock mode
OSC
÷
n
T2 Pin
Figure 12. Timer 2 in Baud Rate Generator Mode
Table 4.
Timer 2 Generated Commonly Used
Baud Rates
Baud Rate
Timer 2
12-clock
mode
6-clock
mode
Osc Freq
RCAP2H
RCAP2L
375 k
9.6 k
4.8 k
2.4 k
1.2 k
300
110
300
110
750 k
19.2 k
9.6 k
4.8 k
2.4 k
600
220
600
220
12 MHz
12 MHz
12 MHz
12 MHz
12 MHz
12 MHz
12 MHz
6 MHz
6 MHz
FF
FF
FF
FF
FE
FB
F2
FD
F9
FF
D9
B2
64
C8
1E
AF
8F
57
Baud Rate Generator Mode
Bits TCLK and/or RCLK in T2CON (Table 4) allow the serial port
transmit and receive baud rates to be derived from either Timer 1 or
Timer 2. When TCLK = 0, Timer 1 is used as the serial port transmit
baud rate generator. When TCLK = 1, Timer 2 is used as the serial
port transmit baud rate generator. RCLK has the same effect for the
serial port receive baud rate. With these two bits, the serial port can
have different receive and transmit baud rates – one generated by
Timer 1, the other by Timer 2.
Figure 12 shows the Timer 2 in baud rate generation mode. The baud
rate generation mode is like the auto-reload mode,in that a rollover in
TH2 causes the Timer 2 registers to be reloaded with the 16-bit value
in registers RCAP2H and RCAP2L, which are preset by software.
The baud rates in modes 1 and 3 are determined by Timer 2’s
overflow rate given below:
Modes 1 and 3 Baud Rates
Timer 2 Overflow Rate
16
The timer can be configured for either “timer” or “counter” operation.
In many applications, it is configured for “timer” operation (C/T2 = 0).
Timer operation is different for Timer 2 when it is being used as a
baud rate generator.
Usually, as a timer it would increment every machine cycle (i.e.,
1
/
6
the oscillator frequency in 6-clock mode,
1
/
12
the oscillator
frequency in 12-clock mode). As a baud rate generator, it
increments at the oscillator frequency in 6-clock mode (
OSC
/
2
in
12-clock mode). Thus the baud rate formula is as follows:
Oscillator Frequency
[65536
(RCAP2H,RCAP2L)]]
[ n *
Modes 1 and 3 Baud Rates =
* n =
16 in 6-clock mode
32 in 12-clock mode
Where:
RCAP2L taken as a 16-bit unsigned integer.
(RCAP2H, RCAP2L)= The content of RCAP2H and
The Timer 2 as a baud rate generator mode shown in Figure 12, is
valid only if RCLK and/or TCLK = 1 in T2CON register. Note that a
rollover in TH2 does not set TF2, and will not generate an interrupt.
Thus, the Timer 2 interrupt does not have to be disabled when
Timer 2 is in the baud rate generator mode. Also if the EXEN2
(T2 external enable flag) is set, a 1-to-0 transition in T2EX
(Timer/counter 2 trigger input) will set EXF2 (T2 external flag) but
will not cause a reload from (RCAP2H, RCAP2L) to (TH2,TL2).
Therefore when Timer 2 is in use as a baud rate generator, T2EX
can be used as an additional external interrupt, if needed.