Teknomerkez
TR EN ES
Konular

Alarmlı Ayarlanabilir PIC 16F84 Entegreli LCD Göstergeli Saat Devresi

Yazar: Mehmet Yılmaz
Tarih: 01.10.2007
Türkçe

Bu devre, alarmlı bir saat olarak kullanılması amacıyla tasarlanmıştır. Bu devre ile saati ve alarmı istediğimiz değere ayarlayabiliriz. Alarm ayarlanan (kurulan) saatte çalışır. Kristal osilatör referaslı olarak çalıştığı için bir kez ayarlandıktan sonra enerjisi kesilmediği takdirde geri kalma veya ileri gitme gibi sorunlar ortaya çıkmaz. Ayarlaması çok basit ve pratiktir. Saat ve alarm olarak verilen bütün değerler LCD displeyde gösterilmektedir.

Devrenin Çalışması ve Yapısı:

Devrede PIC 16F84 mikrokontrolör entegresi kullanılmıştır. Programı ise JAL ile hazırlanmıştır. Devreyi, saati ve aynı zamanda alarmı sıfırlamak amacıyla bir adet buton kullanılmıştır. PIC16F84 entegresinin 4 nolu RESET ucuna bağlı olan bu butona basılıp bırakıldığı anda devre, saat ve alarm değerleri sıfırlanır yani resetlenmiş olur. Saati, dakikayı ve alarm için saat ve dakika değerlerini ayarlamak amacıyla 4 adet buton kullanılmıştır. Aslında 4 adet buton sayı olarak bir devrede kullanım açısından bakıldığında biraz fazladır. Daha az sayıda buton ile ayarlama devresi yapılabilirdi. Benim buton sayısını fazla tutmaktaki amacım, devrenin JAL ile hazırlanan yazılımının (programının) sade olmasını sağlamaya yöneliktir. Saati ayarlamak için PIC16F84 entegresinin 18 nolu RA1 ucuna bağlı olan B2 butonuna basılınca o anda göstergede bulunan saat değeri bir artırılır. Sürekli basılı tutulursa yarım saniye aralıklarla saat değeri birer birer artar. Bu artırma sırasında saniyenin değeri ise sıfırlanır. Saat için her yapılan ayarlamadan sonra saniye değeri sıfırdan saymaya başlar. Dakikayı ayarlamak için, aynı saati ayarladığımız yöntemi kullanırız. Dakikayı ayarlamak için PIC16F84 entegresinin 17 nolu RA0 ucuna bağlı olan B1 butonuna basılınca o anda göstergede bulunan dakika değeri bir atırılır. Sürekli basılı tutulursa yarım saniye aralıklarla dakika değeri birer birer artar. Bu artırma sırasında saniyenin değeri ise sıfırlanır. Dakika için her yapılan ayarlamadan sonra saniye değeri sıfırdan saymaya başlar.

Alarmı ayarlamak için yine saat ve dakika ayarlaması için tanımladığımız alarm_saat ve alarm_dakika değişkenlerinin değerini artırıyoruz. Kullanım şekli itibariyle yukarıda anlatılan saat ve dakika ayarlamasında yapıldığı biçimde alarmı ayarlıyoruz. PIC 16F84'ün 1 nolu ucu (RA2) ile alarm için saati, 2 nolu ucu (RA3) ile de alarm için dakikayı ayarlıyoruz. Yaptığım denemelerde, alarmı ayarlarken saatin değerinde herhangi bir değişiklik olmamıştır.

Devrede 2 satırlı 16 karakterli LCD ekran kullanılmıştır. Göstergenin birinci satırında “Saat:” ve saatin gösterilecek değeri yazılıdır. İkinci satırda ise “Alarm:” ve ayarlanan alarmın gösterilecek değeri bulunmaktadır. LCD ekranın kontrast ayarını yapmak için RV1 10K ayarlı direnci kullanılmıştır.

