avatar_ete

16F628 - 16F628A işlemcisinin İncelenmesi

Başlatan ete, 28 Ağustos 2011, 20:45:21

Maxim

3.3 voltta kesin çalışıyor
ama osc 10mhz yada daha düşük olmak zorunda

gurhan

arkadaşlar iyi akşamlar. elektronikle hobi olarak uğraşmak istiyorum fakat iş yoğunluğundan bir türlü fırsatım olmuyor. elimde çalışan bir devre var. 16f628 pic var. içindeki yazılımını okuma imkanımız varmıdır. tam bilgim olmadığından saçma bir soru olabilir k.bakmayın. yardımcı olabilecek varmı bu konuda

ete

#47
Pic  içine atılan yazılım yalnızca rakamlardan oluşan bir hex dosyasıdır. Okunsa bile yorumlanması çok zor olur. Ancak ileri seviye asm bilenler onu önce assembly e çevirip sonra yorumlayabilirler. Ancak işlemcilere yazılan bu programlar genellikle yazan tarafından kod korumalı olarak yazılır. Koruma var ise okuduğun rakamların hepsi sana sıfır olarak gözükür. Bunun normal hale getirilmesi neredeyse imkansızdır. Neredeyse diyorum çünki bazı firmaların bunu yüksek paralar karşılığında okuyabildiği söyleniyor ama henüz böyle bir şey görmedim.

Denemesi basit işlemciyi bir programlayıcıya koyup READ komutu ile okutmak gerekir. Ekran sıfırlara dolarsa kod koruması var demektir   
Ete

gurhan


omr.yldrm

ete hocam peki port b ye lcd bağlayıp aynı zamanda ccp modülünü capture olarak nasıl kullanabiliriz. #define use_portb_lcd TRUE yazdıktan sonra port b nin 3. pinini (ccp1'i) giriş olarak tanımlıyorum lcd çalışıyor ama ccp çalışmıyor.yardımcı olursanız sevinirim iyi çalışmalar.

ete

Basic bildiğim için BASIC e göre konuşacağım.
Capture pini PORTB.3 dür. O halde LCD data pinlerini PORTB.4-PORTB.7 arasına bağlarım.
E pini PORTB.2 ye bağlarım ve R/S pinini de PORTB.1'e bağlarım . Böylece PORTB.3 pinini Capture amaçlı kullanabilirim.
Bu kombinasyon Basic de mümkün ancak senin tanımlaman PortB nin tamamını True yapıyorki burada kim nereye bağlanacak seçimli olamıyor galiba.

Ete

omr.yldrm

Alıntı yapılan: ete - 09 Mayıs 2014, 21:47:49
Basic bildiğim için BASIC e göre konuşacağım.
Capture pini PORTB.3 dür. O halde LCD data pinlerini PORTB.4-PORTB.7 arasına bağlarım.
E pini PORTB.2 ye bağlarım ve R/S pinini de PORTB.1'e bağlarım . Böylece PORTB.3 pinini Capture amaçlı kullanabilirim.
Bu kombinasyon Basic de mümkün ancak senin tanımlaman PortB nin tamamını True yapıyorki burada kim nereye bağlanacak seçimli olamıyor galiba.

Ete

söylediğiniz gibi hangi pinin ne olduğu belli olmuyor.sanırım o kısmı da lcd.c dosyası belirliyor.o dosyada değişiklik yapmam gerekiyor herhalde. ccs c de yazıyorum.yine de teşekkürler.

truvali

Ete hocam bu işlemci de porta 3 pini comparator olarak nasıl kullanırız benim istediğim if porta.3=0 then goto kapa gibi bi komut. Bu karşılaştırma pinleri illa porta.1 ile porta.2 arasında mı oluyor  benim amacım disarıdan porta.3 pini ne 4 volt gibi gerilim vererek diğer pinleri kontrol etmek şimdiden teşekkür ederim

ete

Pic'i koparatör olarak hiç kullanmadım. Şu anda detaylarını bilmiyorum. Data sheet'de açıkça belirtiliyor hemde şekil ile kim n eyapıyor gösterilmiştir. Bir inceleyin sonra gerekirse bende bakarım.
Ete

F®T

#54
Comparator  olarak çok farklı alternatiflerde  PORTA.0,1,2,3 kullanılıyor.Referansı hariçtende verebiliyorsun.İstersen Voltage Reference
Module ilede belirliyebiliyorsun.İlk önce hangi ayağı ne yapacaksın belirliyeceksin bunu CMCON REGISTER ayarlayacaksın.Eğer referansı harici seçmiş isen hariçten referans ayağına referans voltu vericen.Eğer dahili referans seçmiş isen referansı  VRCON REGISTER ayarlıyacaksın.Bayağı iyi incelemek gerekiyor.Bende şimdiye kadar kullanmadım.Ama güzel işler yapar bu özellik.Şimdiye kadar hep kapat geç diyorduk.Ayrıca karşılaştırma çıkışlarını dışarı porta bile yönlendirebiliyorsun.

ETE hocam bu register ayarları yapıldıktan sonra bu modül direk araka plandamı çalışıyor.
Örneğin CM2:CM0 = 110 olarak ayarladık.karşılaştırma yapıp çıkışa aktarıyor.Programda başka bir şey daha kullanmak gerekmiyor gibi algıladım.Yanlışmı düşünüyorum acaba.


Truvali ,

eğer tek karşılaştırma düşünüyorsan sadece
One Independent Comparator
CM2:CM0 = 101

yani RA2 harici referans girişi,RA1 Karşılaştırma sinyali olarak giriş yapabilirsin.RA0 ve RA3 devre dışı olarak kalıyor.Comparator olarak kullanmıyorsun.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

truvali

yanıtlarınız için çok teşekkürler benim amacım porta 1 ve porta 2 ye bağlı iki adet role var ben bunları bu zamana  kadar hep dtmf kodları ile açıp kapadım  şimdi ise dtmf ihtiyacım yok sadece porta 3 pini ne  4 v 5 v arası gerilim vererek açıp kapamak istiyorum gerilim verildi portA 1 açılsın gerilim kesildi kapansin

truvali

COMCON=3
OPTIONREG.7=0
TRISA=%00001000
yaptıktan sonra porta 3 verilen voltaj ile örnek porta0 veya porta1 roleleri açıp kapamak

F®T

Kullanmak istediğin ayakların comparator ayak konfigrasyonuna uymuyor.Aşağıda yazdıklarımı iyi okursan görürsün.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

truvali

Porta 1 ve 2 beraber çalışıyor doğrumu anladım eğer doğru ise bu iki portun durumlarına bağlı olarakta programı başka bir yere dallanmazmi

truvali

#59
ETE hocam bir mesajına şöyle yazmis
"COMCON=3
  OPTIONREG.7=0
- RA.1 ve RA.2 yi komparatör girişi olarak ayarla.
   TRISA=%00000110
- Sonuç olarak CMCON.7 bitini

kontrol et
   Şayet voltaj olarak RA.1 > RA.2 ise CMCON.7=0 oluyor
   Şayet Voltaj olarak RA.2 > RA.1 ise CMCON.7=1 oluyor."
demiş işte şimdi bu burda CMCON.7 nin 0 veya 1 olmasına bağlı olaraktan örnek
if cmcon.7=0 then goto ....
gibi bir komut olurmu yoksa ben saçmaaldım mi hayal gücüm çok mu geniş

Powered by EzPortal