As we know there are 2 timer registers in 8051. Timer 0 and
timer 1. Both of these registers use the same register called TMOD to set
various timer operation modes.
TMOD is an 8 bit register, in which lower 4 bits are for Timer
0 and upper 4 bits are for Timer 1.
See table below. MSB ---- LSB
GATE
|
C/T
|
M1
|
M0
|
GATE
|
C/T
|
M1
|
M0
|
TIMER 1
|
TIMER 0
|
GATE
|
Gating control when set. The timer/counter is enabled
only while the INTx pin is high and TRx control pin is set. When cleared, the
timer is enabled whenever TRx control pin is set.
|
C/T
|
Timer or counter; 0 or clear for
timer operation.(connected to input from internal system clock). 1 or set for
counter operation(connected to input from Tx input pin).
|
M1
|
Mode bit 1
|
M0
|
Mode bit 0
|
What the heck is M1 and M0??
M0 and M1 select the timer mode in TMOD. 4 modes as mode 0,
mode 1, mode 2, mode 3. See table.
M1
|
M0
|
MODE
|
OPERATING MODE
|
0
|
0
|
MODE 0
|
13 bit timer mode
8-bit timer/counter THx with TLx as 5 bit prescaler
|
0
|
1
|
MODE 1
|
16 bit timer mode.
16 bit timer/counter THx and TLx are cascaded with no
prescaler.
|
1
|
0
|
MODE 2
|
8 bit auto reload.
8 bit auto reload timer/counter THx holds a value that’s to be reloaded in
TLx each time it overflows.
|
1
|
1
|
MODE 3
|
Split timer mode
|
C/T (clock/timer) in TMOD
- This bit in TMOD register is used to know whether it is used as a delay generator or as an event counter.
- C/T = 0, then it is used as a timer for time delay generation. The clock source for the time delay is the crystal frequency of 8051. Timer gets pulses from the crystal.
- C/T = 1, then it is used as a counter and gets its pulses from outside the 8051. That is from pins T0 and T1 belonging to port 3. In case of timer 0, when C/T = 1 pin 3.4 provides the clock pulse and counter counts up for each clock pulse coming from that pin. Similarly for timer 1, when C/T = 1 pin 3.5 provides the clock pulse and counter counts up for each clock pulse coming from that pin.
GATE – IN-- TMOD
- One of the bit of TMOD is GATE bit. What does this GATE thingy do or whats its purpose on this heavenly earth and in our pretty little microcontroller??
- Every timer has means of starting and stopping. This can be achieved either by software or by hardware or by both. 8051 gives us facility of both.
- 8051 the start and stop of timer is controlled by way of software by TR(timer start) bits TR0 and TR1, using instructions :
- SETB TR1
- CLR TR1
- For timer 1 and for timer 0:
- SETB TR0
- CLR TR0.
- The software start and stop is achieved when GATE = 0 in TMOD register.
- When GATE = 1 in TMOD register it means hardware control. Its preferable to use GATE = 0 for most of the time.
Values of TMOD to operate as timers in following mode.
Mode 1 timer 1 0001
0000 = 10h
Mode 2 timer 0, mode 2 timer 1 0010 0010 = 22h
Note whatever the frequency of crystal is timer
will always function at 1/12 th of the crystal frequency.
No comments:
Post a Comment