目次
→
PIC入門
ソフトウェアの作成手順
フローチャート
古い手法ですがフローチャートを使ってソフトウェアを作るのが簡単です。頭の中で考えている処理の流れを整理しながら進めることができます。小さな規模のソフトでは混乱しないかも知れませんが、規模が大きくなると、全体が分からなくなります。
フローチャートは場合によって2種類以上作ることもあります。
概要フローチャート
概要フローチャート
は全体の機能ブロックを示して、ソフトウェアの骨格を決めるために使用します。
詳細フローチャート
詳細フローチャート
は各命令レベルまで書いたフローチャートです。
ソースプログラムが作れるレベルまで詳細に書きます。
ソフトウェアの処理フローに決まりはありません。PICに目的の動作をさせるためのソフトウェアはいろいろなやり方が考えられます。作る人の考え方によります。ですから、時間が経つと作った本人も処理ステップの意味が分からなくなることがあります。処理のポイントをフローチャートに書いておくと後から改造などをする場合に役立ちます。
この作業を行うときに考えることは概略以下のようなことです。
処理ステップを考える。
ソフトウェア作成のメイン作業です。
処理ブロックのラベルを決める。
処理が他の処理からJUMPしてくる部分にラベルを付けます。アッセンブラで予約語として定義されている文字列がありますので、それらをラベルとして付けることはできません。
レジスタファイルの使い方およびラベルを決める。
レジスタファイルとして68バイトを使うことができます。目的の処理を行うために使用するレジスタファイルの構造および ラベルを決めます。
これらのやり方は自由ですので、あなたがやり易い方法で行います。
ソフトウェアの組立
ソフトウェアをソースコードとしてプログラミングする場合、概略以下の構造で作ります。
(1)ハードウェアの定義部
使用するPICの種類を指定します。ソースコードをアッセンブラーで機械語に変換するときにこの指定にもとづいて変換されます。
アッセンブラ疑似言語の
LIST
が使われます。
疑似言語というのは実際のPICで使用する命令ではなく、アッセンブラーの処理を指定するために使用される命令です。
(2)レジスタファイルの定義部
PIC16F84Aでは68バイトのレジスタファイルを使用することができます。プログラムの中で直接アドレスを16進数で指定 しても良いのですが、そのレジスタの使用目的が分かりづらく、間違えのもとにもなります。また、レジスタの並び方を変えた場合、全て見直さなけばならなくなります。
ですから、各レジスタにラベルという名称を付けて、プログラムではその名称を指定するようにします。このようにするとレジスタの使用目的もすぐに分かり、間違えも少なくなります。並びを変えた場合にもここの定義だけを変えればOKです。 ラベルと実際のアドレスを対応させます。アッセンブラ疑似言語の
EQU
(Equal)が使われます。
(3)初期化処理部
この部分からPICで実際に行う処理が書かれます。PICが動作するときに最初に行う処理を初期化処理と言っています。 処理の内容は必ずしも同じではないですが、入出力ポートの設定、STATUSレジスタの初期化、レジスタファイル内容の初期値設定など、その後に行われる処理に必要な条件を全て設定します。
プログラムをメモリーに格納するアドレスを指定する場合には疑似命令として
ORG
を使います。
(4)処理部
目的の動作をさせる処理を書きます。
プログラムの作りによりメイン部分とサブルーチン部分に分けることもあります。
サブルーチンというのは同じ処理を繰り返し使うような場合、共通に使用する処理を別のルーチンとして作ります。サブルーチン独特の処理は一番最後にRETURN命令またはRETLW命令でメイン処理に戻るということです。通常はメイン部分の後にサブルーチン群を書きますが、逆であってもかまいません。
(6)ソース終了
ソースコードの終了を書きます。
アッセンブラ疑似言語の
END
が使われます。