### 4-2　タイマー/カウンタ0（T0）

ビジュアルメモリ用カスタムチップに内蔵しているタイマー/カウンタ0（T0）は、次に示す4つの機能を持った16ビットタイマー/カウンタです。また、タイマー0のプリスケーラは、8ビットプリスケーラです。

タイマー/カウンタ0（T0）を制御するには、次に示す特殊機能レジスタを操作する必要があります。

T0H，T0HR，T0L，T0LR，T0CNT，T0PRR，ISL，I23CR

- モード0：8ビットリロードタイマー×2チャネル
- モード1：8ビットリロードタイマー＋8ビットリロードカウンタ
- モード2：16ビットリロードタイマー
- モード3：16ビットリロードカウンタ

####

4-2-1　機能

##### ■8ビットリロードタイマー×2チャネル（モード0）

8ビットプリスケーラからのクロックによって、2つの独立した8ビットリロードタイマー（T0H，T0L）が動作します。

##### ■8ビットリロードタイマー＋8ビットリロードカウンタ（モード1）

T0Hは、プリスケーラからのクロックによって8ビットリロードタイマーとして動作します。T0Lは、P72/INT2/T0IN端子、P73/INT3/T0IN端子からの外部入力信号を検出してカウントします。

##### ■16ビットリロードタイマー（モード2）

8ビットプリスケーラからのクロックによって16ビットリロードタイマー（T0H＋T0L）が動作します。

##### ■16ビットリロードカウンタ（モード3）

T0LのオーバーフローをT0Hのクロックとして使用し、16ビットリロードカウンタとして動作します。T0Lは、P72/INT2/T0IN端子、P73/INT3/T0IN端子からの外部入力信号をカウントします。

##### ■割り込みの発生

割り込み要求許可ビットがセットされている場合、レジスタT0HまたはT0Lのオーバーフローによって、T0HまたはT0L割り込み要求が発生します。

####

4-2-2　回路構成

タイマー/カウンタ0（T0）は、図26のように構成されています。

##### ■プリスケーラ　……　(1)

プリスケーラは、8ビットのプログラマブルカウンタです。

システムが動作している間、常にカウントが行なわれます。

サイクルクロックは、命令実行時またはHALTモード時に1サイクルごとに発生する信号です。

##### ■タイマー/カウンタ0下位（T0L）　……　(2)

プリスケーラ出力、または外部端子の信号（他のビジュアルメモリ）をクロックとする8ビットリロードタイマー/カウンタです。

モード0，1ではT0Lのオーバーフローで、モード2，3ではT0Hのオーバーフローで、T0LR（リロードレジスタ）の内容がそれぞれのカウンタにリロードされます。また、T0LRUN（T0CNTのビット6）をリセットしてカウントを中止させた場合にもリロードされます。

##### ■タイマー/カウンタ0上位（T0H）　……　(3)

プリスケーラ出力、またはT0Lのオーバーフローをクロックとする8ビットリロードタイマーです。

T0Hのオーバーフローでタイマー0の上位リロードレジスタ（T0HR）から内容がリロードされます。T0HRUN（T0CNTのビット7）をリセットしてカウントを中止させた場合にもリロードされます。

##### ■タイマー/カウンタ0制御レジスタ（T0CNT）　……　(4)

T0のモード0〜3設定や割り込み制御を行います。

▽ タイマー/カウンタ0ブロック図(図26)

####

4-2-3　関連レジスタ

##### ■タイマー/カウンタ0制御レジスタ（T0CNT）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0CNT | 14EH | R/W | P0HRUN | P0LRUN | P0LONG | P0LEXT | P0HOVF | T0HIE | T0LOVF | T0LIE
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

ビット名 | 機能
P0HRUN（ビット7） | T0Hカウント制御
0：カウントストップ／データリロード 1：カウントスタート
P0LRUN（ビット6） | T0Lカウント制御
0：カウントストップ／データリロード 1：カウントスタート
P0L0NG（ビット5） | タイマー／カウンタ0ビット長選択
0：8ビット 1：16ビット
P0LEXT（ビット4） | T0L入力ロック選択
0：プリスケーラ出力 1：外部端子入力信号 外部端子の場合、入力信号レジスタ(ISL)で端子を指定
P0H0VF（ビット3） | T0Hオーバーフローフラグ
0：オーバーフローフラグなし 1：オーバーフローフラグあり
T0HIE（ビット2） | T0H割り込み要求許可
0：割り込み要求禁止 1：割り込み要求許可
T0L0VF（ビット1） | T0Lオーバーフローフラグ
0：オーバーフローフラグなし 1：オーバーフローフラグあり
T0LIE（ビット0） | T0L割り込み要求許可
0：割り込み要求禁止 1：割り込み要求許可

