Ketika kita menggunakan Seven-Segment Display pada aplikasi mikrokontroler, kita harus menghitung nilai-nilai konstanta yang nantinya harus kita tuliskan pada port keluaran yang kita gunakan sebagai port data display agar display menampilkan suatu angka atau huruf atau simbol tertentu.
Untuk mudahnya, biasanya urutan pin pada port data mikro disesuaikan dengan urutan pin pada seven-segment. Semisal kita menggunakan PORTB sebagai port data, maka urutan koneksinya adalah: PB0 – a, PB1 – b, PB2 – c, PB3 – d, PB-4 – e, PB5 – f, PB6 – g dan PB7 – h (dot). Dari urutan tersebut bisa dihitung berapa nilai konstanta yang harus dikirim ke port data untuk menghasilkan tampilan angka atau huruf atau simbol pada seven-segment. Dan selama kita menggunakan desain yang sama, maka kita tidak perlu mengganti data untuk tampilan seven segment.
Dengan urutan koneksi seperti itu, maka untuk menghasilkan tampilan angka 7 mikro harus mengeset PORTB dengan data 0b00000111 jika seven-segment yang digunakan adalah tipe Common-Cathode dan data 0b11111000 jika seven-segment yang digunakan adalah tipe Common-Anode.
Namun pada prakteknya, kita bebas menentukan koneksi antara pin mikro dengan pin seven-segment. Dan terkadang kita "terpaksa" menggunakan pin I/O dari beberapa port yang tidak berurutan demi kemudahan layout PCB yang akan kita buat. Dengan perubahan urutan koneksi antara pin mikro dan pin seven-segment maka kombinasi bit pun akan berbeda sehingga diperlukan konstanta nilai yang berbeda pula.
Nah, sambil berlatih pemrograman, saya membuat program bantu yang dapat memudahkan proses tersebut sehingga kita tidak perlu repot-repot menghitung konstanta nilai tampilan seven-segment. Program saya buat menggunakan Lazarus dan FreePascal.
Dengan program ini, kita tidak perlu lagi menghitung untuk mendapatkan nilai konstanta untuk tampilan tertentu. Program berlaku untuk seven-segment tipe Common-Cathode maupun tipe Common-Anode. Dan tidak hanya itu, kita juga bebas menentukan urutan koneksi (pin assignment) sesuai dengan rangkaian yang kita buat. Oleh karenanya program ini dapat mengakomodasi segala konfigurasi rangkaian seven-segment.
Berikut adalah tampilan program untuk tampilan angka 7 dengan pin assignment sebagai berikut:
- Pin-0 = LED a
- Pin-1 = LED b
- Pin-2 = LED c
- Pin-3 = LED d
- Pin-4 = LED e
- Pin-5 = LED f
- Pin-6 = LED g
- Pin-7 = LED h (dot)
Angka 7 Common-Cathode
Angka 7 Common-Anode
Pengoperasian Program
LED a – LED h akan berganti status dari off ke on atau sebaliknya jika diklik menggunakan mouse. Warna putih menyatakan LED=off, dan warna merah menyatakan LED=on.Untuk menyesuaikan pin assignment, klik label LED pada Group Pin-7 – Pin-0. Ketika Anda mengganti salah satu pin assignment, maka secara otomatis, program akan mencari adanya assignment yang sama, dan secara otomatis pula akan menukarkannya sehingga tidak ada pin assignment yang sama untuk masing-masing LED. Hal ini untuk mencegah terjadinya kesalahan assignment, sehingga dapat dijamin nilai bytecode yang dihasilkan senantiasa benar.
Untuk mengganti tipe Seven-Segment, Anda dapat meng-klik pilihan Common-Cathode atau Common-Anode. Ketika terjadi perubahan tipe seven-segment, maka nilai bytecode juga akan berubah.
Berikut adalah tampilan program untuk tampilan angka 3 dengan urutan koneksi pin yang berbeda.
Nah, cukup menarik bukan?
Program ini masih dapat dikembangkan dengan menambahkan fasilitas untuk menghasilkan (generate) kode program untuk konstanta nilai tampilan 0-9 dan A-F dalam bahasa C yang valid untuk kompiler C mikrokontroler AVR maupun MCS-51. Mudah-mudah bisa terlaksana.
Download Link
Anda dapat memiliki dan menggunakan program bantu ini secara gratis. Silakan download program 7SEGCALC.EXE ini dan silakan dievaluasi. Saran dan masukan dari Anda tentunya sangat saya harapkan untuk pengembangan program ini.
( ~587 KB )
Versi Linux
Program bantu ini juga tersedia untuk platform linux. Berikut adalah tampilan program versi linux yang running pada Debian GNU Linux 7 (Wheezy).Dan berikut ini adalah tampilan program yang running pada Ubuntu Linux.
Program versi linux dapat Anda download melalui link berikut ini:
( ~1.87 MB )
Source Code
Program ini saya buat menggunakan Lazarus 1.0 dengan FPC 2.6.0. Anda bisa mendapatkan source code program ini dengan cara menyalurkan donasi. Jika Anda berminat silakan menghubungi saya melalui email ke info@teknikelektrolinks.com.Selamat belajar dan selamat berkarya!
No comments:
Write komentar