01 Aralık 2021, 17:49:53

Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H


PIC16F877 ve comport haberleşmesi

Başlatan aeldem, 21 Ocak 2013, 12:30:05

aeldem

21 Ocak 2013, 12:30:05 Son düzenlenme: 21 Ocak 2013, 12:44:13 aeldem
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ı



jrcapa

 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.

aeldem

22 Ocak 2013, 00:36:20 #2 Son düzenlenme: 22 Ocak 2013, 00:39:06 aeldem
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); 
   }
 }
}

jrcapa

22 Ocak 2013, 02:25:15 #3 Son düzenlenme: 22 Ocak 2013, 02:28:53 jrcapa
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.

aeldem

22 Ocak 2013, 02:41:46 #4 Son düzenlenme: 22 Ocak 2013, 02:51:21 aeldem
jrcapa dediklerinizi yaptım. tekrar denedim ama yine veri iletmiyor:((


jrcapa

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

aeldem

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 ???  :((

aeldem


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

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.