Labsheet Praktikum Mikrokontroller 5 Segmen Seven Ok REV 6 Maret 2019
Labsheet Praktikum Mikrokontroller 5 Segmen Seven Ok REV 6 Maret 2019
A. Teori Singkat
Seven segment adalah sejumlah lampu LED sebanyak 7 buah yang disusun dengan
susunan tertentu, sehingga jika dinyalakan akan membentuk sebuah karakter angka yang
diinginkan. Penyusunan lampu LED ini disusun dengan cara menyambung pada semua kutub
anodanya yang sering disebut dengan common anoda atau dengan cara menyambung pada
semua kutub katodanya atau sering disebut common katoda.
Penampil seven segment ini sangat mudah dan praktis karena daya yang digunakan
relative kecil dan mudah dalam pemrogramannya. Sebagai penampil seven segment masih
mempunyai kekurangan karena hanya bisa menampilkan bentuk angka saja, walaupun bisa
menampilkan karakter huruf tetapi sangat tidak sempurna. Gambar dibawah ini adalah
penampil seven segment
Penyalaan seven segment sama halnya dengan lampu LED yaitu dengan
mengeluarkan data pada port. Untuk menyalakan seven segment, port pada mikrokontroler
diprogram sebagai keluaran. Susunan LED pada seven segment dapat dilihat pada gambar
dibawah ini:
Susunan LED tersebut, jika dinyalakan pada segment tertentu akan membentuk
sebuah karakter angka ataupun huruf. Ada dua macam penyambungan seven segment yaitu:
commond anode dan common cathode. Penyambungan common anode ditandai oleh
disambungnya pin LED positip menjadi satu dengan VCC. Seven segment common anode
akan menyala jika pada pin a, b, c, d, e, f, g dan p dihubungkan ground atau logika rendah.
Dalam membentuk tampilan karakter atau angka yang diinginkan dapat dilihat pada tabel
dibawah ini:
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/05 Revisi : 02 Senin 010218 Hal. 2 dari 5 hal.
Sem.: Genap Seven Segmen 2 x 50 menit
Penyalaan seven segment dapat dilakukan dengan dua cara yaitu: penyalaan statik dan
dinamik. Penyalaan statik adalah penyalaan yang terus menerus dan biasanya digunakan
untuk menyalaan penampil seven segment tunggal, artinya bahwa tiap pin seven segment
akan dihubungkan dengan pin pada mikrokontroler. Cara ini tidak effektif karena
menggunakan jumlah pin mikrokontroler yang banyak. Apalagi jika seven segment yang
dipasang lebih dari satu.
Penyalaan dimanik adalah penyalaan yang bergantian dengan waktu yang sangat
cepat. Pergantian ini dilakukan dalam waktu milidetik, sehingga mata manusia tidak bisa
mengikutinya. Karena pergantian yang cepat, sehingga seolah-olah penyalaannya bersifat
statik. Metode penyalaan seperti ini sering disebut penyalaan scanning. Penyalaan seperti ini
sangat effektif karena tidak menggunakan jumlah pin mikrokontroler yang banyak. Gambar
rangkaian seven segment dapat dilihat pada gambar dibawah ini:
Rangkaian tersebut diatas, seven segment dihubungkan dengan dua buah port yaitu
PD dan PB. PD berfungi sebagai port data dimana data-data akan dikirimkan dan PB
berfungsi sebagai pemilih seven segment mana yang akan dinyalakan. Misalnya jika akan
menampilkan karakter angka 1, 2, 3, 4, maka datanya adalah sebagai berikut:
Data tersebut dikeluarkan melalui PD, dan selanjutnya adalah menentukan data PB. Data
pemilih seven segment dapat dilihat pada tabel dibawah:
B. Rangkaian
Rangkaian 1
C. Program
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/05 Revisi : 02 Senin 010218 Hal. 4 dari 5 hal.
Sem.: Genap Seven Segmen 2 x 50 menit
Program 1
#include <mega16.h>
void main(void)
{
DDRC = 0xFF;
PORTC = 0x66;
}
Program 2
#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRC = 0xFF;
PORTC = 0x00;
while(1)
{
PORTC = 0x3F; //angka 0
delay_ms(200);
PORTC = 0x06; //angka 1
delay_ms(200);
PORTC = 0x5B; //angka 2
delay_ms(200);
PORTC = 0x4F; //angka 3
delay_ms(200);
PORTC = 0x66; //angka 4
delay_ms(200);
PORTC = 0x6D; //angka 5
delay_ms(200);
PORTC = 0x7D; //angka 6
delay_ms(200);
PORTC = 0x07; //angka 7
delay_ms(200);
PORTC = 0x7F; //angka 8
delay_ms(200);
PORTC = 0x6F; //angka 9
delay_ms(200);
};
}
Program 3
#include <mega16.h>
#include <delay.h>
char digit[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char i;
void main(void)
{
DDRC = 0xFF;
PORTC = digit[0];
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/05 Revisi : 02 Senin 010218 Hal. 5 dari 5 hal.
Sem.: Genap Seven Segmen 2 x 50 menit
while(1)
{
if(i==10)
{
i=0;
}
else
i++;
delay_ms(500);
PORTC = digit[i];
};
}
Program 4
#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRA = 0xFF;
PORTA = 0x00;
DDRC = 0xFF;
PORTC = 0x00;
while(1)
{
PORTA = 0x06; //angka 1
PORTC = 0xFE; //pemilih seven segmen 1
delay_ms(10);
D. Tugas
1. Gambarkan rangkaian mikrokontroller seperti pada gambar rangkaian 1 dan 2, beri nama
file untuk rangkaian 1 menjadi NIM_ANDA_51 dan rangkaian 2 menjadi
NIM_ANDA_52
2. Tulislah program pada Program1 s.d program2 untuk gambar rangkaian mikrokontroller
ATMEGA16 dengan CVAVR
3. Lakukan konversi menjadi file dengan berextensi .c menjadi berextensi .COF dan .HEX
yang siap dimasukan ke dalam mikrokontroller
4. Masukan file yang berextensi COF atau HEX ke dalam mikrokontroller ATMEGA16
rangkaian 1
5. Buatlah program untuk rangkaian 2 supaya seven segmen dapat menampilkan angka
0000 s.d. 9999
6. Buatlah jam dengan tampilan 00:00:00, dimana perubahannya angkanya di sebabkan
oleh looping programnya. Penggunaan port-nya bebas.