Antarmuka Seven Segment menggunakan Metode Scanning
Antarmuka Seven Segment menggunakan Metode Scanning - Seven
segmen (7 segmen) adalah komponen elektronika yang merepresentasikan angka
numerik. 7 segmen sebenarnya adalah led
yang disusun sedemikian rupa membentuk angka dasar 8, yang bisa diatur
segmennya sehingga dapat menampilkan digit 0 sampai 9. Seven segment terdapat 2
jenis, yaitu common anoda dan common katoda. Saat ini orang banyak menggunakan
program 7segmen menggunakan metode scanning karena dapat menghemat penggunaan
port dan sumber daya pada mikrokontroller. Sehingga mikrokontroller tidak
dibebani dengan arus berlebih.
![]() |
| skematik ekuivalent seven segment |
Skematik Program
![]() |
| Skematik rangkaian yang terhubung dengan Mikrokontroller |
Pada skematik proteus diatas 7
segment yang digunakan adalah 7 segment common catoda (cc) dan sebuah
transistor NPN sebagai driver. artinya untuk menyalakan setiap segmen maka
basis transistor yang terhubung ke PORTB.0, PORTB.1, dan PORTB.2 harus diberi
logika high. Setelah itu tinggal mengatur segmen mana yang akan dinyalakan
sehingga dapat merepresentasikan angka. Setiap digit Seven Segment terhubung
pada PORTC. Baca juga : Pemograman LED menggunakan AVR ATmega
Tabel kebenaran
![]() |
| tabel kebenaran common catode |
Tabel dibawah adalah tabel untuk
common chatode, bagi yang menggunakan common anode atau common catode dengan konfigurasi yang berbeda silahkan disesuaikan pada listing program dengan mengubah nilainya.
Listing program
Mikroontroller yang digunakan adalah Atmel AVR ATmega 16 dan Software yang digunakan adalah
AVR studio 5. bisa juga menggunakan Codevision AVR. Listing programnya adalah sebagai berikut :
Program Scanning biasa
#include //
Header Standard AVR
#define F_CPU 12000000UL // Set clock 12Mhz
#include h // Fungsi delay
void main (void) // Program
Utama
{
DDRB=0xff; // Set
PORTB sebagai OUTPUT
DDRC=0xff; // Set
PORTC sebagai OUTPUT
while (1)//
Prgram berulangan terus menerus
{
PORTB=0x01; // Set PINB.0 = 1, Mengaktifkan
Segmen Satuan
PORTC=0X4F; // Set PORTC = 0x4f, Menampilkan
angka 3
_delay_ms(1); // Tunda 1 Milidetik
PORTB=0x00; // Mematikan semua segmen
PORTB=0x02; // Set PINB.1 = 1, Mengaktifkan
Segmen Puluhan
PORTC=0X5b; // Set PORTC = 0x5b, Menampilkan
angka 2
_delay_ms(1); // Tunda 1 Milidetik
PORTB=0x00; // Mematikan semua segmen
PORTB=0x04; // Set PINB.1 = 1, Mengaktifkan
Segmen Ratusan
PORTC=0X508; // Set PORTC = 0x508,
Menampilkan angka 1
_delay_ms(1); // Tunda 1 Milidetik
PORTB=0x00; // Mematikan semua segmen
}
}
Pada listing Program diatas Kita
akan memprogram 3 digit seven segment sehingga dapat menampilkan angka 123.
Logika program ini sederhana, hanya dengan menyalakan Segmen satu persatu namun
dengan input digit yang berbeda yaitu angka 1,2 dan 3. Proses menyalakan
segmen satu persatu berlangsing sangat
cepat (hanya 1 Milidetik). Mata manusia tidak dapat menagkap perubahan seven
segmen yang begitu cepat.
Program Scanning Dengan formula
#include //
Header Standard AVR
#define F_CPU 12000000UL // Set clock 12Mhz
#include h // Fungsi delay
unsigned char angka[0x3f,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f] // Variabel array untuk //
angka 0 sampai 9
void main (void) // Program
Utama
{
DDRB=0xff; // Set
PORTB sebagai OUTPUT
DDRC=0xff; // Set
PORTC sebagai OUTPUT
char a; // membuat Variabel a dengan tipe data Char
int nilai; // membuat Variabel nilai dengan tipe data integer
nilai=123;
while (1)// Program berulangan terus
menerus
{
for (a=0; a<6 span="" style="color: maroon;"> 6>a++) //
Perulangan 6 kali
{
PORTC=angka[nilai%10]; // Formula Ambil data Satuan (menampilkan Satuan)
PORTB=0x01; // Mengaktifkan
digit satuan
delay_ms(1); // Tunda 1
Milidetik
PORTB=0x00; // matikan Segmen
PORTC=angka[nilai%10]; // Formula Ambil data
Puluhan (menampilkan Puluhan)
PORTB=0x02; // Mengaktifkan
digit puluhan
delay_ms(1); // Tunda 1
Milidetik
PORTB=0x00; // matikan Segmen
PORTC=angka[nilai%10]; // Formula
Ambil data Ratusan (menampilkan Ratusan)
PORTB=0x04; // Mengaktifkan
digit ratusan
delay_ms(1); // Tunda 1
Milidetik
PORTB=0x00; // matikan Segmen
}
}
}
Program diatas lebih mudah dari
program pertama karena untuk mengubah tampilan
segment hanya dengan mengubah variabel “Nilai”. Pada Program diatas
Nilai di set pada angka 123, sehingga segmen akan menampilkan angka 123. Namun
jika nilai diganti angka 400 misalkan, maka digit seven segment akan langsung
menyesuaikan.
Penutup
Untuk dapat memprogram sebuah
mikrokontroller diperlukan pengetahuan dasar tentang karakteristik komponen
elektronika dan dasar pemograman. 2 hal ini adalah “item Wajib” bagi seorang programmer
untuk merancang sebuah sistem mikrokontroller.
Selain itu latihan terus menerus juga sangat penting untuk meningkatkan
logika program kita. Ingat ! Pemograman itu gampang, Logikanya yang susah !.
Dengan banyak latihan maka skill logika program kita akan semakin terasah.
Semoga bermanfaat !




