Haberler:

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

Ana Menü

PicBasic Pro Nedir

Başlatan byka, 18 Ekim 2002, 03:03:37

ete

Anladığım kadarı ile devreyi proteus da çalıştıramadın. Genelde proteusta çalıştırıp gerçek devrede çalıştıramayan çok olur.
LCD işlemciye bir kaç şekilde bağlanabilir. En önemli faktör LCD nin  D4-D7 arası data bacakları kesinlikle portunbirisinde ya sıfırncı bitden yada dördüncü bitten başlamış olmasıdır. Zira normalde 8 bit olması gereken haberleşme için LCD de 4 bitlik haberleşme tercih ediliyor. Bu 4 adet pin tasarrufu sağlıyor. Bu bağlantı şeklinde 8 bitlik data bilgisi iki parçaya ayrılıp dörder bit olarak iki seferde veriliyor. Yazma kolaylığı açısından işlemcide bir birini takip eden 4 bit olması önem kazanıyor.

LCD nin 4 adet data bacağının haricinde 2 adet önemli kontrol bacağı daha vardır. Bunlardan biris "E" bacağı ki her hangi bir pine bağlanabilir ancak Define ile yeri belirlenmeldir. Diğeride RS pini olup bu pinin nereye bağlı olduğunu sen yazmamışsın. Şayet programında da eksik ise muhtemelen o nedenle çalışmıyordur. Tabiiki bu pinde define komutu ile yeri tanımlanmalıdır.
Bir RW bacağı vardır ancak LCD den okuma yapmayacak iseniz direk GND ye bağlanması daha uygun olacaktır ve genellikle böyle yapılır.
Bunun haricindeki pinleri Proteus bağlı kabul eder. Gerçek devrelerde bu pinlere (besleme ve Kontrast pinleri) dikkat etmek ve gerektiği şekilde bağlamak gerekir.
Tabiiki sorunun konusunda daha gerçekçi bir tespit yapabilmekiçin proje dosyalarını yani program + Proteus devre şemasını buraya yüklemen yada bir link vermen lazımki yükleyip inceleyebilelim.

Programda ilk açılışta LCD registerlerinin yerleştirilmesi (initalize) için yaklaşık 200-300 ms lik bir bekleme verilmelidir.
Sonra bir ekranı silme komutu (LCDOUT $FE,1) verilip bir 100 ms daha bekletme yapılmalı daha sonra ne yazılacak ise yazılmalıdır.
Başlangıç açılışında ekranı silme komutunu vermez iseniz muhtemelen yine bir şey göremezsiniz.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

devkartal


oncelikle ilginize teşekkur ederim cevabınızdaki eksik yanliş olabilecek konulara baktim fakat  ben bir hata  goremedim,birde siz bakarsaınız iyi olacak

Ayrıca daha once bu devreyi proteus ta ben caliştirmiştim PC yeniden kurdum Proteus versiyon değişikli yaptım ama elimde daha onceden  hazırlanmiş saat devresi var o  proteusta calişiyor aynı LCD (LM016L ) yazmış olduğum kod ise Orhan Altınbaşak " PİcBasic PRo ile Programla" kitabından yazdim

acaba proteus ayarlarındamı bir hata var diyede duşundum ama  bu yazmış olduğum programdan daha komlike bir saat devresi calişmakta !!!



http://img860.imageshack.us/i/unledk.gif/   devre seması proteus

devre ile ilgili code     .hex dosyasını koyamadim gerekirse  yeniden dener koyarım
     


  pause 500                        'LCD 'nin açıklamasını bekle
      loop:
       
       lcdout  $FE,1                    'LCD ekranını sil
       LCDOUT  "Merhaba"                ' "merhaba yaz"
       lcdout  $FE , $C0 , "dunya"
       pause   500                      '0.5sn bekle
       gotO    loop                     'işlemi devamlı yap

ete

Devre şemasını yükleyemiyorum. Hata veriyor.
Ayrıca işin program kısmında bir kusur gözükmüyor. Ancak define kodlarının tamamını görmek lazım.
Hata yok diyorsan diyecek lafım yok elbette ama bir şey başka yerde çalışıyor ve sende çalışmıyor ise bir yerde eksiklik vardır diye düşünmekten başka alternatif yok elimizde maalesef.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

devkartal

Ete,
Arkadaşım

Sorunu kısacası cozdum

Hata senin soyledigin gibi RS ucunu ben  hatalı bağlamışım ondan kaynaklanmış (Yanlış Pin bağlantısı)

ilgi ve alakana teşekkur ederim

başka sounlarla karşılaştığımda  belki tekrar  goruşuruz

iyi çalışmlar