Anda di halaman 1dari 84

BAB IV

Percobaan III
Display Karakter LCD HD44780 dan Seven Segment
4.1 Tujuan Percobaan
1. Menetahui cara mengatur input dan output pada suatu mikroprosesor
dengan menggunakan software Code Vision AVR.
2. Memahami prinsip dan cara kerja dari Seven Segment.
3. Mengerti dan memahami cara dalam menampilkan angka dan huruf pada
Seven Segment.
4. Mengerti dan memahami langkah langkah penggunaan dan cara
mengakses LCD karakter HD44780.
5. Mengerti dan memahami cara menampilkan data, huruf, angka, dan
simbol pada karakter LCD HD44780.

4.2 Data Percobaan


4.2.1

Percobaan 1 : Tampilan Angka Pada Seven Segment

Gambar 4.1 Data Percobaan Tampilan Angka Pada Seven Segment Variasi Percobaan 1 4

4.2.2

Percobaan 2 : Tampilan Huruf Pada Seven Segment

Gambar 4.2 Data Percobaan Tampilan Huruf Pada Seven Segment Variasi Percobaan 1 4

4.2.3

Percobaan 3 : Tampilan Karakter Alphanumerik Pada LCD

Gambar 4.3 Data Percobaan Tampilan Karakter Alphanumerik Pada LCD

4.3 Analisa dan Pembahasan


4.3.1

Percobaan 1 : Tampilan Angka Pada Seven Segment


Pada percobaan ini, Seven Segment yang digunakan berjenis common

anoda. Dimana pada jenis ini, seluruh anoda dari LED dalam Seven Segment
disatukan secara paralel dan seluruhnya dihubungkan ke VCC. Kemudian LED
dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena
dihubungkan pada VCC, maka common anoda ini berada pada kondisi aktif Low
(LED menyala bila diberikan logika 0).
Sehingga, pada percobaan kali ini,

seven segmen akan menampilkan

karakter angka dengan memberi logika 0 pada Segment Segmentnya.


Pengkodean yang dilakukan menggunakan bilangan hexadesimal.Pada
pengkodean output Seven Segment, pertama kali dilakukan penentuan berapa
jumlah seven segmen yang akan menyala dari 4 tampilan Seven Segment yang
tersedia. Pengkodean ini dilakukan di PORTJ pada software CVAVR.
Untuk variasi karakter angka yang digunakan pada percobaan ini adalah
dari huruf 0 sampai 9. Segment akan aktif bila diberi logika 0 (aktif Low).
Dibawah ini merupakan contoh tabel konversi angka hexadesimal.
Tabel 4.1 Tabel Konversi Bilangan Hexadesimal Percobaan Angka

Segment

Karakter
Angka

h g f e d c b a

1 1 0 0 0 0 0 0

C0

1 1 1 1 1 0 0 1

F9

1 0 1 0 0 1 0 0

A4

1 0 1 1 0 0 0 0

B0

1 0 0 1 1 0 0 1

99

1 0 0 1 0 0 1 0

92

1 0 0 0 0 0 1 0

82

1 1 1 1 1 0 0 0

F8

0 0 0 0 0 0 0 0

00

0 0 0 1 0 0 0 0

10

Hexadesimal

Contoh :
4 Seven Segment menyala.

Gambar 4.4 Tampilan 4 Seven Segment Menyala

Untuk membuat 1 Seven Segment yang menyala dan menampilkan karater


angka, maka perlu diberikan logika 1. Sehingga, bila diinginkan 4 Seven Segment
menyala, maka perintah yang dapat ditulis dalam bilangan biner 8 bit sebagai
berikut :

11110000
Pemberian logika 1 untuk menyalakan 4 Seven Segment dilakukan pada
LSB (Least Significant Bit) seperti pada contoh diatas. Tetapi, perintah yang
dimasukkan pada CVAVR berupa bilangan hexadesimal, maka dari itu kita perlu
mengkonversikan perintah dalam bilangan biner diatas ke bilangan hexadesimal.
Pengkonversiannya sebagai berikut :

1 1 1 1

0 0 0 0

1x23 1x22 1x21 1x20 0x23 0x22 0x21 0x20


8 + 4 + 2 +1
Dalam bilangan hexa :

0 + 0 + 0 + 0

= 15

=0

=F

=0

Sehingga, dalam hexadesimal 11110000 dapat ditulis menjadi F0.

Hampir sama dengan pemberian perintah menyalakan 4 Seven Segment


seperti diatas, pemberian perintah untuk menampilkan output berupa angka pada
setiap Seven Segmentnya juga menggunakan bilangan hexadesimal. Hanya saja,
untuk mengaktifkan LED dari setiap Segment dibutuhkan logika 0 (aktif Low).
Contoh :
Menampilkan angka 0 pada sevent Segment.
Gambar 4.5 Tampilan Angka 0

Pada Seven Segment

Untuk
gambar

menampilkan angka 0 seperti

diatas,

maka

Segment a, b, c, d, e, dan f

menyala. Sehingga pada

Segment a, b, c, d, e, dan f

diberikan logika 0 untuk

mengaktifkan LEDnya.

Perintah yang dapat ditulis dalam bilangan biner 8 bit sebagai berikut :
Segment : h g

f e d c

b a

11000000
Tetapi, perintah yang dimasukkan pada CVAVR berupa bilangan
hexadesimal, maka dari itu kita perlu mengkonversikan perintah dalam bilangan
biner diatas ke bilangan hexadesimal.
Pengkonversiannya sebagai berikut:

1 1 0 0 0 0 0 0
1x23 1x22 0x21 0x20 0x23 0x22 0x21 0x20
8 + 4 + 0 + 0

0 + 0 + 0 + 0

= 12

=0

=C

=0

Dalam bilangan hexa :

Sehingga, dalam hexadesimal 11000000 dapat ditulis menjadi C0.

4.3.1.1 Variasi Percobaan 1 (Semua Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>

#include <delay.h>
//
void main(void) {
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1) {
PORTJ=0xF0;
PORTA=0xC0;
delay_ms(1000);
PORTA=0xF9;
delay_ms(1000);
PORTA=0xA4;
delay_ms(1000);
PORTA=0xB0;
delay_ms(1000);
PORTA=0x99;
delay_ms(1000);
PORTA=0x92;
delay_ms(1000);
PORTA=0x82;
delay_ms(1000);
PORTA=0xF8;
delay_ms(1000);
PORTA=0x80;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
};
}

B. Flowchart
Gambar 4.6
Flowchart
Percobaan 1 : Variasi
Percobaan 1 (Semua
Seven Segment
Menyala)

C. Analisa
Output

INISIASI
PORTJ=0x40
START

B
A

DEKLARASI VARIABEL GLOBAL TAMPILKAN ANGKA 6 PADA 7SEGMENT


p
TAMPILKAN ANGKA 1 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 7 PADA 7SEGMENT

