PIC16F88とは,PIC16F84Aの強化版みたいなものです.16F84Aとピン互換があり,16F84Aの回路に16F88を挿してもほぼ問題なく動作します (もちろんプログラムはPIC16F88用に書き換えなければなりませんが).それでいて高機能になっており,標準でA/D変換機能が搭載されています. これにより,センサーの出力をPICで読み取る事ができるのです.また,PIC16F84Aは既に生産終了となってしまっているため,実はPIC16F88の方が安価で入手可能です.(※人伝に聞いたのですがどうやらそうではないみたいです.不確かな情報で混乱を与えてしまい申し訳ありませんでした.) (秋月で¥200)それなら安くて高機能な方がいいだろう!ということでPIC16F88をやってみようと思います.
前述の通り,回路はピン互換がある為,前回のままで構いません. ちなみに,筆者は前に作った回路を既に解体してしまった為,もうちょっと綺麗に作り直してみました. 一つ注意ですが, 筆者は5Vを直接印加する為に作った為,三端子レギュレータを付けていません. 間違えて電池を繋いでしまった時の為に,皆さんは三端子レギュレータを付ける事をおすすめします.
回路はそのままでも,プログラムは少しだけ修正しなければいけません.以下がそのプログラムになります.
LIST P=PIC16F88
INCLUDE P16F88.INC
__CONFIG _CONFIG1, _HS_OSC & _WDT_OFF & _PWRITE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF & _DEBUG_OFF
ORG 0
MAIN
BSF STATUS,RP0
CLRF ANSEL
CLRF TRISB
BCF STATUS,RP0
LOOP
MOVLW 02h
MOVWF PORTB
GOTO LOOP
END
赤色がPIC16F88に移行した時の変更点です. 思ったより少ないと感じたのではないでしょうか.こんな感じに結構簡単に変更が可能です. ちなみに青で書かれたものがありますが,これは前回と全く同じではつまらないので付け加えました. こうすることで,片方のLEDしか点灯しなくなります.RB1に繋いだLEDだけが光るわけですね. 尚,プログラムはPICで遊ぶ電子工作様を参考にさせて頂きました.
前回と同じようにビルドして問題がなければOKです!エラーが出るようでしたら,よく確認してみてください.どうにも解決できなかったら掲示板に書き込みしてください.
今回はPICKit2で書き込みをします.なぜなら,筆者の前回使ったPICプログラマーキットが壊れてしまい使えなくなってしまった為です. 原因はわからず,色々修理を試みてみましたが諦めてPICKit2を購入しました.ちなみに秋月で¥3500です. 比較的安価な為,こちらを購入された方も多いのではないでしょうか.ということで今回はPICKit2を使ってみましょう!
PICKit2は図のような書き込み回路を作らなければいけません.しかし部品は10kΩしかありませんし,さほど難しくありません. ちゃちゃっと作ってしまいましょう!
こんな感じの回路です.簡単ですね!ちなみに前回Eagleの回路図だけ載せたんですが,そういえばこの図って実物と何ら対応していないんですよね. ちょっと戸惑ってしまった人も多かったんじゃないでしょうか.ちょっと不親切でしたね.すみません.今回はもうちょっと分かりやすくした奴を…
お世辞にもわかりやすいとは言えない図ですね.下にある謎の図は僕の覚え書きです.よくこういう書き方でメモって回路を作ったりします. とりあえず,僕にできるのはこれくらいなのでなんとか頑張って回路を作り上げてくださいw
どうでもいい補足というか言い訳ですけれど,これでもレポートとかではちゃんとピシッと書いてますからね?w
さて,ではPICKit2の書き込みソフトを公式HP からダウンロード,インストールしてしまいましょう!インストールが終わったらPICKit2本体をPCのUSB端子に接続し,早速ソフトを起動してみてください! PICKit2が認識できれば,Microchipのロゴの左側のボックスにその旨が表示されます.されなかったら何か問題がありますので,手順を確認してみてください. どうしてもダメであれば,掲示板に書き込みしていただければ出来る限りのサポートはします.
先ほどビルドして出来たHEXファイルをメニューのFile→Import HEXで開きます.そしてWriteボタンを押してください. すると,またボックスに表示されます.ボックスが緑色になり,成功を意味するメッセージが表示されたら成功です.成功したらVerifyボタンをクリックしてください.これも成功すれば書き込み完了となります.
さて,プログラムの書き込みが成功すれば,お待ちかねの動作テストですね!早速電源を繋いでみましょう!
動きました!ちゃんとプログラム通り動いてますね!RB1しか点灯してませんもね! つまりMOVLW 02hで指定した数値を変更すれば他のLEDも点灯するわけですね!
何かちょっとわかっただけで,何か少しワクワクしてきませんか?「じゃあ,ここをこうすればこうなるのでは?」などと… やっぱ何か作りたいですし,色々理解したいですよね!ということで次回はプログラムについてやっていきたいと思います!
今回もお疲れさまでした!16F84Aやったと思ったら16F88に移行したり,PICプログラマーキットで書き込みしたらPICKit2に行ったりと申し訳ないです. そのうちH8/3664Fとかに行ったら叩かれますかね?でも,PICは安くて手軽ですから当分ないと思いますw
さて,次回は本文で予告した通り,PICのプログラムについて学びたいと思います!その前に,違うとこを更新するかもしれませんが. 書いてみて改めて実感したんですけど,やっぱり講座って結構時間喰うんだなーとw今回はPerlでテンプレート作って編集してるんですけどねーw ともあれ,役に立てればとても幸いです!PIC16F84Aの時は「PIC16F84A」でググるだけで1ページ目に出てびっくり!ちなみに「PIC16F84A を」で検索するとトップです! この記事はどうなるかなー!ちょっと楽しみですねwそれでは!
動作回路,プログラムを参考にさせていただきました.
書き込み回路を参考にさせていただきました.