データをシフトレジスタに送信する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)
まだコメントがありません。最初にコメントを残しませんか?