TAMPILKAN ANGKA 2 PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN ANGKA 8 PADA 7SEGMENT

TAMPILKAN ANGKA 3 PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN ANGKA 4 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 5 PADA 7SEGMENT

DELAY 1 SECOND

Pada percobaan ini terdapat empat tampilan Seven Segment, dengan


output 4 Seven Segment

menyala. Untuk mengatur output pada Seven

Segment, maka dimasukkan perintah sebagai berikut :

while (1) //fungsi while 1 (berisi perintah (kode) yang akan


dieksekusi saat program dijalankan )
{
PORTJ=0xF0;//mengatur

keluaran

dari

PORTJ

yang

jika

diterjemahkan kedalam biner F0 bernilai 11110000


//

mengatur

supaya

keempat

tampilan

Seven

Segment dapat menyala semua.

Listing Program di atas merupakan bentuk fungsi menggunakan


while dengan mengatur PORTJ sehingga seluruh Seven Segment mampu
menyala sekaligus.

Gambar 4.7 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xC0;//mengat
ur keluaran dari PORTA yang jika diterjemahkan kedalam bahasa
biner, hexa C0 bernilai 11000000 // memunculkan
angka 0 pada output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 0 dengan lama tampilan 1
detik.

Gambar 4.8 Tampilan Angka 0 pada Semua Seven Segment yang Menyala

PORTA=0xF9;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

jika

hexa

F9

bernilai 11111001 // memunculkan angka 1 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 1 dengan lama
tampilan 1 detik.

Gambar 4.9 Tampilan Angka 1 pada Semua Seven Segment yang Menyala

PORTA=0xA4;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
A4

bernilai 10100100 // memunculkan angka 2 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 2 dengan lama
tampilan 1 detik.

Gambar 4.10 Tampilan Angka 2 pada Semua Seven Segment yang Menyala

PORTA=0xB0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
B0

bernilai 10110000 // memunculkan angka 3 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 3 dengan lama
tampilan 1 detik.

Gambar 4.11 Tampilan Angka 3 pada Semua Seven Segment yang Menyala

PORTA=0x99;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
99

bernilai 10011001 // memunculkan angka 4 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 4 dengan lama tampilan
1 detik.

Gambar 4.12 Tampilan Angka 4 pada Semua Seven Segment yang Menyala

PORTA=0x92;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
92

bernilai 10010010 // memunculkan angka 5 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 5 dengan lama
tampilan 1 detik.

Gambar 4.13 Tampilan Angka 5 pada Semua Seven Segment yang Menyala
PORTA=0x82;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

82

bernilai 10000010 // memunculkan angka 6 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 6 dengan lama
tampilan 1 detik.

Gambar 4.14 Tampilan Angka 6 pada Semua Seven Segment yang Menyala

PORTA=0xF8;//mengatur

keluaran

dari

PORTA

yang

jika

diterjemahkan kedalam bahasa biner, hexa F8


bernilai 11111000 // memunculkan angka 7 pada
output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik

Listing Program di atas merupakan pengaturan untuk mengatur


agar Seven Segment yang menyala membentuk angka 7 dengan lama
tampilan 1 detik.

Gambar 4.15 Tampilan Angka 7 pada Semua Seven Segment yang Menyala
PORTA=0x80;//mengatur

keluaran

dari

PORTA

yang

jika

diterjemahkan kedalam bahasa biner, hexa 80


bernilai 10000000 // memunculkan angka 8 pada
output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 8 dengan lama tampilan 1 detik.

Gambar 4.16 Tampilan Angka 8 pada Semua Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
80

bernilai 10010000 // memunculkan angka 9 pada


output Seven Segment.

delay_ms(1000);//delay 1 second // output yang ditampilkan


pada Seven Segment memiliki durasi selama 1
detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 9 dengan lama tampilan 1 detik.
Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari Listing
Program.

Gambar 4.17 Tampilan Angka 9 pada Semua Seven Segment yang Menyala

4.3.1.2 Variasi Percobaan 2 (3 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void){
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1)
{
PORTJ=0xB0;
PORTA=0xC0;
delay_ms(1000);
PORTA=0xF9;
delay_ms(1000);

PORTA=0xA4;
delay_ms(1000);
PORTA=0xB0;
delay_ms(1000);
PORTA=0x99;
delay_ms(1000);
PORTA=0x92;
delay_ms(1000);
PORTA=0x82;
delay_ms(1000);
PORTA=0xF8;
delay_ms(1000);
PORTA=0x80;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
};
}

B. Flowchart

INISIASI
PORTJ=0xB0
START

Gambar 4.18
Flowchart
Percobaan 1 : Variasi

B
A

Percobaan 2 (3
Seven Segment
Menyala)

DEKLARASI VARIABEL GLOBAL TAMPILKAN ANGKA 6 PADA 7SEGMENT


p

C.
Analisa

TAMPILKAN ANGKA 1 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 7 PADA 7SEGMENT

TAMPILKAN ANGKA 2 PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN ANGKA 8 PADA 7SEGMENT

TAMPILKAN ANGKA 3 PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN ANGKA 4 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 5 PADA 7SEGMENT

DELAY 1 SECOND

Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 3 Seven Segment

menyala. Untuk mengatur output pada Seven

Segment, maka dimasukkan perintah sebagai berikut :

while (1)//fungsi while 1 (berisi perintah (kode) yang akan


