STATUS(ステータスレジスタ) 03h,83h,103h,183h
このレジスタではRAMファイルレジスタのバンク指定、ウォッチドックタイマーのタイムアウト状態、パワーダウン状態、演算結果のフラッグなどが管理されます。
| カッコ内の値は電源投入直後の状態です。 |
FSR(間接アドレスレジスタ) 05h,85h,105h,185h
このレジスタはインダイレクトアドレス(間接アドレス)形式でレジスタのアドレスを指定するレジスタです。 |
|
FSRの最上位ビットはバンク指定の下位ビットに使用し、残りの7ビットでバンク内レジスタアドレスを指定します。バンク指定の上位ビットはSTATUSレジスタのIRPで指定します。
これについてはSTATUSレジスタの項目を参照して下さい。また、FSRで指定したレジスタの読み書きについてはINDFレジスタの項目を参照して下さい。 |
PORTn(ポートレジスタ)/TRISn(ポート設定レジスタ) 05h,06h,07h,106h/85h,86h,87h,186h
PORTnレジスタは入出力ポートへのデータ設定またはデータ取り込みを行うレジスタです。TRISnレジスタはポートを入力または出力に設定するためにレジスタです。PIC16F873ではnはAからCまでで、DおよびEはありません。
Aポートは6ポート(下位6ビットを使用)で、BおよびCは8ポートです。 |
|
各ポートの入出力指定はTRISnレジスタで行います。"0"を設定すると出力指定になり、"1"を設定すると入力指定になります。
出力はPORTnレジスタに設定すると同時にポートに出力されます。ポートからの入力は常にPORTnレジスタに現れているので、PORTnレジスタを読み込めば入力状態を取り込むことができます。
PORTレジスタおよびTRISレジスタは8ビット同時に読み書きが行われるので、設定を1ビットだけ変える場合には他のビットを変えないように処理する必要があります。レジスタを一度読み込んでから必要なビットを変更して書き込むような処理も良く使われます。各ビットの状態が分かっていればそのような処理でなくてもかまいません。 |
|