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://s7.postimg.cc/4oqpjlirr/Ads_z.jpg) (http://postimg.cc/image/4oqpjlirr/)
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.
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);
}
}
}
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.
jrcapa dediklerinizi yaptım. tekrar denedim ama yine veri iletmiyor:((
(http://s7.postimg.cc/5n49w2213/Ads_z2.jpg) (http://postimg.cc/image/5n49w2213/)
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)
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 ??? :((
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)