Download

6/17/2012

Program Jam Digital dengan Tampilan Jam-Menit-Detik

Seven Segment adalah salah satu komponen yang paling sering digunakan terutama untuk menampilkan data dalam bentuk angka. Untuk itu, Microcontroller Project juga menyediakan simulasi untuk seven segment, yaitu SSLED.exe
Simulasi seven segment yang disediakan oleh SSLED.exe berukuran delapan digit dengan cara multipleks. Cara multipleks adalah cara yang paling sering digunakan karena pengkabelan yang ringkas dan hanya membutuhkan sedikit port untuk mengendalikannya. Cara mengendalikan seven segment yang disusun secara multipleks adalah dengan membagi dua macam jalur berupa jalur data dan jalur pengendali digit. Jalur data digunakan untuk menentukan lampu mana yang menyala, sedangkan jalur pengendali digit digunakan untuk mengatur digit mana yang menyala.
Jalur data dan jalur pengendali digit pada SSLED.exe diterima menggunakan window message berupa WM_USER. Jika lParam bernilai 1, maka sinyal yang diterima akan dianggap sebagai sinyal untuk jalur pengendali digit. Sedangkan jika lParam bernilai 2, maka sinyal yang diterima akan dianggap sebagai sinyal untuk jalur data.
Pada jalur data, bit 0 akan digunakan untuk menyalakan lampu a, bit 1 untuk menyalakan lampu b, dan seterusnya hingga bit 6 untuk menyalakan lampu g. Sedangkan bit 7 digunakan untuk menyalakan lampu titik desimal. Jika sebuah bit bernilai 1, maka lampu yang bersangkutan akan menyala. Hal ini akan sesuai dengan penyalaan lampu pada tipe common cathode. Akan tetapi kita juga bisa membalik data sehingga jika data yang dikirim bernilai FF, maka data tersebut justru akan dianggap 00. Kemampuan ini berguna untuk penyesuaian dengan tipe seven segment yang akan digunakan.
SSLED.exe menyediakan dua cara pengendalian digit, yaitu cara paralel dan cara counter. Pada cara paralel, setiap digit bisa diaktifkan secara individual tergantung nilai bit pada jalur pengendali. Bit 0 pada jalur pengendali akan mengendalikan digit paling kanan dan bit 7 akan mengendalikan digit paling kiri. Jika sebuah bit bernilai 1, maka digit yang bersangkutan akan aktif. Dan seperti halnya pada jalur data, maka jalur pengendali digit juga bisa dibalik.
Pada mode counter, hanya bit 0 dan bit 1 pada jalur pengendali digit yang digunakan. Bit 0 digunakan untuk mereset counter, sehingga digit yang aktif menjadi digit yang paling kanan. Sedangkan bit 1 digunakan untuk menggeser digit yang aktif menjadi digit disebelah kirinya, atau sebutlah sebagai menaikkan cacahan counter. Cara menaikkan cacahan counter pun ada dua macam, yaitu transisi L to H atau transisi H to L. Jika kita menggunakan transisi L to H, maka counter akan dinaikkan cacahannya jika bit 1 berubah kondisi dari 0 menuju 1. Sebaliknya jika transisi yang digunakan adalah H to L, maka cacahan justru akan dinaikkan jika bit 1 berubah kondisi dari 1 menjadi 0.
Jika digit yang aktif adalah digit paling kiri dan cacahan dinaikkan, maka digit yang aktif akan kembali menjadi digit paling kanan.
Gambar di atas adalah contoh bagaimana simulasi seven segment jika dioperasikan untuk menampilkan program jam digital. Program di atas sebenarnya merupakan modifikasi dari program pada bab Interupsi dari buku Mudah dan Menyenangkan Belajar Mikrokontroler, yaitu pada program Timer.A51. Akan tetapi pada buku tersebut kita akan mencoba program pada seven segment yang sebenarnya, jadi kita perlu berhemat hanya dengan menggunakan empat digit saja. Sedangkan pada simulasi ini, kita memiliki simulasi seven segment yang menyediakan delapan digit. Oleh karena itu, kita bisa menampilkan tidak hanya jam dan menit saja, tetapi juga detik. Bahkan kita masih memiliki sisa dua digit. Sisa digit ini kita gunakan untuk memisahkan jam dengan menit dan menit dengan detik, yaitu dengan menampilkan tanda (-). Oleh karena itu, kita perlu sedikit modifikasi dari program Timer.A51 agar bisa menampilkan detik dan tanda pemisahan tersebut.
Kode sumber ditulis dengan format M51 dan c dimana sinyal data dikirim menggunakan P0, dan sinyal kendali digit menggunakan P1. Dengan demikian kita harus mengatur P0 untuk dilink secara Link Message dengan message berupa WM_USER dan lParam bernilai 2 serta mengisi Handle dengan Capture Handle ke SSLED.exe yang sedang berjalan. Demikian juga dengan P1. Hanya bedanya pada P1, nilai lParam adalah 1. Dan ingat, buang tanda cek pada menu Update Display pada simulator.
Tapi perlu diingat bahwa program tersebut ditulis untuk berjalan di mikrokontroler dengan kristal 11,592Mhz. Jadi kecepatan perubahan detik pada saat simulasi belum tentu tepat. Dan kecepatannya tergantung kecepatan komputer yang Anda gunakan.
Nah, menarik kan? Selamat mencoba :!:
Source
Source

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Blog Archive

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger