PIC雑学 [分かり易いプログラムを書きましょう]   時々自分勝手な?「シンボル」を使って、他の人が見たら何を書いて  いるのか全然分からないプログラムを見かけます。  本人はいかにも「これは高級なんだ!」と言いたいのでしょうね。   私は後で自分が読み返しても、他の人に見て頂いて意見を聞く為にも  出来るだけ分かり易く、簡単な表現を心掛けているつもりでおります。  順不動になりますがそれらに付いて述べてみたいと思います。  1.シンボルの命名は極力少なく又事前に表記。    マイクロソフト社では全てのレジスタの各ビット毎に「シンボル」を   付けています。普段自分が良く使う物は覚えるのが簡単かも知れませんが   一般の人がその全てのシンボルを覚えるのは不可能です。   ですからレジスタの中のビットを指定する場合は「ビット番号」   で指定する様にしております。   例 BCF INTCON,7 ;割込禁止   但し[STATUS]レジスタ関連は最も多用するところですので、下記のもの   位は命名しておいた方が便利だと考えて使用しています。 W EQU 0 ;Wレジスタ SELF EQU 1 :左側に書いた自分自身のレジスタ C EQU 0 ;キャリーフラグ(ビット) Z EQU 2 ;ゼットフラグ DC EQU 1 ;デジットキャリーフラグ     ;REG 例題の為に使うWレジスタを除く全てのレジスタの仮称です PR0 EQU 5 ;バンクを指定する為にページ?を使う PR1 EQU 6 ;事には疑問を感じます   私なら BANK EQU 5 ;BANK 0,2 か 1,3 を選択 BKG EQU 6 ;BANK グループ 0,1 か 2,3 を選択   としたいのですが、やっぱり BSF STATUS,5  の方が好きです  2.数値表現は日本人に分かり易く書きます。 MOVLW D'123' ;一般的な数を表す時には10進数で INTCON EQU H'0B' ;アドレスを表す時には16進数で MOVLW B'01010101' ;レジスタに機能を設定する時には ;2進数で、*     *ここに H'7E' 等と16進数で書いた解説書を見かけましたが     その人は本当に実用になるプログラムを書いた事があるのでしょうか。  3.マクロ命令を活用します。    マイクロチップ社が無料で提供してくれています「MPASM」には    随分便利な「マクロ命令」が使える様になっています。    これを使う事に寄りまして    @間違いが少なくなる。 A記入行数が少なくなる。    等の利点があります。この件はページを改めて記載します。  4.ワークエリアに作業用のレジスタを設定する場合、最も若番の幾つかは    割込用に空けて置くか退避用の設定を行います。 W_TEMP EQU H'20' ;W レジスタ退避用  5.同じく作業用に設定したレジスタには、分かり易い名前を付け    最初に表示します。 COUNT1 EQU H'30' :時間稼ぎカウンター用の1番目  6.入出力端子(ポート)の使用状態も始めの方に表示します ;RB0 IN DATA1 ;RB0 の端子を DATA1 の入力に使用  7.コメントは出来るだけ日本語で書きます。日本人なのですから。 MOVLW B'11000111' ;内部発信機,ウオッチドッグタイマー未使用 ;80mS に設定 ;RB のプルアップ未使用 MOVWF OPTION_REG ;タイマー0設定用のレジスタに書込    注 OPTION のシンボル文字単独使用不可、 OPTION_REG にする必要有  8.BANK 1(のレジスタ),BANK 2,BANK 3 を使用し終わった時は、必ず    BANK 0 に戻しておく習慣をつけます。 BCF STATUS,6 ;BAMK 0,1 を選択 BCF STATUS,5 ;BANK 0 を選択  9.BANK 1 にある「シャドウレジスタ」は使用しない様にします。    BANK 0 に戻って指定するのが王道ですので。  10.作業用のレジスタを BANK 1 に設定した時は BANK の切替に十分な注意     をはらいます。どうしても使用する場合はデータの格納等に使用しています。  11.割込の許可は全ての準備が整ってから出します。     そうしませんとプログラムの準備途中で、割込に遭遇してしまいます。       この件は「PICの割込み」にて記載します。 URL http://int.picfun.net Copyright (c) 2005-2006, Kurosu. All Rights Reseved