pic16F877A ile lcd göstergeli termometre sorunu

Başlatan jokerSM100, 03 Ocak 2012, 19:47:43

jokerSM100

Elim de ısıs professional de simulasyon yaptığım ve doğru olan bir hex dosyası var. pratikte dizayn ettiğimde lcd göstergede hiç birşey görünmüyor.

devre şeması şu şekilde.
en genel anlamda önerisi olan var mı? nerelere dikkat etmeliyim? en kritik noktalar neler?
kristal çalışıyor herhangi bir problem yok.
pic e hex dosyasını sürmektede bir sorun yok, içinde dosyamı okuyabiliyorum.

Erol YILMAZ

lcd ekranın kontrastını ayarlayamamış olabilir misin ?

jokerSM100

pot u gerekli açılarda çevirdim önemli bir ayrıntımıdır ?

BAHAR

Alıntı yapılan: jokerSM100 - 03 Ocak 2012, 20:16:28
pot u gerekli açılarda çevirdim önemli bir ayrıntımıdır ?

Eğer pot bağlantıdan eminsen, potu çevirdiğinde lcd üzerinde yazıların hafifçe karararak belirginleşmesi gerek ve diğer türlü çevirdiğinde ise aynı şekilde yazıların hafifçe saydamlaşması gerekir. Ve Pic'i doğru programladın bunu biliyorsun ama konfigürasyondan emin misin?

jokerSM100

ondan nasıl emin olabilirim, isis de simule ediyorum sorun görünmüyor

BAHAR

#5
Alıntı yapılan: jokerSM100 - 03 Ocak 2012, 22:06:20
ondan nasıl emin olabilirim, isis de simule ediyorum sorun görünmüyor

Isis'te simüle ederek bunu farkedemezsin. Elinde kaynak kodlar var mı? Eğer var ise, kodun ilk başında konfigürasyon tanımlamaları yapılır. Zaten böyle bir tanımlama söz konusu ise direk hex kodunu pic'e yükleyebilirsin. Her hangi ayar gerekmiyor.

Eğer konfigürasyon tanımlamaları kaynak kod içinden yapılmamış ise, pic'e program atarken programlayıcı yazılımından ayarları yapmalısın. Mesela, pic, kullandığın kristal, watchdog timer, power on reset, brown out vs...

Mesela bir örnek şemana baktığımda kristal frekansın 4mhz bu gösteriyor ki pic'i programlarken konfigürasyon ayarından kristal kısmını xt_osc seçmen gerekir.

*16F877 ile 16F877A farklıdır, programlama yaparken dikkat et. Sahip olduğun hex kodu iki denetleyicide çalışmaz, hangisine ayarlama yapıldıysa onda çalışır. Ve sen proteusta çalıştığına aldırma.

*Beslemene dikkat et, pic'in birinci bacağında ki master clear direncini bağlamayı unutma.

Tabi ki daha bir çok neden olabilir. Ama sen çok detaylı anlatmamışsın.

jokerSM100

konfigürasyon ayarlarında sorun olduğunu sanmıyorum XT yi seçtim çünkü; ama sanırım isis de hex dosyasının hem 877 hem de 877A için çalışıyor olmasına aldanmış olabilirim, birincisi projeyi aldığım sitedeki hex dosyası 877 içindi( kaynak kodu var derliyorum 877A ya göre bi şekilde simule edemiyorum.) ikincisi 877A ya göre sağlam hex dosyası elde edemediğim için elimdeki hexden assembly e geri dönüş yapıp 877A ya göre derlemeye çalıştım sanırım o da olmadı.
en iyi si yarın bir 877  bulup onu denemek.

MrDarK

