Merhaba arkadaşlar, Anlamadığım bir konuda yardımınıza ihtiyacım var.Pic programlama konusunda çok çok acemiyim baştan söyleyeyim dedim.Pic kullanarak ledleri yakma gibi bir bir ödevim var, ödevde istenen pic in RC0....RC7 pinlerine birer anahtar ve aynı şekilde de RD0...RD7 pinlerinde LED bağlamamızı istemiş.Ancak benim anlamadığım RB pinlerini programlamak için "PORTBbits.RB0, TRISB, PORTB " gibi komutlar kullanıyorken D pinlerini programlamak için (PORTDbits.RD0, TRISD, PORTD gibi komutları denedim) hangi komutları kullanmalıyım?Ders notlarını, dökümanları inceledim fakat bununla ilgili bir şey bulamadım, tecrübeli arkadaşların yardımını bekliyorum.
"tris" komutu hangi portun cıkış/giriş olacağını belirtir. giriş=1 , çıkış = 0 . örneğin : TRISA = 0 ' A PORTU ÇIKIŞ OLDU TRISB= 1 ' B PORTU GİRİŞ OLDU "PORT" komutu ise o portlara ulaşım sağlar desek daha doğru olur.
örneğin şöyle bir uygulama yapalım. A portu giriş , B portu da çıkış olsun. A portunun 1. pinine enerji gelince , B portunun ilk 2 pini enerjilensin. A portunun 2. pinine enerji gelince , B portunun 3. ve 4. pinleri enerjilensin. '''''''''''''''programı şu şekilde olur
Device = 16F84A ' Pic imizi tanımladık TRISA=1 'A PORTU GİRİŞ TRISB=0 ' B PORTU ÇIKIŞ PORTB=0 ' B PORTUNU EN BAŞTA Bİ KAPATALIM.Bazen açık kalıyor ledler kendi kendine yanıyor.
if Porta.0=1 then 'a portunun ilk pini enerjilenirse yani 1 olursa portb.0=1 ' 1. pinini enerjilendir portb.1=1 ' 2. pinini enerjilendir else ' yani eğer a portunun ilk pini enerjili değilse portb.0=0 'çıkışlar yanmasın o zaman. portb.1=0 end if
if porta.1=01 then ' a portunun 1. pini aktif olursa portb.2=1 portb.3=1 else portb.2=0 portb.3=0 end if
' pic olarak pic16f84a kullanırsan senin için iyi olur. ' genel taslak olarak böyle bi program yazacaksın . hangi programlama dilini kullandığına göre bu yazım şekilleri değişir.Proton diline uygun şekilde yazdım 'ben.
başarılar.
quote:
Orijinalden alıntı: IengineerI
"tris" komutu hangi portun cıkış/giriş olacağını belirtir. giriş=1 , çıkış = 0 . örneğin : TRISA = 0 ' A PORTU ÇIKIŞ OLDU TRISB= 1 ' B PORTU GİRİŞ OLDU "PORT" komutu ise o portlara ulaşım sağlar desek daha doğru olur.
örneğin şöyle bir uygulama yapalım. A portu giriş , B portu da çıkış olsun. A portunun 1. pinine enerji gelince , B portunun ilk 2 pini enerjilensin. A portunun 2. pinine enerji gelince , B portunun 3. ve 4. pinleri enerjilensin. '''''''''''''''programı şu şekilde olur
Device = 16F84A ' Pic imizi tanımladık TRISA=1 'A PORTU GİRİŞ TRISB=0 ' B PORTU ÇIKIŞ PORTB=0 ' B PORTUNU EN BAŞTA Bİ KAPATALIM.Bazen açık kalıyor ledler kendi kendine yanıyor.
if Porta.0=1 then 'a portunun ilk pini enerjilenirse yani 1 olursa portb.0=1 ' 1. pinini enerjilendir portb.1=1 ' 2. pinini enerjilendir else ' yani eğer a portunun ilk pini enerjili değilse portb.0=0 'çıkışlar yanmasın o zaman. portb.1=0 end if
if porta.1=01 then ' a portunun 1. pini aktif olursa portb.2=1 portb.3=1 else portb.2=0 portb.3=0 end if
' pic olarak pic16f84a kullanırsan senin için iyi olur. ' genel taslak olarak böyle bi program yazacaksın . hangi programlama dilini kullandığına göre bu yazım şekilleri değişir.Proton diline uygun şekilde yazdım 'ben.
başarılar.
Hocam öncelikle cevabınız için teşekkür ederim.Programlamak için C dilini kullanmam lazım, A, B ve C pinlerini programlarken sıkıntı yok ama D pini ile ilgili herhangi bir komut yazdığımda mesela "TRISD, PORTDbits.RD0 , PORTD" falan MPlab hata veriyor.
mplab hiç kullanmadım , ama onda program yazmanın zor olduğu söyleniyor. sonuçda birebir c diliyle aynı değil. kişisel önerim mplab bilen birisine danış.
başarılar.
seneye bizde bu dersi göreceğiz .
Cevaplarınız için teşekkür ederim, standart ayarları eklemeyi unutmuşum D pini ile ilgili hata vermiyor artık ama bu seferde standart ayarlar pürüz çıkardı.Eklediğim ayarlar;