dieksekusi saat program dijalankan )
{
PORTJ=0xB0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTJ

bahasa

yang

biner,

jika

hexa

B0

bernilai 10110000 // mengatur supaya tiga dari


keempat tampilan Seven Segment dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga tiga dari empat Seven Segment mampu
menyala sekaligus.

Gambar 4.19 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xC0;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

11000000

//

dari

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

C0
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 0 dengan lama tampilan 1 detik.

Gambar 4.20 Tampilan Angka 0 pada Tiga Seven Segment yang Menyala

PORTA=0xF9;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

11111001

//

dari

PORTA

bahasa

yang

biner,

memunculkan

angka

jika

hexa
1

F9
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 1 dengan lama tampilan 1 detik.

Gambar 4.21 Tampilan Angka 1 pada Tiga Seven Segment yang Menyala

PORTA=0xA4;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

jika

hexa

A4

bernilai 10100100 // memunculkan angka 2 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 2 dengan lama tampilan 1 detik.

Gambar 4.22 Tampilan Angka 2 pada Tiga Seven Segment yang Menyala
PORTA=0xB0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
B0

bernilai 10110000 // memunculkan angka 3 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 3 dengan lama tampilan 1 detik.

Gambar 4.23 Tampilan Angka 3 pada Tiga Seven Segment yang Menyala

PORTA=0x99;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

99

bernilai 10011001 // memunculkan angka 4 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 4 dengan lama tampilan 1 detik.

Gambar 4.24 Tampilan Angka 4 pada Tiga Seven Segment yang Menyala

PORTA=0x92;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

92

bernilai 10010010 // memunculkan angka 5 pada


output Seven Segment.

delay_ms(1000);//delay 1 second // output yang ditampilkan


pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 5 dengan lama tampilan 1 detik.

Gambar 4.25 Tampilan Angka 5 pada Tiga Seven Segment yang Menyala

PORTA=0x82;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
82

bernilai 10000010 // memunculkan angka 6 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 6 dengan lama tampilan 1
detik.

Gambar 4.26 Tampilan Angka 6 pada Tiga Seven Segment yang Menyala

PORTA=0xF8;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
F8

bernilai 11111000 // memunculkan angka 7 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 7 dengan lama tampilan 1
detik.

Gambar 4.27 Tampilan Angka 7 pada Tiga Seven Segment yang Menyala

PORTA=0x80;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

10000000

//

dari

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

80
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 8 dengan lama tampilan 1
detik.

Gambar 4.28 Tampilan Angka 8 pada Tiga Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan

kedalam

10010000

memunculkan

//

bahasa

dari

PORTA

biner,

angka

hexa
pada

yang
80

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 9 dengan lama tampilan 1 detik.
Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari Listing
Program.

Gambar 4.29 Tampilan Angka 9 pada Tiga Seven Segment yang Menyala

4.3.1.3 Variasi Percobaan 3 (2 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void){
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//

while (1)
{
PORTJ=0x30;
PORTA=0xC0;
delay_ms(1000);
PORTA=0xF9;
delay_ms(1000);
PORTA=0xA4;
delay_ms(1000);
PORTA=0xB0;
delay_ms(1000);
PORTA=0x99;
delay_ms(1000);
PORTA=0x92;
delay_ms(1000);
PORTA=0x82;
delay_ms(1000);
PORTA=0xF8;
delay_ms(1000);
PORTA=0x80;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
};
}

B. Flowchart

INISIASI
PORTJ=0x30
START

Gambar 4.30
Flowchart
Percobaan 1 : Variasi

B
A

Percobaan 3 (2
Seven Segment
Menyala)

DEKLARASI VARIABEL GLOBAL TAMPILKAN ANGKA 6 PADA 7SEGMENT


p
TAMPILKAN ANGKA 1 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 7 PADA 7SEGMENT

TAMPILKAN ANGKA 2 PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN ANGKA 8 PADA 7SEGMENT

TAMPILKAN ANGKA 3 PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

TAMPILKAN ANGKA 4 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 5 PADA 7SEGMENT

DELAY 1 SECOND

C. Analisan Output

END

Pada percobaan ini terdapat empat tampilan Seven Segment, dengan


output 2 Seven Segment menyala. Untuk mengatur output pada Seven Segment,
maka dimasukkan perintah sebagai berikut :
while (1)//fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0x30;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

00110000

//

dari

PORTJ

yang

bahasa

biner,

hexa

mengatur

supaya

dua

jika
30
dari

keempat tampilan Seven Segment dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga dua dari empat Seven Segment mampu
menyala sekaligus.

Gambar 4.31 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xC0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
C0

bernilai

11000000

//

memunculkan

angka

pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 0 dengan lama tampilan 1
detik.

Gambar 4.32 Tampilan Angka 0 pada Dua Seven Segment yang Menyala

PORTA=0xF9;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

11111001

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

F9
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 1 dengan lama tampilan 1
detik.

Gambar 4.33 Tampilan Angka 1 pada Dua Seven Segment yang Menyala

PORTA=0xA4;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10100100

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

A4
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 2 dengan lama tampilan 1
detik.

Gambar 4.34 Tampilan Angka 2 pada Dua Seven Segment yang Menyala

PORTA=0xB0;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10110000

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

B0
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 3 dengan lama tampilan 1
detik.

Gambar 4.35 Tampilan Angka 3 pada Dua Seven Segment yang Menyala

PORTA=0x99;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10011001

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

99
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 4 dengan lama tampilan 1
detik.

Gambar 4.36 Tampilan Angka 4 pada Dua Seven Segment yang Menyala

PORTA=0x92;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

10010010

//

output Seven Segment.

dari

PORTA

bahasa

yang

biner,

memunculkan

angka

jika

hexa
5

92
pada

delay_ms(1000);//delay 1 second // output yang ditampilkan


pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 5 dengan lama tampilan 1
detik.

Gambar 4.37 Tampilan Angka 5 pada Dua Seven Segment yang Menyala

PORTA=0x82;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10000010

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

82
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 6 dengan lama tampilan 1
detik.

Gambar 4.38 Tampilan Angka 6 pada Dua Seven Segment yang Menyala

PORTA=0xF8;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

11111000

//

dari

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

F8
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 7 dengan lama tampilan 1
detik.

Gambar 4.39 Tampilan Angka 7 pada Dua Seven Segment yang Menyala

PORTA=0x80;//mengatur

keluaran

diterjemahkan
bernilai

kedalam

10000000

//

dari

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

80
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 8 dengan lama tampilan 1
detik.

Gambar 4.40 Tampilan Angka 8 pada Dua Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan

kedalam

10010000

memunculkan

//

bahasa

dari

PORTA

biner,

angka

hexa
pada

yang
80

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 9 dengan lama tampilan 1
detik. Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari
Listing Program.

Gambar 4.41 Tampilan Angka 9 pada Dua Seven Segment yang Menyala

4.3.1.4 Variasi Percobaan 4 (1 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void){
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1)
{
PORTJ=0x20;

PORTA=0xC0;
delay_ms(1000);
PORTA=0xF9;
delay_ms(1000);
PORTA=0xA4;
delay_ms(1000);
PORTA=0xB0;
delay_ms(1000);
PORTA=0x99;
delay_ms(1000);
PORTA=0x92;
delay_ms(1000);
PORTA=0x82;
delay_ms(1000);
PORTA=0xF8;
delay_ms(1000);
PORTA=0x80;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
};
}

B. Flowchart

INISIASI
PORTJ=0x20
START

B
A

DEKLARASI VARIABEL GLOBAL TAMPILKAN ANGKA 6 PADA 7SEGMENT


p
TAMPILKAN ANGKA 1 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 7 PADA 7SEGMENT

TAMPILKAN ANGKA 2 PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN ANGKA 8 PADA 7SEGMENT

TAMPILKAN ANGKA 3 PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN ANGKA 4 PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN ANGKA 5 PADA 7SEGMENT

DELAY 1 SECOND

Gambar 4.42 Flowchart Percobaan 1 : Variasi Percobaan 4 (1 Seven Segment Menyala)

C. Analisa Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 1 Seven Segment

menyala. Untuk mengatur output pada Seven

Segment, maka dimasukkan perintah sebagai berikut :


while (1)//fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0x20;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTJ

bahasa

yang

