5 Kasım 2018

CCS C Dijital Çıkış Komutları

Arkadaşlar bu dersimizde Pic mikrodenetleyicisi üzerinden dijital çıkış sinyalleri almayı inceleyeceğiz. Öncelikle şunu açıklayalım ki pic mikrodenetleyicilerinde portları çıkış ya da giriş olarak yönlendirmek zorunda değiliz. Programın akışına göre denetleyici portların pinlerini otomatik olarak giriş ya da çıkış olarak yönlendirmektedir. Ancak daha hızlı bir yönlendirme için #use fazt_io(portAdi) fonksiyonu ile port istediğimiz portun istediğimiz pinlerini giriş ya da çıkış olarak yönlendirebileceğimizi belirtmiştirk.

Biz bu dersimizde 16F877A denetleyicisinin yalnızca D portunu çıkış olarak kullanacağız. Diğer portları kullanmayacağız.

Şimdi gelelim dijital çıkış alabileceğimiz fonksiyonlara;

1- get_tris_x() komutu:

Bu komutumuz portun pinlerinin giriş çıkış durumunu döndürür. Hangi pinin giriş hangi pinin çıkış olduğunu göstermek için kullanılır.

Sözdizimi: get_tris_portAdi()

Örnek olarak D portunun pinlerinin giriş olarak mı, yoksa çıkış olarak mı ayarlandığına bakalım;

 

2- output_high() komutu;

Bu komutumuz, istediğimiz portun istediğimiz pinini 1 (true) yapmak için kullanılır. Bu komutu kullandığımızda belirttiğimiz pinin voltaj değeri +5v olur.

Sözdizimi; output_high(pinAdi)

Örneğin D portunun sıfırıncı çıkışını 1 (+5v) yapalım;

3- output_low() komutu:

Bu komutumuz, istediğimiz portun istediğimiz pinini 0 (false) yapmak için kullanılır. Bu komutu kullandığımızda belirttiğimiz pinin voltaj değeri 0v olur.

Sözdizimi; output_low(pinAdi)

Örneğin D portunun sıfırıncı çıkışını 0 (0v) yapalım;

4- output_bit() komutu:

Bu komut istediğimiz portun, istediğimiz pinine bit değeri vermek için kullanılır. Yukarıdaki bahsettiğimiz output_high ve output_low komutunun her ikisini de yapabilir.

Sözdizimi: output_bit(pinAdi, deger)

Örneğin D portunun birinci çıkışını 1, ikinci çıkışını 0 yapalım;

5- output_port() komutu;

Bu komut istediğimiz portun tüm çıkışlarına belli bir değeri yazdırmak için kullanılır. Yani tüm çıkışlara birden bu fonksiyonla 1 ya da 0 değeri gönderebiliriz. D portu 8 bitlik çıkış veren bir port olduğu için göndereceğimiz değer 8 bitlik değer olmak zorundadır. Yani maksimum göndereceğimiz değerler; decimal 255, hexadecimal 0xFF ya da binary 0b11111111 olmak zorundadır. Eğer bir sayının solunda herhangi bir değer yoksa o sayı Decimal (10 tabanlı) sayıyı, eğer”0x” varsa o sayı Hexadecimal (16 tabanlı) sayıyı ya da solunda  “0b” varsa o sayı Binary (2 tabanlı) sayıyı temsil eder.

Sayı tabanları konusunda daha detaylı bilgi almak için Sayı Sistemlerinin Birbiri Arasında Dönüşümü dersimizi ziyaret edebilirsiniz.

Daha kolay dönüştürme işlemleri için Sayı Dönüştürücü aracımızı deneyebilirsiniz.

Sözdizimi: output_portAdi(deger)

Örneğin D portunun pinlerine sırasıyla 01100111 verisini gönderelim;

6- output_toggle() komutu:

İstenilen pinin çıkış durumunu terslemek için kullanılır. Yani pin değeri 1 ise 0, 0 ise 1 yapmak için kullanılır.

Sözdizimi; output_toggle(pin_adi)

Örnek olarak D portunun 3 numaralı pininin durumunu değiştirelim;

Şimdi bir uygulama yapalım. D portuna bağlı ledler baştan sona sırayla yansın ve hepsi yandığında yine baştan sona sırayla sönsün;

Programı denetleyiciye yükleyip aşağıdaki devreyi kuruyoruz ve çalıştırıyoruz.

Samet Karaca

Hakkımda

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir