For english version http://dincaysroom.blogspot.com (Not complete yet)
clock etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
clock etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Eylül 2010 Pazartesi

Saat

DE0 ile basit bir saat uygulamasi yaptim. Saniye, dakika ve saati gosteriyor. Saniye ve dakika icin 0-59 arasinda sayan, saat icin de 0-23 arasinda sayan sayaclar kullandim. Tabii ki saniye 59;dan 0'a gecerken dakika bir sayiyor, dakika 59'dan 0'a gecerken saat bir sayiyor. Butun sayaclar 50 MHz'lik clock ile calisiyor. 1 saniyede bir arttirma islemini 1 saniyede 1 clockluk pals ureten bir devre ile yapiyorum. 1 saniyede bir, saniye sayacinin count_enable pini 1 oluyor. Bu sayede saniyede 1 artmis oluyor. Sayac cikislarindaki ikili sistemdeki sayilari BCD formatina cevirdim. Bunu icin internetten binary-to-bcd converter diye aratip uygun buldugum bir kodu kullandim. BCD formatindaki sayilari 7 segment ledlerde gostermek kolay bir is. DE0'da 7 segment ledlere 1 verince led sonuyor. Bir de 4 basamagin her biri FPGA'e ayri ari baglandigi icin time-multiplexing yapmaya gerek yok. FPGA'in 4x7=28 pini bu is icin ayrilmis.

Programin kullanimi soyle. 4 tane 7 segment ledlerde saat ve dakika gosteriliyor 2'ser basamak ile. Ustteki resimde saat 1'i14 geciyor. 10 ledin ilk 4 ve son 4'u bcd formatinda saniyeyi gosteriyor. Yukaridaki resimde (0101)(0011) = 53uncu saniyeyi gosteriyor. Ortadaki iki led birbirinin degili ve saniyenin iki kati hizla yanip sonuyor. 5-0 numarali anahtarlardan girilin ikili sayi yukleme tusuna basinca (button 1) dakika yada saat hanesine yukleniyor. Dakikaya mi saate mi yuklenecegi 9 numarali anahtar ile belirleniyor. Buton 0 reset tusu ve buton 2'ye basinca da 7 segment ledlerde saniye gosteriliyor.


Saatin calismasi ile ilgili video buradan izlenebilir.

Programin kodlari buradan indirilebilir.