Searching

Belum menemukan yang Anda cari, mungkin kata kunci Anda kurang tepat atau masih salah. Coba masukkan lagi kata kunci Anda yang baru pada fasilitas searching di Blog ini untuk lebih lengkap, search in database this blog :

Perhatian

Untuk tampilan gambar yang lebih jelas, Anda dapat klik langsung pada gambar yang ada. Selamat menjelajah !
More Read :

Tuesday, May 8, 2007

Jam Digital

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 microcontroller, antara lain sistem tampilan 7 ruas dan pemakaian ti­mer.



Gambar 1
Jam Digital dengan AT89C2051

Rangkaian lengkap Jam Digital ini terlihat pada Gambar 1, dilengkapi 4 buah tampilan 7 ruas LED untuk menampilkan waktu, terdiri atas angka-angka puluhan jam, satuan jam, puluhan menit dan satuan menit. 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 12 MHz dan kapasitor C1 dan C2 membentuk rangkaian oscilator pembangkit frekuensi kerja AT89C2051, rangkaian ini merupakan rangkaian baku, artinya bentuk rangkaian oscilator ini selalu seperti ini untuk semua rangkaian AT89C51, kecuali untuk keperluan yang lain nilai kristalnya saja yang mungkin berbeda.

Kombinasi kapasitor C3 dan tahanan R8 juga merupakan rangkaian baku, komponen ini dipakai untuk membentuk rangkaian ‘power on reset’, artinya rangkaian yang akan otomatis me-reset AT89C2051 setiap kali AT89C2051 mulai menerima sumber daya listrik.

Melihat rangkaian pada Gambar 1, memang tidak bisa dijelaskan bagaimana Jam Digital ini bekerja, karena rangkaian itu hanyalah bagian tampilan dan tombol pengatur waktu waktu saja, ‘Jam’ yang sesungguh­nya berupa program yang disimpan di dalam ROM yang ada di dalam IC AT89C2051.

Sistem tampilan 7 ruas


Untuk menampilkan waktu dipakai 4 buah tampilan 7 ruas LED yang dibentuk dengan IC2 dan IC3 (masing-masing IC berisikan 2 tampilan angka), dengan demikian untuk menampilkan 4 buah angka diperlukan 28 LED, kalau ke-28 LED ini dinyala-padamkan dengan cara biasa, maka diperlukan 28 saklar dan rangkaian menjadi rumit sekali. Cara yang umum dipakai adalah sistem tampilan 7 ruas yang di-multiplek seperti nampak dalam Gambar 1, sedangkan Gambar 2 memperlihatkan detil sistem tampilan ini.



Gambar 2
Sistem Tampilan 7 Ruas

Setiap tampilan angka dibentuk dengan 7 buah LED (Light Emitting Diode), masing-masing diode itu ditandai sebagai ruas ‘a’ sampai dengan ‘g’, anode dari ketujuh LED itu sudah dihubungkan jadi satu di dalam IC. Katode ruas ‘a’ dari angka puluhan jam dihubungkan dengan katode ruas ‘a’ dari angka satuan jam dan seterusnya. Demikian pula dengan ruas ‘b’; ruas ‘c’ dan lain sebagainya.

Saklar Ruas P10..P16 dipakai untuk menentukan ruas mana yang akan dinyalakan, misalkan untuk membentuk angka 1 maka saklar P11 (ruas b) dan saklar P12 (ruas c) dalam posisi ‘on’. Sedangkan Skalar Digit dipakai untuk menentukan tampilan angka mana yang dipakai, misalkan angka 1 tadi ingin ditampilkan pada tampilan puluhan jam, maka posisi skalar pada Q1.

Jika posisi ‘on’ pada Saklar Digit digilir dari Q1, Q2, Q3 dan Q4 kemudian kembali ke Q1 dan seterusnya secara cepat, maka angka 1 di atas akan nampak pada semua tampilan angka!

Selanjutnya, andaikan sebelum merubah posisi Saklar Digit kombinasi Skalar Ruas diatur terlebih dulu, maka angka yang tertampil dalam sistem tampilan 7 ruas ini bisa diatur dengan tepat.

Dalam Gambar 1 terlihat Saklar Ruas dibentuk dengan kaki P1.0 sampai kaki P1.6 AT89C2051, sedangkan Saklar Digit dibentuk dengan sebuah transistor PNP dan sebuah tahanan yang masing-masing dikendalikan lewat kaki P3.0 sampai kaki P3.3.

Proses pengaturan sistem tampilan seperti yang dibahas diatas, diatur oleh AT89C2051 lewat potongan program yang biasanya dinamakan sebagai ScanDisplay seperti berikut :

1 ScanDisplay:

2 MOV P1,RuasJam10

3 MOV P3,#%11110111

4 ACALL TungguSebentar

