【概要】
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の場合のみ