Adım Adım PIC Öğreniyorum 15
Çevrim tablosu ve seven segment ile ilgili derin konulara doğru dalıyoruz bu sayıda.
Bu yazımızda çevrim tablosu ve seven segment led display ile ilgili konulara göz gezdireceğiz. Seven segment LED display ortak anotlu veya ortak katotlu olabilen ve 7 adet led içeren bir displaydir. Bu ledlerden bazılarının yakılması durumunda displayde bir görüntü ortaya çıkar. Display bir pic yardımı ile sürülür. Pic’in RB0 dan RB7 ye kadar olan 8 bit’i bu iş için ayrılır. Genelde RB0 segmentin A ledine gider ve RB7 nokta olarak kullanılır. Bir 7 segmentte saat yönünde giderek ve tepeden başlayarak led ler: A, B, C, D, E, F, G olarak adlandırılır. Segmentin üst ve altında orta uçlar Ground olarak kullanılır (ortak katot).
Port b den gelen bilgilerin, klasik bağlantı yapılmış olan bir display de oluşturduğu şekil, port b ye aktrılan bilgiye bağlıdır. RB0 dan RB7’ye kadar olan bitlerin high veya low olmasına göre, bu çıkışların bağlandığı ledler bir görüntü oluşturur. Örneğin segmentte 0 olması için, A, B, C, D, E, F ledlerinin high olması gerekir, bu ledlerin geldiği pic kapıları RB0 – RB6 kapılarıdır, o halde bu bitler 1 olmalıdır, yani Binary olarak port B ye “00111111” atanmalıdır. Bu atamayı binary olarak yapabileceğimiz gibi decimal veya hexadecimal olarak da yapabiliriz, yukarıdaki binary sayının karşılığı D “63” H “3F” tir. Yani decimal 63 sayısı binary olarak ifade edildiğinde, karşılığı B “00111111”dir bu da port B de “0” gösterir. Sonuçta port B ye atanan Hex. veya Dec. sayının Binary karşılığıdır.
Bu listede görülen bir decimal veya hexadecimal sayıyı port B ye atadığınız zaman seven segmette karşılığı olan rakamı görürsünüz.Bu işlem için çevrim tabloları kullanılır.Çevrim tablosuna hexadecimal veya decimal olarak yazdığımız sayı ,binary karşılığına çevrilerek pic portlarından segmente aktarılır ve bir görüntü oluşur.
ÇEVRİM TABLOLARI: Port çıkışında hangi binary sayılar isteniyorsa onların karşılığı olan decimal veya hexadecimal sayıların yazıldığı bir listedir.
CALL RETURN komutu gibi bu da CALL RETLW komut ikilisi ile kullanılır.Çevrim tablosu binary ‘e çevrilecek sayıları içerir ve bu binary değerlerin port çıkışlarındaki durumuna göre perifer elemanlar çalışır.
RETLW: Return komutu gibi bu da alt programdan ana programa dönüş için kullanılır. Bu komut ana programa dönüşte karşısında yazılan değeri Write registere yazar.
PROGRAM COUNTER: Program sayıcılar pic lerde kullanılan bir registerdir.Pıc belleğinin değerine göre 10 ila 14 bit lik sayıcılar kullanılır.10 bit yani 210 = 1024 byte olduğundan ve pic 16F84 ün de 1 Kbyte lık bir program hafızası olduğundan,bunu adreslemek için counterda 10 bit yeterlidir.
Pic 16F84 counter 13 bittir. İlk 8 biti PCL’dir ve bununla 256 byte adreslenir. Diğer 5 biti PCH’tir ve bunun doğrudan okunup yazılması mümkün değildir, bu ancak PLATCH register ile bu da 5 bittir, kullanılır.
Programda PC olarak tüm register bitleri kullanılırsa,PLATCH registerin üst 2 bitini sıfırlamak gerekir bu nedenle,dar kapasiteli kullanımlarda PC yerine PCL yazarak bu nun önüne geçeriz.
ÖRNEK: Seven segment üzerinde 0 ila 9 arasındaki sayıları gösteren bir program yapalım.
;ADIM ADIM PIC
;DENEME PROGRAM YAZI 15
;SEVEN SEGMENT
;TA2FR
LIST P=16F84
INCLUDE “16F84.INC”
CLRF PORTB ;Port b cıkışları low (sönük)
BSF STATUS,5 ;Bank 1’e gec
CLRF TRISB ;Port B yi çıkış pozisyonuna getir
BCF STATUS,5 ;Bank 0 ‘a gel
BASLA
MOVLW H’00’
MOVWF SAYAC4
DONGU MOVF SAYAC4,W
ANDLW B’00001111′
CALL _7SEG
MOVWF PORTB
INCF SAYAC4,F
CALL GECIKME
GOTO DONGU
_7SEG
ADDWF PCL,F
RETLW H’3F’
RETLW H’06’
RETLW H’5B’
RETLW H’4F’
RETLW H’66’
RETLW H’6D’
RETLW H’7D’
RETLW H’07’
RETLW H’7F’
RETLW H’6F’
GECIKME
MOVLW H’06’
MOVWF SAYAC1
DONGU1
MOVLW H’FF’
MOVWF SAYAC2
DONGU2
MOVLW H’FF’
MOVWF SAYAC3
DONGU3
DECFSZ SAYAC3,F
GOTO DONGU3
DECFSZ SAYAC2,F
GOTO DONGU2
DECFSZ SAYAC1,F
GOTO DONGU1
RETURN
END
· ASM ve HEX file:Yazı15
Pic çıkışlarından RB0 ila RB7 ye kadar olanlar sırası ile Segmentin A dan G ye kadar olan bacaklarına bağlanır.Nokta boş bırakılır ve en son kapı olan RB7 ye gerekirse bağlanır.
RB0 – A RB1 – B RB2 – C RB3 – D RB4 – E RB5 – F RB6 – G
Bu bağlantı dan sonra yukarıdaki Hex file”lı pic”e yükleyiniz ve çalıştırınız . Display de o dan 9 a kadar rakamlar sıra ile yanarlar.
Bir 7 segment LED display de üst ve alt kısımda bulunan orta uçlar birleşik katot dur.
Bu kısım şaseye bağlanır. A,B,C ucları da yukarıda gösterilen resimdeki aynı harfli ledlerin uçlarıdır.
Bu ledleri RB çıkışlarına istediğiniz gibi bağlıyabilirsiniz bu sizin seçiminizdir,yalnız programı buna göre yazmanız gerekir.
Klasik olan RB0 dan RB6 kadar olan uclara sırası ile A, B, C . ledlerini bağlamaktır.
Gerisi yazdığınız programa bağlıdır.