biner,

jika

hexa

20

bernilai 00100000 // mengatur supaya satu dari


keempat tampilan Seven Segment dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga satu dari empat Seven Segment mampu
menyala sekaligus.

Gambar 4.43 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xC0;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

11000000

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

C0
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 0 dengan lama tampilan 1
detik.

Gambar 4.44 Tampilan Angka 0 pada Satu Seven Segment yang Menyala

PORTA=0xF9;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

11111001

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

angka

F9
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada
detik.

Seven

Segment

memiliki

durasi

selama

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 1 dengan lama tampilan 1
detik.

Gambar 4.45 Tampilan Angka 1 pada Satu Seven Segment yang Menyala

PORTA=0xA4;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

A4

bernilai 10100100 // memunculkan angka 2 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 2 dengan lama tampilan 1
detik.

Gambar 4.46 Tampilan Angka 2 pada Satu Seven Segment yang Menyala

PORTA=0xB0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
B0

bernilai 10110000 // memunculkan angka 3 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 3 dengan lama tampilan 1
detik.

Gambar 4.47 Tampilan Angka 3 pada Satu Seven Segment yang Menyala

PORTA=0x99;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10011001

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

angka

99
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 4 dengan lama tampilan 1
detik.

Gambar 4.48 Tampilan Angka 4 pada Satu Seven Segment yang Menyala

PORTA=0x92;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10010010

PORTA

bahasa

//

yang

biner,

memunculkan

jika

hexa

angka

92
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1
detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk angka 5 dengan lama tampilan 1 detik.

Gambar 4.49 Tampilan Angka 5 pada Satu Seven Segment yang Menyala

PORTA=0x82;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

82

bernilai 10000010 // memunculkan angka 6 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 6 dengan lama tampilan 1
detik.

Gambar 4.50 Tampilan Angka 6 pada Satu Seven Segment yang Menyala

PORTA=0xF8;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

F8

bernilai 11111000 // memunculkan angka 7 pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 7 dengan lama tampilan 1
detik.

Gambar 4.51 Tampilan Angka 7 pada Satu Seven Segment yang Menyala

PORTA=0x80;//mengatur
diterjemahkan
bernilai

keluaran
kedalam

10000000

//

dari
bahasa

PORTA

yang

biner,

memunculkan

angka

jika

hexa
8

80
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 8 dengan lama tampilan 1
detik.

Gambar 4.52 Tampilan Angka 8 pada Satu Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan

kedalam

10010000

memunculkan

//

bahasa

dari
biner,

angka

PORTA
hexa
pada

yang
80

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk angka 9 dengan lama tampilan 1
detik. Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari
Listing Program.

Gambar 4.53 Tampilan Angka 9 pada Satu Seven Segment yang Menyala.

4.3.2

Percobaan 2 : Tampilan Huruf Pada Seven Segment


Pada percobaan ini, Seven Segment yang digunakan berjenis common

anoda. Dimana pada jenis ini, seluruh anoda dari LED dalam Seven Segment

disatukan secara paralel dan seluruhnya dihubungkan ke VCC. Kemudian LED


dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena
dihubungkan pada VCC, maka common anoda ini berada pada kondisi aktif Low
(LED menyala bila diberikan logika 0).
Sehingga, pada percobaan kali ini,

seven segmen akan menampilkan

karakter huruf dengan memberi logika 0 pada Segment Segmentnya.


Pengkodean yang dilakukan menggunakan bilangan hexadesimal.Pada
pengkodean output Seven Segment, pertama kali dilakukan penentuan berapa
jumlah seven segmen yang akan menyala dari 4 tampilan Seven Segment yang
tersedia. Pengkodean ini dilakukan di PORTA pada software CVAVR.
Untuk variasi karakter huruf yang digunakan pada percobaan ini adalah
dari huruf a sampai h. Segment akan aktif bila diberi logika 0 (aktif Low).
Dibawah ini merupakan contoh tabel konversi angka hexadesimal.
Tabel 4.2 Tabel Konversi Bilangan Hexadesimal Percobaan Huruf

Segment

Karakter
Huruf

h g f e d c b a

1 0 1 0 0 0 0 0

A0

1 0 0 0 0 0 1 1

83

1 1 0 0 0 1 1 0

C6

1 0 1 0 0 0 0 1

A1

1 0 0 0 0 1 0 0

84

1 0 0 0 1 1 1 0

83

1 0 0 1 0 0 0 0

90

1 0 0 0 1 0 1 1

8B

Contoh :
4 Seven Segment menyala.

Hexadesimal

Gambar 4.54 Tampilan 4 Seven Segment Menyala

Untuk membuat 1 Seven Segment yang menyala dan menampilkan karater


huruf, maka perlu diberikan logika 1. Sehingga, bila diinginkan 4 Seven Segment
menyala, maka perintah yang dapat ditulis dalam bilangan biner 8 bit sebagai
berikut :

11110000
Pemberian logika 1 untuk menyalakan 4 Seven Segment dilakukan pada
LSB (Least Significant Bit) seperti pada contoh diatas. Tetapi, perintah yang
dimasukkan pada CVAVR berupa bilangan hexadesimal, maka dari itu kita perlu
mengkonversikan perintah dalam bilangan biner diatas ke bilangan hexadesimal.
Pengkonversiannya sebagai berikut :

1 1 1 1

0 0 0 0

1x23 1x22 1x21 1x20 0x23 0x22 0x21 0x20

Dalam bilangan hexa :

8 + 4 + 2 +1

0 + 0 + 0 + 0

= 15

=0

=F

=0

Sehingga, dalam hexadesimal 11110000 dapat ditulis menjadi F0.


Hampir sama dengan pemberian perintah menyalakan 4 Seven Segment
seperti diatas, pemberian perintah untuk menampilkan output berupa huruf pada
setiap Seven Segmentnya juga menggunakan bilangan hexadesimal. Hanya saja,
untuk mengaktifkan LED dari setiap Segment dibutuhkan logika 0 (aktif Low).
Contoh :
Menampilkan huruf a pada sevent Segment.

Gambar 4.55 Tampilan Huruf a Pada Seven Segment

Untuk menampilkan huruf a seperti gambar diatas, maka Segment a, b, c,


d, dan e, menyala. Sehingga pada Segment a, b, c, d, dan e diberikan logika 0
untuk mengaktifkan LEDnya.
Perintah yang dapat ditulis dalam bilangan biner 8 bit sebagai berikut :
Segment : h g

f e d c

b a

10100000
Tetapi, perintah yang dimasukkan pada CVAVR berupa bilangan
hexadesimal, maka dari itu kita perlu mengkonversikan perintah dalam bilangan
biner diatas ke bilangan hexadesimal.
Pengkonversiannya sebagai berikut :

1 0 1 0 0 0 0 0
1x23 0x22 1x21 0x20 0x23 0x22 0x21 0x20
8 + 0 + 2 + 0

