PIC マイコンの簡単な紹介

PIC マイコンの簡単な紹介
(by uchan 2009 年 3 月 9 日)
本書の見方
記号「†」は、その直前の言葉が用語集に載っていることを示す。
本書はマイコン初心者向けの記述になっている。主にロ技研の新入生を対象読者として想定して
いる。
はじめに
個人的には、こういうみなれない単語が出てきたら、何の略なのかを示してもらったほうが頭に入り
やすい気がしますので、ここで紹介しておきましょう。
PIC = Peripheral Interface Controller
peripheral は周辺機器という意味で、つまり周辺機器接続コントローラーです。読み方は「ピック」
です。
PIC は、一般的には「マイコン(=マイクロコンピュータ)」と呼ばれるものです。マイコンを見たこと
がない、知らないという人が多いかもしれませんが、いまや洗濯機とか冷蔵庫とか電子レンジなど
の家電製品や自動車なんかにも搭載されています。
みなさんはパソコンを使ったことがあると思いますが、そのパソコンの機能を削り小型化したのがマ
イコン、というイメージです。
PIC はそんなマイコンの一種であり、特に装置の末端部分(直接モーターをいじくるような場所など)
に使いやすいように設計されています。マイクロチップという会社が開発しました。
PIC の特徴
•
•
長所
◦ PIC 本体が安い(1個180円ぐらい)し、小さい
◦ 純正の開発環境が無償で提供されている
◦ 日本語の書籍が多いし、web サイトも多い
◦ アセンブリ命令†が 35 個だけだから覚えやすい
短所
◦ データ記憶容量が小さい
◦ CPU†が貧弱
◦ 癖のあるアセンブリ命令†の体系
◦ アーキテクチャも癖がある
PIC を学ぶ意義
PIC を学ぶメリットのほんの一部をご紹介します。
•
パソコンのプログラムから入るより、PIC のプログラムを先にやったほうが、コンピュータとい
うものをより深く理解することができる。
◦ これは、PIC のプログラミングには高級言語†(C 言語など)があまり向かず、書籍もアセ
ンブリ言語†向けのものが多く、アセンブリ言語†でプログラムを作らざるを得ないという
状況のため。アセンブリ言語†なんて、強制されないと普段は触れないもの。
◦ ちなみに、パソコンのプログラムもアセンブリ言語†から入れば、PIC 以上に深い理解を
得ることは可能。
•
電子工作が楽しくなる
◦ これは PIC に限った話ではないですが、マイコンを扱えるようになると、電子工作の幅
が一気に広がります。
•
ミニコン†向けのロボットを作るときに役立つ
◦ これも PIC に限った話ではないですね。ロ技研†の新1年生にとっては、ミニコン†が直
近の課題だから、このメリットが一番大きいかもしれません。というかミニコン†があるから
こそマイコンを学習する気になるのかな?
PIC 学習の流れ
基本的にはどんなマイコンでも同じです。
•
•
PIC を乗せる基板を作る
PIC に入れるためのプログラムを書く
•
アセンブラ†(またはコンパイラ†)を使って、そのプログラムを PIC が理解できる機械語†に変
換する。
•
PIC ライター†を使って PIC に書き込む
•
基板の電源を入れて動作させてみる
基板は半田ごてを握って自分で組み立てます。プログラムはパソコンを使って書きます。アセンブ
ラ†は MPLAB†に含まれていて、PIC ライター†は秋月電子通商で手に入ります。
こういう、開発を進めるための環境を「開発環境」といいます。
さっきから知らない用語がいっぱいなんだけど・・・
あーごめんなさい。これから説明しますね。
•
機械語:コンピュータが理解できる唯一の言語。コンピュータはデジタル信号(例えば 5 V
と 0 Vだけで中間値はなし)しか読み取れない。つまり、言語といっても、すべて 2 値の電
気信号の羅列で構成されているのだ。その 2 値の信号を、1 と 0 に割り当てて書いたのが
機械語。
•
CPU:機械語にしたがって働く回路。電子スイッチの集合体。加減算、論理演算、レジスタ
間の代入、メモリアクセスなどを行う。セントラル・プロセッシング・ユニット。
•
アセンブリ言語:機械語†と 1 対 1 に対応している言語。PIC において、例えば movlw
0xaa と書くと、機械語†の 11000010101010 という 2 進数†の列に対応する。movlw のことを、
アセンブリ命令†と呼ぶこともある。
•
アセンブリ命令:例えば上の movlw が該当する。オペコードともいう。ちなみに、後ろの
0xaa(16 進数†の aa)はオペランドと呼ばれる。
•
2 進数:普段われわれが数学で使うのは 10 進数。9(1 桁)の次が桁上がりして 10(2 桁)に
なる。2 真数は、1 の次が桁上がりして 10 になる、そういうもの。
•
16 進数:2 進数†と親和性が高い。2 進数 4 桁と 16 進数 1 桁が完全に対応する。
•
アセンブラ:アセンブリ言語†で書かれたプログラムを、機械語†に変換するソフトウェア。
MPLAB†に含まれている。
•
コンパイラ:高級言語で書かれたプログラムを、機械語†に変換するソフトウェア。MPLAB†
には標準では含まれない。
•
高級言語:高水準言語とも。アセンブリ言語†が機械語†と 1 対 1 に対応しているというのは、
movlw 0xaa と書けば、いつどんなときも 11000010101010 に対応している、という意味。1
と 0 の羅列よりは movlw 0xaa の方が人間にとって分かりやすいが、それでもなお読むの
が難しい。高級言語は、機械語†との対応を 1 対 1 に限定しないことによって、アセンブリ言
語†よりも人間にとって(一般的に)分かりやすく書ける言語である。C 言語とか Java などが
これにあたる。
•
MPLAB:マイクロチップテクノロジー社純正の開発環境。エディタとか、MPASM というアセ
ンブラ†とか、MPSIM というシミュレータなどを含んでいる。このソフトだけで、
◦ PIC のプログラムを書いて
◦ アセンブルして機械語†にし
◦ シミュレートして動作を確かめる
という作業ができる。
•
PIC ライター:火をつける道具ではない。アセンブラ†やコンパイラ†で生成した機械語†を、
PIC に転送する装置。ライター(writer)は、PIC に「書き込む」という意味を表す。
•
ミニコン:ロ技研†の新入部員のほとんどが経験することになる、ロ技研内での楽しいロボット
大会。先輩がアドバイザーとなり支援する。
•
ロ技研:何も言わず使ってきたけど、東京工業大学ロボット技術研究会のこと。ろぎけん。
開発環境のそろえ方
PIC の開発をやってみたくなりましたか?(またはやらざるを得ない状況になりましたか?(苦笑))
とりあえず開発をはじめるのに必要なもののリストです。秋葉原の秋月電子通商(通称あきづき)で
買えます。
•
PIC マイコン本体
◦ 書籍が多いのは PIC16F84A というマイコンですが、これはちと古い版だし、価格も高い
ので、下記のデメリットを先輩に聞いたりして乗り越えようと思うならば PIC16F648A をお
勧めします。648A は、84A のピン配置を変えずに、機能と性能を大幅に増やし、なお
かつ価格も安い(秋月電子通商の店頭調べ)、という製品です。使わない手はないで
すね。
◦ 648A のデメリットとしては、機能が多い分プログラミングが多少面倒だということでしょう
•
•
か。書籍も 84A を対象にしたものがいまだに多く出回っており、それを 648A に置き換
えて読まなければいけません。
実験用基板を作るための電子部品
◦ ユニバーサル基板、抵抗・コンデンサ、PIC を差し込む IC ソケット、AC アダプタ・電池
など。
◦ 詳しくは、ロ技研†の部員に聞くとか、本を見るとかしてくださいね。
そのほかは、部室にいればそろっています。「自分専用のものがいい!」って言う人は、下
の、自宅で学習したい人向けの記述をご覧ください。
自宅で学習したい人が追加で必要なもの(上記リストのものも、もちろん要ります)
• 自分のパソコン
◦ ノート型なら部室に持ってきてロ技研†部員に質問できるし、電車内でも開発できる(!)
• MPLAB†
◦ マイクロチップテクノロジーの web サイト(http://www.microchip.com/)の、MPLAB IDE
のリンクからダウンロードできる。無料。
• PIC ライター†
◦ 秋月電子通商のものがおすすめ。ver3.5 ではなくて ver4.0 を買おう。
• USB-シリアル変換ケーブル
◦ パソコンに RS-232C のポートがあるなら要らない。最近のパソコンは RS-232C のポート
を持たないものが増えてきたので、USB と RS-232C を変換するものが必要。秋月電子
通商で 950 円で売っている。
• PIC の書籍
◦ どれか一つあれば学習できる。やる気があればどんな本でも役に立つはず。
書籍の紹介
開発環境の紹介に含めようかと思ったけど、意外に量が増えたので分割しました。
どの書籍を買うか迷うかもしれませんが、紹介する2冊とも部室においてある本ですから、自分で
読んでみて買うか買わないか、もしくは別の本にするのか考えてもいいでしょう。
•
•
わかる PIC マイコン制御 遠藤敏夫著 ISBN4-416-10108-2
◦ 半田付けの方法とか PIC ライター†の組み立て方、実験用基板の作成方法などが載っ
ていて、ハードウェアの準備にはおすすめの1冊。
◦ 全体を通して、1枚の実験ボードを使って学習するスタイル。
◦ アセンブラ†に PA.EXE を採用しているため、命令体系がマイクロチップ純正のアセン
ブラとは異なり、多少分かりやすいプログラムが書けるかもしれない。その弊害として、
この本の通りに作ったプログラムは MPLAB†ではスムーズに取り扱えない。
たのしくできる PIC 電子工作 後閑哲也著 ISBN4-501-32050-8
◦ こちらはマイクロチップ純正アセンブラで解説されているので、MPLAB†を使うことがで
きる。
◦ 1枚の実験ボードを使い倒すのではなく、章ごとに違う基板を作っていくスタイル。何を
作ろうか迷ってるときにインスピレーションを得る、という使い方もアリかもしれない。
◦ 著者が有名。後閑氏は自身の web サイトを持っている(http://www.picfun.com/)が、そ
の知名度は高い。PIC のメーリングリストも運営している。