Devrenin mikrokontrolör yazılımında sayıcı olarak Timer0 zamanlayıcı/sayıcı'sı kullanılmıştır. Timer0'ın zaman aşımı kesmesi özelliğinden yararlanılarak zaman ve saydırma işlemi gerçekleştirilmiştir. Devrede kullanılan kristalin frekansı 4.194304 Mhz olarak seçilmiştir. Programda kullanılan işlemler açık olarak yazıldığından ve bölümler halinde düzenlendiğinden yeterince bilgiyi içermektedir.

Devrenin Şeması:

Şekil 1: LCD göstergeli alarmlı ayarlı saat devresi şeması.

Devrenin Resmi:

Resim 1: Tamamlanmış devrenin çalışır şekildeki görünümü.

Devrenin Malzeme Listesi:

U1: PIC 16F84
LCD1: İki satır LCD
D1: Kırmızı LED
R1, R2, R4, R5, R6: 470
R3: 1K
RV1: 1K trimpot
XTAL: 4.194304MHz
C1, C2: 22pF
B1-B5: Buton
BUZ1: BUZZER (+5V olanlardan)

Ekler:

JAL Devreye ait programın Jal ile hazırlanmış dosyasına bakmak için tıklayınız.
Devreye ait programın Jal ile hazırlanmış dosyasını sıkıştırılmış zip dosya olarak indirmek için tıklayınız.
Devreye ait programın HEX yazılım dosyasını indirmek için tıklayınız.

Yorumlarınız

ali - 05.10.2007
ben bir lise öğrencisiyim ve meslek lisesinde okuyorum gerçekten devre çok güsel olmuş
can - 10.10.2007
slm.devre güzel teşekkürlerde baskı devresini bana yollarsanız sevinirim.
Mehmet Yılmaz - 10.10.2007
Sayın Can, Yazıdaki resimde görüldüğü üzere baskıdevre hazırlamadan çalıştırdım.
Fatih Erdem - 12.10.2007
güzel çalışma olmuş, elinize sağlık, iyi çalışmalar dilerim.
serhan - 26.10.2007
senden allah razı olsun bütün elektronik öğrencileri sana duacıdır....senden bişey istesek güzel picli devreler koyabilirmisin...... kib
ahmet - 10.11.2007
bana lcd saat takvım devresı hakkında yardımcı olurmusunuz
İLKAY - 23.11.2007
ya arkadaşlar bana bu devrenin baskı devre şemesı lazım bunu nasıl bulabilirim yardımcı olursanız sevinirim
cetin - 27.11.2007
sayın hocam ben pıc 16f84 e kodları nasıl yukleyebılırım.jal programı gerekıyorsada jal programını nerden bulabılırım.hocam bana yardımcı olursanız sevınırım cunku gıttıkce vakıt daralıyor.devreyı teslım etmem lazım.yardımlarınız ıcın tşkler.
Mehmet Yılmaz - 27.11.2007
Sayın Çetin, Eklerde verilen sıkıştırılmış dosyalardan HEX yazılım dosyasını indirip mesela ICPROG gibi bir pic programlayıcı kullanarak Pic'e yüklerseniz devre çalışır. Bu işlem normal hex dosyayı Pic'e yükleme işidir. Özel bir yanı yok.