##### ■T0HRUN（ビット7）：T0Hカウント制御

タイマー/カウンタ0の上位（T0H）に対して、カウントアップのスタート/ストップを制御します。カウントをスタートさせる場合は1をセットすることで、T0Hへのクロック供給がはじまります。カウントをストップさせる場合は、0にリセットすることで、クロックの供給が停止されると同時に、リロードデータ（T0HR）がT0Hに転送されます。

##### ■T0LRUN（ビット6）：T0Lカウント制御

タイマー/カウンタ0の下位（T0L）に対して、カウントアップのスタート/ストップを制御します。カウントをスタートさせる場合は1をセットすることで、T0Lへのクロック供給がはじまります。カウントをストップさせる場合は0にリセットすることで、クロックの供給が停止されると同時に、リロードデータ（T0LR）がT0Lに転送されます。

##### ■T0LONG（ビット5）：タイマー/カウンタ0ビット長選択

T0のビット長を指定します。16ビットカウンタにする場合は1を、8ビットカウンタにする場合は0を指定します。

モード0または1で使用する場合は‘0’を、モード2または3で使用する場合は‘1’を指定します。

モード | T0LONG | T0LEXT
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

##### ■T0LEXT（ビット4）：T0L入力クロック選択

T0Lへ共有するクロックを指定します。クロックは、外部端子入力信号（他のビジュアルメモリを接続した場合）とプリスケーラからの出力のどちらかを選べます。

1をセットすると外部端子入力信号が供給され、0にリセットするとプリスケーラ出力が供給されます。

外部端子信号（1）の場合、ポートP72（INT2/T0IN端子）かP73（INT3/T0IN端子）のどちらかを信号をT0Lのクロックとして供給できます。P72とP73の切り替えは、入力信号選択レジスタ（ISL）によって行ないます。

##### ■T0HOVF（ビット3）：T0Hオーバーフローフラグ

T0Hのオーバーフローが発生した場合にセットされ、発生しない場合変化しません。

このフラグは、アプリケーションのT0Hの割り込み処理ルーチンなどでリセットする必要があります。

##### ■T0HIE（ビット2）：T0H割り込み要求許可制御

T0Hのオーバーフローによる割り込み要求を許可または禁止します。

‘1’をセットすると、T0Hのオーバーフローによって割り込みベクトル0023HがCALLされます。‘0’にリセットすると、割り込み要求は発生しません。

##### ■T0LOVF（ビット1）：T0Lオーバーフローフラグ

T0Lのオーバーフローが発生した場合にセットされ、発生しない場合変化しません。

このフラグは、アプリケーションのT0Lの割り込み処理ルーチンなどでリセットする必要があります。

16ビットカウンタとして利用している場合は、T0Lでオーバーフローが発生してもこのフラグはセットされません。T0Hでオーバーフローが発生した場合にT0HOVFと同時にセットされます。

##### ■T0LIE（ビット0）：T0L割り込み要求許可制御

T0Lのオーバーフローによる割り込み要求を許可または禁止します。

‘1’をセットすると、T0Lのオーバーフローによって割り込みベクトル0013HがCALLされます。‘0’にリセットすると、割り込み要求は発生しません。

- オーバーフローフラグ（T0HOVF、T0LOVF）は、アプリケーションのそれぞれの割り込み処理ルーチンにおいて‘0’にリセットしてください。
- 16ビットカウンタとして使用する場合は、T0HRUNとT0LRUNを同時に‘1’にセットしてください。
- 16ビットカウンタとして使用している場合は、T0HOVFとT0LOVFが同時に‘1’にセットされます。

#### 入力信号選択レジスタ（ISL）

このレジスタでは、P73（INT3/T0IN端子）に接続されているノイズ除去フィルタの時定数選択、外部信号入力端子の選択に使用します。

このレジスタは、アプリケーションから操作しないでください。

シンボル | アドレス | R/W | ビット７ | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
ISL | 15FH | R/W | − | − | ISL5 | ISL4 | ISL3 | ISL2 | ISL1 | ISL0
リセット時 | H | H | 0 | 0 | 0 | 0 | 0 | 0

