第六章 便利な便利なEQU
![]()
前回は STATUS を 03H とか TRISBを 06H のように数字で表しました
・・・正直分かりにくいよね
そこで今回は 03Hじゃなくて STATUS のように 文字でアクセスする方法を紹介します
〜EQU〜
その方法は EQU というものを使います
これは MPLABに 「03H はSTATUS と呼ぶ」 と教えるためのものです
そうすれば プログラムで 03H と書かなくても STATUS と書けば
MPLABに STATUSは 03H のことだと教えてあるので
STATUSと書けば 03H と読みとって 変換してくれるのです
前に消しゴムがどこにあるのか分からなければ 「消しゴムを取って」と言われても
どの引出しにあるのか分からないので 消しゴムが取れないから 「上から3番目にある消しゴムを取って」と 言う必要があると言いました
そこで 「消しゴムは 上から3番目」と 先に教えておけば
「消しゴムを取って」と言えば 「上から3番目だな」と分かって 消しゴムを取れるようになります
その教えるのを EQUがやってくれているわけです
実際にやってみましょう
LIST P=PIC16F84A STATUS EQU 03H BSF STATUS,5 CLRF 06H BCF STATUS,5 MOVLW 0FFH MOVWF 06H END |
こんな風になりました (変更したところは 青色のところです)
03H でなく STATUS と書けるようになりました
これは EQU命令が
| STATUS EQU 03H |
のところで 「STATUS は 03H である」 とMPLABに教えているので
もともと 03H と書いていたところが
| BSF 03H,5 | → | BSF STATUS,5 |
と これでも通るようになりました
同じく TRISB も PORTBも やってみましょう
LIST P=PIC16F84A STATUS EQU 03H TRISB EQU 06H PORTB EQU 06H BSF STATUS,5 CLRF TRISB BCF STATUS,5 MOVLW 0FFH MOVWF PORTB END |
もうOKですね
06Hは TRISB 06HはPORTB としました
しかし どちらも06H なので こんな風にしても
LIST P=PIC16F84A STATUS EQU 03H TRISB EQU 06H PORTB EQU 06H BSF STATUS,5 CLRF TRISB BCF STATUS,5 MOVLW 0FFH MOVWF TRISB END |
同じ動きをします
| まとめ EQU・・・MPLABに 03HはSTATUS のように アドレスを文字に置き換えれる 例) STATUS EQU 03H ちなみに 文字は何でもいい 例) AAA EQU 03H こうすると 03Hが AAA でアクセスできる |