S

16F877A UYGULAMA SORUNU

Başlatan sml_72, 11 Aralık 2013, 23:00:33

sml_72

MİKROELEKTRONİCA DENEME DEVRESİNDE ÇALIŞAN PROGRAM UYGULAMA DEVRESİNDE ÇALIŞMIYOR
SORUNUN PROGRAMSAL OLMA İHTİMALİ VAR MI DEVRE VE PROGRAMI AŞAĞIDA
İSİ PROGRAMINDA ÇALIŞIYOR..
DEVRENİN ÇIKIŞINI TRANSİSTÖRLERLE SÜRDÜM BD241 SORUN OLURMU?
DEVRENİN GİRİŞİNİDE BD139 İLE SÜRDÜM...

ete

#1
Her şeyden önce büyük harf ile mesaj yazmayın. Forum dilinde bu bağırarak konuşma anlamına gelir. Ne yazacaksanız küçük harflerle yazın. Büyük harf kurallara aykırıdır.

Programına gelince bir şeyi yapınca ya tam yapacaksın yada hiç yapmayacaksın. Yarım yamalak yazılan şeyler program olamaz. Yazdıkların yalnızca bir kod parçası şeklinde nitelendirilir. Hangi derleyici olursa olsun kullandığın işlemcilerin özelliklerini iyi bilmen gerekiyor. İşin en başında işlemcinin ne gibi özellikleri var ve sen bu özelliklerden hangilerini kullanacak hangilerini kullanmayacaksın bunu belirlemen gerekiyor. Tabiiki kullanmadığın özellikleri kapatman gerekiyor. Kapatmadığın taktirde seninde başına geldiği gibi programın çalışmamasına sebep olur.

Diyeceksinki kendi deney boardında çalışıyor. Orada çalışabilir zira muhtemelen kendi programlayıcısı vardır ve senin programa yazman gerekipte yazmadığın bir çok şeyi o programlarken yazabilir.
Üstelik deney boardı hazır bir ekipmandır.  Senin unuttuğun bir çok şeyi muhtemelen unutmayıp işlemciyi usulüne uygun çalıştırmıştır. Yalnız şunuda belirteyim bu programın o deney boardında da çalışacağını da sanmam. Muhtemelen adamların kendi derleyicisi için yazılmış programı pbp ya çevirip yapmaya çalışıyorsun oda eksikler yüzünden çalışmıyor.

Şimdi gelelim işlemcinin ne gibi önemli özellikleri var ve etkileri neler olabilir onlara bakalım.
İşlemci 16F877A, bu işlemcinin A portu default olarak komparatör olarak açılır. Bildiğin opamp tipi komparatör. Sen pinleri komparatör olarak kullanmayacağına göre komparatör özelliğini iptal etmen gerekirdi. Bunu yapacak komut   CMCON=7. Şeklinde verilir.

Komparatör özelliğini kapadığın zaman A portu analog giriş portu haline gelir. O halde bu özelliğide kapatman gerekir. Bunu yapan komut   ADCON1=7 dir.  Bu komutuda verdinmi pinler artık digital giriş çıkış olarak çalışır.

Her bir işlemcinin sigorta ayarı denilen özel ayarları vardır. Bu ayarlarda, işlemcinin hangi frekansta çalışacağı , kod koruması yapılıp yapılmayacağı, wdt denilen türkçeside bekçi köpeği anlamına gelen ve işlemciyi kilitlenmekten koruyan zamanlama sisteminin aktif olup olmayacağı gibi konular ayarlanır. Doğru olan bu ayarların program içinde verilmesidir. Sende bir tane bile yok.

Her programın tamımlamalardan sonra bir register yerleştirme gecikmesi olması gerekir. İşe başlamadan önce mutlaka 200-300 ms lik bir gecikme verilmelidir.

Buraya kadar olanlar programla ilgili sorunlar idi. Şimdi devre tasarımı konularına bakalım.
Bir işlemci devresinin çalışabilmesi için aşağıdaki şartların yerine getirilmesi gerekir.
1. Besleme bacakların temiz ve parazitsiz 5V  voltaj verilmelidir.
2. Yine besleme bacaklarına 100 nF kondansatör bağlanmalıdır.
3. İşlemcinin MCLR PİNİ 4K7 kondansatörle pullup yapılmalıdır. Bazı işlemcilerde mclr pini iptal edilebiliyor. Onlar için pullup direnci bağlama gereği yoktur. Tabiiki sigorta ayarlarında mclr özelliği iptal edilmek koşulu ile bu dediğim geçerli.
4. İşlemcinin OSC bacaklarına bir kristal veya bir rezonatör bağlanmalıdır. Kristal bağlı ise kristal bacakları 22pF kondansatörle gnd ye bağlanmalıdır.

Bu söylenenler yapılırsa işlemci çalışmaya başlar. Ancak dikkat edilecek hususlar henüz bitmedi.
İşlemci pinlerinden birisinden bir giriş yapılıyor ise o giriş mutlaka low yada high yönünde tutulmalıdır. Tercih edilecek yön daima high olmalıdır. Bunu sağlamak için giriş bacağına 10K lık bir pullup direnci bağlanmalıdır. İşlemci giriş yapıldığını anlaması için high da bekleyen pinin low a çekilmesi lazımdır. Buton bağlandığında pine butona basılınca low gitmelidirki işlemci farkı anlayıp tuşa basıldığını anlayabilsin.

İşlemci pinleri genelde 20-25 ma lik yükleri kaldırır. Bundan fazlasını asılırsanız o pin derhal bozulur. Bu nedenle pinlere led bağlarken mutlaka araya 220-470 ohm arası bir direnci seri olarak bağlamayı ihmal etmeyin. Daha fazla yük asılmanız gerekirse işlemci pini ile bir transistörü sürün transistörde  akım çeken yükünüzü sürsün mesela röle gibi yükler.

Söyleyeceklerim bu kadar. Bu bilgileri iyice okuyup değerlendir bakalım. Sonra neyi eksik yapmışsın burada açıkla istersen.

Ete

sml_72

kusura bakmayın büyük harf için ...

Powered by EzPortal