Devrede değişiklik yapmadan çalıştıracaksanız JAL ile işiniz yok. HEX dosya ile PIC16F84'i programlamanız yeterlidir. Eğer dosyada düzenleme yapacaksanız www.projearsivim.com sitesinde gerekli dosyalar bulunmaktadır.
Özgür - 10.12.2007
Mehmet hocam bu jal dili picbasic'e çok benziyor, picbasic tabanlı bir dilmi yoksa ayrı bir dil mi?
Mehmet - 11.12.2007
Sayın Özgür, Jal temel olarak pascal'a benzer. picbasic'den ayrı bir dildir.
mehmet - 15.12.2007
slm ben bir üni. öğrenciyim ben bu devre yi protous yani isis prog.üzerinde yaptım ama devre bir türü çalışmadı bana yardımcı olabilirmisiniz
Birhan BİRER - 25.12.2007
Merhabalar hocam, mevcut ise baskı devresini mail atarmısınız. teşekkürler.
ahmet - 26.12.2007
bu devrenin baskı devresi acil lazım yardımcı olurmusunuz
muhammet - 27.12.2007
ısıste bir pıcı kullandıgın zaman calısmadıysa devreyı düzeltsende çalısmıyor o yüzden o pıcı silip yenisini koyun ve baglantıları tekrar yapın
eMucit - 09.01.2008
DEVRE GERÇEK UYGULAMADA ÇALIŞMIYOR HABERİNİZ OLSUN
eMucit - 09.01.2008
projenin gerçek uygulaması çalışmıyor
Mehmet Yılmaz - 11.01.2008
Sayın eMucit, devrenin gerçek uygulamasının çalışmaması konusunda biraz açıklama yapsaydınız çözüm bulunabilirdi. Ben çalışan devrenin resmini de yazıya ekledim. Bu kadar basit bir devreyi çalıştıramamanıza şaşırdım doğrusu.
ahmet42 - 15.01.2008
mehmet hocam elinize sağlık güzel olmuş ben çalışmayacağına inanmıyorum.Benim sizden isteğim bana pıc c yi göndere bilirmisiniz varsa tabiki teşekkürler.
tarık - 21.01.2008
arkadaşım trimpot 1k mı? yoksa 10k mı bi yanlışlık var ama hangisinde yardımcı olurmusun saol
Mehmet Yılmaz - 21.01.2008
Sayın Tarık, ben 10K kullandım. siz uygun göreceğiniz değeri kullanabilirsiniz.
mehmet - 20.03.2008
yapmıs oldugunuz devrede entekreye program yazılamıyor hata verıyor sayfanızda yazılı olan programınızın ek program dosyası yok include 16f84_4 -- 4.194304 Mhz'lik kristal kullanilacak yazıyor ama boyle bır programı goramıyoruz var sa elınızde alabılırmıyız lutfen
serkan - 22.03.2008
devre gerçek zamana göre yavaş mı çalışıyor.simülasyonda mı öyle görünüyor?
selçuk - 24.03.2008
Ben bu devreyi bi ödev için yapmayı düşünüyorum inş yapabilirim çalışır. Devre için teşekkürler ayrıca kristal 4 Mhz olarak satılıyor galiba doğrumudur küsüratlı olarak yazıyorda 4 Mhz olarak almak doğru olurmu?
Mehmet Yılmaz - 24.03.2008
Sayın Serkan ve Sayın Selçuk, Devrede kullanacağınız kristal değeri 4.194304 MHz olursa saat tam zamanla uyumlu olarak çalışır. Eğer 4 MHz kullanırsanız saat geri kalır. Devre çalışmaktadır.
muammer - 17.04.2008
sayın hocam cok güzel olmuş eline saglık yalnı
kusuru elektrik kesilince saat siliniyor benim düşüncem saat osülatör olarak 1307 gibi entegre kullanıp 3.6v hafıza icin batarya konulabilirdi
saygılar.
Mehmet - 18.04.2008
Sayın Muammer, ben temel bir saat devresinin nasıl yapılabileceğini anlatmak istedim. {a}Düşüncenizde haklısınız.{/a} Sonuçta bu devre bu kadar. Bahsettiğiniz yeni bir devre olup her şeyiyle yeni ve baştan hazırlanması gereken bir devredir.

