Difference between revisions of "5.8051 Timer programming"
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 | + | {{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;" | ||
|- | |- | ||
− | ! | + | !M1||M0||Operation |
|- | |- | ||
− | | | + | |0||0||13 bit Timer |
|- | |- | ||
− | | | + | |0||1||16 bit Timer |
+ | |- | ||
+ | |1||0||8 bit Auto Reload | ||
+ | |- | ||
+ | |1||1||Split Mode | ||
|} | |} | ||
− | + | {| class="wikitable" style="text-align:center;background-color:#87A96B;" | |
− | + | ||
− | {| class="wikitable" style="background-color:#87A96B;" | + | |
|- | |- | ||
− | ! | + | !colspan = '8'|TMOD |
|- | |- | ||
− | | | + | |D7||D6||D5||D4||D3||D2||D1||D0 |
|- | |- | ||
− | | | + | |Gate||C/T||M1||M0||Gate||C/T||M1||M0 |
− | | | + | |
− | | | + | |
|- | |- | ||
− | | | + | !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 |