Chapter 6
PROGRAMMING
THE TIMERS
Lesson 1
Programmable Timer-Counter
Device
2011 Microcontrollers-... 2nd Ed. Raj Kamal 2
Pearson Education
Timer-Counter Prescaling
2011 Microcontrollers-... 2nd Ed. Raj Kamal 3
Pearson Education
Timer Pre-scaling 8051 T0 Pre-scaling of
in Mode 0 Example TH0 by 32
through TL0
5-bit TL0 TH0
13-bit counter
Count Inputs from internal
clock or from pin T1
2011 Microcontrollers-... 2nd Ed. Raj Kamal 4
Pearson Education
Pre scaling of E-
68HC11 TCNT (Time-Counter) clock inputs by
Example PR0-PR1 bits
programmable
16-bit counter as 1, 4, 8 or 16
with in 64
clock cycles on
TCNT Register power up reset
Count Inputs from internal E-
clock 2 MHz for 8 MHz
2011 Microcontrollers-... 2nd Ed. Raj Kamal 5
Pearson Education
Example- 68HC11 TCNT
• Let XTAL clock = 8 MHz,therefore
counter clock-input period = 0.5 µs.
Let Pre-scaling factor programmed = 8
Therefore, clock-inputs to TCNT at each
8×0.5 µs = 4 µs interval
When TCNT = 1FA0H,then after 4×16
µs TCNT reading will be will be 1FB0H;
after next 1024 µs, 20B0H.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 6
Pearson Education
Timer-Counter Reset to 0000H
2011 Microcontrollers-... 2nd Ed. Raj Kamal 7
Pearson Education
8051/52 16-bit Counters Resetting
• Timer-counter T1 resets on on writing 00H-
00H at TH1-TL1 or on T0 overflow
• Timer-counter T0 resets on writing 00H-00H
at TH0-TL0 or on overflow of T0
• Timer-counter T2 resets on writing 00H-
00H at TH2-TL2 or on overflow of T2
2011 Microcontrollers-... 2nd Ed. Raj Kamal 8
Pearson Education
68HC11 16-bit Counters Resetting
• Timer-counter T1 resets on TCNT overflow
2011 Microcontrollers-... 2nd Ed. Raj Kamal 9
Pearson Education
Timer
68HC11 TCNT Overflow overflow
example interrupt if
not masked,
16-bit counter an ISR
executes
Overflows after 216
Example
inputs after each 216 × p
× 0.5 µs from instance
when count bits all 0s
Clock Inputs period = 0.5 µs for 8 MHz XTAL,
pre-scaling factor set = p = 1 or 4 or 8 or 16
2011 Microcontrollers-... 2nd Ed. Raj Kamal 10
Pearson Education
8051 Timer-Counter Start/Stop
2011 Microcontrollers-... 2nd Ed. Raj Kamal 11
Pearson Education
Timer-Counter start, stop and reset
• Finding time interval between two events.
• Finding period of a pulse at a port pin
• Find time taken for a motor for 1 or more
revolutions
• Reset timer T counts = 0, and mode set for
internal clock-inputs. On first event, start T and
second event stop T.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 12
Pearson Education
8051 TH0-TL0 Mode 1
• Let XTAL clock =12 MHz,therefore
counter clock-input period = 1 µs.
Let Mode T0 is C/T =0 (internal clock
mode)
• Let T0 be programmed in mode 1
(TH0,TL0) 16-bit counter.
WhenTR0 is set,timer T0 starts and TR0
reset T0 stops.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 13
Pearson Education
8051 T1 in Mode 1 0 or 1 at External
gate pin INT1
Example and 1 or 0 TR1
together
16-bit counter starts/stops when
programming of
T1 is like that
TH1 TL1 else set/reset of
TR1 only
Count Inputs from starts/stops as
internal clock or from per
pin T1 programming.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 14
Pearson Education
1. External
8052 T2 Example CP/RL2 for
counter
reload on
overflow if
16-bit counter EXEN2 bit set
2. TR2 bit
set/reset
programmed
Count Inputs from internal to start/stop .
clock or from pin C/T2 as
per programming of T2
2011 Microcontrollers-... 2nd Ed. Raj Kamal 15
Pearson Education
68HC11 Timer-Counter Non-
programmability except for
Prescaling or counting rate setting
2011 Microcontrollers-... 2nd Ed. Raj Kamal 16
Pearson Education
68HC11 TCNT Non- Internal clock
input rate or the
Programmability prescaling only
programmable
16-bit counter
TCNT Register No TR bit;
Count Inputs from internal Start/stop and
clock No reset
programmable
2011 Microcontrollers-... 2nd Ed. Raj Kamal 17
Pearson Education
8051 Timer-Counter Loading and
Reload
2011 Microcontrollers-... 2nd Ed. Raj Kamal 18
Pearson Education
TH0 is written the
8051 T0 in Mode 3 counts = x0.
Example TH0 overflows (256-
x0) inputs from
TH0 TL0 the start.
TL0 is written the
counts = x1.
TL0 overflows after
Count Inputs from internal (256-x1) inputs
clock or from pin T1 from the start
Loading of TH0 and TH0 by writing counts x0 and x1.
Resetting by writing 0000H into TCNT.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 19
Pearson Education
TH1 is first
8051 T1 in Mode 2 Example
written the
counts, x0.
TH1 TL1 TL1 auto-
reloads x0
from TH1 on
each
overflow.
Count Inputs from internal
clock or from pin T1
2011 Microcontrollers-... 2nd Ed. Raj Kamal 20
Pearson Education
Load by
8052 T2 Example writing x at
TH2-TL2.
TH2-TL2
16-bit counter overflows
after (216 − x)
inputs
Count Inputs from internal
clock or from pin C/T2 as
programmed
2011 Microcontrollers-... 2nd Ed. Raj Kamal 21
Pearson Education
External
8052 T2 Example CP/RL2 for
counter
reload if
16-bit counter EXEN2 bit
set. Reloads
from the
TH2-TL2
registers
Count Inputs from internal
clock or from pin C/T2 as
programmed
2011 Microcontrollers-... 2nd Ed. Raj Kamal 22
Pearson Education
Internal clock input
rate/ Prescaling factors
68HC11 TCNT
only programmable
Example
16-bit counter
TCNT Read Only
No loading of
TCNT,
No resetting by
Count Inputs from internal
clock. writing 0000H
into TCNT.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 23
Pearson Education
An overflow delay two or four or eight
times when pre-scaling factor = 2 or 4
or 8
2011 Microcontrollers-... 2nd Ed. Raj Kamal 24
Pearson Education
Overflow after a Period
2011 Microcontrollers-... 2nd Ed. Raj Kamal 25
Pearson Education
Example- 8051 TH1-TL1 Mode 1
• Let XTAL clock =12 MHz,therefore counter
clock-input period = 1 µs.
Let Mode T1 is C/T ,internal clock mode
Let T1 be programmed in mode 1 (TH1,TL1)
16-bit counter.
WhenTH1-TL1 written (loaded) E0H-01H
then timer T1 will timeout and overflow after
1FFFH inputs.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 26
Pearson Education
Example- 8051 TL0 Mode 2
•Let XTAL clock =12 MHz,therefore counter
clock-input period = 1 µs.
•Let Mode T0 is C/T ,internal clock mode
• Let T0 be programmed in mode 2; TL0 loads
counts from TH0,TL0 runs as 8-bit counter.
• WhenTH0 (loaded) E0H then timer T0 uses
TL0 and will timeout and overflow after each
20H inputs (= 32 µs) as TL0 reloads also from
TH0 on overflow.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 27
Pearson Education
Program for finding the Time Interval
of Counting in 8051/52
2011 Microcontrollers-... 2nd Ed. Raj Kamal 28
Pearson Education
One Timer as Timer and other as counter
Counter-timer device 1 programs the Timer for
counting time interval in timer mode
When device 1 starts, the counter mode
timer-counter device 2 also starts
counting.
When device 1 overflows (timeouts), the
ISR stops the device 2 counting.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 29
Pearson Education
Example- 8051 TH0-TL0 Mode 3
Let XTAL clock =12 MHz,therefore counter
clock-input period = 1 µs.
Let Mode T1 is C/T1= 1 for count mode TH0
and mode T0 is is C/T0= 0 for timer mode TL0
Let T0 programmed in mode 3. TH0-TL0
independent counters and TL0 be written 7DH,
to set the interval to (100H-7EH) = 83H = 131
µs for timeout and overflow.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 30
Pearson Education
8051 TH0-TL0 Mode 3
Step1: Set TR0 = 1, reset TH0 = 00H
Step 2: Run TH0 by setting TR1 =1, so that
TH0 starts counting from 00H.
Step3: TL0 overflows and interrupts after
counting interval = 131 µs, the ISR resets TR1
= 0, it stopsTH0.
TH0 will gives the count pulses at C/T1 pin
received in 131 µs.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 31
Pearson Education
Timer-Counter Overflow Events
2011 Microcontrollers-... 2nd Ed. Raj Kamal 32
Pearson Education
Example of
Timer-Counter Overflow Event
• Timer-counter T1 mode1 on overflow
after one input from FFFFH and new
reading = 0000H at TH1-TL1
2011 Microcontrollers-... 2nd Ed. Raj Kamal 33
Pearson Education
Masking Interrupt Service on Timer-
Counter Overflow Event
• T0 or T1 or T2 or TCNT overflow
interrupt maskable
• If masked, no interrupt service
routine executes on overflow
2011 Microcontrollers-... 2nd Ed. Raj Kamal 34
Pearson Education
Timer
8051 TL0 timer mode 2 overflow
example interrupt if
it is not
8-bit counter masked, an
ISR
executes
Example
Overflows after
Clock Inputs period = 1 µs 256 inputs in 256
µs if initial count
for 12 MHz XTAL bits all 0s.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 35
Pearson Education
Timer
68HC11 TCNT example overflow
interrupt if
not masked,
16-bit counter an ISR
executes
Example Overflows
after 216 inputs
Clock Inputs period = 1/2 µs in 216 /2 µs
for 8 MHz XTAL, pre- from count bits
scaling factor set = 1 all 0s.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 36
Pearson Education
Example- 8051 TH0 Mode 3
Let XTAL clock =12 MHz,therefore counter
clock-input period = 1 µs.
Let Mode T1 is C/T ,internal clock mode
Let T0 programmed in mode 3. TH0-TL0
independent counters and TH0 be written 81H.
WhenTH0 starts by setting TR1 = 1, Over-flow
will be after (100H-81H) = 127 µs
2011 Microcontrollers-... 2nd Ed. Raj Kamal 37
Pearson Education
Preset time interval ON-OFF of a unit
•Load timer T counts = x, and mode set for
internal clock-inputs. Start T . switch ON and
on over flow interrupt, switch OFF.
Application- Output change (s) for a pre-fixed
interval
2011 Microcontrollers-... 2nd Ed. Raj Kamal 38
Pearson Education
Preset long time interval on-off of a unit
Load n-bit timer T counts = x, define number of
overflows = k, mode set for internal clock-
inputs. Switch on an output, Start T and on
overflow interrupt, reload the counts on 1 to
(k−1)th overflows and switch off the output on
kth over flow interrupt.
Delay = k.(2n - x).x.p.t, where t = clock input
period, p = pre scaling factor
2011 Microcontrollers-... 2nd Ed. Raj Kamal 39
Pearson Education
Exemplary Applications
• Moving robot arm for a defined period.
• Output change for a pre-fixed interval
• Current output for a fixed interval
• A microwave oven ON for a fixed interval
2011 Microcontrollers-... 2nd Ed. Raj Kamal 40
Pearson Education
Finding a long time interval between
two events
Reset timer T counts = 0, and mode set for
internal clock-inputs. On first event, start T and
till second event,find k the number of overflows
and on second event stop T.
Exemplary Applications
Find time taken for a weight-lifter to lift
Find time taken for an input event change
2011 Microcontrollers-... 2nd Ed. Raj Kamal 41
Pearson Education
Time interval
Time interval = [(2n.k) +x1].p.t, where t =
clock input period, p = pre scaling factor,
x1 = final counts at the n-bit at T.
2011 Microcontrollers-... 2nd Ed. Raj Kamal 42
Pearson Education
Summary
2011 Microcontrollers-... 2nd Ed. Raj Kamal 43
Pearson Education
we learnt
Two types of timer-counter devices -
• Start, stop, reset and preloading a
count programmable
• Free running timer-counter: start,stop,
reset and preloading counts x, each
one is not programmable
2011 Microcontrollers-... 2nd Ed. Raj Kamal 44
Pearson Education
We learnt
Pre-scaling of timer-counter device -
• Programmable in TCNT 68HC11
• Programmable as 32 in mode-0 at T1 or T0
in 8051
• Pre-scaling extends the overflow rates and
extends the increment interval of counts by
pre-scaling factor
2011 Microcontrollers-... 2nd Ed. Raj Kamal 45
Pearson Education
We learnt
Loading of timer-counter device -
• Not Programmable in TCNT 68HC11
• Programmable in T0, T1 or T2 at 8051
2011 Microcontrollers-... 2nd Ed. Raj Kamal 46
Pearson Education
we learnt
Overflow interrupt(s) of timer-counter
device -
• Initiate an action
• Initiate an action after pre-fixed
number of overflows
2011 Microcontrollers-... 2nd Ed. Raj Kamal 47
Pearson Education