AT89S52 ile Frekansmetre
Bu çalışma bir dersin dönem projesi, ders projesi olduğu için kendi isteğimizle yaptığımız projelere kıyasen biraz tatsız ve gelişmeye açık bir noktada bırakıldı. Belki birilerinin işine yarar diye yayınlamak istedim.
Frekans, periyot ve “duty cycle” ölçüm uygulamalarında çeşitli mikrodenetleyiciler kullanıyoruz. Kullandığımız mikrodenetleyicilerde bu ölçümlerin yapılmasını kolaylaştıracak yardımcı özel donanımlar bulunuyor. PIC serisinden bildiğimiz “timer” lar, ccp modüller bu donanımlardan… Frekans, periyot ve “duty cycle” ölçmenin genel olarak uygulanan yöntemleri var, microchip yayınladığı bir uygulama notunda bu tarz ölçümlerin PIC mikrolarla kolayca yapılması için yöntemler önermiş, aşağıdaki linkten bu dökümana bakabilirsiniz:
CCP and ECCP Tips and Tricks
Biz de AT89S52 ile frekans ölçmek için mikromuzun timer1, timer2 sini kullandık. AT89S52 de “timer” ların çeşitli çalışma modları var. timer2 nin de “autoreload” diye bir modu var. Bu modda timer2 yi taştıktan sonra belirlediğiniz bir değerden başlatabiliyorsunuz. Biz bu değeri timer2 her 50 ms de bir taşacak şekilde ayarladık. timer2 taşma kesmelerinin sayısı 20 yi bulduğunda 1 saniyelik süreç dolmuş demektir. Bu sayede net bir 1 saniyelik süreç elde ettik. Bu bir saniye içerisinde gelen kenar sayısını Port 3.5 pini vasıtasıyla timer1e saydırdık, böylece frekansı bulmuş olduk.
Timer1i 16 bitlik counter modunda kullandığımızdan en fazla 65535 Hz i saydırabildik. timer1 taşma kesmesi kullanarak bant genişliği kolayca 65535*2 Hz e veya daha yüksek değerlere çıkarılabilir. Öte yandan frekans bölücü entegreler yardımıyla “auto-scale” özelliği eklenerek daha büyük bant genişlikleri elde edilebilir. Ama biz bunlara zaman bulamadık ve 65535 Hz de en basit haliyle bıraktık.
Bu frekansmetrenin temel özellikleri:
*65535 hz bant genişliği
*Waveform dan bağımsız herhangi TTL işaretin frekansını ölçebilmesi
*LCD görüntü
Not: Kaynak kodda hex sayının bcd ye(binary codded decimal) çevrilmesi fonksiyonunda 8052.com daki bazı örneklerden faydalandık. Diğer kısımlar bize aittir.
İlgili dosyalar: (linkler kırık, yenilenecek)
Proteus Simülasyon Dosyası + freq_met.asm + freq_met.hex
AT89S52 katalog
Proje Raporu(ing!)
Oncelikle merhaba;
size soyle bi sorum olacak arkadaslar AT89C52 ile yapsam sistem ayni mi yoksa farklilik varmi ?