movlw .8
movwf shift_count
MOVLW 0x00 ;put data into f0
MOVWF f0
MOVLW 0x70
MOVWF f1
MOVLW 0x88
MOVWF f2
MOVLW 0x88
MOVWF f3
MOVLW 0xff
MOVWF f4
MOVLW 0x88
MOVWF f5
MOVLW 0x88
MOVWF f6
MOVLW 0x88
MOVWF f7
Shift1:
BSF PORTC,1 ;DATA PIN SET TO HIGH
RLF f0,f ;ROTATE left data
btfsc f0,0 ;if test bit is 0 skip if test bit is 1 send 1 to
BSF PORTD,0 ; bit 0 of PORTD
RLF f1,f ;70
btfsC f1,0
BSF PORTD,1
RLF f2,f ;88
BTFSC f2,0
BSF PORTD,2
RLF f3,f ;88
BTFSC f3,0
BSF PORTD,3
RLF f4,f ;ff
BTFSC f4,0
BSF PORTD,4
RLF f5,f ;88
BTFSC f5,0
BSF PORTD,5
RLF f6,f ;88
BTFSC f6,0
BSF PORTD,6
RLF f7,f ;88
BTFSC f7,0
BSF PORTD,7
BCF PORTC,1 ;set data pin to low
GOTO CLK ;send clock to shift once
CALL DELAY
DECFSZ shift_count ;decrease counter for 8 times shifting
GOTO Shift1 ;if shift_count <8 loop or else go to
GOTO STANDBY ;standby