Line 9: Line 9:
  
 
==Timer Counter Operation==
 
==Timer Counter Operation==
 +
{{Box|type=l_green_light|text=
 +
The Timer 0 is a 16 bit registers as shown. This can be accessed as 2 eight bit registers '''TL0 and TL1'''. Same applies to Timer 1.
 +
}}
 +
 
{| class="wikitable" style="text-align:center;background-color:#87A96B;margin: 1em auto 1em auto;"
 
{| class="wikitable" style="text-align:center;background-color:#87A96B;margin: 1em auto 1em auto;"
 
|-
 
|-
Line 18: Line 22:
 
|}
 
|}
  
{| class="wikitable" style="text-align:center;background-color:#87A96B;margin: 1em auto 1em auto;"
+
{{Box|type=l_green_light|text=
 +
The '''TMOD''' Register specifies the operational mode of the two timers. The higher nibble is used for Timer 1 and Lower for the timer 0 as shown below.
 +
}}
 +
 
 +
{| class="wikitable floatright" style="text-align:center;background-color:#87A96B;"
 
|-
 
|-
!colspan = '8'|TMOD
+
!M1||M0||Operation
 
|-
 
|-
|D7||D6||D5||D4||D3||D2||D1||D0
+
|0||0||13 bit Timer
 
|-
 
|-
|Gate||C/T||M1||M0||Gate||C/T||M1||M0
+
|0||1||16 bit Timer
 +
|-
 +
|1||0||8 bit Auto Reload
 +
|-
 +
|1||1||Split Mode
 
|}
 
|}
  
{{Box|type=l_green_light|text=<br/>
+
{| class="wikitable" style="text-align:center;background-color:#87A96B;"
}}
+
{| class="wikitable" style="background-color:#87A96B;"
+
 
|-
 
|-
! Register !! Operation 
+
!colspan = '8'|TMOD
 
|-
 
|-
| T0 || Timer 0
+
|D7||D6||D5||D4||D3||D2||D1||D0
 
|-
 
|-
| T1|| Timer 1
+
|Gate||C/T||M1||M0||Gate||C/T||M1||M0
|-
+
| TCON || Timer Control
+
 
|-
 
|-
|TMOD|| Timer Mode
+
!colspan="4"|Timer1||colspan="4"|Timer 0
 
|}
 
|}

Revision as of 22:56, 26 December 2013


In this tutorial we will see 8051 timers. We will use the 8051 timers to generate a precise delay of 1 sec.

8051 timers/counters

The 8051 has 2 timers/counters.

  • They can be used to generate precise timing, i.e., we can measure time between events. The unit is then called timer.
  • It can also be used to count external events, known as counter.
  • Timer 1 is also used for generating baud rate in serial communication, which we will discuss in the next tutorial

Timer Counter Operation

The Timer 0 is a 16 bit registers as shown. This can be accessed as 2 eight bit registers TL0 and TL1. Same applies to Timer 1.

T0
TH0 TL0
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0


The TMOD Register specifies the operational mode of the two timers. The higher nibble is used for Timer 1 and Lower for the timer 0 as shown below.

M1 M0 Operation
0 0 13 bit Timer
0 1 16 bit Timer
1 0 8 bit Auto Reload
1 1 Split Mode
TMOD
D7 D6 D5 D4 D3 D2 D1 D0
Gate C/T M1 M0 Gate C/T M1 M0
Timer1 Timer 0