0 + 0 + 0 + 0

= 10

=0

=A

=0

Dalam bilangan hexa :

Sehingga, dalam hexadesimal 10100000 dapat ditulis menjadi A0.

4.3.2.1 Variasi Percobaan 1 (Semua Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void)
{
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1)
{
PORTJ=0xF0;
PORTA=0xA0;
delay_ms(1000);
PORTA=0x83;
delay_ms(1000);
PORTA=0xC6;
delay_ms(1000);
PORTA=0xA1;
delay_ms(1000);
PORTA=0x84;
delay_ms(1000);
PORTA=0x8E;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
PORTA=0x8B;
delay_ms(1000);
};
}

B.

Flowchart
START
B

INISIASI
PORTJ=0x F0

DEKLARASI VARIABEL GLOBAL TAMPILKAN HURUF f PADA 7SEGMENT

TAMPILKAN HURUF a PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF g PADA 7SEGMENT

TAMPILKAN HURUF b PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN HURUF h PADA 7SEGMENT

TAMPILKAN HURUF c PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN HURUF d PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF e PADA 7SEGMENT

DELAY 1 SECOND

A
Gambar 4.56 Flowchart Percobaan 2 : Variasi Percobaan 1 (Semua Seven Segment Menyala)

C. Analisa Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 4 Seven Segment menyala. Untuk mengatur output pada Seven Segment,
maka dimasukkan perintah sebagai berikut :
while (1)//fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0xF0;//mengatur
diterjemahkan
11110000

//

keluaran
kedalam
mengatur

dari

PORTJ

biner
supaya

yang
F0

keempat

jika

bernilai
tampilan

Seven Segment dapat menyala semua.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga seluruh Seven Segment mampu menyala
sekaligus.

Gambar 4.57 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xA0;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10100000

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

A0
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf a dengan lama tampilan 1
detik.

Gambar 4.58 Tampilan Huruf a pada Semua Seven Segment yang Menyala

PORTA=0x83;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10000011

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

83
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf b dengan lama tampilan 1
detik.

Gambar 4.59 Tampilan Huruf b pada Semua Seven Segment yang Menyala

PORTA=0xC6;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

C6

bernilai 11000110 // memunculkan huruf c pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf c dengan lama tampilan 1

detik.
Gambar 4.60 Tampilan Huruf c pada Semua Seven Segment yang Menyala

PORTA=0xA1;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

A1

bernilai 10100001 // memunculkan huruf d pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

detik.

Segment

memiliki

durasi

selama

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf d dengan lama tampilan 1

detik.
Gambar 4.61 Tampilan Huruf d pada Semua Seven Segment yang Menyala

PORTA=0x84;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

84

bernilai 10000100 // memunculkan huruf e pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf e dengan lama tampilan 1

detik.
Gambar 4.62 Tampilan Huruf e pada Semua Seven Segment yang Menyala

PORTA=0x8E;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
8E

bernilai 10001110 // memunculkan huruf f pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf f dengan lama tampilan 1
detik.

Gambar 4.63 Tampilan Huruf f pada Semua Seven Segment yang Menyala

PORTA=0x90;//mengatur
diterjemahkan
10010000

//

keluaran

kedalam

bahasa

memunculkan

dari

PORTA

biner,

huruf

hexa
pada

yang
90

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf g dengan lama tampilan 1

detik.

Gambar 4.64 Tampilan Huruf g pada Semua Seven Segment yang Menyala

PORTA=0x8B;//mengatur

keluaran

diterjemahkan

kedalam

10001011

memunculkan

//

bahasa

dari

PORTA

biner,

huruf

hexa
pada

yang
8B

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf h dengan lama tampilan 1 detik.
Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari Listing
Program.

Gambar 4.65 Tampilan Huruf h pada Semua Seven Segment yang Menyala

4.3.2.2 Variasi Percobaan 2 (3 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void)
{
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;

//
while (1)
{
PORTJ=0xE0;
PORTA=0xA0;
delay_ms(1000);
PORTA=0x83;
delay_ms(1000);
PORTA=0xC6;
delay_ms(1000);
PORTA=0xA1;
delay_ms(1000);
PORTA=0x84;
delay_ms(1000);
PORTA=0x8E;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
PORTA=0x8B;
delay_ms(1000);
};
}

B. Flowchart
START
B

INISIASI
PORTJ=0x E0

DEKLARASI VARIABEL GLOBAL TAMPILKAN HURUF f PADA 7SEGMENT

TAMPILKAN HURUF a PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF g PADA 7SEGMENT

TAMPILKAN HURUF b PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN HURUF h PADA 7SEGMENT

TAMPILKAN HURUF c PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN HURUF d PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF e PADA 7SEGMENT

DELAY 1 SECOND

A
Gambar 4.66 Flowchart Percobaan 2 : Variasi Percobaan 2 (1 Seven Segment Menyala)

C. Analisa Output

Pada percobaan ini terdapat empat tampilan Seven Segment, dengan


output 3 Seven Segment menyala. Untuk mengatur output pada Seven Segment,
maka dimasukkan perintah sebagai berikut :
while (1)//fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0xE0;//mengatur

keluaran

dari

PORTJ

yang

jika

diterjemahkan kedalam biner F0 bernilai 11100000 //


mengatur supaya tiga dari keempat tampilan Seven
Segment dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga tiga dari empat Seven Segment mampu
menyala sekaligus.

Gambar 4.67 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xA0;//mengatur

keluaran

diterjemahkan

kedalam

dari

PORTA

bahasa

yang

biner,

hexa

jika
A0

bernilai 10100000 // memunculkan huruf a pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf a dengan lama tampilan 1

detik.
Gambar 4.68 Tampilan Huruf a pada Tiga Seven Segment yang Menyala

PORTA=0x83;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

83

bernilai 10000011 // memunculkan huruf b pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf b dengan lama tampilan 1
detik.

Gambar 4.69 Tampilan Huruf b pada Tiga Seven Segment yang Menyala

PORTA=0xC6;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

11000110

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

C6
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf c dengan lama tampilan 1
detik.

Gambar 4.70 Tampilan Huruf c pada Tiga Seven Segment yang Menyala

PORTA=0xA1;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10100001

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

A1
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf d dengan lama tampilan 1
detik.

Gambar 4.71 Tampilan Huruf d pada Tiga Seven Segment yang Menyala

PORTA=0x84;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

84

bernilai 10000100 // memunculkan huruf e pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf e dengan lama tampilan 1
detik.

Gambar 4.72 Tampilan Huruf e pada Tiga Seven Segment yang Menyala

PORTA=0x8E;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10001110

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

8E
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf f dengan lama tampilan 1
detik.

Gambar 4.73 Tampilan Huruf f pada Tiga Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10010000

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

huruf

90
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf g dengan lama tampilan 1
detik.