Kaynak kodlarıda paylaşırsan daha kolay yardım alabilirsin (:
Picproje Eğitim Gönüllüleri ~ MrDarK

Kabil ATICI

Zaten programın tamamı elinde.
Deneyebilirsen ADC ile ilgili bölüm devreye almadan, ekranda sabit sayı göstermeye çalış. Yani bütün programı doğrudan çalıştırmak yerine sadece ekranı sürecek bölümü kullan.
Yani ekranı çalıştıracak programı çalıştır. Eğer imkanın varsa ekranın bacaklarına osilaskop ile bakmaya çalış. Bu şekilde LCD'nin sürülüp sürülmediğini gözlemleyebilirsin.

Ekranda sürülmediğinde ekranda  genellikle 1. satırda tüm karakter alanları dolu (siyah olur). Eğer bu görünmüyorsa ekran sürülmeye çalışılıyor ama eksik olan bir zamanlama betiği sorunu olur. Çünkü burada gördüğüm kadarıyla RW bacağı kullanılmıyor. Bunun için ekrana bekleme betikleri olması gerekiyor, ki LCD ekran işini tamamladıktan sonra komut veya veri gönderilsin. Burada bir zamanlama hatası olduğu zaman (ekran meşgul durumda iken) ekran dışarıdan gelen komut ve veriyi kabul etmez.



ambar7

jokerSM100

16F877 ile denedim, söylediğin gibi ekranın 1. satırında siyah kareler çıkıyor. Bu sadece bana lcdnin sağlam olduğunu gösterir gibi geliyor, zaten çip i çıkartıncada aynı siyah kareler duruyor:). hex dosyasını yüklerken bir sorun çıkıyor demekki , gerçi pic programlayıcıda bişeler okuyorum ve karşılaştırma yapıyorum hata vermiyor ama ben de anlamadım.

yamak

Eğer sadece üst satırda siyah kareler çıkıyosa E ve RS pinlerine gönderdiğin sinyallerde bi yanlışlık olabilir. Genelde böyle durumlarda öyle oluyo.

BAHAR

Alıntı yapılan: jokerSM100 - 04 Ocak 2012, 01:48:38
konfigürasyon ayarlarında sorun olduğunu sanmıyorum XT yi seçtim çünkü; ama sanırım isis de hex dosyasının hem 877 hem de 877A için çalışıyor olmasına aldanmış olabilirim, birincisi projeyi aldığım sitedeki hex dosyası 877 içindi( kaynak kodu var derliyorum 877A ya göre bi şekilde simule edemiyorum.) ikincisi 877A ya göre sağlam hex dosyası elde edemediğim için elimdeki hexden assembly e geri dönüş yapıp 877A ya göre derlemeye çalıştım sanırım o da olmadı.
en iyi si yarın bir 877  bulup onu denemek.

Artık piyasada 16F877 bulmak zor, genelde 16F877A var. Ama konfigürasyon için pic değiştirmen gerekmez. Aşağıda ki satırı kodlarına ekle ve derle bu kadar. Belki yanlış yazdım konfigürasyonu ama nette çok ararsan.

yamak

Alıntı yapılan: jokerSM100 - 04 Ocak 2012, 01:48:38
konfigürasyon ayarlarında sorun olduğunu sanmıyorum XT yi seçtim çünkü; ama sanırım isis de hex dosyasının hem 877 hem de 877A için çalışıyor olmasına aldanmış olabilirim, birincisi projeyi aldığım sitedeki hex dosyası 877 içindi( kaynak kodu var derliyorum 877A ya göre bi şekilde simule edemiyorum.) ikincisi 877A ya göre sağlam hex dosyası elde edemediğim için elimdeki hexden assembly e geri dönüş yapıp 877A ya göre derlemeye çalıştım sanırım o da olmadı.
en iyi si yarın bir 877  bulup onu denemek.
Watchdog timerı kapattığına emin misin?Bir de mcrl pinini pull-up yaptın mı?

jokerSM100

Alıntı yapılan: BAHAR - 04 Ocak 2012, 18:43:15
Artık piyasada 16F877 bulmak zor, genelde 16F877A var. Ama konfigürasyon için pic değiştirmen gerekmez. Aşağıda ki satırı kodlarına ekle ve derle bu kadar. Belki yanlış yazdım konfigürasyonu ama nette çok ararsan.
hiç birşey anlayamadım, kaynak koduna mı bişeler ekleyeyim ? ne ekleyeyim? bide 877 buldum okulda depoda  vardı. dediğim gibi hex i yükleyemiyorum sanırım.

jokerSM100

Alıntı yapılan: yamak - 04 Ocak 2012, 19:00:25
Watchdog timerı kapattığına emin misin?Bir de mcrl pinini pull-up yaptın mı?
pic programlayıcıdan bahsediyorsun sanırım, okuldaki teknisyen hex dosyasını gömdü ama yarın gidince bunları hatırlatayım.