avatar_ete

Saat Projeleri

Başlatan ete, 05 Eylül 2011, 11:13:26

fahrettink

Alıntı yapılan: ete - 30 Nisan 2012, 07:37:54
Bana sorarsan böyle bir şeyin meydana gelmesi imkansız. Pullup direncinin bir görevi vardır ve direncin değeri o görevi etkilemez.
Görev ise bağlı olduğu pini HIGH da tutmaktır. Bunu 1K da bağlasan yapar 10K da bağlasan yapar. Hatta pic in kendi iç pullup dirençleri 22K dır ve her zaman mükemmel çalışırlar.
Sen en iyisi o çalışıyor dediğin 1K direnleri yeniden 10K ile değiştir bakalım yeniden aynı saçmalığı yapacakmı?

Programda GECIKME isismli bir alt program var. Tuş gecikmelerini bualt program yerine getirmektedir. Orada yazılı olan 1800 değeri ile biraz oyna. Önce 5000 yap bakalım ne sonuç alıyorsun. Yada 1000 yap bakalım ne oluyor.

Ete

Hocam henüz deneyemedim eve döndüğümde deneyip sonucu yazacağım.

Bir de projelerin isis çiziminde an altta yan yana sıralı 5 adet led var transistörle sürülüyor. Bunların ne işe yaradığını anlayamadım hocam.
"Dahilik %1 ilham, %99 çalışmanın eseridir." Thomas Alva EDISON

ete

Hazır display yerine ledlerin kendin yaparsan bir segmentin nasil surulecegini gösteriyor.
Ete

fahrettink

Alıntı yapılan: ete - 30 Nisan 2012, 07:37:54
Bana sorarsan böyle bir şeyin meydana gelmesi imkansız. Pullup direncinin bir görevi vardır ve direncin değeri o görevi etkilemez.
Görev ise bağlı olduğu pini HIGH da tutmaktır. Bunu 1K da bağlasan yapar 10K da bağlasan yapar. Hatta pic in kendi iç pullup dirençleri 22K dır ve her zaman mükemmel çalışırlar.
Sen en iyisi o çalışıyor dediğin 1K direnleri yeniden 10K ile değiştir bakalım yeniden aynı saçmalığı yapacakmı?

Programda GECIKME isismli bir alt program var. Tuş gecikmelerini bualt program yerine getirmektedir. Orada yazılı olan 1800 değeri ile biraz oyna. Önce 5000 yap bakalım ne sonuç alıyorsun. Yada 1000 yap bakalım ne oluyor.

Ete

Dirençleri tekrar 10 K yaptım ve herhangi bir sorun çıkmadı hocam.

Şimdi 5 nolu saat ısı projesini yapacağım. Hatta board üzerinde denedikten sonra baskı devre ile de kuracağım.

5 nolu projede saat olayını programdan ve devreden çıkarsam sadece en sağdaki 3 adet 7 segment ile sıcaklığı gösterebilir miyim hocam?
"Dahilik %1 ilham, %99 çalışmanın eseridir." Thomas Alva EDISON

ete

Devre hem saat hem sıcaklık gösterebildiğine göre birini devre dışı bıraksan diğerini göstermeye devam eder elbette.
Ete

tux1983

ete hocam saat devresi yapıyorum ama ds1302 ye yazdırmayı yapamıyorum
high rst
SHIFTOUT IO, SCLK, LSBFIRST, [$8E, 0]
low rst
pause 1                 
high rst
Shiftout IO, SCLK, LSBFIRST, [$BE, saniye, dakika, saat, gun, ay, gunadi, yil, 0]
low rst
pause 10

yazıyorum ama değişiliği ekranda göremiyorum ya ds ye kaydediyor ben okuyamıyorum yada hiç kaydetmiyor anlamadım hersey tamam sadece ds ye bilgi yazamıyorum

ete

Programda bir çok kusur mevcut sırası ile yazıyorum.
1. 16F877A işlemcisini kullanmışsın. Bu işlemcide default olarak açılan Komparatör bulunmaktadır.
    A portunu digital olarak kullanmak istersen komparatörü iptal etmen gerekecek. Bu nedenle programın başına;
    CMCON=7 komutunu ilave etmen gerekiyor.