ビット名 | 機能
ISL5（ビット5） ISL4（ビット4） | ベースタイマークロック選択
ISL5 | ISL4 |
1 0 X | 1 1 0 | タイマー／カウンタT0プリスケーラ サイクルクロック 水晶発振
ISL3（ビット3） | 使用不可
0：FBST/16 固定 １：使用不可
ISL2（ビット2） ISL1（ビット1） | ノイズ除去フィルタ時定数選択
ISL2 | ISL1 |
1 0 X | 1 1 0 | 16Tcyc 64Tcyc 1Tcyc
ISL0（ビット0） | T0のクロック入力端子選択
0：P72/INT2/T0IN端子 1：P73/INT3/T0IN端子

##### ■ISL5〜4（ビット5〜4）：ベースタイマークロック選択

ベースタイマーの入力クロックを選択します。

ISL5 | ISL4 | ベースタイマーの入力クロック
0 | 0 | 水晶発振固定

##### ■ISL3（ビット3）：使用不可

このビットは使用不可能です。

##### ■ISL2〜1（ビット2〜1）：ノイズ除去フィルタ時定数選択

ノイズ除去フィルタの時定数を選択します。

ISL2 | ISL1 | 時定数
0 | 0 | 1Tcyc

次の表は、各時定数の信号、ノイズの範囲を示したものです。

時定数 | ノイズ*1 | ノイズ/信号*2 | 信号*3
1Tcyc | ＜ 1Tcyc | 1Tcyc - 2Tcyc | 2Tcyc ＜

- 記述されている時定数に満たない信号はノイズと判断され取り込まれません。
- 記述されている時定数の範囲内にある信号はノイズと判断され取り込まれないことがあります。
- 記述されている時定数を越える信号は「信号」として取り込まれます。

##### ■ISL0（ビット0）：T0のクロック入力端子選択

T0の外部信号入力端子、P73（INT3/T0IN端子）またはP72（INT2/T0IN端子）を選択します。

‘0’にリセットするとP72（INT2/T0IN端子）がT0のクロックとして供給されます。

‘1’をセットするとP73（INT3/T0IN端子）がT0のクロックとして供給されます。

#### タイマー0プリスケーラデータレジスタ（T0PRR）

タイマー0プリスケーラデータレジスタは、タイマー/カウンタ0のクロック周期の設定を行います。8ビットのプログラマブルカウンタにより、256とおりの設定が可能です。

8ビットプリスケーラはサイクルクロックそのものがクロックとして入力されます。T0PRR（111H）に任意のデータを設定することによって、タイマー/カウンタ0のクロック周期TPRを設定できます。

8ビットプリスケーラ　：TPR ＝ 1×Tcyc×（256−［T0PRR］）　（10進）

s Tcyc：サイクルクロックの周期

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0PRR | 111H | R/W | T0PRR7 | T0PRR6 | T0PRR5 | TOPRR4 | T0PRR3 | T0PRR2 | T0PRR1 | T0PRR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

#### タイマー0下位レジスタ（T0L）

8ビットのタイマー/カウンタです。

プリスケーラからの出力もしくは、P72（INT2/T0IN端子）またはP73（INT3/T0IN端子）の外部信号をクロックとして入力するかを選択できます。

クロックによりカウントアップし、オーバーフローするとオーバーフローフラグがセットされ割り込みが発生します。

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0L | 112H | R | T0L7 | T0L6 | T0L5 | T0L4 | T0L3 | T0L2 | T0L1 | T0L0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

#### タイマー0下位リロードレジスタ（T0LR）

タイマー/カウンタ0の下位（T0L）にリロードされるデータをセットします。

8ビットで使用しているときは、このリロードレジスタの内容がT0Lにリロードされます。

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0LR | 113H | R/W | T0LR7 | T0LR6 | T0LR5 | T0LR4 | T0LR3 | T0LR2 | T0LR1 | T0LR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

#### タイマー0上位レジスタ（T0H）

8ビットのタイマー/カウンタです。

プリスケーラからの出力もしくは、T0Lのオーバーフロー（T0LOVF）により、カウントアップされます。

オーバーフローするとオーバーフローフラグ（T0HOVF）がセットされ割り込みが発生します。

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0H | 114H | R | T0H7 | T0H6 | T0H5 | T0H4 | T0H3 | T0H2 | T0H1 | T0H0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

