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.
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
: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
}
}
Online
PIC Compiler kodları
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
Yorum Gönder