の〜んびり〜 |
手軽にマイコンを使用する手段として「PIC(ピック)マイコン」は、価格も\100-前後からあり、比較的入手し易い部品の為、広く用いられております。 ところが、初めてマイコンを扱う人にとっては「何から始めれば良いの?」との話をよく聞くことがありますので、以下簡単に説明致します。 PICの原理や応用に関しては、いろいろなホームページで詳細に記載されておりますので、それらを参照願います。 私はPIC使いの達人ではありませんので、導入部だけを説明した「PIC手習い」と致しました。 |
先ずは−−−−−コストをかけずに簡単に始める為に!
PICとは? |
ワンチップ・マイクロコンピューターの1種で、Microchip(マイクロチップ)社と云うアメリカのメーカー製です。小型の8ピンタイプの物から多ピンの物まで各種のシリーズがあり、「ADコンバータ」「コンパレータ」「I2C」「USART」や「DSP」など各種の機能を持ったICが揃っております。 PICに関しては、いろいろなホームページでも説明されておりますので、詳細に関してはそれらを参照下さい。Microchip社のホームページはこちらです。http://microchip.com |
準備する物 |
☆パソコン Windows XP,Windows Vista及びWindows7などのWindows系で動作しているものであればなんでもOKです。但し、PICライターの仕様に合せて「RS232シリアルポート」や「USBポート」が必要です。 |
☆開発用ソフト MPLAB IDEというMicrochip社が無料で提供している総合開発環境ソフトがあります。ホームページからダウンロードできます。 |
|
☆PICライター PICにプログラムを書き込む為の道具です。Microchip社や秋月電子通商などから各種販売されております。また自作の記事もいくつか紹介されております。当然ながら、パソコンとPICライターを接続するデータケーブルが必要です。詳細はこれらライターの仕様書を参照下さい。 簡単なものであれば、\3,000〜\7,000程度で購入できます。 |
|
☆データシート PIC ICのデータシートが、Microchip社のホームページからダウンロードできます。但し、殆んどが英文資料ですが、一部「PIC16F8x」及び「PIC16F87x」は、日本語のデータ資料が用意されておりますので、いずれかも併せてダウンロードしておく方が分かり易いです。 PIC ICによって、少しずつ仕様が違うので、必ず使用予定ICのデータシートを準備してください。 |
|
☆PIC IC 「習うより慣れろ」で、PIC IC(通常はデバイスと云いますので以降はデバイスと記載します))を取りあえず1ケ用意下さい。本ホームページでは「PIC12F675」を例に致しました。このデバイスは8ピンながら「10ビットADコンバーター」「コンパレーター」「EEPROM」等を有した優れもので、プログラムROMはフラッシュですから、10万回までプログラム書換可能です。 |
それでは−−−−−手始めに「スイッチを押すとLEDが点灯する」簡単な実験機を作成してみましょう。
MPLAB IDE インストール |
Microchip社のホームページ上では、現時点の最新バージョンが「v.8.56」となっておりました。先ず、ここからダウンロードします。 http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&redirects=mplab このページ下方の「MPLAB IDE v.8.56 Full Release Zipped Installation」と記載された箇所をクリックすると「MPLAB_8.56zip」の圧縮ファイルがダウンロードできます。 ダウンロード後、解凍してできるファイルのうち「Install_MPLAB_8_56.exe」をクリックすると、インストールが始まるので、コメントに従ってインストールを続けて下さい。 初期設定では、「C\Program Files\Microchip」フォルダーが作成され、デスクトップ上にも「MPLAB IDE v8.56」のアイコンができます。 |
初めての MPLAB IDE |
初めは「プロジェクト設定」を行ないます。MPLAB IDEのメニューから「Project → Wizard」で「サブウインドウ」が開きます。 以降は各ステップ順に操作を行ないます。 |
「Step One」ではPIC デバイス名をDevice欄に、これから使用する「PIC12F675」を選択表示します。 | |
「Step Two」では使用言語を選択します。「Active Toolsuite」欄には「Microchip MPASM toolsuite」を選択表示します。(ここは初期値でこの様になっているはずです。) | |
「Step Three」では、適当なプロジェクト名をつけます。「TEST01」としますが、フォルダは「Cドライブ上」に設けてください。 | |
「Step Four」では、既存のファイルを追加することができますが、今回は何もせずにそのまま「次へ」で「完了」して下さい。 | |
「TEST01.mcw」と「Output」と表示されたサブフォルダが表示されます。「TEST01.mcw」は6つのフォルダが含まれており、「Output」は空になっています。 | |
MPLAB IDEのメニューから「File → New」で新しいサブウインドウ「Untitled」が開きます。ここに以下の「TEST01.ASM」をコピーして、貼り付けて下さい。 「File → Save as」で「TEST01.ASM」とタイプして保存します。すると「Untitled → TEST01.ASM」と成ります。 |
|
「Project→Add Files to Project」とすると、この「TEST01.ASM」がプロジェクトに追加され、TEST01.mcwウインドウ内のSource Files内に表示されます。これでプログラム完了です。 | |
マイコンに書き込むデータを作る為「Project → Build All」と操作すると、アセンブル完了です。この結果できあがる「TEST01.hex」をPICライターを使用してPICデバイスに書き込みます。これで、プログラム通りにPICマイコンが動作します。 | |
テスト回路 |
|
ソースファイル (アッセンブラ用) |
;以下プログラムに直接関係の無いコメントなどを記載する場合は、必ず最初にセミコロンをつけます。 ;==================================================== ; PIC12F675 テストプログラム TEST1.ASM ; Copylight 2009, NES Corp./S.Endo ; Target=PIC12F675, 内部Clock 4MHz(固定), Machine Cycle=1uS ;==================================================== ; PIC12F675のピン配置情報(8Pin) ;********************************************************* ; Pin 1 Vdd(+ 電源) ; 2 GP5/T1CKI/OSC1/CLKIN ; 3 GP4/AN3/T1G/OSC2/CLKOUT ; 4 GP3/MCLR/Vpp ; 5 GP2/AN2/T0CKI/INT/COUT ; 6 GP1/AN1/CIN-/Vref/ICSPCLK ; 7 GP0/AN0/CIN+/ICSPDAT ; 8 Vss(- 電源) ; *注意! 1つのピンが幾つかの機能を兼用している。従って何に使用するか指定が必要です。 ;**************************************************************************************************** ; 以下はお決まりの記述です。 ; ラベル(以下の例ではINITやMAIN)は行頭から記述し、それ以外は必ずスペースまたはTABを入れて記述します。 LIST P=12F675 ; アッセンブル時にリストファイルを作ります #INCLUDE <P12F675.INC> ; 12F675用定義ファイルを読み込みます ; 以下のCONFIGで動作の為の基本設定を指定します __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_CLKOUT ; S S S S S S S S S S S S S(S=スペースを表す) ; CONFIGの前には、必ずアンダーバーを2つ(__)つける。その後は&で続ける。各項の間にはスペースを入れる。 ;**************************************************************************************************** ;各文の意味は以下の通りです。 ;_CP_OFF=コードプロテクトを行わない。コードプロテクトすると、プログラムの再書込みができなくなってしまう。 ;_CPD_OFF=内部EEPROMデータプロテクトを行わない。 ;_BORDEN_OFF=ブラウンアウトリセットを行わない。電源電圧4Vでリセットを発生する機能をOFFにした。 ;_MCLRE_OFF=MCLR機能(外部リセット)をオフにする。従って4番ピン=GP3(汎用ポート)として使用する。 ;WDT_OFF=ウォッチドックタイマーをオフにする。 ;PWRTE_ON=パワーアップタイマーをオンにする。 ;INTRC_OSC_CLKOUT=内部クロックを使用し、外部クロック出力する。従って3番ピン=CLKOUT(Fosc/4) ;**************************************************************************************************** ;================================================= ; 変数定義(今回は、未定義) ;================================================= ; ;================================================= ; 今回のポート定義 ;================================================= ; ポート名 I/O FUNCTION ; GP0 I 入力, ACT=L とする(NORMAL=H) ; GP1 O 予備出力 ; GP2 O 予備出力 ; GP3 O 予備出力 ; GP4 O クロック出力 CLKOUT ; GP5 O LED1出力, ACT=H とする(NORMAL=L) ;================================================ ; 以下 プログラム ;================================================ ORG 0 ;0番地からスタート GOTO INIT ;INITへスキップする ; INIT ;ポートほか設定 ------------------------------------- BCF STATUS,RP0 ;ここと次の行で合せて BCF STATUS,RP1 ;BANK0に設定する CLRF GPIO ;先ずポートを全てクリアーしておく MOVLW B'00000111' ;2ビット表記にした。以下同様 MOVWF CMCON ;コンパレーターは使用せず、全てDIGITAL端子設定にする ;----------------------------------------------------------- BSF STATUS,RP0 ;BANK 1 を設定(このブロックで設定するSFRレジスタがBANK1にあるから) MOVLW B'00000001' ;ポートのI/O設定,出力=0,入力=1 MOVWF TRISIO ;従ってGP0=INPUT, 他=OUTPUT設定にする CLRF ANSEL ;ADコンバーターは使用せず、全てDIGITAL I/Oに設定する CLRF OPTION_REG ;プルアップ設定を有効にする MOVLW B'00000001' ;"0ビット"だけ1にして MOVWF WPU ;GP0だけプルアップする MOVLW B'10000000' ; MOVWF OSCCAL ;OSCのキャリブレーション センター設定 ;----------------------------------------------------------- BCF STATUS,RP0 ;BANK 0 に戻す CLRF INTCON ;全ての割込み禁止 ; ;================================================ ; メイン プログラム ;================================================ MAIN BTFSS GPIO,0 ;GP0が"L"だったら BSF GPIO,5 ;GP5をHにする(LEDが点灯) ;------------------------------------------------ BTFSC GPIO,0 ;GP0が"H"だったら BCF GPIO,5 ;GP5を"L"にする(LEDは消灯) GOTO MAIN ;MAINに行く ;------------------------------------------------ END ;最後は必ず"END"で終わります |
同一内容でダウンロード用ファイルを用意しました。右側のファイル名をクリックして下さい。 TEST01.ASM | |
実験機の結果 |
|
MPLAB IDE 使用上の注意! |
ASMファイルの行番号表示ON/OFF 「Edit→Properties→'ASM Filetype'」のタグ上で「Line Number」にチェックを入れると「行番号表示」します。 |
ASMファイルの大文字/小文字について MPLAB上では、初期値として「大文字記載」に成っております。従って、ASMファイル上の一部で「小文字」を使用していると、「Project → Build All」のアセンブル上でエラーになってしまいます。 そこで「大文字/小文字」の区別をなくすために、以下の通り設定します。 「Project → Build Options → TEST01.ASM」で新規WIndowが開く。「Generate Command Line」の「Disable case sensivity」にチェックを入れる。これでASMファイル内の大文字/小文字の区別が無くなり、アセンブル時のエラーが出なくなります。 |
|
プロジェクトのディレクトリー 通常「MPLAB IDE」は、「C:\Program Files\Microchip\MPLAB IDE」にインストールされます。PROJECTは「マイドキュメント」や「デスクトップ」に作成した場合、エラーが発生する事があるので「Cドライブ内に\PIC」等のフォルダーを作成してご使用してください。 |
これから−−−−−いま少しマイコンらしい動作をさせる。
まだです。 | |