16 Mayıs 2009 Cumartesi

pic16f84 pic16f627 pic16f628 deneme kartı ve pbp kod örnekleri



Devre şemasını büyük görmek için resime tıklayınız...


İsmail Soran tarafından hazırlanmış bu devre ile f84 f628 ve f627 picleri aşağıdaki kodlar ile deneyebilirsiniz. Bu kodlar ile aşağıdaki
uygulamaları gerçekleştirebilirsiniz. Kodların yazımı anlatım ile gerçekleştirilmiş. İsmail Soran'a bu bilgiler için teşekkür ederim.

Led yak söndür
Buton ile yak söndür uygulaması
74HC595 seri veri iletişimi uygulaması
Ayrıca devreye jdm pic programlayıcı entegre edilebilir. Bu sayede aynı kart üzerinde programlayıcı özelliğide sağlanmış olur. Programlama yapılacağı zaman deneme kartında pic haricindeki elemanların beslemesi kesilmeli ve JP1 JP2 JP3 JP5 açılmalıdır. JDM programayıcı hakkında bilgiye
buradan ulaşabilirsiniz...
Hazırlayan: İsmail Soran

PIC ile uğraşmaya yeni başlayanlar için tasarladığım bu kartta ;
2x16 LCD
7 Segment Ortak Katot Display
8xLED
4xBUTON
3xKristal bulunmaktadır.
PIC16F628 DENEY KARTI
PIC'li sistemlere yeni başlayan arkadaşlar genelde bu işin ne kadar zor olduğunu düşünürler.Oysa ki biraz ingilizce,biraz teori ve birazda deneyim olduğu zaman, artık istediğiniz projeyi kendiniz tasarlayabilirsiniz. İngilizce olmasının sebebi kullanılan komutlar
(PIC BASIC için) örneğin;"goto" bunun ne anlama geldiği az çok anlaşılabilir.Bunun yanı sıra "Pause"..Bugun 8-9 yaşlarında oyun oynayan bir çocuğa bu soruyu sorduğunuzda "bekle" cevabını almak sizi şaşırtmaz.Sizde şaşırmayın (Yeni başlayanlar için). Çünkü PICBASIC dili hemen hemen bütünüyle temel ingilizce seviyesine dayanır.Tabi ki komutların kullanışı da önemli.Bunun yanı sıra teoriden kastım kullanılacak komutların ne anlama geldiği ve nasıl kullanılacığını bilmek. Deneyim ise zamanla oluşabilecek bir durum. İlk olarak burada size bir tek ledi yakıp söndürmeyi anlatacağım. Bilen arkadaşlara komik gelebilir. Fakat unutmayalım ki bilmeyen daha çok arkadaşımız var.Hadi bakalım kolay gelsin.
Aşağıdaki örnekler PIC-Basic ile hazırlanmıştır.
1.YAK-SÖN UYGULAMASI
'****************************************************************
'* Name : yanson.BAS *
'* Author : [ismail SORAN] *
'* Notice : Yeni kullanıcılar için tasarımlar.1-A] *
'* : All Rights Reserved *
'* Date : 24.03.2009 *
'* Version : 1.0 *
'* Notes :Bu yazılımda basit tek bir ledi belirli aralıklarla*
'* :yakıp söndüreceğiz.Bütün yazılımlarda 16F628 esas *
'* :alınacaktır *
'****************************************************************
TRISA=000000 'PORTA pinlerinin tamamı çıkış yapıldı
TRISB=255 'PORTB pinlerinin tamamı çıkış yapıldı
;******************************************************************************
;***************yukarıda iki işlem aynı fakat bu şekilde karşılaşırsanız *******
;***************"acaba bu ne" demeyin diye örnek olarak yazdım******************
SYMBOL LED = PORTB.1 'B Portunun 1. pinine led adını verdim
basla: 'burası programın başladığı yer
HIGH LED 'High (yüksek)PORTB'nin 1. pinini en yüksek
'seviye çeker,yani o pinden 5V elde edilir
PAUSE 500 'Pause(Bekle) burada yarım saniye beklenir
LOW LED 'Low(düşük)PORTB'nin 1. pinini en düşük seviyeye çeker
PAUSE 500 'Yarım saniye bekle
GOTO basla 'goto(git) basla etiketine geri git yani işlemi
'devamlı yap
2.BUTON İLE YAK-SÖN UYGULAMASI
'****************************************************************
'* Name : buton_yanson.BAS *
'* Author : [ismail SORAN] *
'* Notice : Yeni kullanıcılar için tasarımlar.1-b] *
'* : All Rights Reserved *
'* Date : 24.03.2009 *
'* Version : 1.0 *
'* Notes :Bu yazılımda basit tek bir ledi butona bastığımızda*
'* :yakıp söndüreceğiz.Bütün yazılımlarda 16F628 esas *
'* :alınacaktır *
'****************************************************************
TRISA=255 'PORTA'nın bütün pinleri çıkış yapıldı
TRISB=%10000000 'PORTB'nin 7. pini giriş diğer pinler çıkış yapıldı
;*******************************************************************************
SYMBOL TUS = PORTB.7 'PORTB nin 7. pinindeki butona tuş adını verdim
SYMBOL LED = PORTB.1 'PORTB nin 1. pinine LED adını verdim.
;*******************************************************************************
PORTB=000000 'PORTB'nin bütün pinleri 0V a çekildi
HIGH LED 'Programın ilk çalıştığı durumda LED yanar
PAUSE 1 'Sıçramayı önle
basla: 'Program burda başlıyor
IF TUS=0 THEN kontrol 'Eğer butona basılmışsa kontrol etiketine git
GOTO basla 'Basla etiketine geri dön
kontrol:
TOGGLE LED 'Led yanıyorsa söndür,sönmüşse yak
'Bu komut pinin durumunu değiştirir.Yani 5V ise 0V yapar
PAUSE 250 'Bekleme yap
GOTO basla 'basla etiketine git
3.74HC595 seri veri iletişimi uygulaması
'****************************************************************
'* Name : 74595_led.BAS *
'* Author : [ismail SORAN] *
'* Notice : Yeni kullanıcılar için tasarımlar.1-c] *
'* : All Rights Reserved *
'* Date : 24.03.2009 *
'* Version : 1.0 *
'* Notes :Bu yazılımda seri bilgi gönderip LED lerde nasıl *
'* :olduğunu göreceğiz.Bütün yazılımlarda 16F628 esas *
'* :alınacaktır *
'****************************************************************
TRISA=255 : TRISB=255 ' <:> işaretinden sonra aynı alt satıra geçilmiş
'gibi deva edilir
SYMBOL DTA = PORTB.1 '74595 DS pini seçildi
SYMBOL CLK = PORTB.2 '74595 SH_CP pini seçildi
SYMBOL YAZ = PORTB.3 '74595 ST_CP pini seçildi
;*******************************************************************************
basla:
SHIFTOUT DTA,CLK,1,[%01010101] 'Veriyi dta,clk pinlerinden senkronize
'olacak şekilde gönder
HIGH YAZ 'ST_CP pini 5V
PAUSEUS 2 'Çok kısa bi süre bekle
LOW YAZ 'ST_CP pini 0V
GOTO basla
4.74HC595 Display Uygulaması
'****************************************************************
'* Name : 74595_display.BAS *
'* Author : [ismail SORAN] *
'* Notice : Yeni kullanıcılar için tasarımlar.1-d] *
'* : All Rights Reserved *
'* Date : 24.03.2009 *
'* Version : 1.0 *
'* Notes :Bu yazılımda seri bilgi gönderip displayde nasıl *
'* :olduğunu göreceğiz.Bütün yazılımlarda 16F628 esas *
'* :alınacaktır *
'****************************************************************
TRISA=255:TRISB=255 'Bütün portlar çıkış
SYMBOL DTA = PORTB.1 '74595 DS pini seçildi
SYMBOL CLK = PORTB.2 '74595 SH_CP pini seçildi
SYMBOL YAZ = PORTB.3 '74595 ST_CP pini seçildi
;*******************************************************************************
bir VAR BYTE:iki VAR BYTE:uc VAR BYTE
dort VAR BYTE:bes VAR BYTE:alti VAR BYTE:x VAR BYTE
yedi VAR BYTE:sekiz VAR BYTE:dokuz VAR BYTE:sifir VAR BYTE
;*******************Rakamlar için değişken tanımladık***************************
bir=000110:iki=%01011011:uc=%01001111:dort=%01100110:bes=%01101101
alti=%01111101:yedi=000111:sekiz=%01111111:dokuz=%01101111:sifir=111111
;***********************rakamlara veriler yüklendi*****************************
basla:
x=bir:GOSUB ekran:PAUSE 750 'x değişkenine 1 rakamını yükle
x=iki:GOSUB ekran:PAUSE 750
x=uc:GOSUB ekran:PAUSE 750
x=dort:GOSUB ekran:PAUSE 750
x=bes:GOSUB ekran:PAUSE 750
x=alti:GOSUB ekran:PAUSE 750
x=yedi:GOSUB ekran:PAUSE 750
x=sekiz:GOSUB ekran:PAUSE 750
x=dokuz:GOSUB ekran:PAUSE 750
x=sifir:GOSUB ekran:PAUSE 750
GOTO basla
ekran:
SHIFTOUT DTA,CLK,1,[x] 'Veriyi dta,clk pinlerinden senkronize
'olacak şekilde gönder
HIGH YAZ 'ST_CP pini 5V
PAUSEUS 2 'Çok kısa bi süre bekle
LOW YAZ 'ST_CP pini 0V
RETURN 'Alt programdan çık'