Oleh:
a
f b
g
e c
d dp
7-seg terdiri dari 2 jenis atau type yang beredar dipasaran, yaitu Common Anode dan
Common Cathode. Common memiliki terjemahan “bersama”, artinya salah satu kutup pada
7-seg dijadikan menjadi satu, atau dapat dikatakan satu kaki 7-seg dipakai bersama
dengan jenis kutup yang sejenis. Pengetahuan akan common pada setiap penggunaan 7-
seg sangatlah penting, dikarena berkaitan dengan cara untuk menghidupkannya
apakah active high atau active low. Secara skematik dua jenis tersebut dapat
digambarkan sebagai berikut :
dp g f e d c b a
Secara program untuk menghidupkan 7-seg seperti halnya menghidupkan 8 buah LED.
Pengaturan Port sebagai keluaran dengan nilai keluaran sesuai dengan common 7-seg
yang dipakai. Berikut table daftar data kelauran untuk menghidupkan 7-seg :
Common Anode (active Low) Common Cathode (active High)
Angka Hexa Biner Angka Hexa Biner
Peng-aksesan 7-seg dapat dilakukan dengan data hexa atau biner seperti pada table
diatas. Untuk menghidupkan 7-seg common anode maka dibutuhkan sinyal keluaran
rendah (active low), sedangkan untuk menghidupkan common cathode dibutuhkan sinyal
keluaran tinggi (active high). Pada table diatas segment dp (dot point) tidak diaktifkan.
Segment ini dipakai untuk fungsi bilangan-bilangan tertentu, seperti penada
ribuan,pecahan, decimal dan masih banyak lainnya.
Pemasangan 7-seg untuk menampilkan suatu informasi data biasanya dirangkai lebih dari
satu. Seperti untuk menampilakan bilangan puluhan, ratusan, ribuan dan seterusnya. Pada
prinsip pengiriman data hampir sama dengan yang satu 7-seg, akan tetapi untuk menghidupkan
dua tau lebih 7-seg dengan karakter yang berbeda maka dibutuhkan teknik penyalaan yang
bergantian. Pemilihan nyala 7-seg diikuti dengan data yang ingin ditampilkan secara serentak,
hal ini dapat dilihat pada ilustrasi berikut ini :
Contoh: Algoritma menampilkan 2 digit angka yaitu 26 dengan 7-seg common Anode
Label ulang:
Hidupkan 7-seg satuan dan matikan 7-seg puluhan Kirim data biner angka 6 (0b10010010)
Tunda 1 mili detik
Hidupkan 7-seg puluhan dan matikan 7-seg satuan
Kirim data biner angka 2 (0b10100100)
Tunda 1 mili detik Kembali ke label ulang
Sebenarnya untuk menampilkan pada 2 7-seg atau lebih dengan tampilan data yang
berbeda antara 7-seg satu dengan yang lain, dihidupkan secara bergantian dan
bersamaan data yang akan ditampilkan. Penampilan data dilakukan dengan kecepatan
tinggi dalam orde mili detik, sehingga mata akan terkelabuhi yang terlihat bahwa tampilan
7-seg 2 digit atau lebih nyala bersamaan. Pada teknik penyalaan 7-seg dua digit atau lebih
dikenal dua istilah, yaitu jalur data (PORT data) dan jalur control (PORT control). Jalur data
merupakan jalur dimana data-data biner/hexa dikirim untuk menampilkan karakter pada
7-seg. Sedangkan jalur control merupakan kendali untuk memilih 7-seg mana yang
akan dinyalakan sesuai dengan data yang ingin ditampilkan.
Pada jalur control bisa terhubung langsung dari mikrokontroller ke 7-seg atau melalui
transistor, keduanya berfungsi seperti saklar yang digunakan untuk memilih 7-seg mana
yang akan dihidupkan. Berikut secara ilustrasi daripada jalur control dan jalur data :
Keyword Komponen
Nama Komponen Keyword ISIS
Mikrokontroler ATMega16 ATMEGA16
7-Segment Com Anode 7SEG-COM-AN-BLUE
D.2
Keyword Komponen
Nama Komponen Keyword ISIS
Mikrokontroler ATMega16 ATMEGA16
7-Segment Com Anode 7SEG-COM-AN-BLUE
D.3
Keyword Komponen
Nama Komponen Keyword ISIS
Mikrokontroler ATMega16 ATMEGA16
7-Segment Com Anode 7SEG-COM-AN-BLUE
Resistor 1k RESISTOR
Push button BUTTON
Power POWER
Ground GROUND
E. Hasil Tugas Mandiri
D.1
Tahap 1 (Terminator) :
Permulaan program
Tahap 2 (Preparation) :
Proses inisialisasi/pemberian harga awal. Dalam tahap ini program harus menyertai
library dari mikroprosessor yang digunakan. Karena dalam project ini saya
menggunakan mikroprosessor jenis Atmega16, jadi library yang digunakan adalah
mega16.h. selain itu, karena dalam program menggunakan selang waktu, maka
saya akan menyertai library waktu, yaitu delay.h.
Tahap 3 (Input/Output Data) :
Proses input/output data, parameter, dan informasi. Dalam dalam program ini,
PORTB digunakan sebagai proses input/output data.
Tahap 4 (Decison) :
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk
langkah selanjutnya. Dalam program, digunakan looping jenis while(). Dalam
program digunakan while(1) : artinya program akan terus berjalan/looping atau
lanjut lagi ke tahap 5, karena perbandingan pernyataan bernilai 1(TRUE/Yes). Jika
tidak atau perbandingan pernyataan bernilai 0(FALSE/No), maka program akan
lanjut ke tahap 6.
Tahap 5 (Proses) :
Proses perhitungan dan pengelolahan data. Dalam tahap ini sesuai dengan
program, seven segment akan counter down dari 9 sampai 0, lalu kembali ke tahap
3.
Tahap 6 (Terminator) :
Akhir program.
Script ini saya diprogram untuk menyalakan dan mengendalikan data seven segment
counter down dari 9 sampai 0 menggunakan mikrokontroler ATmega16. Pada dasarnya
CVAVR di tulis dalam bahasa pemrograman C.
#include <mega16.h>, dimaksudkan untuk menyertakan library dari chip ATmega16.
#include <delay.h>, dimaksudkan untuk menyertakan file fungsi delay.
Void main(void) {…}, dimaksudkan bahwa progaram utama yang akan dijalankan.
While(1), adalah infinite looping. “1” berarti “true” dimana program didalamnya akan terus
berjalan loop salama tidak ada false (0).
PORTB=0x90; ditulis dalam hexa yang berarti seven segment membentuk angka 9.
PORTB=0xF8; ditulis dalam hexa yang berarti seven segment membentuk angka 7.
PORTB=0xB0; ditulis dalam hexa yang berarti seven segment membentuk angka 3.
PORTB=0xF9; ditulis dalam hexa yang berarti seven segment membentuk angka 1.
PORTB=0xC0; ditulis dalam hexa yang berarti seven segment membentuk angka 0.
Tahap 1 (Terminator) :
Permulaan program
Tahap 2 (Preparation) :
Proses inisialisasi/pemberian harga awal. Dalam tahap ini program harus menyertai
library dari mikroprosessor yang digunakan. Karena dalam project ini saya
menggunakan mikroprosessor jenis Atmega16, jadi library yang digunakan adalah
mega16.h. selain itu, karena dalam program menggunakan selang waktu, maka
saya akan menyertai library waktu, yaitu delay.h.
Tahap 3 (Input/Output Data) :
Proses input/output data, parameter, dan informasi. Dalam dalam program ini,
PORTC digunakan sebagai proses input/output data.
Tahap 4 (Decison) :
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk
langkah selanjutnya. Dalam program, digunakan looping jenis while(). Dalam
program digunakan while(1) : artinya program akan terus berjalan/looping atau
lanjut lagi ke tahap 5, karena perbandingan pernyataan bernilai 1(TRUE/Yes). Jika
tidak atau perbandingan pernyataan bernilai 0(FALSE/No), maka program akan
lanjut ke tahap 6.
Tahap 5 (Proses) :
Proses perhitungan dan pengelolahan data. Dalam tahap ini sesuai dengan
program, seven segment akan counter up dari 0 sampa 9 kemudian, seven
segment akan counter down dari 9 sampai 0, lalu kembali ke tahap 3.
Tahap 6 (Terminator) :
Akhir program.
Script ini saya diprogram untuk menyalakan dan mengendalikan data seven segment
counter up dari 0 sampai 9 kemudian, counter down dari 9 sampai 0 menggunakan
mikrokontroler ATmega16. Pada dasarnya CVAVR di tulis dalam bahasa pemrograman C.
Void main(void) {…}, dimaksudkan bahwa progaram utama yang akan dijalankan.
While(1), adalah infinite looping. “1” berarti “true” dimana program didalamnya akan terus
berjalan loop salama tidak ada false (0).
PORTC=0xC0; ditulis dalam hexa yang berarti seven segment membentuk angka 0.
PORTC=0xF9; ditulis dalam hexa yang berarti seven segment membentuk angka 1.
PORTC=0xB0; ditulis dalam hexa yang berarti seven segment membentuk angka 3.
PORTC=0x92; ditulis dalam hexa yang berarti seven segment membentuk angka 5.
PORTC=0xF8; ditulis dalam hexa yang berarti seven segment membentuk angka 7.
PORTC=0x90; ditulis dalam hexa yang berarti seven segment membentuk angka 9.
Lalu, saat seven segment counter up sampai angka 9, seven segment akan counter down
9 sampai 0.
PORTC=0x90; ditulis dalam hexa yang berarti seven segment membentuk angka 9.
PORTC=0xF8; ditulis dalam hexa yang berarti seven segment membentuk angka 7.
PORTC=0x92; ditulis dalam hexa yang berarti seven segment membentuk angka 5.
PORTC=0xF9; ditulis dalam hexa yang berarti seven segment membentuk angka 1.
PORTC=0xC0; ditulis dalam hexa yang berarti seven segment membentuk angka 0.
Tahap 1 (Terminator) :
Permulaan program
Tahap 2 (Preparation) :
Proses inisialisasi/pemberian harga awal. Dalam tahap ini program harus menyertai
library dari mikroprosessor yang digunakan. Karena dalam project ini saya
menggunakan mikroprosessor jenis Atmega16, jadi library yang digunakan adalah
mega16.h. selain itu, karena dalam program menggunakan selang waktu, maka
saya akan menyertai library waktu, yaitu delay.h.
Tahap 3 (Input/Output Data) :
Proses input/output data, parameter, dan informasi. Dalam dalam program ini,
PORTA dan PORTC digunakan sebagai proses input/output data.
Tahap 4 (Decison) :
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk
langkah selanjutnya. Dalam program, digunakan looping jenis while(). Dalam
program digunakan while(1) : artinya program akan terus berjalan/looping atau
lanjut lagi ke tahap 5 dan tahap 7, karena perbandingan pernyataan bernilai
1(TRUE/Yes). Jika tidak atau perbandingan pernyataan bernilai 0(FALSE/No),
maka program akan lanjut ke tahap 9.
Tahap 5 (Decison) :
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk
langkah selanjutnya. Jika sw1 ditekan (PINC.0 == 0) maka akan lanjut ke tahap 6,
jika tidak akan kembali tahap 3.
Tahap 6 (Proses) :
Proses perhitungan dan pengelolahan data. Dalam tahap ini sesuai dengan
program, seven segment akan counter up dari 0 sampai 9, lalu kembali ke tahap 3.
Tahap 7 (Decison) :
Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk
langkah selanjutnya. Lalu Jika sw2 ditekan (PINC.1 == 0) maka akan lanjut ke
tahap 8, jika tidak akan kembali tahap 3.
Tahap 8 (Proses) :
Proses perhitungan dan pengelolahan data. Dalam tahap ini sesuai dengan
program, seven segment akan counter down dari 9 sampai 0, lalu kembali ke tahap
3.
Tahap 9 (Terminator) :
Akhir program.
Dalam pengaturan port, portC pada bit 0 dan bit 1 diatur sebagai PULL. Artinya bit 0 dan bit
1 adalah input/masukan
Script ini saya diprogram untuk menyalakan dan mengendalikan data seven segment
counter up dari 0 sampai 9, jika sw1 ditekan. kemudian, counter down dari 9 sampai 0, jika
sw2 ditekan. Pada dasarnya CVAVR di tulis dalam bahasa pemrograman C.
#include <mega16.h>, dimaksudkan untuk menyertakan library dari chip ATmega16.
#include <delay.h>, dimaksudkan untuk menyertakan file fungsi delay.
Void main(void) {…}, dimaksudkan bahwa progaram utama yang akan dijalankan.
While(1), adalah infinite looping. “1” berarti “true” dimana program didalamnya akan terus
berjalan loop salama tidak ada false (0).
if (PINC.0 == 0){...}, dimaksudkan bahwa jika sw1 (PINC.0) ditekan atau sebanding
dengan 0, maka syarat terpenuhi dan program/logika didalamnya akan berjalan.
PORTA=192; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 0.
PORTA=249; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 1.
PORTA=164; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 2.
PORTA=179; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 3.
PORTA=153; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 4.
PORTA=146; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 5.
PORTA=130; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 6.
PORTA=248; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 7.
PORTA=128; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 8.
else if(PINC.1 == 0){...}, dimaksudkan bahwa jika sw2 (PINC.1) ditekan atau sebanding
dengan 0, maka syarat terpenuhi dan program/logika didalamnya akan berjalan.
PORTA=144; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 9.
PORTA=128; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 8.
PORTA=248; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 7.
PORTA=130; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 6.
PORTA=146; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 5.
PORTA=153; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 4.
PORTA=179; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 3.
PORTA=164; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 2.
PORTA=249; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 1.
PORTA=192; ditulis dalam decimal yang berarti seven segmen akan membentuk angka 0.