ワンチップマイクロコンピュータを使った実験装置

第3章 PICマイクロコンピュータの基本回路を作ろう


3.1 PICを動かすために必要な回路

 ここではPICの中でも最もポピュラーなPIC 16F84/20Pを動かしてみることにします。16F84には18本の足(ピン)があり,それぞれのピンの役割が決まっています。まずは,PICを動かすために最低限必要な,直流5Vの電源とアース,クロック発振子(マイクロコンピュータ内の時間のリズムを設定するための部品)を取り付けます。
 直流電源のプラス端子を4番ピン(VSS)と14番ピンにつなぎます。1.5Vの乾電池を4本直列につなぎ,そのままつないでも動くとは思いますが,普通は3端子レギュレータ(78L05など)を使って,安定した直流電源を作ります。78L05には3本の足があり,入力端子(IN)と出力端子(OUT)にはコンデンサ(C1,C2)を取り付けます。
 共通のアース(電圧が0Vということ)として,電源のマイナス端子,16F84の5番ピン,78L05のグランド端子(GND),2本のコンデンサ(C1,C2)の一端をつなぎます。これで,マイクロコンピュータへの電源供給は完了です。
 次にセラロックという発振子を取り付けます。セラロックの周波数は,使用するマイクロコンピュータに合わせます。つまり,16F84/20Pでは20 MHzのセラロックを使用します。セラロックには3本の足があります。中央の足をアースに接続し,両端の足(極性がないので左右どちらも同じ)を16F84の15番ピンと16番ピンにつなぎます。

Step 1:電源とクロック
(画像をクリックすると大きい画像が表示されます)



3.2 入力のスイッチをつける

 以上の配線が終わればPICは動きます。しかし,入出力がないので何も起こりません。次のステップでは,入力のためのスイッチを取り付けます。
 今までに使っていない16F84のピンはすべて入出力のピンです。どのピンを入力にしてどのピンを出力にするかは,作成するプログラムで決めることができます。ここでは,6番ピン,7番ピン,8番ピン,9番ピンを入力とします。それぞれのピンには,RB0,RB1,RB2,RB3という名前がついています。「B」はBポート(16F84にはAポートとBポートがある)という意味です。
 入力用スイッチのつなぎ方にも色々な方法がありますが,ここでは,スイッチが押されると0V(アース)につながるようにします。なお,このような接続の場合,プログラム上でプルアップ抵抗の設定が必要です。これはPICが持っている機能で,何も入力がないときに内部的に5Vが入力されている状態にする機能です。

Step 2:入力用のスイッチ
(画像をクリックすると大きい画像が表示されます)



3.3 出力確認用の発光ダイオードをつける

 実験装置を作る場合,マイクロコンピュータの出力を何に使うのか決めておくことはとても重要です。それについては次章以降で説明することとして,ここでは出力の動作確認をするために発光ダイオード(LED)をつなげることにします。
 入力用スイッチをつけたときと同様,どのピンを出力にするかは作成するプログラムで決めることができます。ここでは,10番ピン,11番ピン,12番ピン,13番ピンを出力とします。それぞれのピンには,RB4,RB5,RB6,RB7という名前がついています。
 発光ダイオードには極性があるので,接続するときには注意してください。極性を間違えても回路が壊れることはありませんが,発光ダイオードは機能しません(光りません)。それぞれの発光ダイオードには470Ω程度の抵抗(R1〜R4)を直列に接続します。

Step 3:動作確認用の発光ダイオード
(画像をクリックすると大きい画像が表示されます)



3.4 プログラム作成の準備

 以上でPICの基本回路が完成しました。まずはプログラムを作成するための準備をします。プログラムを作成するには様々な方法がありますが,ここではMEL BASIC CompilerとPICライター(PDE-NX)を使用します。プログラムを作成するには,パソコン(Windowsマシン)が必要です。

(1) BASICコンパイラのセットアップ
 パソコンにMEL BASIC Compilerをセットアップします。フロッピーディスクを挿入し,ハードディスクにコピーします。詳しくは説明書をお読みください。

(2) PICライター用ソフトウェアのセットアップ
 パソコンにPICライターに付属しているソフトウェア(EPIC Programmer)をセットアップします。フロッピーディスクを挿入し,ハードディスクにインストールします。詳しくは説明書をお読みください。



3.5 簡単なプログラム

 WindowsやMS-DOSに付属のテキストエディタ(メモ帳など)や市販のテキストエディタでソースプログラムを打ち込み,ハードディスクに保存します。BASICコンパイラと同じフォルダ(あるいはその下のフォルダ)に保存すると使いやすいと思います。

input 0: input 1: input 2: input 3
output 4: output 5: output 6: output 7
Poke $81,0 'プルアップ抵抗の設定
Loop:
High 4: Low 5: Low 6: High 7
Pause 200
High 4: High 5: Low 6: Low 7
Pause 200
Low 4: High 5: High 6: Low 7
Pause 200
Low 4: Low 5: High 6: High 7
Pause 200
Goto Loop
End

 これだけのプログラムで,発光ダイオードは順番に光るはずです。簡単にプログラムの説明をすると,最初の1〜2行目にある「input」と「output」いう命令はポートBのピンを出力に使うか,入力に使うかの設定です。3行目の「Poke $81,0」は入力ピンのプルアップ抵抗の設定です。詳細については省略しますが,上の回路の場合はこの命令が必要です。4行目から13行目までが繰り返して動作します。5行目の「High」と「Low」はポートBのピンを出力する(+5V)か,出力しない(0V)かの設定です。6行目の「Pause 200」は「200ms待ちなさい」と言う意味ですが,この値はPICのクロックで変わります(20MHzのクロックの場合,「200」は200/5=40msになります)。この数字を小さくすれば発光ダイオードは早く点滅し,大きくすれば遅く点滅します。最終行の「End」は「終わり」を意味します(このプログラムに終わりはありませんが)。



3.6 プログラムのコンパイル

 MEL BASIC Compilerでプログラムをコンパイルするためには,DOS画面(普通は黒い画面)にする必要があります。その状態でMEL BASIC Compilerのディレクトリまで移動し,「PBC プログラム名と入力します(下図参照)。

コンパイルに成功すれば,次のような画面が表示され,MEL BASIC Compilerのディレクトリにプログラム名.HEX」とうファイルが作成されます。



3.7 プログラムの書き込み

 PICライターをパソコンのプリンタポートに接続し,PICライター用ソフトウェア(EPIC Programmer)を起動します。コンパイルされたHEXファイルを読み込み,「run」メニューの「program」でプログラムを書き込みます。チップの種類の設定や「HS」モードにするなどの設定がありますが,詳しくは説明書をご覧ください。

 書き込みが終わったら,PICライターの電源スイッチを切ってからPICをはずします。そして,作成した回路にPICを挿入し,回路の電源スイッチを入れると,発光ダイオードが順番に点滅するはずです。



3.8 おわりに

 PICマイクロコンピュータを動かすことは,それほど難しいことではありません。最後に,少しだけ複雑にしたプログラムを紹介します。このようなワンチップマイクロコンピュータを自由に使いこなすことができれば,様々な用途に使用でき,高機能な実験装置を作ることができると考えています。


[ Microcomputer ] [ Hirata HOME ] [ Power and Energy Engineering Division ] [ NMRI HOME ]
Contact khirata@nmri.go.jp