ラジコンと赤外線制御の違いについて、前回は説明しました。この章では、PICをプログラミングして動かす方法の流れを説明します。
■ PICとは?
PICとはMicrochip社が販売しているワンチップ・マイコンのことです。
マイコンというとZ80を思い出しませんか?(つい、思い浮かべてしまった方は私と同世代です)
Z80は値段も安く、使いやすい、当時としては高性能なCPUでした。CPU=Centoral Processing Unitのことで、日本語では中央演算処理装置、コンピュータの中心パーツです。
中心パーツだったので、周辺パーツ(I/O)が必要です。8255という周辺回路信号をやりとりするための専用ICがあり、Z80とタッグを組んで活躍していました。ほかにも、メモリであるRAMやROMがなくては動作しませんでした。
そうです、Z80は単体では何もできませんでした。
そこに現れたのがPICです。
CPU、I/O、RAM、ROMなど、コンピュータが動作に必要なユニットをすべて1チップに内蔵しているために、「ワンチップ・マイコン」とも呼ばれています。比較的新しいPICでは、動作に必要なクロック回路までもが内蔵されていて電源を接続するだけで動き出します。
この素晴らしいPICを存分に活用しない手はありません。
■ PICとプログラミング
PICは超小型のオールインワンのコンピュータです。したがって、プログラミングしないとぴくりとも動きません。
コンピュータは2進数を組み合わせた命令で動作するように作られています。
例えば、
1:足し算
0:引き算
という具合です。
これだけでは2種類の命令しか与えることができないので、
0000 0001:足し算
0000 0010:引き算
0000 0011:かけ算
などと命令用の2進数の桁数を増やしています。
2進数で書いていたのを、
0000 0001→01:足し算
0000 0010→02:引き算
0000 0011→03:かけ算
と16進数に対応させると「マシン語」になります。
このマシン語は数値の羅列なので、とても人間がプログラミングできるしろものではありません。そこで、
01→pls:足し算
02→mns:引き算
03→kzn:かけ算
と数字を文字列で表して、「アセンブラ(言語)」と呼びます。
マシン語に比べるとアセンブラは飛躍的に理解しやすくなりますが、プログラムが長くなるとそれでも大変な作業です。
■アセンブラからC言語へ
アセンブラはマシン語をわかりやすくしたものなので、PICの性能をフルに引き出すことができます。
そのかわりに、複雑なプログラミングを覚悟しなくてはなりません。
そこに登場するのが「C言語」です。
BASICという言語があります。アセンブラが主流の頃、「英語で文章を書くように記述できる。」ことを売りにした「高級言語」です。確かにわかりやすく、瞬く間に普及しました。
ただし、アセンブラほど細かな記述をすることはできないので、ゲームなどコンピュータの限界まで性能を引き出すようなアプリケーションではアセンブラと併用していました。
C言語は、Unixというオペレーティング・システム=OSを記述するために開発された言語で、Bバージョンの次の「Cバージョン」から命名されたそうです。複雑なOSをわかりやすく記述できるのであれば、PICのプログラミング言語して最適だと思いませんか?
PICの動作を記述できるC言語はいくつかありますが、今回はCCS社より発売されているCCS-Cを開発言語に選択しました。
次回はCCS-Cコンパイラについて説明します。

PICマイコンでつくるインドア・プレーン
みんなで作ろうインドア・プレーン