2. Tris registerleri 8 bitliktir. İşlemcide tamamı kullanılmasa bile tanımlamada sen 8 bit olarak yazman gerekiyor.
    TRISA=%111111  yerine TRISA=%00111111  yazmalısın.  Aynışekilde TRISE yide düzelt.

3. ON INTERRUPT GoTo KESME  yazarak bir kesme işlemi açılamaz. Kesme nin açılması için önce kesme kaynaklarından birisinide aktif etmelisin. INTCON (Interrupt Kontrol) registerini incelemen gerekiyor. Kesme yabir TMR0 kesmesi , ya PORTB.0 daki değişiklik kesmesi yada PortB4-7 pinlerinde değişiklik kesmesi, Ya TMR1 kesmesi, Ya bir ADC işlem kesmesi ya bir USART kesmesi gibi bir sebebe dayanmalıdır. Yoksa o komutu yazarak kesme oluşturamazsın.  Seninbir sebebin olmadığı gibi kesme etiketinde yapılanda yalnızca 100us beklemekten ibaretki bunun için kesme çalıştırmakta anlamsız zaten. Bu  nedenle o komutları sil Kesme etiketinide tamamen sil bence.

4. DS1302 okuma kısmında;
OUTPUT IO   komutunu kullanmana gerek yok. Çünki SHIFTOUT komutu bu işi otomatik yapıyor zaten. O komutu sil.
AYnı şekilde INPUT IO  komutuda gereksiz. Onuda SHIFTIN komutu yapıyor zaten.

5. Bilgi girişlerinde değer artırma ve eksilme bölümlerinde hiç bir limit kontrollerini yanlış yapmışsın.
    Mesela Dakika ayarlarken;
    IF DAKIKA<0 THEN şeklinde bir satır var. PBP da bir BYTE değişkeni sıfırdan küçük olamaz. Çünki sıfırdan bir çıkartırsan değeri yeniden 255'e döner. O haşde oraya IF DAKIKA=255 demen gerekiyor idi. Bu dakika değerinden bir çıkartırsan sonunda değeri sıfır olacaktır. Çıkarmaya devam edersen -1 olmaz yerine değer 255 olur. Bu durumda o ifade şöyle yazılmalı; IF DAKIKA=255 THEN
Artırma kısmında ise IF DAKIKA>60 demişsin. Bilyorsun saatlerimiz 0-59 arası çalışır. Dolayısıyla orayada IF DAKIKA=60 demen gerekiyor idi. Senin yazdığında önce 60 olacak sonra 60 dan büyük olursa .... olacaktır.
Halbuki değer 59 danbüyük olamaz.
Diğerlerinide bu mantığa göre düzeltmen lazım.

6. ELSE
    ENDIF    şeklinde bir komut kullanmakda anlamsız. IF bir şart komutudur. Şart uyuyor ise THEN komutundan sonrakiler yerine getirilir. Şart uymuyor ise ve komut içinde ELSE var ise ELSE den sonrakiler yerine getirilir. Else kısmına yazacak bir şeyin yok ise o zaman ELSE de yazmazsın olur biter. Bu şekildeki İf komutlarından ELSE leri sil.
Ama ELSE den sonra komut var ise onları silme mesela silinmeyecek olana örnek;
if snsn=0 then
PORTD.6=0
else
PORTD.6=1
endif
Burada SNSN=0 ise PORTD.6=0 yapılıyor değilse PORTD.6=1 yapılıyor. Burada ELse doğru kullanılmış ve silinmemesi gerekir.

