« 「天文屋のためのマイコン入門」LEDプログラムの解説 | トップページ | 「天文屋のためのマイコン入門」プログラム解説 »

2014年6月 9日 (月)

「天文屋のためのマイコン入門」7セグメントLEDを付ける

まず最初に、謝らなければならないことがあります。大事な設定の説明を忘れていました。それは、デフォルトの基数の設定です。

これから先、プログラムを記述するのにデフォルトの基数を10進数としたいのですが、それにはMPLIBの設定が必要なのです。これをしないと、たとえば、

10

と書いた場合、10進数の10ではなく16進数の10(つまり10進の16)と解釈されてしまうのです。

方法は次の通りです。

MPLIBを起動し、プロジェクトを新規作成、または開いたら、メニューの[Project]->[Build options]->[Project]を開き、[MPASM Assembler]のタブをクリックします。

1406091

Default RadixのところををDecimalとします。

ただ、この設定はプロジェクト毎に行う必要があり、忘れる可能性があります。(実際私は忘れた)

そこで、プログラム中で設定する方がいいと思います。プログラムの一番最初に次の一文を書けばOKです。

Radix DEC

なおデフォルト基数を10進数としましたが、この場合、16進数を書くには以下の方法があります。

●H'    'で囲う  例 H'9b'
●最後にhを付ける 例 9bh
●最初に0xを付ける 例 0x9b

どの方法でも良いのですが、PICのマニュアルの記述が最後にhを付ける方式なので、今後そうします。

それでは、7セグメントLEDを取り付けます。まず、回路図です。

1406092

ほんとは、7セグメントLEDの7個のLEDを全部、ポートBに接続したかったのですが、ポートBのRB2とRB5は、スマフォの無線通信のために使うので、どうしても空けておく必要があります。そこで泣く泣く、1本だけ、ポートAのRA6に接続しました。

ですから、この7セグメントLEDを操作するにはポートAとポートBの両方をアクセスする必要があります。

ただ、ポートAは1ビットしか使っていないので、ビット操作命令(BCF/BSF)を使うことにします。

この接続の場合の、ポートへ出力するデータと7セグメントLEDの数字の関係を次に示します。

1406097

配線図は次の通りです。

1406093

実際の完成写真です。

1406094

1406095

プログラムを作ります。MPLIBを起動したらプロジェクトを新規に作成し、以下のようなプログラムを記述します。

1406096

このプログラムは、スイッチを押すとLEDと7セグメントLEDが点灯し、離すと消灯するプログラムです。プログラムの解説は次回します。

|

« 「天文屋のためのマイコン入門」LEDプログラムの解説 | トップページ | 「天文屋のためのマイコン入門」プログラム解説 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「天文屋のためのマイコン入門」LEDプログラムの解説 | トップページ | 「天文屋のためのマイコン入門」プログラム解説 »