Jam sangat penting manfaatnya bagi kita. Karena dengan jam kita dapat
mengetahui waktu. Salah satunya adalah jam digital. Berikut contoh
penerapan jam digital pada mikrokontrolerAT89S51.
Gambar diatas merupakan contoh konfigurasi kaki-kaki pada rangkaian jam
digital. Perbedaan mungkin terjadi, karena kita bisa mengatur sesuai
dengan konfigurasi yang kita mau untuk kita rancang.
Pada gambar diatas terdapat komponen-komponen:
a) Mikrokontroler
Mikrokontroler digunakan sebagai pemroses perintah-perintah yang
diberikan. Mikrokontroler yang sering digunakan adalah AT89s51, AT89s52,
AT89s53 dan masih banyak lagi. IC tersebut termasuk kedalam keluarga
mcs51. Selain tipe-tipe tersebut ada AVR yang mulai sering digunakan.
Rangkaian minimum modul mikrokontroler adalah:
· Rangkaian osilasi terletak di kaki 18 dan 19.
· Power on reset terletak di kaki 9.
· Rangkaian supply 5 volt yang dihasilkan oleh regulator 7805. Untuk vcc di kaki 40 dan 31. Untuk ground di kaki 20.
b) 7-segment
Digunakan sebagai display/penampil angka pada jam digital. Terdapat dua
tipe 7-segment. Yaitu: common anoda dan common katoda. Common anoda
maksudnya adalah kaki-kaki anoda pada led didalam 7-segment
disatukan(terletak di tengah-tengah atas/bawah) untuk kemudian
disambungkan dengan vcc(pin ditengah diberi vcc. Salah satu kaki saja
atas atau bawah). Agar angka tampil dengan konfigurasi ini, maka pin-pin
kaki 7-segment yang lain harus diberi ground/low. Untuk common katoda
merupakan kebalikan dari common anoda.
c) Transistor
Transistor disini digunakan untuk penguat arus dan sebagai sakelar.
Penguat arus maksudnya disini adalah memperkuat arus output dari
mikrokontroler yang terlalu lemah, sehingga bisa memberi arus yang cukup
untuk 7-segment.
Sebagai sakelar maksudnya adalah untuk digunakan dalam proses scanning.
Proses scanning disini maksudnya adalah menampilkan angka yang tertampil
pada 7-segment secara bergantian antara 7-segment yang satu dengan yang
lain dari 7-segment kesatu lalu kedua kemudian ketiga akhirnya keempat.
Ini dilakukan karena tidak mungkin mikrokontroler mensuplai arus pada
keempat 7-segment secara bersamaan karena arus yang dikeluarkan sangat
terbatas. Pergantian ini umumnya dilakukan dengan sangat cepat, sehingga
mata tidak dapat mengikuti. Sehingga yang terlihat oleh mata adalah
angka pada keempat 7-segment tertampil semua.
Transistor yang dipergunakan untuk 7-segment common anoda adalah
transistor pnp(bc557). Sedangkan transistor yang digunakan untuk
7-segment common katoda adalah transistor npn(bc548). Selain itu untuk
transistor yang digunakan untuk 7-segment yang besar berbeda dengan yang
digunakan untuk 0.5 inch misalnya.
d) Resistor
Resistor digunakan sebagai pembatas arus agar arus menuju ke 7-segment
dan mikrokontroler tidak berlebihan. Nilai resistor yang digunakan
tergantung oleh komponen yang dipakai. Contohnya nilai resistor yang
digunakan untuk 7-segment 0.5 inch berbeda dengan yang digunakan untuk
7-segment yang lebih besar.
e) Switch
Switch dapat ditambahkan pada mikrokontroler bila ingin menambah atau mengurangi tampilan jam ataupun menit.
Contoh pemograman 7-segment:
Disini kita memakai 7-segment common anoda, dengan menggunakan port 1
mikrokontroler. Pada program (bahasa assembly) ini akan menampilkan
angka dari 0 sampai 9 dengan waktu tunda 1 detik.
Org 0h ; alamat awal 0h (origin 0h)
Utama: mov R1,#0 ; isi R1 dengan nol
mov a,R1 ; menunjuk data lookup tabel pertama
mov dptr,#Angka ; isi dptr dengan alamat lookup tabel
Ulang: movc a,@a+dptr ; copy data ke akumulator
mov p1,a ; tampilkan ke p1
Call Tunda ; tunda 1 detik
Inc a ; naikkan Akumulator
Cjne a,#0ah,Ulang ; jika A ≠ 10, ulang
Jmp Utama ; jika A = 10, ulang dari awal lagi
Tunda: mov R0,#250
Tunda1: mov R1,#250
Tunda2: mov R2,#6
Tunda3: DJNZ R2,Tunda3
DJNZ R1,Tunda2
DJNZ R0,Tunda1
RET