![]() |
||||||||||||||||||||||||
ここでは、マイクロチップ社のワンチップマイコン「PIC」を使った電子工作例について紹介します。 | ||||||||||||||||||||||||
私も、若い頃はZ80や6809といったマイコンを使って、アセンブラでバリバリとプログラムを組んでいました。 初めてさわったマイコンはZ80を使ったCRC-80というワンボードマイコンキットで、その後はシャープX1というZ80を使ったパソコンにほれ込み、大学の研究室でももっぱらこれを使っていました。就職してすぐに同社のX1turboを買い、回路図が書籍に掲載されていたこともあって、拡張基板をいくつか作り、制御対象も数多く製作して、すっかりこのマシンにのめりこんでいました。 マイコンは便利ですが、システムを製作するとなると、CPU,周辺デバイス,メモリ(ROM,RAM)などを多数の電線(バスライン)で結線しなければならず、目がとても疲れ、かといって既製品のZ80ボードには大きさや機能面で目的にかなうものが少なく、プログラムの開発・デバッグもとても大変(パソコンやトレーニングキットならある程度デバッグの機能を持っていますが、組み込みシステムを1から作ろうとすると、機械語のプログラムをROMに焼いて基板に挿入し、不具合があればまた取り外して、時間をかけて紫外線でROMを消去しなければならない)で、年とともに気力が失せてしまいました。 その後、インテル社の8052−BasicというBasic言語が走り、プログラム開発もパソコンとシリアル通信でつなぐことで簡単にできるCPUがあることを知り、何年か使いましたが、バスラインを配線する手間はあまり変わらず、本当にワンチップで開発も楽なマイコンの登場を待っていました。そんな中、登場したのが「PIC」です。開発環境が無料で手に入り、書き込み器の製作も簡単で、何より値段が安い。 ’90年代、「トランジスタ技術」誌にPICが紹介され、アマチュアによる製作例が発表されるようになってから興味を持ちました。 なかでも「PIC16F84」はプログラムメモリがフラッシュ型で、簡単に何度でも書き換えができることから人気を集めました。 しかし、極限まで簡素化されたRISC構成のため、命令語が少なく、私も昔とった杵柄でアセンブラによるプログラム開発を何度か試みましたが非常に困難さを感じました。何しろアキュムレータが1個(Wレジスタ)しかなく、分岐命令がとても少ないのです。「ページ」や「バンク」といった概念にもなじめず困っていました。若いときならまだしも、頭が固くなった今では開発に時間ばかりが経過し効率が悪すぎました。 そんなあるとき、同僚から「こんな面白いのがありますよ」といわれたのが、「PIC Basic Pro Compiler](略称PBP)です。 パララックス社の「Basicスタンプ」とよく混同されますが、「スタンプ」が専用の基板モジュールでしか動作しないのに対して、こちらは単体のPICそれもミッドレンジシリーズのほとんどの機種を網羅しているのが特徴です。 さっそく入手し(日本ではマイクロテクニカで扱っています)、その使いやすさ、命令語の多さ、アセンブラと遜色ない実行速度(といっても1/5程度には落ちますが)など多くのメリットがあると感じ、現在はもっぱらこれを愛用しています。Basicで不足する機能についてはアセンブラと組み合わせて使うこともでき重宝しています。もともとメモリが少ないPICでは大ががりなプログラムには向きませんが、簡単な制御用途にはほとんどこれでいけると感じます。最近のPICはメモリ容量も増えてきており、バンクの概念も意識せずに使うことができ、、以前のように1kワード内に収めなければというプレッシャからも開放されました。 これ以上高い機能を求めるなら、AVRとかdsPICとかH8とかARMマイコンなどがありますのでそちらを使うほうがよいでしょう。でもその前にC言語を習得することが必修課題です。PICにもフリーのCコンパイラがいくつもあります。 |
||||||||||||||||||||||||
<開発環境> |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
PIC作品集(アマチュア無線関係は「無線アクセサリ」のコーナーにあります。) | ||||||||||||||||||||||||
青い文字の作品名はクリックすると詳しい説明ページにジャンプします。 | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
![]() |