8051 Timers and Counters
8051 Timers and Counters
8051 Timers and Counters
(http://www.circuitstoday.com)
In this article, we focus on Timers/Counters of the 8051 micro controller. The 8051 has two counters/timers which can be used either as timer to generate a time
delay or as counter to count events happening outside the microcontroller.
The 8051 has two timers: timer0 and timer1. They can be used either as timers or as counters. Both timers are 16 bits wide. Since the 8051 has an 8-bit
architecture, each 16-bit is accessed as two separate registers of low byte and high byte. First we shall discuss about Timer0 registers.
Timer0 registers is a 16 bits register and accessed as low byte and high byte. The low byte is referred as a TL0 and the high byte is referred as TH0. These registers can
be accessed like any other registers.
(http://www.circuitstoday.com/wp-content/uploads/2014/10/timer0.png)
Timer1 registers is also a 16 bits register and is split into two bytes, referred to as TL1 and TH1.
(http://www.circuitstoday.com/wp-content/uploads/2014/10/timer1.png)
http://www.circuitstoday.com/8051-timers-counters 1/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
TMOD (timer mode) Register: This is an 8-bit register which is used by both timers 0 and 1 to set the various timer modes. In this TMOD register, lower 4 bits are set
aside for timer0 and the upper 4 bits are set aside for timer1. In each case, the lower 2 bits are used to set the timer mode and upper 2 bits to specify the operation.
(http://www.circuitstoday.com/wp-content/uploads/2014/10/TMOD.png)
TMOD
In upper or lower 4 bits, rst bit is a GATE bit. Every timer has a means of starting and stopping. Some timers do this by software, some by hardware, and some have
both software and hardware controls. The hardware way of starting and stopping the timer by an external source is achieved by making GATE=1 in the TMOD
register. And if we change to GATE=0 then we do no need external hardware to start and stop the timers.
The second bit is C/T bit and is used to decide whether a timer is used as a time delay generator or an event counter. If this bit is 0 then it is used as a timer and if it
is 1 then it is used as a counter.
In upper or lower 4 bits, the last bits third and fourth are known as M1 and M0 respectively. These are used to select the timer mode.
0 0 0 13-bit timer mode, 8-bit timer/counter THx and TLx as 5-bit prescalar.
0 1 1 16-bit timer mode, 16-bit timer/counters THx and TLx are cascaded; There are no prescalar.
1 0 2 8-bit auto reload mode, 8-bit auto reload timer/counter; THx holds a value which is to be reloaded into TLx each time it
over ows.
Mode 1- It is a 16-bit timer; therefore it allows values from 0000 to FFFFH to be loaded into the timer’s registers TL and TH. After TH and TL are loaded with a 16-bit
initial value, the timer must be started. We can do it by “SETB TR0” for timer 0 and “SETB TR1” for timer 1. After the timer is started. It starts count up until it reaches
its limit of FFFFH. When it rolls over from FFFF to 0000H, it sets high a ag bit called TF (timer ag). This timer ag can be monitored. When this timer ag is raised,
one option would be stop the timer with the instructions “CLR TR0“ or CLR TR1 for timer 0 and timer 1 respectively. Again, it must be noted that each timer ag TF0
for timer 0 and TF1 for timer1. After the timer reaches its limit and rolls over, in order to repeat the process the registers TH and TL must be reloaded with the original
value and TF must be reset to 0.
Mode0- Mode 0 is exactly same like mode 1 except that it is a 13-bit timer instead of 16-bit. The 13-bit counter can hold values between 0000 to 1FFFH in TH-TL.
Therefore, when the timer reaches its maximum of 1FFH, it rolls over to 0000, and TF is raised.
Mode 2- It is an 8 bit timer that allows only values of 00 to FFH to be loaded into the timer’s register TH. After TH is loaded with 8 bit value, the 8051 gives a copy of
it to TL. Then the timer must be started. It is done by the instruction “SETB TR0” for timer 0 and “SETB TR1” for timer1. This is like mode 1. After timer is started, it
starts to count up by incrementing the TL register. It counts up until it reaches its limit of FFH. When it rolls over from FFH to 00. It sets high the TF (timer ag). If we
are using timer 0, TF0 goes high; if using TF1 then TF1 is raised. When Tl register rolls from FFH to 00 and TF is set to 1, TL is reloaded automatically with the original
value kept by the TH register. To repeat the process, we must simply clear TF and let it go without any need by the programmer to reload the original value. This makes
mode 2 auto reload, in contrast in mode 1 in which programmer has to reload TH and TL.
Mode3- Mode 3 is also known as a split timer mode. Timer 0 and 1 may be programmed to be in mode 0, 1 and 2 independently of similar mode for other timer. This is
not true for mode 3; timers do not operate independently if mode 3 is chosen for timer 0. Placing timer 1 in mode 3 causes it to stop counting; the control bit TR1 and
the timer 1 ag TF1 are then used by timer0.
TCON register- Bits and symbol and functions of every bits of TCON are as follows:
http://www.circuitstoday.com/8051-timers-counters 2/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
(http://www.circuitstoday.com/wp-content/uploads/2014/10/TCON.png)
7 TF1 Timer1 over ow ag. Set when timer rolls from all 1s to 0. Cleared
6 TR1 Timer 1 run control bit. Set to 1 by programmer to enable timer to
3 IE1 External interrupt 1 Edge ag. Not related to timer operations.
2 IT1 External interrupt1 signal type control bit. Set to 1 by program to
generate an interrupt.
1 IE0 External interrupt 0 Edge ag. Not related to timer operations.
0 IT0 External interrupt 0 signal type control bit. Same as IT0.
tt
tt
pp
::
//
You may also like:
//
w
w
Interfacing External Memory EEPROM to 8051 Microcontroller (http://www.circuitstoday.com/8051-eeprom-
interfacing) w
w
w
w
http://www.circuitstoday.com/8051-timers-counters 3/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
Learn to Build Real Time Clock using 8051and DS1307 RTC..Module (http://www.circuitstoday.com/real-time-clock-
8051) cc
tt
ss
tt
We recommend: oo
dd
Audio oscillator circuit (http://www.circuitstoday.com/audio-oscillator-circuit-2)
aa
How to recover/reset admin username and password of Vbulletin forum software (http://www.circuitstoday.com/how-
yy
to-recoverreset-admin-username-and-password-of-vbulletin-forum-software)
..
Handling the Digital Input Output in AVR Micro Controllers (http://www.circuitstoday.com/handling-the-digital-input-
output-in-avr-micro-controllers) cc
oo
Passive tone control circuit (http://www.circuitstoday.com/passive-tone-control-circuit)
m
m
Working of Circuit Breakers (http://www.circuitstoday.com/working-of-circuit-breakers)
//
oo
hu
COMMENTS m
r
m
-
jojo
es
February 4, 2015
to
ec
@Abdul – Please subscribe to our email newsletter.
ri
-a
ul
sumit shrivastava s-
November 6, 2014
im
ne
A very nice article in suitable language not only for knowledge full person
gd
but also for beginner.The writer is surely having good and deep knowledge its re ects in the contents of the article. AWESOME! waiting for next article .
-i
THANKS A LOT aa
r-
dp
sumit shrivastava ur
November 6, 2014
io
nf
thank you sir
oi
)l
e
LEAVE A REPLY )
http://www.circuitstoday.com/8051-timers-counters 4/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
Your email address will not be published. Required elds are marked *
Comment
Name *
Email *
Website
POST COMMENT
SORT BY TYPE
http://www.circuitstoday.com/8051-timers-counters 5/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
http://www.circuitstoday.com/8051-timers-counters 6/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
http://www.circuitstoday.com/8051-timers-counters 7/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
Instant Quote
Dimensions
Length x Width mm
Quantity
Choose Num (pcs)
Layers
2 Layers
Thickness
1.6mm
Quote Now
(https://www.wellpcb.com/)
OTHER LINKS
About (http://www.circuitstoday.com/about)
Authors (http://www.circuitstoday.com/authors)
Datasheets (http://www.circuitstoday.com/datasheets)
Disclaimer (http://www.circuitstoday.com/disclaimer)
http://www.circuitstoday.com/8051-timers-counters 8/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
PCBFOX
http://www.circuitstoday.com/8051-timers-counters 9/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
http://www.circuitstoday.com/8051-timers-counters 10/11
10/3/2018 8051 Timers and Counters - Electronic Circuits and Diagrams-Electronic Projects and Design
acebook.com/sharer.php)
http://www.circuitstoday.com/8051-timers-counters 11/11