Aslında düşündüğünüz şeyleri ben de düşünmüştüm ama devre bu haliyle temel bilgilendirme açısından yeterli geldi. Şayet belirttiğiniz şekilde bir devre olsaydı, o zaman bilgilendirmeyi aşar ve saat olurdu herhalde. Dediğiniz gibi bir devreyi de yapmak istiyorum ama ileride belki.
gökhan - 29.04.2008
hocam elinize sağlık devre çok guzel olmus.varsa devrenin baskı devresi ve proteus çizimini gonderebilirmisiniz.
Mehmet Yılmaz - 29.04.2008
Sayın Gökhan,
Ben devreyi resimde de görülebileceği gibi baskı devre ile yapmadım. Baskı devresini hazırlamadığım için elimde yok. Proteus çizimi hakkında ise kusura bakmamanızı isteyeceğim. Şu an elimde yok.
selçuk boz - 13.05.2008
Devre 5voltla çalışıyor bu voltajı elde etmem için en kolay ve çalışır bir yöntem tavsiye edebilirmisiniz?
şimdiden teşekkürler.
ALTAN - 05.06.2008
selçuk boz ben bu siteye daha ilk girişim 5 volt DC en kolay nokia tel şarz cihazından alabilirsin milyoncularda 1 lira falan olması lazım kendin yapmaya kalkışırsan baskı devre çıkartması 7805 entegresi falan zahmetli olur.
sedat - 02.01.2009
s.a abi sizde bunun bas dosyası var mı varsa yollarmıısınız. birde alarm çalmıyo neden olabilir
Melihhh - 30.01.2009
Merhaba.Öncelikle bu devreyi bizimle paylaştığınız için çok teşekkür ediyorum.Ben proteusta bu devreyi kurdum.Kristali 4.194304 MHz değerinde kullanmama rağmen saniyeler çok yavaş ilerliyor.bunun başka sebepleri neler olabilir.Ayrıca ben PIC e yeni başlayan biriyim.Bu devreyi daha büyük bi LCD ekranla yapmak isteseydik programı değiştirmemize gerek kalır mıydı?bu soruyu sormamın nedeni LCD ekranlar büyüdükçe bacak sayılarınında artıyor olması.Şimdiden teşekkürler
kadir - 02.03.2009
hocam elektrık son sınıfıyım pıc de program oluyorsa helel olsun size devre calısmıyor ki cevap yazarsanız sevinirim
Mehmet Yılmaz - 03.03.2009
Sayın Kadir; Devre çalışmaktadır. Bu konuda bir sorun yoktur. Montaj ve programlama konularında hatalarınız olabilir. Ayrıca genellikle bana ulaşan hata kristalin frekansından olmaktadır. 4MHz kristal kullanılmayacak, 4.194304 Mhz'lik kristal kullanilacaktır. Bu kristal değerine dikkat etmezseniz saatiniz ya geri kalır ya da ileri gider. Ben bu devreyi uzun süre denedim, bir soruna rastlamadım.
kadir - 13.03.2009
hocam iii günler tekrar ben kadir...
devre dediginiz gibi calıstı fakat ben bu devreyi 14nolu ayagı vdd vererek yaptım +bu devre krıstal degerine bakılmadan yapılıyor gercekten
ama bana bunun acil baskı devresı lazım bir yol bulabılır mıyız acele sevinirim
Mehmet Yılmaz - 14.03.2009
Sayın Kadir; Ben baskıdevre hazırlamadım. Resimdeki gibi çalıştırdım.
Muratcan Öngen - 14.03.2009
Merhaba ben end. meslek lisesinde okuyorum alarmlı saat projem var fakat bız assembly dilini kullanıyoruz.Sizin yapmıs oldugunuz devrenın baskı devresını cıkarsam ve assembly dılınde yazsam olur mu bı problem cıkar mı calısmasında.Yardımcı olursanız sevinirim simdıden tskler.
ercan bozkurt - 01.04.2009
devreyi proteuste kurdum saniyesi geri kalıyor neyden kaynaklanıyor olabilir baskı devresini de çıkartamadım bana bu konuda yardımcı olurmusunuz?
Bekir Yılmaz - 01.04.2009
İyi geceler hocam ben bu devreyi proteusta kurdum devre çalıştı fakat söyle bir sorunum var.Elimdeki saatle kontrol ettim yaklaşık dakikada 10 sn geri kaldı.Prroteusta kristal değerini değiştirmekte fayda etmedi.Elimde mağzemeler yok.Eğer uygulamada uyguladığımda sorunsuz çalıştığı konusunda eminseniz mazemeleri alıp yapacağım.Bu arada bu bitirme projem o yüzden sorunsuz çalışmalı cevabınızı bekliyorum hocam teşekkürler...
Mehmet Yılmaz - 02.04.2009
Sayın Bekir; Ben bu devreyi resimde görüldüğü gibi yaptım ve çalıştırdım. Yazıda bahsettiğim, çalıştırarak tesbit ettiğim sonuçlardır. Proteusta hiç denemedim. (Proteus simülasyonu ile gerçek zaman aralığı bilgisayarınızın performansından dolayı aynı olmayabilir.) Baskıdevre hazırlamadım. Ben yaptığım devreden eminim. Sizin şüpheniz varsa deneyerek sonuca ulaşırsınız. Ben kendi devremden eminim ama sizin yapacağınız devre hakkında birşey diyemem. Aynısını yapsanız dahi devre sizin montajınızdır. Yani yaptığınız devreden siz sorumlusunuz. Ben devre ile ilgili bütün bilgileri paylaştım. Uygulamanız sizin sorununuzdur. Uygulamanız sonucunda elde ettiğiniz bilgileri de burada paylaşırsanız bu devre ile ilgili katkınız da olur. Ama yine ifade ediyorum kendi devreniz hakkında görüş bildirmiş olursunuz. Çünkü kendi tecrübelerinizi paylaşmış olacaksınız, benim yaptığım devreyi değil.
Kolay gelsin.
efkan canan - 24.04.2009
hocam merhaba.elektronik öğrencisiyim.hex dosyasını indirdiğim zaman decimal sayılar çıkıyor karşıma.decimal sayılar çıkıyor karşıma.ve bu ödevi pazartesiye kadar vermem lazım :( bana yardımcı olurmusunuz microcode studio ile çalıştırmam lazım.picbasic dilinde varsa bana atarmısınız yada başka bi yolu var mı :( şimdiden teşekkür ederim hocam bana yardımcı olun lütfen :((( 24,04,2009
hüseyin alper - 26.04.2009
hocam sizden bi isteğim olacak bu programı mikrokod proğramına uygun pic basic dili ile yazılmış halini sizden rica etsem yardımcı olur musunuz bu hafta çarşamba gününe en geç lazım şimdiden teşekkürler....
yunus - 28.05.2009
meraba hocam devre için teşekkür ederim bu devreyi proje ödevi olarak aldım malzemeleri aldım baskıdevreyi çıkardım ve bastım proteusta çalıştırdım gerçek hayatta kristalden dolayı düzeleceğine inanıyorum fakat pic'e programı atamıyorum hex dosyasının hatalı olduğunu söylüyorum dier programları atıp silebiliyorum faka sizin hex dosyanızı atamıyorum yardımcı olursanız sevinirim...
Mehmet Yılmaz - 28.05.2009
Yunus Merhaba; bahsettiğiniz sorun için birfikir veremiyeceğim. Ben kendi kullanığım dosyaları siteye gönderdim. Sizin sorununuzu yaşamadım.
Önerim Şudur: Başka bir programlayıcı kullanarak programlamayı tekrara deneyiniz.
Diğer önerim ise şudur: http://jal.sourceforge.net/ adresinden veya http://www.projearsivim.com/download/JalWin.zip adresinden JAL'ı indirip Projenin jal kaynak dosyasından yeni bir derleme ile hex dosyayı elde etmenizdir. Bu hex dosyayı PIC'e atmayı deneyiniz. Bu işlemle hex dosyayı yeni elde etmiş olursunuz. Umarım sorunun gider.
Kolay gelsin.
yunus - 06.06.2009
hocam ben jal kullanmayı va,eya dönüştürmeyi bilmiyorum basit pic programlayıcıyı ben yaptım bir kaç deişik programı pıc e yazdırdım ama bu devrenin hex dosyasını bir türlü atamıyorum error hex hatası veriyor ama proteusta çalışıyor yardımcı olurmusunuz...
yunus - 08.06.2009
hocam çok saolun devre tamami ile çalışıyor pıc programlamasını bitirdiğim lisede hocaların yardımı ile yaptım ve tam anlamıyla çalışıyor..

ısıs da deneyip saniyenin yavaş ilerleme sorununu bende yaşamıştım ısıs da pic e program atar iken onaylamadan önce tetikleme palsi yazan yer var orayı 4MHz e ayarlarsanız sorunsuz çalışıyor cristal kullanmadan bile ısıda çalıştırıyor birtek denerken buzzer de sorun verdi sökünce çalıştı
Mehmet Yılmaz - 09.06.2009
Merhaba Yunus; Sorunu çözdüğüne sevindim. Bir ricam olacak, Hex programlama sorununun çözümünü de yazarsan daha iyi olur. Çünkü başka sorun yaşayanlar için yol gösterici olabilir.
hakan - 01.11.2009
mehmet bey bana bu devrenin baskı devresi gönderirmisiniz?
Mehmet Yılmaz - 03.11.2009
Sayın Hakan; Devre resimde de görüldüğü şekilde çalıştırıldı. Baskı devresini hazırlamadım. Dolayısıyla isteğinizi maalesef karşılayamam.
emre toprak - 05.02.2010
sayın hocam bu devreyi isisde kurdum ancak dediğiniz gibi kristali 4.194304Mhz yapınca saat normalden çok geride oluyo bunu nasıl düzeltebilrim
Mehmet Yılmaz - 05.02.2010
Sayın Emre Toprak; Devreyi yaparsanız çalışır. Ben çalıştırdım. Resimde de görüldüğü gibi devre çok basitçe kurulabilir. Ben isis ile ilgili sorunlarla ilgilenmiyorum. Artık isis kullanmıyorum. Bu sorununuz ile ilgili isisden anlayan arkadaşlara danışmanızı tavsiye ederim.
yasin - 04.10.2010
hocam devre gercktn calısıyor dıme cok lazım calısmıyorsa soyleyın benı madur gorun cok lazım gerckten
osman - 19.03.2011
kardeş bu devreyi ISIS te yaptm ancak saniye çok yavaş ilerliyo yani yaklaşık 4 sn de 1 sn ilerliyor. bu devre bnm proje ödevim. saniye sorunu ISIS için mi geçerli, baskı devreye çıkartıldığında normal akışta mı ilerliyor? bu arada devre için teşekkürler
osman - 19.03.2011
sorunumu hallettim yunus arkadaşın dediği gbi tetikleme palsini 4Mhz yapınca düzeliyor saniye akışı, tekrardan teşekkürler
ibrahim - 01.11.2011
hocam sunun 16f84 e uygun komutlarını cıkartamazmısnz???
Mehmet Yılmaz - 01.11.2011
Sayın İbrahim,
"Devrenin Çalışması ve Yapısı:" başlık altındaki paragrafı tekrar okumanızı öneririm. "Devrede PIC 16F84 mikrokontrolör entegresi kullanılmıştır." cümlesi ile başlıyor.
semih - 08.12.2011
öncelikle devre için teşekkür ederim bu devrenin kodları asm olarak atarmısınız acil lazım
mehmet fatih - 25.02.2012
devre tam olark belli deil net olarak belli olsa sevinirim şuan bana açil ihtiyacım var.
Engin Ayhan - 19.05.2012
Ben devrenin baskı devresini çıkartım ve karta lehimledim fakat lcd ekrandaki yazılar silik gözüküyor. bide alarm çalışmıyor. Butonlara basınca ekran düzeliyor bırakınca yine silik hale dönüyor. Alarm zamanı gelince buzzer dan hafif cızırtı geliyor alarm çalmıyor yardımcı olursanız sevinirim.
tolgahan - 12.06.2012
hocam merhaba bu devre için alarımı 1den çok kurarak hatırlatıcı görevini yapmasını istiyorum bu yazılıma kesme ekleyerekmi yapmam gerekiyor yardımcı olurmusunuz?
mail olarak dönmeniz mümkün mü
erkan - 06.11.2012
Devre sorunsuz çalışıyor emeği geçen üstadımıza teşekkür ederim.
volkan - 12.02.2013
hocam bana baskı devresi lazım gönderirseniz sevinirim mutlaka

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>