Gambar 4.74 Tampilan Huruf g pada Tiga Seven Segment yang Menyala

PORTA=0x8B;//mengatur

keluaran

diterjemahkan

kedalam

10001011

memunculkan

//

bahasa

dari
biner,

huruf

PORTA
hexa
pada

yang
8B

jika

bernilai

output

Seven

Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik
};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf h dengan lama tampilan 1
detik. Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari
Listing Program.

Gambar 4.75 Tampilan Huruf h pada Tiga Seven Segment yang Menyala

4.3.2.3 Variasi Percobaan 3 (2 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void)
{
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1)
{
PORTJ=0xA0;
PORTA=0xA0;
delay_ms(1000);
PORTA=0x83;
delay_ms(1000);
PORTA=0xC6;
delay_ms(1000);
PORTA=0xA1;
delay_ms(1000);
PORTA=0x84;
delay_ms(1000);
PORTA=0x8E;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
PORTA=0x8B;
delay_ms(1000);
};
}

B.

Flowchart
START
B

INISIASI
PORTJ=0x A0

DEKLARASI VARIABEL GLOBAL TAMPILKAN HURUF f PADA 7SEGMENT

TAMPILKAN HURUF a PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF g PADA 7SEGMENT

TAMPILKAN HURUF b PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN HURUF h PADA 7SEGMENT

TAMPILKAN HURUF c PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN HURUF d PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF e PADA 7SEGMENT

DELAY 1 SECOND

A
Gambar 4.76 Flowchart Percobaan 2 : Variasi Percobaan 3 (2 Seven Segment Menyala)

C.

Analisa Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan

output 2 Seven Segment menyala. Untuk mengatur output pada Seven Segment,
maka dimasukkan perintah sebagai berikut :
while (1)//fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0xA0;//mengatur
diterjemahkan
10100000

//

keluaran
kedalam
mengatur

dari

PORTJ

biner
supaya

yang

F0

dua

dari

jika

bernilai
keempat

tampilan Seven Segment dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan while


dengan mengatur PORTJ sehingga dua dari empat Seven Segment mampu
menyala sekaligus.

Gambar 4.77 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xA0;//mengatur

keluaran

diterjemahkan
bernilai

dari

kedalam

10100000

//

PORTA

bahasa

yang

biner,

memunculkan

jika

hexa

huruf

A0
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf a dengan lama tampilan 1

detik.
Gambar 4.78 Tampilan Huruf a pada Dua Seven Segment yang Menyala

PORTA=0x83;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10000011

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

83
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf b dengan lama tampilan 1
detik.

Gambar 4.79 Tampilan Huruf b pada Dua Seven Segment yang Menyala

PORTA=0xC6;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

C6

bernilai 11000110 // memunculkan huruf c pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf c dengan lama tampilan 1
detik.

Gambar 4.80 Tampilan Huruf c pada Dua Seven Segment yang Menyala

PORTA=0xA1;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

A1

bernilai 10100001 // memunculkan huruf d pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf d dengan lama tampilan 1
detik.

Gambar 4.81 Tampilan Huruf d pada Dua Seven Segment yang Menyala

PORTA=0x84;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10000100

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

84
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf e dengan lama tampilan 1
detik.

Gambar 4.82 Tampilan Huruf e pada Dua Seven Segment yang Menyala

PORTA=0x8E;//mengatur
diterjemahkan
bernilai

keluaran

dari

kedalam

10001110

//

bahasa

PORTA

yang

biner,

memunculkan

jika

hexa

huruf

8E
pada

output Seven Segment.


delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf f dengan lama tampilan 1
detik.

Gambar 4.83 Tampilan Huruf f pada Dua Seven Segment yang Menyala

PORTA=0x90;//mengatur

keluaran

diterjemahkan

dari

kedalam

PORTA

bahasa

yang

biner,

jika

hexa

90

bernilai 10010000 // memunculkan huruf g pada


output Seven Segment.
delay_ms(1000);//delay 1 second // output yang ditampilkan
pada

Seven

Segment

memiliki

durasi

selama

detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar


Seven Segment yang menyala membentuk huruf g dengan lama tampilan 1
detik.

Gambar 4.84 Tampilan Huruf g pada Dua Seven Segment yang Menyala

PORTA=0x8B;

//mengatur

keluaran

diterjemahkan

kedalam

10001011

memunculkan

//

bahasa

dari
biner,

huruf

PORTA
hexa
pada

yang
8B

jika

bernilai

output

Seven

Segment.
delay_ms(1000); //delay 1 second // output yang ditampilkan
pada Seven Segment memiliki durasi selama 1 detik
};

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf h dengan lama tampilan 1 detik.
Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari Listing
Program.

Gambar 4.85 Tampilan Huruf h pada Dua Seven Segment yang Menyala

4.3.2.4 Variasi Percobaan 4 (1 Seven Segment Menyala)


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
//
void main(void)
{
//
PORTA=0x00;
DDRA=0xFF;
PORTJ=0x00;
DDRJ=0xFF;
//
while (1)
{
PORTJ=0x40;
PORTA=0xA0;
delay_ms(1000);
PORTA=0x83;
delay_ms(1000);
PORTA=0xC6;
delay_ms(1000);
PORTA=0xA1;
delay_ms(1000);
PORTA=0x84;
delay_ms(1000);
PORTA=0x8E;
delay_ms(1000);
PORTA=0x90;
delay_ms(1000);
PORTA=0x8B;
delay_ms(1000);
};
}

B. Flowchart
START
B

INISIASI
PORTJ=0x40

DEKLARASI VARIABEL GLOBAL TAMPILKAN HURUF f PADA 7SEGMENT

TAMPILKAN HURUF a PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF g PADA 7SEGMENT

TAMPILKAN HURUF b PADA 7SEGMENT

DELAY 1 SECOND

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN HURUF h PADA 7SEGMENT

TAMPILKAN HURUF c PADA 7SEGMENT

DELAY 1 SECOND
B

DELAY 1 SECOND

END

TAMPILKAN HURUF d PADA 7SEGMENT

DELAY 1 SECOND

TAMPILKAN HURUF e PADA 7SEGMENT

DELAY 1 SECOND

Gambar 4.86 Flowchart Percobaan 2 : Variasi Percobaan 4 (1 Seven Segment Menyala)

