目次PIC入門877ハードSFR


PIC16F877のSFR説明(1)

PORTD(Dポートレジスタ)/TRISD(Dポート設定レジスタ) 08h/88h
このレジスタは874および877に装備されているレジスタです。8ポートあります。

I/Oポート機能以外にパラレルスレーブポートとして使うことができます。パラレルスレーブポートは8ビットの並列通信を行う場合に使用します。
ポートの用途の切り替えはTRISEレジスタのPSPMODEで行います。このビットが"0"の場合にはPORTDはI/Oポートとして使用されます。PSPMODEが"1"の場合にはPORTDはパラレルスレーブポート(PSP)として使用されます。
I/Oポート時の入力/出力の切り替えはTRISDレジスタにより行います。TRISDレジスタの各ビットはPORTDレジスタの各ポートに対応しています。TRISDのビットを"0"にすると「出力ポート」、"1"にすると「入力ポート」として動作します。




PORTE(Eポートレジスタ) 09h
このレジスタは874および877に装備されているレジスタです。3ポートあります。

I/Oポート機能以外にパラレルスレーブポートの制御入力およびアナログ/デジタル変換の入力として使うことができます。
デジタルポートとして使用するか、AD変換のアナログポートとして使用するかはADCON1レジスタのPCFGビットで切り替えます。
また、デジタルポートの場合、I/Oポートとして使用するか、PSPの制御ポートとして使用するかはTRISEレジスタのPSPMODEにより切り替えます。
アナログ入力またはPSP制御ポートとして使用する場合、入出力モードは必ず入力モードに設定しなけれなばりません。




TRISE(Eポート設定レジスタ) 89h

このレジスタでEポートに関する各種設定を行います。
カッコ内の値は電源投入直後の状態です。

IBF : 入力バッファ・フル・ステータスビット (読込専用)
1:1 ワードを受信後、CPU がリードするのを待機中
0:ワードの受信なし

OBF : 出力バッファ・フル・ステータスビット (読込専用)
1:出力バッファはまだ以前にライトされたデータを保持している
0:出力バッファがリードされた

IBOV : 入力バッファ・オーバーフロー検出ビット( マイクロプロセッサモード時)
1:以前の入力ワードがまだリードされていない時、ライトが発生した(ソフトでのクリアが必要)
0:オーバーフローの発生なし

PSPMODE : パラレルスレーブポートモードセレクトビット
1:パラレルスレーブポートモード
0:汎用I/O モード

bit2 : RE2/CS(inv)/AN7 ピンの方向コントロールビット
1:入力
0:出力

bit1 : RE1/WR(inv)/AN6 ピンの方向コントロールビット
1:入力
0:出力

bit0 : RE0/RD(inv)/AN5 ピンの方向コントロールビット
1:入力
0:出力