LIST P=16F84
INCLUDE "P16F84.INC"
SAY1 EQU H'21'
SAY2 EQU H'22'
ORG H'00'
;------PORT AYARLARI-------
BSF STATUS,5;
CLRF TRİSB;
BCF STATUS,5;
;-------PROGRAM------------
DEVAM:
BSF PORTB,7;
CALL ZAMAN
BCF PORTB,7;
CALL ZAMAN
GOTO DEVAM
;--------ZAMAN ALT PROGRAM-------
MOVLW D'250'
MOVWF SAY1
DON2:
MOVLW D'250'
MOVWF SAY2
DON1:
DECFSZ SAY2,F
GOTO DON1
DECFSZ SAY1,F
GOTO DON2
RETURN
END
;-----------SON----------------------
Arkadaşım aklımda kaldığı kadarıyla programı yazmaya çalıştım. Bu şekilde led sürekli yanıp söner.
Eğer led sadece 1 kere yanıp sönecekse :
;-------PROGRAM------------
BSF PORTB,7;
CALL ZAMAN
BCF PORTB,7;
şeklinde değişiklik yaparsan led bir kere yanar ve söner.
PİC e yeni başladım diye belirmişsin büyük ihtimalle zaman gecikmesinin nasıl yapıldıgını henüz görmemişsinizdir.
zaman gecikmesinin nasıl yapıldıgını görmediğinizi varsayarak programı başka şekilde yazıyorum
;--------PROGRAM------
MOVLW B'10000000'
MOVWF PORTB
NOP
NOP
NOP
NOP
NOP
.
.
.
.
.
.
.NOP
MOVLW B'00000000'
MOVWF PORTB
BURADAKİ NOP(No operation-Hiçbir işlem yapma) komutu mikrosaniye düzeyinde bir gecikme sağlar.Gecikme çok kısa olduğu için algılamayız ,bu yüzden peşpeşe birçok NOP komutu yazmak gerekir.