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ı:
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
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.
