目次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 ON  ***********************
        cblock         h'40'
        won_lp
        won_index
        endc

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



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

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

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