16f877a ilginç olamaz boyle bir sey

Başlatan xxlxxl, 14 Kasım 2011, 23:24:40

xxlxxl

arkadaşlar ilginç bir şey geldi başıma şok oldum... 16f877a ile portan led yakma projesini proteus da açtım denedim 1-2-3 .... 8 e kadar örnek var yazıyorum ledler yanıyor.... oturum kiti yaptım çok güzel bir şekilde oda neee devreyi kurdum hiç bir harteket yok tekrra kodladım örnek 2 adet ledi aktif ettim yansın dedim devreyi çalştırdm yukledim lambalar yanmadı am kristala üzerine parmağımı değdim yandı porttan bilgi gönderdim hiç bir led yanmadı.. poweri kapa aç yapıyoırum kristale parmağımı değmeyince pic aktif olmuyor arkadaşlar pic16f877a de porttan sayı gönderip ledleri yaakacağım temiz bir kod lazım örnek bir sürü örnek var hepsi boş çıktı o kadar masraf yaptım olmadı tüm kaynak kodu veriyorum raralı hocalarım üstadlarım ne olur bir el atın şuna

http://www.upload.gen.tr/d.php/www/61u7ixir/c_source.rar.html


proteusta çalışan şey devre yapıp neden çalışmıyorrrrrrrrr

xxlxxl

845 kişi bakmıi bir kişi yardım etmemiş üzüldüm

xxlxxl

herşey dört dörtlük kendi deneme kitlerimi yapcak kadar iyiyim ki yaptım baya hemde ama bunda atkıldım aklım gitti kafayı yedim tüm projeyi upload ettim proteusat çalışanm şey devede çalşmıyor 22f kullandım evet  ve 20 mhz   devrenin aynısını kara şimşek yaptım kristaal değdimde açlşıyor dışına delircem yaa

Maxim

#include <16F877.H>
#use delay(clock=2000000)
#fuses XT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG,PUT,NOWDT

bende aynı şeyi yazıyordum tam
problem ondan çünkü

xxlxxl

kendi kristalini kullanmak evet ama neden dışardaki kristalı kullanamıyoruz..

proteusta ben 1- 2 - 3 basarak klaveyden ledleri yakıyorum peki devreye  rs232 den Serial Port Terminal V1.1 -  bunnla gönderiyiırum acaba burdada send yerine 1 yazıpmı göndermem lazım ??


şimdi içindeki kristali mi ayzacağız dışarı olmazmı ?? birde elinizde sağlam bir örnek varmı hocam raralı göndere bilirmsinz devrede denicem

skara1214

#5
16f877a nın kendi kristali ne oluyor tam olarak benim bildigim içindeki kristal 32 khz di yada daha fazla ama eminim ki 20 Mhz değil ve ayrıcada 877a da pll de yok yani eğer 20 Mhz kullanacaksan kristal takmak zorundasın.Oradaki xt değilde hs yazılmasının sebebide  10 Mhz ye kadar(aslen 4 Mhz ama 10 Mhz yede XT denebiliyor) tanımlarken xt denir onun daha üstü kristal taktığında HS ile belirtmen gerekir.Ayrıca 16f877a kulandım demişsin ama kütüphane 16f877 diye belirtilmiş buda bir hata onu #include <16F877A.H> diye değiştirmelisin ayrıca getc() deyip 32 bitlik bi sayıya eşitlenmiş buda hata yani tek bir char alacaksan ya bunu char değişkeni yada int değişkeni ile alman gerekli.Gördüğüm hataları düzeltip kodu ekledim.sorun çözülmesse yine haberdar edersin kolay gelsin...
#include <16F877A.h>
#fuses HS,NOWDT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)

char c;
void main()
{
while(1)
  {
//output_high(PIN_B2);// b1 açık


 c = getc();   // Wait for a key to be pressed.

// if(c=='1') 
if((getc()=='1') & (getc()=='2'))
 {
output_high(PIN_B1);// b1 açık
}
else if(c == '2')
{
output_high(PIN_B2); // b2 açık b1 kapat
}
else if(c == '3')
{
output_high(PIN_B3); // b2 açık b1 kapat
}
else if(c == '4')
{
output_high(PIN_B4); // b2 açık b1 kapat
}
else if(c == '5')
{
output_high(PIN_B5); // b2 açık b1 kapat
}
else if(c == '0')
{
output_high(PIN_B0); // b2 açık b1 kapat
}
else if(c == '6')
{
output_high(PIN_B6); // b2 açık b1 kapat
}
else if(c == '7')
{
output_high(PIN_B7); // b2 açık b1 kapat
}
else if(c == '8')
{
output_high(PIN_A0); // b2 açık b1 kapat
}

else if(c == '9')
{
output_high(PIN_A1); // b2 açık b1 kapat
}
}

}
//if((getc()=='4') & (getc()=='0'))
Herkes ölür ama herkes gerçekten yaşamaz

Maxim

Alıntı yapılan: xxlxxl - 14 Kasım 2011, 23:54:34
kendi kristalini kullanmak evet ama neden dışardaki kristalı kullanamıyoruz..

proteusta ben 1- 2 - 3 basarak klaveyden ledleri yakıyorum peki devreye  rs232 den Serial Port Terminal V1.1 -  bunnla gönderiyiırum acaba burdada send yerine 1 yazıpmı göndermem lazım ??