C. Analisa Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 1 Seven Segment menyala. Untuk mengatur output pada Seven Segment,
maka dimasukkan perintah sebagai berikut :
while (1) //fungsi while 1 (berisi perintah (kode) yang akan
dieksekusi saat program dijalankan )
{
PORTJ=0x40;//mengatur
diterjemahkan

keluaran
kedalam

biner

dari
40

PORTJ
bernilai

yang
01000000

jika
//

mengatur supaya satu dari keempat tampilan Seven Segment


dapat menyala.

Listing Program di atas merupakan bentuk fungsi menggunakan


while dengan mengatur PORTJ sehingga satu dari empat Seven Segment
mampu menyala sekaligus.

Gambar 4.87 Tampilan pada Seven Segment saat Program berjalan

PORTA=0xA0;

//mengatur

diterjemahkan

keluaran

kedalam

bahasa

dari
biner,

PORTA
hexa

yang
A0

jika

bernilai

10100000

//

memunculkan

huruf

pada

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf a dengan lama tampilan 1 detik.

Gambar 4.88 Tampilan Huruf a pada Satu Seven Segment yang Menyala

PORTA=0x83;

//mengatur

keluaran

diterjemahkan

kedalam

10000011

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

83

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf b dengan lama tampilan 1 detik.

Gambar 4.89 Tampilan Huruf b pada Satu Seven Segment yang Menyala

PORTA=0xC6;

//mengatur

keluaran

diterjemahkan

kedalam

11000110

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

C6

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf c dengan lama tampilan 1 detik.

Gambar 4.90 Tampilan Huruf c pada Satu Seven Segment yang Menyala

PORTA=0xA1;

//mengatur

keluaran

diterjemahkan

kedalam

10100001

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

A1

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf d dengan lama tampilan 1 detik.

Gambar 4.91 Tampilan Huruf d pada Satu Seven Segment yang Menyala

PORTA=0x84;

//mengatur

keluaran

diterjemahkan

kedalam

10000100

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

84

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf e dengan lama tampilan 1 detik.

Gambar 4.92 Tampilan Huruf e pada Satu Seven Segment yang Menyala

PORTA=0x8E;

//mengatur

keluaran

diterjemahkan

kedalam

10001110

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

8E

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf f dengan lama tampilan 1 detik.

Gambar 4.93 Tampilan Huruf f pada Satu Seven Segment yang Menyala

PORTA=0x90;

//mengatur

keluaran

diterjemahkan

kedalam

10010000

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

90

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik.

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf g dengan lama tampilan 1 detik.

Gambar 4.94 Tampilan Huruf g pada Satu Seven Segment yang Menyala

PORTA=0x8B;

//mengatur

keluaran

diterjemahkan

kedalam

10001011

memunculkan

//

dari

bahasa

PORTA

biner,

huruf

yang

hexa
pada

8B

jika

bernilai

output

Seven

Segment.
delay_ms(1000);

//delay

second

//

output

yang

ditampilkan

pada Seven Segment memiliki durasi selama 1 detik


};
}

Listing Program di atas merupakan pengaturan untuk mengatur agar Seven


Segment yang menyala membentuk huruf h dengan lama tampilan 1 detik.
Kemudian fungsi while diakhiri, sehingga juga menjadi akhir dari Listing
Program.

Gambar 4.95 Tampilan Huruf h pada Satu Seven Segment yang Menyala

4.3.3

Percobaan 3 : Tampilan Karakter Alphanumerik Pada LCD


A. Listing Program
#include <mega2560.h>
#include <stdio.h>
#include <delay.h>
#asm
.equ __lcd_port=0x08 ;PORTC
#endasm
<lcd.h>
void main(void)
{
#pragma optsizeCLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
Func1=Out Func0=Out
State0=0
PORTC=0x00;
DDRC=0xFF;
lcd_init(16);
while (1)
{
lcd_clear();
lcd_putsf("Mikro 2016");
delay_ms(1000);
lcd_clear();
lcd_putsf("Percobaan 3");
delay_ms(1000);
lcd_clear();
lcd_putsf("Kelompok 22");
delay_ms(1000);
lcd_clear();

lcd_putsf("Fitri Ananda");
delay_ms(1000);
lcd_clear();
lcd_putsf("Fierda Kurnia C.A.P");
delay_ms(1000);
lcd_clear();
lcd_putsf("Arif Nur Hidayat");
delay_ms(1000);
};
}

B. Flowchart

START

INISIASI

DEKLARASI VARIABEL GLOBAL

TAMPILKAN Fitri Ananda

TAMPILKAN Mikro 2016

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN Fierda Kurnia C.A.P

TAMPILKAN Percobaan 3

DELAY 1 SECOND

DELAY 1 SECOND

TAMPILKAN Arif Nur Hidayat

TAMPILKAN Kelompok 22

DELAY 1 SECOND

DELAY 1 SECOND

END

Gambar 4.96 Flowchart Percobaan 3 : Tampilan Karakter Alphanumerik Pada LCD

C. Analisa Output
#include <mega2560.h> //deklarasi bahwa menggunakan library
ATMega2560
#include <stdio.h> //deklarasi library standard input output
#include <delay.h> //deklarasi library delay

Listing Program di atas merupakan deklarasi dari library library yang


ada pada CV-AVR agar program yang akan dibuat dapat berjalan dengan baik.
Library juga berfungsi sebagai jembatan penghubung antara program dan
hardware yang akan diberi program.
#asm
.equ __lcd_port=0x08 ;PORTC
#endasm
<lcd.h> //deklarasi library LCD

Listing Program di atas merupakan pengaturan bahwa LCD berada di


PORTC dan port yang aktif pada LCD adalah 00001000 (Nilai 0 maka LCD
akan aktif) sehingga LCD hanya mengaktifkan 7 port. Pada listing di atas juga
terdapat deklarasi library dari LCD.
void main(void)
{
#pragma optsizeCLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

Listing Program di atas merupakan fungsi utama dari sebuah program. Di


mana diberitahukan bahwa clock yang digunakan untuk mengoperasikan LCD
yang sudah terintegrasi akan bernilai 10000000 dan 00000000. Fungsi clock ini
sendiri adalah untuk mengoptimasikan kinerja dari suatu mikroprosesor atau
dalam hal ini adalah modul praktikum itu sendiri agar dapat mengolah data
dengan baik. Jadi clock akan memengaruhi kecepatan dari suatu proses data.
Func1=Out Func0=Out //deklarasi bahwa 1 dan 0 adalah output
State0=0 //mengatur pada PORTC merupakan state ke 0

PORTC=0x00;//mengatur kondisi awal dari PORT C bernilai 0


DDRC=0xFF;//mengatur PORTC sebagai output

Listing Program di atas merupakan pengaturan bahwa function 1 dan


function 0 adalah output dan merupakan state ke 0 (permulaan). Kemudian
diatur juga kondisi awal dari PORTC, yaitu kondisi LOW dimana LCD akan
aktif. Kemudian diatur pula bahwa PORTC merupakan output.
lcd_init(16);//inisialisasi LCD hanya memuat sebanyak 16
karakter
while (1)//fungsi while 1
{
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Mikro 2016");//memberikan tulisan LCD pada
baris pertama Mikro 2016
delay_ms(1000);//delay 1 second
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Percobaan 3");//memberikan tulisan LCD pada
baris kedua Percobaan 3
delay_ms(1000);//delay 1 second
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Kelompok 22");//memberikan tulisan LCD pada
baris pertama Kelompok 22
delay_ms(1000);//delay 1 second
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Fitri Ananda");//memberikan tulisan LCD pada
baris pertama Fitri Ananda
delay_ms(1000);//delay 1 second
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Fierda Kurnia C.A.P");//memberikan tulisan LCD
pada baris pertama Fierda
Kurnia C.A.P
delay_ms(1000);//delay 1 second
lcd_clear();//membersihkan tampilan LCD
lcd_putsf("Arif Nur Hidayat");//memberikan tulisan LCD
pada baris pertama Arif Nur
Hidayat
delay_ms(1000);//delay 1 second
};
}

