Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
330
Tıklama
0
Öne Çıkarma
Pic Programlama ile ilgili?
P
13 yıl
Yarbay
Konu Sahibi

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.



{
13 yıl
Yüzbaşı

"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.


Bu mesaja 1 cevap geldi.
P
13 yıl
Yarbay
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
{
13 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
T
13 yıl
Teğmen

seneye bizde bu dersi göreceğiz .


Bu mesaja 1 cevap geldi.
P
13 yıl
Yarbay
Konu Sahibi

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;

#pragma config OSC = XT
#pragma config PWRT = ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF ,CP3 = OFF, CPB = OFF, CPD = OFF
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTB = OFF, WRTC = OFF, WRTD = OFF
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF, EBTRB = OFF


Bu sefer çıkan hatalar ;

"D:\Ders&Kitap\Deneyler\Mikroislemciler Lab\Deneme\deneme7nisan2amk.c:7:Error [1224] configuration setting 'CP2' not recognized"
"D:\Ders&Kitap\Deneyler\Mikroislemciler Lab\Deneme\deneme7nisan2amk.c:8:Error [1224] configuration setting 'WRT2' not recognized"
"D:\Ders&Kitap\Deneyler\Mikroislemciler Lab\Deneme\deneme7nisan2amk.c:9:Error [1224] configuration setting 'EBTR2' not recognized"
"




DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.