;Following is the code to switch on alternate LEDs for 1 seconds list p=16F84A #include __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ERRORLEVEL -302 CBLOCK 0X0C TX ; COUNTSPI d1 d2 d3 ENDC #define DATA1 PORTA,0 #define CLOCK PORTA,1 #define LATCH PORTA,2 ORG 0X00 GOTO MAIN #include "HC595.INC" ;;Thanks to Nebojsa Matic of mikroElektronika for idea ;;;;;;;;;;;;;;;;;1 sec delay;;;;;;;;;;;;;;;;;;;;;;; DELAY1s ;999990 cycles movlw 0x07 movwf d1 movlw 0x2F movwf d2 movlw 0x03 movwf d3 Delay_01 decfsz d1, f goto $+2 decfsz d2, f goto $+2 decfsz d3, f goto Delay_01 ;6 cycles goto $+1 goto $+1 goto $+1 ;4 cycles (including call) return MAIN BSF STATUS,RP0 MOVLW B'00000' MOVWF TRISA BCF STATUS,RP0 CLRF PORTA LUPHR CLRF PORTA MOVLW B'10101010' MOVWF TX HC595 TX,COUNTSPI CALL DELAY1s CLRF PORTA MOVLW B'01010101' MOVWF TX HC595 TX,COUNTSPI CALL DELAY1s GOTO LUPHR END