PIC 16F628A ile LDR Kullanımı


PIC 16F628A ve LDR (Ligh Dependent Resistor) (Foto Direnç) kullanarak karanlık aydınlık dedektörü yapalım.


DEVRE ŞEMASI:



DEVRENİN PROTEUS ÜZERİNDE ANİMASYONU:


VIDEO:




UYARILAR:
PIC’e programı yazarken fuses bölümünde:
"Watch Dog Timer" (WDT) seçeneğini "Disabled" yapın,
Oscillator için, "Internal Oscillator" ile ilgili çıkan iki seçenekten birini seçin. Ben devreye şemadaki gibi osilatör ekleyip PIC’i programlarken MicroBrn programında fuses bölümünde “Oscillator” bölümünde “XT” seçtim.
LED’leri transistörlü bir devre ile sürerek daha hassas geçişler sağlayabilirsiniz.


HEX Kodları:
:020000001628C0
:0E0006008312031321088A00200882000800DC
:1000140003208A110A128000840AA00A0319A10A83
:08002400F003031D0A28080087
:10002C00831603130610831206191E2806101F28A8
:06003C000614192820281B
:02400E00792116
:00000001FF

Assembly Kodları:
LIST P=16F628A
INCLUDE <P16F628A.INC>
__config 0x3ff9
BSF STATUS, 5        ;BANK1’e gec
BCF TRISB, 0          ;RB0’ı cikis yap
BCF STATUS, 5        ;BANK0’a gec
LOOP
BTFSS PORTB, 2      ;RB2=0 ise
BCF PORTB, 0         ;RB0=0 yap
BTFSC PORTB, 2      ;RB2=1 ise
BSF PORTB, 0         ;RB0=1 yap
GOTO LOOP
END

MikroC Kodları:
void main() {
TRISB.RB0=0                    ;//RB0'ı çıkış yap
while(1){
PORTB.RB0=PORTB.RB2     ;//RB2'yi, RB0'a kopyala
}
}
BSF STATUS, 5      ;BANK1’e gec
BCF TRISB, 0         ;RB0’ı cikis yap
BCF STATUS, 5      ;BANK0’a gec
LOOP
BTFSS PORTB, 2    ;RB2=0 ise
BCF PORTB, 0        ;RB0=0 yap
BTFSC PORTB, 2    ;RB2=1 ise
BSF PORTB, 0        ;RB0=1 yap
GOTO LOOP




Kullanılan Programlar    : MPLAB IDE v8.15a, Proteus 8, microbrn

Kullanılan Programlayıcı: K150 PIC Programmer (Klon)



Yorumlar