ほぷしぃ

P-ROBO(ピーロボ)

始めに /  P-ROBOプログラミングの基本 /  レジスタの設定 /  割り込み処理 /  メイン関数 /  初期化 /  サブ関数群 /  実走行

レジスタの設定

P-ROBOを制御するにあたって、以下のレジスタを定義します。

レジスタファイル配置図

PIC16F84では下記のようにレジスタファイルが配置されています。
Address Name Comment
Bank 0
00h INDF FSRの内容のアドレスのデータメモリ(物理的には存在しない)
01h TMR0 8ビットリアルタイム・クロック/カウンタ
02h PCL プログラムカウンタの下位8ビット
03h STATUS ALUの演算フラグ、リセット状態、およびデータメモリのバンク選択ビットを含む
04h FSR 間接データメモリアドレスポインタ
05h PORTA I/OポートA
06h PORTB I/OポートB
07h   使用しない
08h EEDATA EEPROMデータレジスタ
09h EEADR EEPROMアドレスレジスタ
0Ah PCLATH PCの上位5ビットへの書き込みバッファ
0Bh INTCON 全ての割り込みソースのイネーブルビットを含む
Bank 1
80h INDF FSRの内容のアドレスのデータメモリ(物理的には存在しない)
81h OPTION_REG PORTBにTMR0/WDTプリスケーラ、外部INT割り込み、TMR0、プルアップを設定するための各種コントロールビットを含む
82h PCL プログラムカウンタの下位8ビット
83h STATUS ALUの演算フラグ、リセット状態、およびデータメモリのバンク選択ビットを含む
84h FSR 間接データメモリアドレスポインタ
85h TRISA PORTAデータ入出力設定レジスタ
86h TRISB PORTBデータ入出力設定レジスタ
87h   使用しない
88h EECON1 EEPROM制御レジスタ
89h EECON2 EEPROM制御レジスタ(物理的には存在しない)
0Ah PCLATH PCの上位5ビットへの書き込みバッファ
0Bh INTCON 全ての割り込みソースのイネーブルビットを含む

レジスタ設定内容

piccでは変数に特定のアドレスを割り当てるには【 @ 】を使用します。下記のアドレスはPIC16F84特有のアドレスなので、変更することは出来ません。詳細についてはハードウェアマニュアルやPIC16F84のデータシートを参照してください。ここではライントレースを行う上で必要になるレジスタのみを設定しています。

unsigned int uiTMR0 @ 0x01; // 0x01 8ビットリアルタイム・クロック/カウンタ
      int iPORTA @ 0x05; // 0x05 I/Oポート A
      int iPORTB @ 0x06; // 0x06 I/Oポート B
      int iINTCON @ 0x0B; // 0x0B 割り込み制御レジスタ
      int iOPTION @ 0x81; // 0x81 オプションレジスタ
      int iTRISA  @ 0x85; // 0x85 I/Oポート Aの入出力設定レジスタ
      int iTRISB  @ 0x86; // 0x86 I/Oポート Bの入出力設定レジスタ

前のページへ ページのトップへ 次のページへ