目次PIC回路集サインボード 2ソフトウェア


サインボード 2 ソフトウェア
ワイプ・オフ





この処理はメイン処理に組み込んで使用します。
機能
    右から左にLEDを消灯します。
    消灯間隔は100ミリ秒にしています。
    上のアニメーションはファイルサイズを小さくするために間引いています。


ソースリスト

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
;*********************  Wipe OFF  **********************
        cblock         h'40'
        woff_lp
        woff_index
        endc

wipe_off
        movlw   d'16'           ;Set loop count
        movwf   woff_lp         ;Save loop count
        movlw   d'15'           ;Set row index
        movwf   woff_index      ;Save row index
wipe_off_loop
        movlw   scrnhd          ;Set table head address
        addwf   woff_index,w    ;Head + Index
        movwf   fsr             ;Set table address
        movlw   h'7f'           ;Set OFF data
        movwf   indf            ;Write data
        call    led_cnt         ;LED control
        call    t100m           ;Wait 100msec
        decf    woff_index,f    ;Index - 1
        decfsz  woff_lp,f       ;Loop end ?
        goto    wipe_off_loop   ;No. Next row
        return                  ;Yes. Count end



解説
    ループカウントおよびテーブルインデックス用のエリアとして表示効果処理ワークエリア(40h-4Fh)を使用しています。
    2行目の'CBLOCK'と5行目の'ENDC'の間のラベルは40hから順番にアドレスが割り付けられます。'woff_lp'が40h、woff_index'が41hになります。

    この処理では1列分(7ビット)に消灯データ'1'を設定した後にLED制御サブルーチンをコールしています。その後、100ミリ秒待ってから次の列の処理をしています。このタイマーを変更すれば、表示速度を変えることができます。

    LEDを消すのにスクリーンエリアだけをクリアしているのでスクリーンワークエリアのデータは保存されています。