Difference between revisions of "5.8051 Timer programming"
Line 13: | Line 13: | ||
}} | }} | ||
− | [[File:Basic Timer.jpeg|thumbnail| | + | [[File:Basic Timer.jpeg|thumbnail|660xpx|fig 1:Basic Timer]] |
{| 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;" |
Revision as of 07:02, 27 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 |