
INDF(インダイレクトアドレスメモリ) 00h,80h,100h,180h
このレジスタはインダイレクトアドレス(間接アドレス)形式でレジスタの内容を読み書きする際に使用します。 |
 |
INDFの内容はFSRレジスタに設定したアドレスのレジスタ内容と同じになります。INDFの内容を書き換えるとFSRが示すアドレスのレジスタ内容を書き換えることができます。
INDFレジスタの実体はありません。FSRが示すアドレスのレジスタをINDFに見せかけています。あまり深く考えずに読み書きしたいレジスタのアドレスをFSRに設定し、INDFに読み書きをすれば良いのです。 |

TMR0(タイマー0カウントレジスタ) 01h,101h
このレジスタはタイマー0のカウント用のレジスタです。最大255までのカウント値を設定することができます。 |
 |
ハードタイマーで設定した時間でカウントアップされ、オーバーフローしたときにタイムアウト割り込みが発生します。ですから、設定値が255のときタイマー割り込み時間は最短になり、0のときは最長になります。
タイマーの詳細は「タイマー(TMR0)の仕様」を参照して下さい。 |

PCL(プログラムカウンタ下位レジスタ) 02h,82h,102h,182h
このレジスタはプログラム実行カウンタ(プログラム実行アドレス)の下位8ビットを格納するレジスタです。 |
 |
PIC16シリーズではプログラムエリアは最大8Kワードで13ビットでプログラムアドレスを指定する構成になっています。PCLにはそのうちの下位8ビットが格納されます。上位5ビットはPCLATHレジスタに格納され、両レジスタの内容を合成してプログラムアドレスが指定されます。
PIC16F873ではプログラムメモリの容量は4Kワードです。 |
|