kuroの覚え書き

96の個人的覚え書き

PIC温度計プログラム続き LCDに数値を表示編



http://www.geocities.jp/maxvxam/diy/PIC/LCD_NUM.txt

問題を切り分けるため、とりあえずWレジスタを介して数字を表示させるテストプログラムを作ってみた。

何とか表示できるようになった。

次はAD変換を何とかしよう。


;数字表示テスト
TEST
MOVLW 0BDH ;
CALL LCD_CMD ;
CLRF WIDTH
MOVLW 07BH ;123をWレジスタにセット
MOVWF WIDTH ;WIDTHに保存
CALL DISP_DIGIT ;
GOTO TEST
;************************************
;数字表示サブルーチン
;************************************
DISP_DIGIT ;3桁に分けて各桁をカウント
CLRF FIGCNT ;FIGCNTをリセット
FIGLOOP100
MOVLW 064H ;100をロードして
SUBWF WIDTH,F ;元のデータから100を引く
BTFSC STATUS,C ;マイナスになるまで繰り返す
GOTO CNTPLUS100
GOTO ENDFIG100
CNTPLUS100
INCF FIGCNT,F ;100の位の数を数える
GOTO FIGLOOP100
ENDFIG100
MOVF FIGCNT,W
CALL DISP_NUM ;100の位の表示
MOVLW 064H ;100をロード
ADDWF WIDTH,F ;マイナスになったWIDTHをプラスに戻す
CLRF FIGCNT ;FIGCNTをリセット
FIGLOOP10
MOVLW 0AH ;10をロードして
SUBWF WIDTH,F ;データから10を引く
BTFSC STATUS,C ;マイナスになるまで繰り返す
GOTO CNTPLUS10
GOTO ENDFIG10
CNTPLUS10
INCF FIGCNT,F ;10の位の数を数える
GOTO FIGLOOP10
ENDFIG10
MOVF FIGCNT,W
CALL DISP_NUM ;10の位の表示
MOVLW 0AH ;10をロード
ADDWF WIDTH,W ;マイナスになったWIDTHをプラスに戻し、Wレジスタにロード
CALL DISP_NUM ;1の位の表示
RETURN
DISP_NUM ADDLW '0' ;ASCIIコードに変換
CALL LCD_DATA ;数字の表示
RETURN

http://www.geocities.jp/maxvxam/diy/PIC/temp2.txt

おそらく入出力の設定がきちんとできてないと思われる。