PIC16F630/676の入出力ポートの使い方


【概要】

PIC16F630/676の入出力ピンは、他のミッドレンジの配列とかなり異なって
いますので、注意が必要です。
まず、ピン配置ですが、下図のような配置になっていて下記のような特徴
があります。

 ・ポートAとポートCでいずれも最大6ピンまで(8ピンのものは無い)
 ・ポートAが、MCLR、OSC、状態変化割込みなど複合ピンとなっている
 ・1ピン毎にアナログ入力かディジタルかを指定できる
 ・電源とGNDピンが端にある
 ・プログラミング用のピン配置は他のPICと互換になっている

 



個々のピンは多くの機能で複合して使われています。この内容が下表になります。
表中の影付きのところは、PIC16F676の場合だけです。





【関連SFR】

入出力ピンに関係する特殊機能レジスタ(SFR)は下記となっています。

(1)ポートA関連
  まず、ポートAの実体となるPORTAレジスタは下図のようになっています。
  図のように6ビットしかありません。  
 



 次に、入出力を設定するためのTRISAレジスタは、下図のようになっています。
RA3ピンだけはMCLRと複合しているため出力には使えず、入力だけです。
従ってTRISA<3>は常に1です。




そして、ポートAはデフォルトがコンパレータ用のアナログ入力になっていますので、
ディジタルモードの入出力として使うときには、CMCONレジスタとANSELレジスタ
でアナログ入力モードをオフにしておく必要があります。
この初期化の手順は、PIC16F676の場合は下記のようにします。PIC16F630の場合
にはANSELレジスタの設定は必要ありません。

《ポートA初期化手順》(PIC16F676の場合)




さらにポートAは、RA3を除く全てのピンに内部プルアップ抵抗が付けられるように
なっていて、しかもピン毎にプルアップをする/しないを指定することができます。
それを指定するレジスタはWPUAレジスタで、下図のようになっています。
リセット時はすべてオンになっています。




さらにポートAにはもうひとつの機能があって、各ピンにすべて状態変化割込み
発生機能があります。それを使う/使わないの設定をするのが、IOCAレジスタ
です。このレジスタで「1」と設定したピンは入力変化で割込みが発生します。
リセット時はすべて「0」で状態変化割込みは使わないようになっています。





(2)ポートC関連
  ポートCは、簡単な構成となっていて、アナログ入力以外に複合した機能は
 ありません。
 まず、ポートCの実体となるPORTCレジスタは下図のようになっています。




 次に入出力を指定するTRISCレジスタは下図のようになっています。



PIC16F676の場合には、ポートCもデフォルトはアナログ入力モードになって
いますので、ANSELレジスタでディジタルモードに初期化する必要があります。
このポートCの初期化手順は下記のようにします。

《ポートCの初期化手順》PIC16F676の場合のみ





  目次ページに戻る