;=======================================================
; Проект 02. Бегущие огни на 8 светодиодах
; PIC16F84A, 4 МГц. Светодиоды RB0..RB7 через 330 Ом
;=======================================================
        LIST    p=16F84A
        #include <p16f84a.inc>
        __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF

        cblock  0x0C
        d1, d2, cnt
        endc

        ORG     0x000
        goto    Start

Start
        bsf     STATUS,RP0
        clrf    TRISB
        bcf     STATUS,RP0

Main
        movlw   b'00000001'     ; зажигаем младший разряд
        movwf   PORTB
        movlw   .8
        movwf   cnt
Shift
        call    Delay150
        bcf     STATUS,C        ; сдвигаем огонёк влево
        rlf     PORTB,f
        decfsz  cnt,f
        goto    Shift
        goto    Main

Delay150
        movlw   .150
        movwf   d1
DL1     movlw   .200
        movwf   d2
DL2     nop
        decfsz  d2,f
        goto    DL2
        decfsz  d1,f
        goto    DL1
        return

        END
