ソフトウェアとは? |
PICがいろいろな動作をするのはプログラムメモリーに記録させている命令を順番に実行するからです。 電源を入れると必ずプログラムメモリーの0番地に書かれている命令が実行されます。そこにGOTO命令が書かれていればその内容に従ってプログラムの実行番地が変化し、そこのメモリーに書かれている内容が実行されます。 ソフトウェアを作るということはPICに行わせる動作の順番を作ることです。ですから、まず、PICに何をさせたいかを決める必要があります。 例えば、LEDの点滅をさせるとか、入力の状態を判断させるとか、特定の信号を出すとか 目的の動作をさせるためにどのような順番で命令を並べるかを考えるのがソフトウェアを作るということになります。 ソフトウェアのイメージを理解するために以下のような例で説明します。
(これ自体では処理の意味は無いのですが、あくまで例です。)
実際のプログラムでは最初にいろいろな初期化処理を行う必要があるのですが、ここでは省略します。
上記のような内容をプログラムメモリーの先頭から3ワードに書いて電源を入れると最初に0番地でファイルレジスタの0Ch番地がクリアされ、1番地で0Chがカウントアップされます。その次に2番地でGOTO命令が実行され1番地にジャンプします。そして再びカウントアップされるという動作を繰り返します。この処理は電源を切るまで終わりません。 PICは上記の例のようにプログラムメモリーに書かれた0と1の組み合わせで命令を判断して動作します。この0と1が組み合わされたものを機械語と呼んでいます。どんなに大きなコンピュータでも機械語にもとずいて動作をしています。スーパーコンピュータも、みなさんが使っているパソコンもそうです。ただ、機械語の内容はそれぞれのプロセッサによって違いますので、PICの機械語でペンティアムで動かそうとしても動きません。 上の内容は手計算で行いましたが、少し処理の数(ステップ)が多くなるととても手でプログラムを書くわけにはいきません。 そこで必要となってくるのが、アッセンブラーとかコンパイラーと言われるソフト作成ツールです。これらのツールは人がソフトウェアを作り易くするためのものです。(命令を文字で表現する。メモリの番地にラベルという文字列を使う。) また、機械語が違うハードウェアで同じソフトウェアを動かそうとした場合、機械語の変換を変えれば可能という場合があります。 そのような場合には、アッセンブラまたはコンパイラが自動的にそのハードウェアに合った機械語に変換するので、人は機械語を意識せずにソフトウェアが作れるという利点もあります。 上記の処理をMPASMというMicrochip社が無償提供しているアッセンブラを使って機械語に自動変換する(アッセンブルすると言います)と以下のようになります。 アッセンブラの入力情報(ソースプログラム)はEditorを使って作ります。このソースプログラムは人が作ります。この作業をコーディングと言っています。Editorとしてはテキスト文書が作れるものであれば何でも使えます。メモ帳でもOKです。Editorの中にはソフトウェアのコーディングが行い易いような機能をもっているものもあります。私は秀丸エディターを使っています。
|