LEDを2個点灯させる。
前回までで、LEDを点灯させることができました。
今回は、黄色のLEDを追加して、赤色LEDと黄色LEDを点灯させる。
黄色のLEDを追加配線いたしました。
回路図は、上のようになります、18番ピン(RA1)に、追加のLEDを繋ぎました。
プログラムは、上のように変更しました、ここで、注意することがあります。
前回のプログラムには無かった、CMCON=0x07; という命令が追加されています、この命令が必要なことを解説します。
まず、PIC16F627Aのピン配置図を確認します。
最初に赤色LEDをPICに接続したのは、RB5(11番ピン)でしたが、黄色LEDを接続したのは、RA1/AN1(18番ピン)でした、18番ピンには、RA1とAN1の2つの名前が書いてあります、これは、18番ピンはRA1とAN1の2つの用途に使うと言う事です、
上の表から、RA1は入出力ピン用途で、AN1はアナログコンパレーターの入力ピン用途だと言う事が分かります(TABLE 3-2参照)。
18番ピンをRA1とAN1の2つの用途に同時に使えませんので、18番ピンの用途に応じRA1とAN1どちらかに切り替える必要がありますが、それを指定するのがCMCONレジスタです。
このように、PICは多機能なので、各ピンはいくつかの機能で兼用されており、プログラムにあたり、PICの説明書を良く読んで、各ピンのどの機能を使うかにより、プログラムを適正に書かねばなりません(下は、PICの説明書、MICROCHIPのHPからダウンロード)。
では、CMCONレジスタですが、左下1Fh番地にあります。
この表では、一番下に書いてあります。
下の表は、CMCONレジスタの内容です。
下の表は、上の表のbit2-0 CM2:CM0 Comparator Mode セッティングの一覧です。
では、CMCON = 0x07;という命令になる解説をします。
まず、TEBLE 4-3 を見ます、CMCONレジスタは1Fh番地一番下にあります。
そのCMCONレジスタの各ビットの設定方法が REGISTER 10-1 に書かれています。
18番ピンの用途に応じRA1とAN1どちらかに切り替えるには、bit2-0 CM2:CM0 Comparator Mode セッティング で行います。
ここで、TEBLE 4-3 を見ますと、CMCONレジスタの欄の右から2番目に 0000 0000 と書かれています、このマスから上にたどって表の項目を見ると、Value on POR Reset
になっています、これは、CMCONレジスタの Value on POR Reset (電源投入時の初期値)は、0000 0000 つまり、CMCON = 0x00だと言う事です。
今回は18番ピンは入出力ピンとして使うので、コンパレーターは使わない設定にします、FIGURE 10-1 を見ますと、コンパレーターを使わない設定は、一番上の右側のComparator Off の欄になり、CM2/CM0 = 111 と書かれております、そこで、REGISTER 10-1 を見て、下位3ビットに111をいれ、その他のビットは、コンパレーターを使わないので設定値は関係なくなるので、初期値の0のままとすると、CMCON = 0000 0111 となるので、16進数に変換して、CMCON = 0x07;命令をプログラムに記述することになります。
今回の黄色LEDは、RA1に接続したので、ポートAを操作します、コンパイルすると無事完了しましたので、PIC16F627Aに焼きます。
はい、無事ビルド終了し、PICに焼けました。
早速、PICをブレッドボードに移して、動作を確認しました。
これで、LEDを点灯させるという目標は達成しました。
しかし、確かに、赤色LEDと黄色LEDが点灯していますが、本当にプログラムで制御されて、点灯しているのかわからないですね。
そこで、LEDの点灯が、作ったプログラムで制御されているのが分かるように、
次の目標は、LEDを点滅させることにします、いわゆるLEDチカチカです。
今回は、ここまで。