mikecat_mixc mikecat_mixc 2015-09-23 22:16:38

[その他] 【アセンブラ(PIC)】ループする時間がもったいない このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

データをシフトレジスタに送信するPIC16F1827のコード。

マクロを使おう(提案)

; ports
PORTB_OUT_EN EQU 3
PORTB_OUT_DAT EQU 4
PORTB_OUT_CK EQU 5

; variables
VAR_DISPLAY_STATUS EQU 0x125
VAR_SHIFT_BUFFER EQU 0x126

    ; send the data to the display
    CLRF LATB ; EN = 0 (LED off)
    BTFSC VAR_SHIFT_BUFFER, 7
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 6
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 5
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 4
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 3
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 2
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 1
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    CLRF LATB
    BTFSC VAR_SHIFT_BUFFER, 0
    BSF LATB, PORTB_OUT_DAT
    BSF LATB, PORTB_OUT_CK
    ; set A, B, C
    MOVF VAR_DISPLAY_STATUS, W
    MOVWF LATB
    BSF LATB, PORTB_OUT_EN ; EN = 1 (LED on)

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証