Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: aeldem - 21 Ocak 2013, 09:30:05

Başlık: PIC16F877 ve comport haberleşmesi
Gönderen: aeldem - 21 Ocak 2013, 09:30:05
Merhaba arkadaşlar.
PIC16F877 nin B portuna bağlı 8 tane butonum var. bunlardan hangisine basılırsa o anda rs232 üzerinden comporta veri göndermesini  istiyorum.  daha sonrada c# gibi bir programdan da comport taki veriyi okuyup durumlara göre işlem yapmak istiyorum. bilgisayarımda comport yok. o yüzden de virtual serial port driver eltima yı kurdum. 2 tane sanal port belirledim. 1 ini ISIS te diğerini de C# ta kullanacağım. ama ben PICC de yazdığım kodu bir türlü ISIS teki arayüzde çalıştıramadım. yani ISIS i çalıştırdığım anda butona bastığımda bacaklardaki değişikliği o anda görüyorum. ama comport a herhangi bir veri aktarmıyor. eltima dan bakıyorum herhangi bir sent işlemi varmı diye. ama hep 0 gösteriyor. C# tan da comporttan gelen bir veri varmı die bakıyorum. orda da boş bilgi görünüyor. (bu arada PIC i yeni öğreniyorum)

Devrenin Kodu


#include <16f877.h>
#use delay (clock=4M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1,bits=8)

void main()
{
set_tris_b(0xff); //b portu giriş olarak ayarlandı
while(1)
{
   if(input(PIN_B0)==1)
      putc('a');
   if(input(PIN_B1)==1)
      putc('b');
   if(input(PIN_B2)==1)
      putc('c');
   if(input(PIN_B3)==1)
      putc('d');
   if(input(PIN_B4)==1)
      putc('e');
   if(input(PIN_B5)==1)
      putc('f');
   if(input(PIN_B6)==1)
      putc('g');
   if(input(PIN_B7)==1)
      putc('h');
}
}



Devrenin Şeması
(http://postimg.cc/image/4oqpjlirr/)

Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: jrcapa - 21 Ocak 2013, 13:26:46
 if(input(PIN_B0)==1)
B portu zaten komple 1.
if(!input(PIN_B0)) şeklinde değiştirin.Veya bacakları gnd'ye çekin.
Bir de butonlara basım sonrası ark gecikmesi ya da  while(!input(PIN_B0))  gibi bekleme süresi koymanız sağlıklı olur.
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: aeldem - 21 Ocak 2013, 21:36:20
jrcapa kodu dediğiniz gibi kodu değiştirdim ama hala çalışmıyor :( yani veri iletimi yapmıyor:( yapabileceğim başka birşey varmı? devredeki buton bağlantılarını da internette gördüğüm gibi yaptım hep. orda varmı dikkatinizi çeken bişey??



void main()
{
set_tris_b(0xff); //b portu giriş olarak ayarlandı
while(1)
{
if (input(PIN_B0)==0)
   {
     putc('a');
     delay_ms(2000);
   }
}
}
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: jrcapa - 21 Ocak 2013, 23:25:15
c1 ,c2  22pF olacak. max232'nin Vcc' sini bağlamamışsınız. X1 kristalini 4MHz 'e ayarlayın. Pic frekansını da 4Mhz yapın. MCLR bacağını 10k ile 5V'a çekin.Bağlantılara dikkat edin.
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: aeldem - 21 Ocak 2013, 23:41:46
jrcapa dediklerinizi yaptım. tekrar denedim ama yine veri iletmiyor:((

(http://postimg.cc/image/5n49w2213/)
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: jrcapa - 22 Ocak 2013, 01:12:52
c1, c2 nF mı pF mı? Dostum pice yeni başladıysan basit uygulamardan başla, kitap kaynak bol sitede. Kendin uğraşma bizi de uğraştırma :) 
Aşağıda Serdar Çiçek'in kitabındaki devreyi incele,bağlantıları özellikle. Kolay gelsin.

http://www.yukletr.com/download.php?file=3f545390ca7bf81f369db3e2c0f15eea (http://www.yukletr.com/download.php?file=3f545390ca7bf81f369db3e2c0f15eea)
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: aeldem - 22 Ocak 2013, 14:05:34
jrcapa gönderdiğin dosyalar için teşekkür ederim. bende ordaki devreye göre kendiminkini düzenledim. compim bileşeni yerine 9 pinli konnektörü koydum. ve oldu. yani butonlara basınca ekraana yazdı.
ama 9 pinli konnektör koyunca c# ta com1 i oku dediğimde haliyle okumuyor. çünkü compim de com1,com2 diye seçebiliyorduk. ama 9 pinli konnektörde öyle bir durum yok :( bu arada devreye compim koydum ve devre çalışmadı. o yüzden 9 pinli konnektörün com1 mi com2 mi olduğunu söylemem gerekiyor. onu nasıl göstertebilirim ???  :((
Başlık: Ynt: PIC16F877 ve comport haberleşmesi
Gönderen: aeldem - 22 Ocak 2013, 14:21:32

tamam o sorunu da çözdüm. forum da aynı konu daha önceden konuşulmuş. jrcapa yardımlarınız için teşekkür ederim tekrardan. iyi çalışmalar

https://www.picproje.org/index.php?topic=33056.0 (https://www.picproje.org/index.php?topic=33056.0)