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