#### タイマー0上位リロードレジスタ（T0HR）

タイマー/カウンタ0の上位（T0L）にリロードされるデータをセットします。

T0Hのオーバーフローおよび、カウントをストップした（T0HRUN＝0）ときに、このレジスタの内容がT0Hにリロードされます。

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
T0HR | 115H | R/W | T0HR 7 | T0HR6 | T0HR5 | T0HR4 | T0HR3 | T0HR2 | T0HR1 | T0HR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

#### 外部割り込み2、3制御レジスタ（I23CR）

外部入力信号の検出、割り込みを設定します。

ISL0 | I23CR7 | I23CR6 | I23CR3 | I23CR2 | 外部信号カウント条件
1 | 0 | 1 | − | − | P73/INT3/T0IN端子 立ち下がり カウント
1 | 1 | 0 | − | − | P73/INT3/T0IN端子 立ち上がり カウント
1 | 1 | 1 | − | − | P73/INT3/T0IN端子 両エッジ カウント
0 | − | − | 0 | 1 | P72/INT2/T0IN端子 立ち下がり カウント
0 | − | − | 1 | 0 | P72/INT2/T0IN端子 立ち上がり カウント
0 | − | − | 1 | 1 | P72/INT2/T0IN端子 両エッジ カウント
− | 0 | 0 | 0 | 0 | カウントしない

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
I23CR | 15EH | R/W | I23CR7 | I23CR6 | I23CR5 | I23CR4 | I23CR3 | I23CR2 | I23CR1 | I23CR0
リセット時 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0

入力信号選択レジスタのISL0フラグと組み合せて、カウントの条件を指定します。組み合せは、次の表のとおりです。

ビット名 | 機能
I23CR7（ビット7） | INT3立ち上がりエッジ検出制御
0：検出しない 1：検出する
I23CR6（ビット6） | INT3立ち下がりエッジ検出制御
0：検出しない 1：検出する
I23CR5（ビット5） | INT3割り込み要因
0：割り込み要因なし 1：割り込み要因あり
I23CR4（ビット4） | INT3割り込み要求許可制御
0：割り込み要求禁止 1：割り込み要求許可
I23CR3（ビット3） | INT2立ち上がりエッジ検出制御
0：検出しない 1：検出する
I23CR2（ビット2） | INT2立ち下がりエッジ検出制御
0：検出しない 1：検出する
I23CR1（ビット1） | INT2割り込み要因
0：割り込み要因なし 1：割り込み要因あり
I23CR0（ビット0） | INT2割り込み要求許可制御
0：割り込み要求禁止 1：割り込み要求許可

##### ■I23CR7（ビット7）：INT3立ち上がりエッジ検出制御

P73（INT3/T0IN端子）の割り込み信号で、立ち上がりエッジ割り込みを検出するかどうかを指定します。

‘1’をセットすると、P73からの割り込み信号INT3の立ち上がりエッジ割り込みを検出します。INT3の割り込みが発生すると、I23CR5が1にセットされ、割り込み要求が許可（I23CR4＝1）されていれば、割り込みベクトルで指定された、割り込み処理ルーチンがCALLされます。

‘0’にリセットすると、割り込み信号の立ち上がりエッジを検出しません。

##### ■I23CR6（ビット6）：INT3立ち下がりエッジ検出制御

P73（INT3/T0IN端子）の割り込み信号で、立ち下がりエッジ割り込みを検出するかどうかを指定します。

‘1’をセットすると、P73からの割り込み信号INT3の立ち下がりエッジ割り込みを検出します。INT3の割り込みが発生すると、I23CR5が1にセットされ、割り込み要求が許可（I23CR4＝1）されていれば、割り込みベクトルで指定された、割り込み処理ルーチンがCALLされます。

‘0’にリセットすると、割り込み信号の立ち下がりエッジを検出しません。

##### ■I23CR5（ビット5）：INT3割り込み要因

P73（INT3/T0IN端子）のエッジ割り込みを検出した場合、このフラグがセットされます。

このフラグは、アプリケーションの割り込み処理ルーチンでフラグをリセットしてください。

##### ■I23CR4（ビット4）：INT3割り込み要求許可

INT3割り込みを許可または禁止します。

‘1’をセットすると、I23CR5フラグがセットされたときにINT3の割り込みベクトルがCALLされます。

‘0’にリセットすると、割り込みが発生しても割り込み処理ルーチンへのCALLは行われません。