7. Shiftout IO, SCLK, LSBFIRST, [$BE, saniye, dakika, saat, gun, ay, gunadi, yil, 0] komut satırında en sonda yer alan sıfır sayısı yerine orada 128 olması gerekir. Bu saat bilgisi yazıldıktan sonra değiştirilemesin diye Yazma koruma biti set edilmesi anlamına gelir. dolayısıyla o komut satırı şöyle olmalı,
Shiftout IO, SCLK, LSBFIRST, [$BE, saniye, dakika, saat, gun, ay, gunadi, yil, 128

8. CALL komutu ASM alt programların çağrılması için kullanılır. O komutun doğrusu GOSUB komutudur.
  GOSUB komutu ile gidilen bir yerden ancak ve ancak RETURN ile dönülür. Sen  "Tuskontrolet" alt rpogramında SET=1 ise GOTO ile BASLA satırına dönüş yapmışsın. Buraları düzeltmen gerekir aksi taktirde program kitlenir.

9. Tuskontrolet kısmında her bir yukarı veya azalt tuşuna basılışta değer artışı yapıp ardından  Tersçevir alt programına gitmişsin. Halbuki değer ayarlandıktan sonra değerler DS1302 ye yazılmadan bir kere tersçevir işlemine tabi tutulup sonra DS1302 ye yazılmalıdırlar.

10. if secim=1 & arti=1 then komut satırında & işareti yerine AND yazmalısın. & işareti bit bazında yapılan AND işlemleri için kullanılır. Bit derkende Byte bitleri üzerindeki işlemleri kast ediyorum.

Şimdilik görebildiklerim bunlar.

Ete

erdoganacun

ete  hocam  önce sevgi ve  saygılarımı  sunuyorum  sizden bir ricam var mümkünse  tabi   hocam...  keypad lı  dört haneli  yani  0999  rakamları arası keypadla  istediğim sayları  girebileceğim  hafızaya  alabileceğim  bir  devre  örneği  elinizde  varmı yardımcı  olursanız  çok  sevinirim ete  hocam
NOT. hocam  diğer bir  proje  sayfasınada meilim  ordan ulaşamaz  diye  bu  mesajı gönderdim
bilginiz  olsun 

erdoganacun

ete hocam saygılar  sevgiler   kolay  gelsin  hocam sizin  7  adet   saat  projeleriniz  vardı  nette  aradım  bulamadım   hocam   daha  önce  bende  vardı  fakat  bilgisayar çökünce  her şey  gitti  arşivinizden  bu 7 adet  saat  projesini  göndermeniz  mümkünmü 
teşekkür  ediyorum  hocam

ete


Proje adedi 8 oldu. ilk 7 adediilk linktede diğeri ikinci linkte yer almaktadır.

http://etepic.com/index.php?topic=71.0

http://etepic.com/index.php?topic=54.0

ete

erdoganacun

ete  hocam  saat dosyaları   için teşekkür  ediyorum  yanlız  bir  sıkıntı  var hocam ..  ısı 7  nolu  dosyadaki   saat  tarih  derece   olan projede  saat  takılıyor  duruyor   hocam 

ete

Bende düzgün çalışıyor ama sen yinede aşağıdakini bir dene istersen.
Ete


erdoganacun

ete hocam   iyi geceler   sizi  rahasız  ediyorum  kusuruma  bakmayın  hocam elinizde    derece  -saat -  tarih -  ayrı  dısplaylerde   saat  projeniz  varmı  varmı   yardımcı  olursanız  çok  sevinirim ete  hocam  mümkünse  tabi  saygılar  hocam

ete

Bircok saat projesi yaptım ama öylesini yapmamışım.
Boş kalınca üzerinde çalışacağım.
Ete

xoom

Ete hocam bu saat devrelerindei Saniye Ledlerinin bağlı olduğu  RA.3 pinin çıkışını başka bir F877'de RA.5 pinine bağlasak Eş zamanlı olarak buradan Dk bilgisini alabilirmiyim?

ete

Dakika bilgisi zaten RTC den alınırken ayrıca sn ledinden neden dakika bilgisi almaya çalışıyorsun pek anlamadım doğrusu. RA.3 çıkışına bağlı ledler  yaklaşık olarak 500 ms yanıyor sonra 500ms sönüyor. Dolayısıyla buradan ancak yarım saniye bilgisi alınabilir. Dakika bilgisi alınamaz.

Ete

Powered by EzPortal