
W742S81A
- 16 -
6.12 Timer/Counter
6.12.1 Timer 0 (TM0)
Timer 0 (TM0) is a programmable 8-bit binary down-counter. The specified value can be loaded into TM0
by executing the MOV TM0L(TM0H),R instructions. When the MOV TM0L(TM0H),R instructions are
executed, it will stop the TM0 down-counting (if the TM0 is down-counting) and reset the MR0.3 to 0, and
the specified value can be loaded into TM0. Then we can set MR0.3 to 1, that will cause the event flag 1
(EVF.1) is reset and the TM0 starts to count. When it decreases and underflow to FFH, Timer 0 stops
operating and generates an underflow (EVF.1 = 1). Then, if the Timer 0 interrupt enable flag has been set
(IEF.1 = 1), the interrupt is executed, while if the hold release enable flag 1 has been set (HEF.1 = 1), the
hold state is terminated. The Timer 0 clock input can be set as F
OSC
/1024 or F
OSC
/4 by setting MR0.0 to 1
or resetting MR0.0 to 0. The default timer value is F
OSC
/4. The organization of Timer 0 is shown in
Figure 6-6.
If the Timer 0 clock input is F
OSC
/4:
Desired Timer 0 interval = (preset value +1)
×
4
×
1/F
OSC
If the Timer 0 clock input is F
OSC
/1024:
Desired Timer 0 interval = (preset value +1)
×
1024
×
1/F
OSC
Preset value: Decimal number of Timer 0 preset value
F
OSC
: Clock oscillation frequency
Fosc/4
Fosc/1024
Enable
Disable
1. Reset
2. CLR EVF,#02H
3. Reset MR0.3 to 0
4.MOV TM0L,R or MOV TM0H,R
8-Bit Binary
Down Counter
(Timer 0)
S
R
Q
HEF.1
IEF.1
Hold mode release (HCF.1)
Timer 0 interrupt (INT1)
1. Reset
2. CLR EVF,#02H
3.Set MR0.3 to 1
EVF.1
MR0.0
Set MR0.3 to 1
4
4
MOV TM0H,R
MOV TM0L,R
Figure 6-6 Organization of Timer 0
6.12.2 Timer 1 (TM1)
Timer 1 (TM1) is also a programmable 8-bit binary down counter, as shown in Figure 6-7. Timer 1 can