0% found this document useful (0 votes)
129 views47 pages

MicroC2 eCH06L1ProgTimerCounter PDF

The document discusses various features of programmable timer-counter devices used in microcontrollers. It describes how timers can be programmed to count internal or external clock signals, with options to pre-scale the clock frequency. Timers can be configured to reset their count to 0 upon overflow or by writing a reset value. The document provides examples of programming timers in 8051, 8052, and 68HC11 microcontrollers to count over time intervals, reload counts upon overflow, and start or stop counting based on control bits or external signals.

Uploaded by

HOD EEE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
129 views47 pages

MicroC2 eCH06L1ProgTimerCounter PDF

The document discusses various features of programmable timer-counter devices used in microcontrollers. It describes how timers can be programmed to count internal or external clock signals, with options to pre-scale the clock frequency. Timers can be configured to reset their count to 0 upon overflow or by writing a reset value. The document provides examples of programming timers in 8051, 8052, and 68HC11 microcontrollers to count over time intervals, reload counts upon overflow, and start or stop counting based on control bits or external signals.

Uploaded by

HOD EEE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

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

You might also like