5 ;

6 MOV P1,RuasJam1

7 MOV P3,#%11111011

8 ACALL TungguSebentar

9 ;

10 MOV P1,RuasMenit10

11 MOV P3,#%11111101

12 ACALL TungguSebentar

13 ;

14 MOV P1,RuasMenit1

15 MOV P3,#%11111110

16 ACALL TungguSebentar

17 SJMP ScanDisplay

Potongan program di atas bisa dijelaskan sebagai berikut : RuasJam10, RuasJam1, RuasMenit10 dan RuasMenit1 merupakan variabel tempat menampung kombinasi ruas dari angka yang akan ditampilkan, isi dari variabel ini akan dirubah dibagian lain dari program sesuai dengan perubahan waktu. Isi variabel–variabel ini diumpankan langsung ke Port 1 (baris 2, 6, 10 dan 14 pada potongan program di atas), untuk mengendalikan Saklar Ruas.

Saklar Digit dibentuk dengan transistor PNP, jadi untuk meng-on-kan diperlukan tegangan ‘0’ pada salah satu kaki Port 3, seperti terlihat pada baris 3, 7, 22 dan 15. Perhatikan posisi angka ‘0’ pada keempat baris itu, akan nampak ‘0’ tersebut ber-‘jalan’ dari kiri ke kanan yang setara dengan Saklar Digit bergilir ‘on’ dari Q1 sampai Q4.

TungguSebentar merupakan sub-rutin yang berfungsi untuk menunda waktu (delay), agar angka yang ditampilkan bisa tertahan sesaat sebelum berganti. Pada baris 17, aliran program di alihkan kembali ke baris 1, sehingga potongan program ini akan bekerja terus menerus tanpa henti menampilkan angka.

Jam Digital

Jam Digital dalam proyek ini, sesungguhnya hanya berupa program. Pada dasarnya Jam Digital adalah sistem pencacah (counter) bertingkat, dimulai dari pencacah menit yang mencacah dari 0 sampai 59 dan melimpah kembali ke 0, dan pencacah jam dari 0 sampai 23 yang mencacah setiap kali ada limpahan dari pencacah menit, hal ini bisa direalisasikan dengan program berikut:

1 JamDigital:

2 INC Menit

3 MOV A,Menit

4 CJNE A,#60,Keluar

5 MOV Menit,#0

6 INC JAM

7 MOV A,Jam

8 CJNE A,#24,Keluar

9 MOV Jam,#0

10 Keluar:

11 RET

Menit dan Jam pada potongan program ini, adalah variabel yang berfungsi sebagai pencacah menit dan pencacah jam. Sub-rutin JamDigital ini akan dijalankan setiap menit sekali, sehingga perubahan nilai pada variable Menit dan variable Jam persis mencerminkan perubahan waktu.



Interupsi Timer

Setelah membentuk sub-rutin JamDigital di atas, persoalan berikutnya adalah bagaimana agar sub-rutin itu benar-benar bisa dijalankan satu kali setiap menit, untuk keperluan ini dipakai fasilitas timer yang dimiliki AT89C2051.

Jam Digital yang dibuat selalu menjalankan program ScanDisplay terus menerus tanpa henti, dengan mengggunakan fasilitas interupsi dari timer, program ScanDisplay di atas dihentikan sebentar setiap 50 mili detik, pada saat itu AT89AT2051 menggerakan untaian pencacah 20 dan pencacah 60, pencacah 20 akan melimpah sekali per detik, dan pencacah 60 akan melimpah sekali per menit. Pada saat terjadi limpahan pencacah 60, AT89C2051 akan menjalankan sub-rutin JamDigital di atas.

1 TimerInterrupt:

2 MOV TL0,#-50000

3 MOV TH0,#>-50000/256

4 DJNZ Pencacah20,Terus

5 MOV Pencacah20,#20

6 DJNZ Pencacah60,Terus

7 MOV Pencacah60,#60

8 ACALL JamDigital

9 Terus:

10 RETI

Baris 2 dan 3 di atas yang mempertahankan agar AT89C2051 menjalankan rutin TimerInterrupt setiap 20 mili detik, baris 4 sampai 7 merupakan untaian pencacah 20 dan pencacah 60, saat pencacah 60 melimpah pada baris 8 AT89C2051 menjalankan sub-rutin JamDigital.

Agar mekanisme interupsi timer ini bisa bekerja seperti apa yang diharapkan, pada awal program ditambahkan potongan program berikut :

1 ANL TMOD,#%11110000

2 ORL TMOD,#%00000001

3 MOV TL0,#-50000

4 MOV TLH,#-50000/256

5 SETB ET0

6 SETB EA

7 SETB TR0