##### ■I23CR3（ビット3）：INT2立ち上がりエッジ検出制御

P72（INT2/T0IN端子）の割り込み信号で、立ち上がりエッジ割り込みを検出するかどうかを指定します。

‘1’をセットすると、P72からの割り込み信号INT2の立ち上がりエッジ割り込みを検出します。INT2の割り込みが発生すると、I23CR1が1にセットされ、割り込み要求が許可（I23CR4＝0）されていれば、割り込みベクトルがCALLされます。

##### ■I23CR2（ビット2）：INT2立ち下がりエッジ検出制御

P72（INT2/T0IN端子）の割り込み信号で、立ち下がりエッジ割り込みを検出するかどうかを指定します。

‘1’をセットすると、P72からの割り込み信号INT2の立ち下がりエッジ割り込みを検出します。INT2の割り込みが発生すると、I23CR1が1にセットされ、割り込み要求が許可（I23CR4＝0）されていれば、割り込みベクトルがCALLされます。

##### ■I23CR1（ビット1）：INT2割り込み要因

P72（INT2/T0IN端子）のエッジ割り込みを検出した場合、このフラグがセットされます。

このフラグは、アプリケーションの割り込み処理ルーチンでフラグをリセットしてください。

##### ■I23CR0（ビット0）：INT2割り込み要求許可制御

INT2割り込みを許可または禁止します。

‘1’をセットすると、I23CR1フラグがセットされたときにINT2の割り込みベクトルがCALLされます。

‘0’にリセットすると、割り込みが発生しても割り込み処理ルーチンへのCALLは行われません。

- I23CR7，6またはI23CR3，2がともに‘0’の場合には、エッジ検出をしません。また、ともに‘1’の場合には両エッジを検出します。
- P73（INT3/T0IN端子）からの入力には、ノイズ除去フィルタが接続されています。

####

4-2-4　回路構成と動作説明

#### タイマー0のモード設定

モード | T0LONG | T0LEXT
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

#### モード0：8ビットリロードタイマー×2チャネル

モード0の場合、タイマー0は2チャネルの8ビットリロードタイマーとして機能します。タイマー値とリロードレジスタ（T0LR）設定値の関係は、次のようになっています。

T0HOVFがセット（1）されるまでの時間（10進）　＝　（256-T0HR設定値）×TPR T0LOVFがセット（1）されるまでの時間（10進）　＝　（256-T0LR設定値）×TPR

TPR：プリスケーラからのクロックの周期

カウント制御ビット（T0HRUN，T0LRUN）をセットすると、カウントを開始します。リセットすると、カウントを停止し、リロードレジスタ（T0HR，T0LR）の内容がカウンタ（T0H，T0L）に転送されます。

タイマー/カウンタ0（T0H、T0L）がオーバーフローすると、オーバーフローフラグ（T0HOVF，T0LOVF）がセットされ、リロードレジスタ（T0HR、T0LR）の内容がカウンタ（T0H，T0L）に転送されます。

また、オーバーフローフラグ（T0HOVF，T0LOVF）と、割り込み要求許可フラグ（T0HIE，T0LIE）が、ともにセットされていれば、割り込み制御回路に割り込み要求を知らせます。

▽ モード0：8ビットリロードタイマー×2チャネルの回路構成(図27)

##### ■モード0のプログラム例

▽ フローチャートとプログラム(図28)

#### モード1：8ビットリロードタイマー＋8ビットリロードカウンタ

##### ■8ビットリロードタイマー

タイマー0の上位8ビット（T0H）は、8ビットリロードタイマーとして動作します。タイマー値とリロードレジスタ（T0HR）設定値の関係は、次のようになります。

T0HOVFがセット（1）されるまでの時間（10進）　＝　（256-T0HR設定値）×TPR

TPR：プリスケーラからのクロックの周期

T0HOVFがセットされるごとに、リロードレジスタの値がカウンタT0Hに転送されます。　また、T0Hカウント制御ビット（T0HRUN）をリセットするまでタイマー動作を継続します。操作方法は、モード0と同じです。

▽ モード1：8ビットリロードタイマー（T0H）ブロック図(図29)

##### ■8ビットリロードカウンタ

タイマー0の下位8ビット（T0L）は、外部端子から入力される信号をカウントアップします。