şimdi içindeki kristali mi ayzacağız dışarı olmazmı ?? birde elinizde sağlam bir örnek varmı hocam raralı göndere bilirmsinz devrede denicem

tuhaf..
16F877 nin kendi kristali yoktur o nereden çıktıki ?
datasheet i neden incelemiyorsunuz ?


tekrar yazıyorum
20mhz kristal kullanmışsınız ama config tanımlarında " xt " olarak belirtilmiş
"xt" 4mhz kristal için kullanılan osc tanımıdır config ayarlarında.
HS olması lazım
ve daha önce aynı sorunu yaşadı birileri forumda.

Bu satırı
#include <16F877.H>
#use delay(clock=2000000)
#fuses XT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG,PUT,NOWDT

bu şekide değişmesi gerekiyor
#include <16F877.H>
#use delay(clock=2000000)
#fuses HS, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG,PUT,NOWDT


xxlxxl

elinize sağlık çok güzel evet kodu daha deneme şansım olmadı hs yi denedim oldu... böyle takıldığımız yerlerde yardım sever insanalrın olması çok güzel inanın o kadar bilmeme rağmen ufak bir ayrıntı bile insana neler veriyor çok sağolun ayrıcaa bir şeyi belirtmek istiyorum ben tüm bordlarımı kendim yapıyorum yeni başlayan arkadaşalrada tafsiyem lütfen her devre ic için pic için ayrı ayrı deneme bordu yapsınlar ben böyle yaptım ve hemen deneme şansım oluyor hazır bordlara şimdilik uğraşmasınlar sayın değerli arkadaşlarım vermiş olduğunuz bilgilerden dolayı çok çok teşekkür ederim ve kodları deneyip en kısa zamanda forma yazacağım ben kodları derlemekle kalmıyorum aynı zamanda bordumda deniyorum çok güzel işler bunlar

TA7R

16f877 ile led animasyon panosu yapmıştım , her şey tamam devre bir türlü çalışmadı.6 ay kadar devreyi çalıştıramadım, burda paylaştım arkadaşların aklına gelmedi farklı şeyler yazdılar. Sonunda TA7OM Hüda arkadaşımın ikazıyla pic kartını yeniden yaptım. xtal picden 2.5 cm kadar uzaktaydı olmadı yeni devrede xtali hemen pice bitişik bağladım devre sorunsuz çalıştı. Sonucu burda da paylaşmış olmam lazım ama epeyce eski bir konudur ... Gerek yazılımda gerekse donanımdaki küçük bir hata epeyce uğraştırabiliyor... Sorunu çözdüğünüze sevindim , selamlar iyi çalışmalar ...

picman

aynı benzer problem mclr ucuna düzgün 5v verilmediğinde de oluyor arkadaşlar bilginiz olsun mclr ucunu bir direnç ile 5v a bağlamayı unutmayın benzer bir problem yaşanıyor  :D
Bilgi paylaştıkça artar..

bymrz

Alıntı yapılan: xxlxxl - 15 Kasım 2011, 12:51:04
...   inanın o kadar bilmeme rağmen  ...

9-10 yıldır, lise, ünv. de dahil, elektronikle uğraşıyorum.Bir çok ticari ürün tasarladım... Ama inanın ben o kadar bilmiyorum ...


Bu arada arkadaşların dediği gibi MCLR yi unutma...

Seckin ALAN

ben yeni elektroniğe atıldığım zamanlar birkaç şey öğrenince mahallede terör estirmiştim :) Elektronik malzeme satan dükkan vardı oradaki adamla habire tartışıyorduk. Bİldiğimi zannediyordum çoğu şeyi ama ilerledikçe bilinmezliğe doğru yol alıyorsun. Artık bilirim demiyorum olabilir yapılabilir :)
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

skara1214

Alıntı yapılan: Seçkin ALAN - 10 Aralık 2011, 11:49:56
ben yeni elektroniğe atıldığım zamanlar birkaç şey öğrenince mahallede terör estirmiştim :) Elektronik malzeme satan dükkan vardı oradaki adamla habire tartışıyorduk. Bİldiğimi zannediyordum çoğu şeyi ama ilerledikçe bilinmezliğe doğru yol alıyorsun. Artık bilirim demiyorum olabilir yapılabilir :)
yalnız değilmişim ;D
Herkes ölür ama herkes gerçekten yaşamaz

My75

Kristali bırakın uzakta olması ,osc bacaklarının yollarının bile uyumlu olması ve şart olmasada kristal gövdesinin şaseye lehimlenmesi bile  iyinin daha iyisidir,özellikle saat kristallerinde..Sonuç olarak bende 20 seneyi doldurdum ama hala kıl tüy şeyler arasıra olur,gerçi bu tip problemleri uzun zamandır yaşamıyorum..Bakalım daha yeni yeni neler tecrübe edeceğiz Allah bilir..Birde ben genelde 20Mhz' de 15pf kullanırım..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

tekosis

Ne öğrenirsen öğren, ne kadar bilirsen bil neredeyse hâlâ yolun başındasın, öğrenmekle bitmiyor bu meslek. Sanırım elektroniği çekilir ve eğlenceli kılan da bu. En azından benim için öyle :)
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.