0
    KAYAN IŞIKLAR (Karaşimşek, PIC16F84A ):

   Video gösterimi:
                  Aşağıdaki videoda basit karaşimşek devresinin çalışmasını görebilirsiniz.




 Kaynak dosyaları:    
                                kayan_isik.asm
                                kayan_isik.hex
                                karasimsek.dsn

 Assembly Codu: 
    LIST    P=16F84A

    INCLUDE    "P16F84A.INC"   


;VARIABLES
COUNT1    equ    H'0C'        ;
COUNT2    equ    H'0D'        ;
PORTA   equ 05h
PORTB   equ 06h
TRISB   equ 86h
TRISA   equ 85h
STATUS  equ 03h

program
    BSF    STATUS,5    ;BANK0 to BANK1
    CLRF    TRISB        ;All the pins sets as outputs    
    CLRF    PORTB        ;sll the pins in PORTB sets low
;    MOVLW    00h        ; RA0-1 now set as input
;    MOVWF    TRISB
   MOVLW    01h        ; RA0-1 now set as input
    MOVWF    TRISA
    BCF    STATUS,5    ;return to BANK0 back
;PROGRAM BEGINS
    BTFSS    PORTA,0
    GOTO    switch1            ;1 geldi  switch1
    GOTO    switch2            ;0 geldi switch2
switch1
    MOVLW    00h     ;00000000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    80h     ;10000000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    40h     ;01000000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    20h     ;00100000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    10h        ;00010000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    08h     ;00001000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    04h     ;00000100
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    02h        ;00000010
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    01h     ;00000001
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    02h     ;00000010
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    04h        ;00000100
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    08h     ;00001000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    10h     ;00010000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    20h     ;00100000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    40h     ;01000000
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    80h     ;10000000
    MOVWF    PORTB
    CALL    DELAY
    GOTO     program       

switch2
    MOVLW    7Fh     ;01111111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0bFh     ;10111111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0dfh     ;11011111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0eFh        ;11101111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0f7h     ;11110111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0fbh     ;11111011
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0fdh        ;11111101
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0feh     ;11111110
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0fdh     ;11111101
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0fbh     ;11111011
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0F7h        ;11110111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0efh     ;11101111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0dfh     ;11011111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    0bfh        ;10111111
    MOVWF    PORTB
    CALL    DELAY
    MOVLW    7fh     ;01111111
    MOVWF    PORTB
    CALL    DELAY
    GOTO    program
           
;DELAY SUBROUTINE
DELAY
    MOVLW    D'255'
    MOVWF    COUNT1
LOOP1
    MOVLW    D'100'
    MOVWF    COUNT2
LOOP2
    DECFSZ    COUNT2,F
    GOTO    LOOP2
    DECFSZ    COUNT1,F
    GOTO    LOOP1
    RETURN
   
END



Boardu tasarlarken aşağıdaki resmi inceleyebilirsiniz.