第七章 もっと便利なインクロード
![]()
ぜんかい03Hなどを STATUS のように 文字に置き換える方法を紹介しました
EQUを使ってね
・・・でも不便だ
毎回毎回 つかうレジスタを EQUで書いていたら・・・ちょっとねぇ
全部の名前のついてるレジスタは 最初っからEQUで書いてあればいいのに・・・
そこで INCLUDE の紹介です
〜なんとも便利なINCLUDE〜
話しは簡単 名前のあるレジスタ全部を EQUで(STATUS EQU 03H のように) ぜ〜んぶ
書いてあるファイルを 読みこむんです
PICは種類によって レジスタの数やアドレスが違います
しかし! MPLABにはそれぞれ 全部のPICのレジスタを ぜんぶEQUしたファイルがあるのです
例えば PIC16F84A なら P16F84A.INC と言う名前で MPLAB の中にセットで入っています
この中には 前にレジスタ一覧で見た PIC16F84A のレジスタ全てがEQUしてあって
03Hとかじゃなくて STATUS のように 文字で書けるようになっています
これを読みこめば わざわざ STATUS EQU 03H と書かなくても
BSF STATUS,5 のように書くことが出来るようになります
早速やってみましょう
LIST P=PIC16F84A INCLUDE "P16F84A.INC" BSF STATUS,5 CLRF TRISB BCF STATUS,5 MOVLW 0FFH MOVWF TRISB END |
ちゃんちゃん 終わり (INCLUDE は #INCLUDE が正しい書き方みたいですが 別にどっちでもいいです)
簡単ですね〜 これでPIC16F84のあの一覧にあったレジスタは 全部 あのままの文字で書けます
TRISB も PORTB も ぜ〜んぶ
P16F84A.INC の中で 全部EQUしてあるわけですよ それを読みこんだんだから OKってわけ
INCLUDEは ファイルを読みこむものです そしてそのファイルを このプログラムといっしょに MPLABに渡します
ここで そのファイルとは P16F84A.INC つまり 全部のレジスタがEQUしてあるものです
それを プログラムといっしょにMPLABに送ったのですから
MPLABは まずこのインクロードした P16F84A.INC を見てレジスタとアドレスを覚えて
それから プログラムをアセンブルしてくれますから
プログラムで 03HなんかをEQUすることもなく STATUS と書くことが出来るわけです
便利でしょ〜
ちなみに ここで P16F84A.INC としてありますが これは PIC16F84A のインクロードファイルです
PIC16F84 と PIC16F84A はほぼ同じPICですのでインクロードファイルも P16F84A.INCでもP16F84.INC にしても
ほぼ大丈夫です
| まとめ INCLUDE(#INCLUDE)・・・MPLABへいっしょにアセンブルファイルを読みこむ PICのレジスタがEQUで宣言してある MPLABにセットでついている INCファイルを読みこめば プログラムで レジスタをEQUする必要もなくなる PIC16F84Aの例) INCLUDE "P16F84A.INC" |