Geçen yazımda pic içerisindeki karşılaştırıcı modülünü kullanarak örnek yapacağımı söylemiştim. Karşılaştırma Modülü yazımı incelemek için tıklayınız. Yapacağım örnekte CNY70 sensörünü kullanacağım  bu sensör çizgi izleyen robotlarda da kullanılmaktadır. Uygulamada sensör üzerine beyaz kağıt getirdiğimizde led yanmasını sağlayacağım.  CNY70 sensörü üzerine beyaz kağıt getirdiğinizde ben yaklaşık olarak 2V gibi bir değer gözlemledim diğer durumda ise 5V'a yakın bir değer gözlemledim bu yüzden 2.5V referans değerini tercih ettim bir önceki yazımda da bunun için yapılacak ayarları göstermiştim. Şimdide kodları ve çalışır halini göstereceğim. CNY70 Yukarıda CNY70 ile yapacağımız bağlantıyı görmektesiniz. Aşağıdada devrenin bağlantıları mevcut. CNY70 Devre Devreyi yazdıktan kodlamaya başlayalım. İlk önce kullanacağımız PIC ve Osilatör ayarlarını yapıyoruz.

LIST P=16F628A
 INCLUDE "P16F628A.INC"
 __CONFIG _XT_OSC & _CP_OFF
 ORG 0
 CLRF PORTB

Daha sonra önceki yazımda anlattığım ayarlama ile 2.5 V referans değeri ayarlıyoruz.VRCON biti bank1 de olduğundan ayarlamasını bank1 e geçtikten sonra yapıyoruz.

MOVLW b'00100010' 
 MOVWF CMCON
 BSF STATUS,RP0 
 CLRF TRISB
 MOVLW b'10101100' 
 MOVWF VRCON
 BCF STATUS,RP0

Şimdi Kontrol ediyoruz kağıt beyaz mı ? yani referans gerilimimiz 2.5 v'nin altında mı altındaysa Ledi yak 2.5 Voltun üstündeyse Led OFF'a git ve ledi söndür. Ledin durumuna karar verdikten sonra tekrar kontrola döndürmeyide unutmuyoruz.

          BCF STATUS,RP0
Kontrol   BTFSS CMCON,6
          GOTO LEDOFF
          BSF PORTB,1 
          GOTO Kontrol
LEDOFF    BCF PORTB,1 
          GOTO Kontrol
          END

Uygulamamız burda bitiyor ASM ve Hex Dosyaları için tıklayın.

Bu yazı yorumlara kapalı.