. | (1)プログラムの動き
|
| 最初のプログラムは非常に簡単です。 @まず初期処理で、PORTBを全て(RB0〜RB7)出力モードに設定する A次に、PORTBのRB0(緑のLED)とRB1(赤のLED)のみオンにする
これで、緑と赤のLEDが点灯します。
|
. | (2)プログラム
|
| ではプログラムを作りましょう。 まず任意のフォルダを作成します。 次に、以下のプログラムをメモ帳などのテキストエディタにコピーし、先ほどのフォルダに「led1.asm」と言う名前で保存して下さい。
以降の例では、Cドライブの下に、「pic」と言うフォルダを作り、その下に「led1」と言うフォルダを作った前提で説明します。
C:\pic\led1
|
| 命令については、4章で説明します。今は、プログラムのコメントで概要を理解して下さい。
(セミコロン(;)から右はコメントです。)
; ========================== ここから ==============================
; CLOCK 10MHz
; PORTB 0:LED緑,1:LED赤
;
LIST P=PIC16F84A ; LIST宣言で使用するPICを16F84Aと定義する
INCLUDE P16F84A.INC ; 設定ファイルp16f84a.incを読み込む
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
ORG 0 ; リセットベクタ(0番地)を指定する
MAIN
BSF STATUS,RP0 ; ファイルレジスタSTATUSのRP0(ビット5)をセット(1)する → バンク1
CLRF TRISB ; ファイルレジスタTRISBをクリア(0) → PORTBは全て出力
BCF STATUS,RP0 ; STATUSのRP0をクリア(0) → バンク0
LOOP
MOVLW 03h
MOVWF PORTB ; PORTBのRB0,RB1をオンにする(LED点灯)
GOTO LOOP
END ; プログラムの終了をアセンブラに指示する
; =========================== ここまで ===============================
|
|
| (3)MPLABで翻訳
|
| 上のプログラム(ソースプログラム:テキスト形式で人間が見て分かる形式)は、そのままではPICに書き込めません。
MPLABで翻訳(アセンブル)し、機械語(PICに書き込める形式)に変換します。
以下に手順を説明しますが、ソースプログラムは、
「C:\pic\led1」と言うフォルダに、
「led1.asm」と言う名前で格納されている事を前提に記述します。
|
| @まず、MPLAB IDEを起動します。
「スタートメニュー」→「プログラム」→「Microchip MPLAB IDE」→「MPLAB IDE」
|
| A次に、MPLAB IDEのプロジェクトウィザードを起動します。
「Project」→「Project Wizard」
|
| Bプロジェクトウィザードでプロジェクトの設定を行います。
| 「次へ」をクリック
| | 「Device」を「PIC16F84A」にして、「次へ」をクリック
| | 図のようになっている事を確認し、「次へ」をクリック 「Location」はMPLAB IDEをインストールした場所ですので、図とは異なります。
| | 図のように入力し、「次へ」をクリック 「Project Directory」のバックスラッシュは「¥」の事です。
| | 左のボックスの「led1.asm」をクリックし、「Add」ボタンをクリックします。 図の状態で、「次へ」をクリックします。
| | 「完了」をクリックします。
| | これで、プロジェクトの設定は完了です。
|
|
| Cプログラムをコンパイルし、機械語に翻訳します。
「Project」→「Build All」
コンパイルが完了すると、その結果が表示されます。
最終行に、「BUILD SUCCEEDED」と表示されていれば正常です。
コンパイルが正常に終了すると、ソースプログラムと同じフォルダに、拡張子が「HEX」と言うファイルが作成されます。これが、PICに書き込める形式となったファイルで、PICライタでPICに書き込みます。
残念ながら最終行に、「BUILD FAILED」が表示された場合はエラーがあります。
「Error[xxx]xxxx」と表示された行がありますので、その行をダブルクリックして下さい。
ソースエディタが開き、エラー行の先頭に矢印の印が付いています。
エラーを修正してソースを保存(「File」→「Save」)した後、再度コンパイル(「Project」→「Build All」)して下さい。
|