Mungkin bagi sebagian pembaca Jam Digital merupakan hal yang sangat sederhana atau sudah terlalu umum, tapi dari Jam Digital bisa dipelajari prinsip-prinsip dasar kontrol dengan mikrokontroler AVR ATmega8 yaitu pemakaian timer/counter.
Rangkaian lengkap Jam Digital ini terlihat pada gambar diatas, dilengkapi 6 buah seven segmen BCD untuk menampilkan waktu, terdiri atas angka-angka puluhan jam, satuan jam, puluhan menit, satuan menit, puluhan detik dan satuan detik. IC 74LS393 digunakan sebagai pewaktu Real Time Clock (RTC). Tombol SW1 dan SW2 dipakai untuk mengatur tampilan waktu, saat SW1 ditekan angka pada tampilan jam akan bertambah setiap detik, sedangkan SW2 dipakai untuk mengatur angka tampilan menit dengan cara yang sama. Kristal 11.0592MHz dan kapasitor C1 dan C2 membentuk rangkaian oscilator pembangkit frekuensi kerja ATmega8.
Perancangan Software
Perancangan software pada jam digital ini menggunakan bahasa C CodeVisionAVR. Yang perlu diperhatikan dalam pembuatan jam digital ini adalah bagaimana cara mensetting timer counter agar sesuai dengan kondisi waktu sebenarnya. Pada aplikasi ini memanfaatkan timer/counter1 mikrokontroler avr ATmega8.
Timer/counter1 (16bit)
Timer/counter 1 adalah sebuah timer/counter yang mempunyai kapasitas cacahan 16 bit (65535) baik pulsa internal maupun eksternal yang dilengkapi prescaler sumber clock hingga 10 bit (1024). Timer/counter 1 mempunyai 2 kelompok register :
1. Register Kerja
- TCNT1 = register pencacah/penghitung
- OCR1A = register pembanding A
- OCR1B = register pembanding B
- ICR1 = register penangkap isi TCNT1
2. Register Kontrol
Kombinasi TCCR1A dan TCCR1B untuk mengendalikan berbagai mode timertimer
Register-register timer/counter 1
Timer/Counter 1 Control Register A – TCCR1A
Timer/Counter 1 Control Register B – TCCR1B
Output Compare Register 1 A – OCR1A (OCR1AH dan OCR1AL)
Output Compare Register 1 B – OCR1B (OCR1BH dan OCR1BL)
Input Capture Register 1 – ICR1 (ICR1H dan ICR1L)
Timer/counter Interrupt Mask Register – TIMSK
Timer/Counter Interrupt Flag Register – TIFR
Prescaler
Pada dasarnya timer hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang digunakan atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024.
Perhitungan waktu Timer/Counter 16 bit
Contoh :
Diinginkan sebuah timer 16 bit bekerja selama 0,5 detik, dengan frekuensi clock sebesar 11,0592 Mhz dan presecaller 1024. Tentukan nilai TCNT?
Jawab
Jadi, TCNT1H = EAh dan TCNT1L = E8h
Download :
Source Code (CodeVisionAVR) |
Skema Rangkaian Jam (Isis Proteus) |
Layout PCB
Password WinRar : iarifw
Update Agustus 2013 :
Rangkaian Jam digital Menggunakan Atmega16