K

PIC BASIC 'de anahtarı buton olarak kullanma

Başlatan kolega35, 27 Mart 2012, 20:49:27

kolega35

Arkadaşlar,PBP'de yeniyim.16F628A ile bir kontrol devresi kurmaya çalışıyorum.Belirli bir yere geldim ancak kumanda sisteminde üç konumlu anahtarın çalışmasına geldiğimde tıkandım.PIC'in konfigürasyon satırlarında ve diğer yerlerde sorun yok,A-D çevrimi kapatıyorum.Sorunum şurada başlıyor: R :(esmini eklediğim devrenin çalışma şeklini açıklamaya çalışayım.Varolan sistemde 3 konumlu disk şeklinde bir anahtar var.Bu anahtar PIC'e aynen PULL DOWN olarak bağlanmak zorunda.(Devrenin diğer kısımları sebebiyle PULL UP bağlanması mümkün değil)Anahtar sistem çalışmaya başladığında 3 konumdan A-B,A-C veya A-D konumlarından herhangibirinde olabilir.Başlangıç konumu hangisi olursa olsun devre çalışmaya başladığında PIC in A0 pini lojik 0'da kalacaktır.Ne zaman anahtarın konumu değiştildi; o zaman A0 pini 1 sn süre için lojik 1 olacaktır.Şunu da belirtmek istiyorum,devreden de göreceğiniz üzere sadece A0 pini gerektiğinde lojik1 olacaktır.
Konunun daha anlaşılır olması açısından anahtarın(Switch) konumlarını biraz daha açmak istiyorum:
Anahtarımızın başlangıç konumunun A-B konumu olduğunu varsayalım.Başlangıçta A0'da herhangibir değişim olmayacaktır.Ne zaman anahtarın konumu değiştirildi ; A-C veya A-D konumuna alındı işte o zaman A0 1 sn süre ile lojik 1 olmalıdır.1 sn süre sonunda lojik1 durumu ortadan kalkıp lojik 0 'a geçmelidir.Yani anahtar yeni bir başlangıç noktasına alınmış olacaktır.Anahtarın konumu tekrar değiştirilmediği sürece herhangibir değişim olmayacaktır.

Başlangıçta bu sefer A-C konumunun olduğunu varsayalım.Başlangıçta A0'da herhangibir değişim olmayacaktır.Ne zaman anahtarın konumu değiştirildi ; A-B veya A-D konumuna alındı işte o zaman A0 1 sn süre ile lojik 1 olmalıdır.1 sn süre sonunda lojik1 durumu ortadan kalkıp lojik 0 'a geçmelidir.Yani anahtar yeni bir başlangıç noktasına alınmış olacaktır.Anahtarın konumu tekrar değiştirilmediği sürece herhangibir değişim olmayacaktır.

Başlangıçta bu sefer A-D konumunun olduğunu varsayalım.Başlangıçta A0'da herhangibir değişim olmayacaktır.Ne zaman anahtarın konumu değiştirildi ; A-B veya A-C konumuna alındı işte o zaman A0 1 sn süre ile lojik 1 olmalıdır.1 sn süre sonunda lojik1 durumu ortadan kalkıp lojik 0 'a geçmelidir.Yani anahtar yeni bir başlangıç noktasına alınmış olacaktır.Anahtarın konumu tekrar değiştirilmediği sürece herhangibir değişim olmayacaktır.
Belki sizlerden fazla bir şey bekliyorumdur.Bu konuda kusuruma bakmayınız.Yardımlarınız için şimdiden teşekkürler.[img]

ete

PORTB nin değerini açılışta okur ve yalnızca 3 konumlu switch bitlerini ayırırsan elinde switch giriş bilgisi olur.
Sürekli aynı veriyi alıp karşılaştırırsan farkı algılayabilirsin.

TEMP=PORTB & %01110000  şeklinde TEMP değişkenine başlangıç değerini alırsın. Aldığın bu TEMP değişkeninde 3 ayrı alternatifle bilgi olabilir. Bunlar;
- %01000000
- %00100000
- %00010000
Bu işi yaptıktan sonra arada okuduğun zaman okunandan farklı ise gidip PORTA.0 bitini HIGH yaparsın.

Ete

kolega35

Teşekkür ederim.Anlattıklarınızı uygulayacağım.

Powered by EzPortal