Listing Program di atas yang pertama merupakan inisialisasi bahwa LCD


hanya akan memuat 16 karakter saja, apabila lebih dari itu tidak dapat
ditampilkan atau error. Kemudian, dibuatlah fungsi while (1) untuk
memberikan tampilan karakter pada LCD. Pada program lcd_clear(); adalah
dimaksudkan untuk membersihkan LCD dari karakter yang mungkin sudah
terlebih dahulu ditampilkan. Kemudian, lcd_pusf(Mikro 2016); adalah
untuk menampilkan tulisan di antara dua tanda petik pada program agar
ditampilkan pada LCD. Kemudian, program akan di tunda selama 1 detik
sebelum lanjut ke program selanjutnya. Pada program selanjutnya, sebelum
menampilkan tulisan selanjutnya, tampilan LCD dibersihkan dari karakter
sebelumnya dengan menggunakan fungsi lcd_clear();, baru setelah itu LCD
menampilkan tulisan Percobaan 3 dengan delay selama 1 second.
Selanjutnya layar LCD dibersihkan kembali dari karater sebelumnya
dengan perintah lcd_clear();,setelah itu baru menampilkan tulisan
Kelompok 22 dengan delay 1 second. Setelah itu, layar LCD kembali
dibersihkan dari karater sebelumnya dengan perintah lcd_clear();,setelah
itu baru menampilkan tulisan Fitri Ananda dengan delay 1 second.
Setelah 1 second, layar LCD kemudian dibersihkan dari karater sebelumny
dengan menggunakan perintah lcd_clear();,baru setelah itu muncul tulisan
Fierda Kurnia C.A.P dengan delay selama 1 second. Proses selanjutnya
mengulang seperti proses yang terjadi sebelumnya, yaitu pembersihan LCD
dari karater sebelumnya dengan menggunakan perintah lcd_clear();,setelah
itu baru muncul tulisan Arif Nur Hidayat dengan delay selama 1 second.
Setelah itu program mengulang kembali ke perintah awal menampilkan
tulisan tulisan tersebut terus menerus. Berhentinya LCD menampilkan tulisan
ketika catu daya yang terhubung ke modul dimatikan.

4.4 Kesimpulan
1. Seven Segment pada percobaan ini memiliki driver yang mana berfungsi
sebagai penentu Seven Segment yang mana yang akan diaktifkan atau tidak.
2. Pada percobaan ini, digunakan Seven Segment common anoda, dimana
seluruh anoda Segment dihubungkansecara paralel dan disambungkan ke
VCC sehingga membuat Seven Segment ini bersifat aktif Low (untuk
menyalakan LED Segment dibutuhkan logika 0).
3. Pada percobaan ini juga didapatkan hasil bahwa Seven Segment dapat
divariasikan membentuk berbagai macam karakter baik itu huruf ataupun
angka dengan memberikan perintah pada program dengan nilai biner ataupun
hexa.
4. Pada CV-AVR sebelum melakukan pemrograman maka library library
yang akan digunakan harus dipanggil terlebih dahulu agar terjadi koneksi
antara hardware dan program yang akan dibuat. Misal, apabila menggunakan
mikrokontroler ATMega2560 maka diawal program harus dipanggil terlebih
dahulu library #include<mega2560.h>.
5. #include<stdio.h> digunakan untuk mendeklarasikan bahwa program ini
menggunakan library standard input-output.
6. #include<delay.h> digunakan untuk mendeklarasikan bahwa program ini
menggunakan library delay yang berfungsi untuk memberikan jeda antara
proses program satu dan lainnya.
7. #include<lcd.h> digunakan untuk mendeklarasikan bahwa program ini
menggunakan library dari LCD yang berfungsi agar mikrokontroler dapat
membaca bahwa hardware yang digunakan adalah LCD sehingga eksekusi
program nantinya dapat berjalan lancar.
8. PORTx=0xXX dengan asumsi bahwa x dapat diganti dengan nama PORT
pada suatu mikro dan X merupakan bilangan hexa merupakan tempat untuk
melakukan penentuan kondisi awal dari keluaran. Misal kondisi awal ingin
bernilai 0 semua maka bilangan hexa yang digunakan adalah 0x00 dan
apabila bernilai 1 semua maka bilangan hexa yang digunakan adalah 0xFF.
9. DDRx=0xXX dengan asumsi bahwa x dapat diganti dengan nama PORT pada
suatu mikro dan X merupakan bilangan hexa merupakan tempat untuk

melakukan penentuan apakah PORT itu akan digunakan sebagai input atau
output. Misal diinginkan input semua maka harus bernilai 0 semua maka
bilangan hexa yang digunakan adalah 0x00 dan apabila diinginkan output
semua maka harus bernilai 1 semua maka bilangan hexa yang digunakan
adalah 0xFF.
10. Dalam percobaan ini, PORTJ digunakan untuk membuat tampilan Seven
Segment dari 4 seven

Segment yang disediakan menyala dengan

memasukkan perintah menggunakan bilangan hexadesimal. Sedangkan


PORTA digunakan untuk membuat Segment Segment pada Seven Segment
menyala sesuai dengan karakter huruf atau angka yang ingin ditampilkan
pada Seven Segment dengan memasukkan perintah menggunakan bilangan
hexadesimal.
11. Untuk membuat Seven Segment menyala dari 4 tampilan Seven Segment yang
tersedia, maka perlu diberi logika 1 untuk setiap tampilan Seven Segment.
12. Untuk menampilkan karakter huruf atau angka pada Seven Segment, maka
setiap Segmentnya perlu diberi logika 0 (aktif Low).
13. Pada pemrograman untuk menampilakan karakter pada LCD, sebelumnya
harus dilakukan inisialisasi jumlah kolom yang digunakan pada LCD. Dalam
percobaan ini diinisialisasikan LCD menggunakan 16 kolom maka diprogram
harus ditulis program lcd_init(16);.
14. Membersihkan tampilan karakter dari LCD dapat dilakukan dengan
mengetikkan program lcd_clear();.
15.

lcd_putsf(Mikro 2016); adalah

2016 pada LCD.

program untuk menampilkan Mikro