外部信号は、ノイズ除去フィルタによってフィルタリングされます。詳細は「4.2　タイマー/カウンタ0（T0）」の「入力信号選択レジスタ（ISL）」を参照してください。

計数値とリロードレジスタ（T0LR）設定値の関係は、次のようになります。

T0LOVFが’セット（1）されるまでの計数値（10進）　＝　256−（T0LR設定値）

T0Lオーバーフローフラグ（T0LOVF）がセットされると、リロードレジスタ（T0LR）の値がカウンタ（T0L）に転送されます。また、T0Lカウント制御ビット（T0LRUN）をリセットするまでタイマー動作を継続します。

▽ モード1：8ビットリロードカウンタ（T0L）ブロック図(図30)

##### ■モード1のプログラム例

▽ フローチャートとプログラム(図31)

#### モード2：16ビットリロードタイマー

モード2は、T0HとT0Lをシリーズに接続し、16ビットのタイマーとして使用します。

タイマーをスタートさせる場合は、T0HとT0Lのカウント制御ビット（T0HRUN，T0LRUN）を同時にセットします。

タイマー値とリロードレジスタ（T0HR，T0LR）設定値の関係は、次のようになります。

T0HOVFがセット（1）されるまでの時間（10進）　s＝　（65536-256×（T0HR設定値）−（T0LR設定値））×TPR

TPR：プリスケーラからのクロックの周期

T0LOVFとT0HOVFは同時にセットされ、T0HOVFが発生するごとにリロードレジスタ（T0LR，T0HR）の値が、T0L，T0Hに同時に転送されます。カウント制御ビットをリセットするまでタイマー動作を継続します。操作方法は、モード0と同じです。

タイマー0（T0）のデータを読み出す場合は、次の手順で読み出してください。

>     T0L   LD      T0L         ; T0Lのデータ（1）を読みます。
>     ↓    ST      020H
>     T0H   LD      T0H         ; T0Hのデータを読みます。
>     ↓    ST      021H
>     T0L   LD      T0L         ; もう一度T0L（2）のデータを読みます。
>     ↓    BP      T0L,7,DES   ; T0L（2）のビット7が‘0’で、
>     　    BN      020H,7,DES  ; T0L（1）のビット7が‘1’であるときは
>     　    ST      020H
>     T0H   LD      T0H         ; T0H（2）を読みます。
>     　    ST      021H
>     　    DES:   − next program

▽ モード2：16ビットリロードタイマーブロック図(図32)

##### ■モード2のプログラム例

▽ フローチャートとプログラム(図33)

#### モード3：16ビットリロードカウンタ

モード3は、T0HとT0Lをカスケードに接続して16ビットのカウンタとして使用します。クロックはP72（INT2/T0IN端子）またはP73（INT3/T0IN端子）から入力される外部信号です。外部入力端子の選択は、SFRのISLレジスタで行います。なおP73（INT3/T0IN端子）にはノイズ除去フィルタが接続されています。

カウンタをスタートさせる場合は、T0HとT0Lのカウンタ制御ビット（T0HRUN，T0LRUN）を同時にセットします。

計数値とリロードレジスタ（T0HR，T0LR）設定値の関係は、次のようになります。

T0HOVFがセット（1）されるまでの計数値　s＝　65536-256×（T0HR設定値）−（T0LR設定値）

T0LOVFとT0HOVFは同時にセットされ、T0HOVFが発生するごとにリロードデータ（T0LR，T0HR）がT0L，T0Hに同時に転送されます。カウント制御ビットをリセットするまでカウントを継続します。操作方法は、モード0と同じです。

タイマー0（T0）のデータを読み出す場合は、次の手順で読み出してください。

>     T0L   LD      T0L         ; T0Lのデータ（1）を読みます。
>     ↓    ST      020H
>     T0H   LD      T0H         ; T0Hのデータを読みます。
>     ↓    ST      021H
>     T0L   LD      T0L         ; もう一度T0L（2）のデータを読みます。
>     ↓    BP      T0L,7,DES   ; T0L（2）のビット7が‘0’で、
>     　    BN      020H,7,DES  ; T0L（1）のビット7が‘1’であるときは
>     　    ST      020H
>     T0H   LD      T0H         ; T0H（2）を読みます。
>     　    ST      021H
>     　    DES:   − next program

▽ モード3：16ビットリロードカウンタブロック図(図34)

##### ■モード3のプログラム例

▽ フローチャートとプログラム(図35)

[←] | [INDEX] | [→]