Baris 1 dan 2 menentukan mode kerja dari Timer 0, Baris 3 dan 4 yang menentukan agar AT89C2051 menjalankan rutin TimerInterrupt setiap 20 mili detik, baris 5 mengaktipkan interupsi Timer 0, baris 6 mengaktipkan sistem interupsi AT89C2051 dan baris 7 menjalankan Timer 0. Bagian ini kelak akan dijelaskan lebih mendetil dalam artikel tersendiri.

Oleh Budhy Sutanto

14 comments:

Anonymous said...

mas tolongin saya donk....
kasih tahu program nya....???
saya msih bru blajar2 buat alat...
tolong ya mas...
please...

email: lycos_79@yahoo.com

aDit_zOnE said...

salam kenal mas, saya boleh konsultasi gak mas?mas ada gak program untuk jam digital dengan AT89C51?saya mau buat pengaturan OFF Air Condisioner (AC) dengan memakai AT89C51 mas, prosesnya apabila jam6 sore, AC otomatis akan mati, sedangkan untuk ON nya,secara manual saja…tolongin saya ya mas…mohon dibales ke email saya ya mas….
adit18_doank@yahoo.com...
makasih mas…

Trensains said...

TRENSAINS... tutorial mikrokontroler

superst@rs club said...

Lam kenal,, mas-mas tolonga minta tutorial jam digital yang pake ATMEGA8535 donk

Dani said...

mas tolongin saya,,klo ditambah buzzer buat alarm gmn,,dan saklar buat set alarm..kirim ke email sya mas,saya tunggu lo...
daniel_ikkonen@yahoo.com

adhitya said...

sidang sebentar lagi....

tp Q ga tau program jam digital tampil di lcd atmega8535 bahasa c.
tolong bantu kirimkan program nyaaaaaa
kirim email Q

Tatto_Abraham said...

Mas, klo Jam GPS bisa ga? maksud nya supaya selalu tepat. kan klo jam Biasa selalu mengalami pergeseran tiap detiknya Tul gak?...
Tks.

Yunus Manullang said...

mas tlg kririmin cara m'buat jam digital yg lebih lengkap yach... soalnya sy pemula... tlg kirim ke yunus4ever@gmail.com ditunggu ya mas.. terima kasih.

rifky said...

mas tlg kririmin gmbar rangkaian + list programnya(lengkap, kalo ada yang udah dlam bentuk .HEX)
tlg kirim ke grand2512@gmail.com ditunggu mas..
terima kasih.

pernak pernik said...

mas, kl misalkan ic at 8951 yang buat untuk jam digital itu kita icnya(at8951) dicabut lagi terus ic(at8951) yang dicabut itu bisa dikasih/diganti program yang lainnya gk pada rangkaian yang baru/lain lagi, jika bisa bagaimana caranya? terimakasih...

Unknown said...

saya juga baru saja membuat sebuah jam digital mas.. tapi menggunakan ATMEGA8 dan RTC.. mampir juga ke blog saya mas http://mamaus.wordpress.com/2011/02/22/jam-digital-arduino-rtc-ds1307/

Anonymous said...

Mas tolong ajarin cara bikin jam digital.. ane pengen bikin kado buat pacar ane nih :)

Kalau mas berkenan membantu
e-mail me : dr.vrede@yahoo.com
/ folysunk@gmail.com

Anonymous said...

eh yang pengen nge optimize IDM anda dan beberapa alat buat farming RO hehe cek aja kesini allshare-folysunk90.blogspot.com

Mohd Fur said...

nice inpoh salam kenal pak...

klo ane coba pake digital murni
http://suandno.blogspot.com/2012/04/digital-clock-with-ttl-ic.html

Disclaimer


Blog ini tidak bertanggung jawab atas kesalahan atas program yang Anda download ataupun sesuatu hal yang berhubungan dengan materi-materi yang ada. Terima kasih atas saran dan kritik yang membangun. Non profit blog. Untuk lebih lanjut hub Webmaster di : agencs@yahoo.com


"All Links In This Blog Is Temporary Link"

NO SPAM AND VIOLATED CONTENT

Generated®


Banner IP Browser

Lihat gambar di bawah ini, ingin punya yang seperti ini juga. Anda bisa pasang banner ini di blog Anda atau posting Anda. Bisa deteksi IP Adress, Browser.

Tulis code ini di footer blog kamu atau posting kamu. Copy (CTRL+C) Paste (CTRL+V) at this script.
Coba Deh, Kuueereeen lho ....
 


Creative Commons License
Powered by Blogger | Created and Maintained by Generated
Blogger Beta Template by GeckoandFly and Blogcrowds | Design by Andreas Viklund
This workis licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Malaysia License.
Best viewed in Firefox 1.5+ at 1024x768 or higher resolution
Copyright 2007 Content by BIZON network
Hosting Reseller Reviews cydots.com - Free Domains!