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.
Gambar 4.1 Data Percobaan Tampilan Angka Pada Seven Segment Variasi Percobaan 1 4
4.2.2
Gambar 4.2 Data Percobaan Tampilan Huruf Pada Seven Segment Variasi Percobaan 1 4
4.2.3
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,
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.
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
0 + 0 + 0 + 0
= 15
=0
=F
=0
Untuk
gambar
diatas,
maka
Segment a, b, c, d, e, dan f
Segment a, b, c, d, e, dan f
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
#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
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
DELAY 1 SECOND
keluaran
dari
PORTJ
yang
jika
mengatur
supaya
keempat
tampilan
Seven
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.
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
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
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
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
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
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
Gambar 4.14 Tampilan Angka 6 pada Semua Seven Segment yang Menyala
PORTA=0xF8;//mengatur
keluaran
dari
PORTA
yang
jika
Gambar 4.15 Tampilan Angka 7 pada Semua Seven Segment yang Menyala
PORTA=0x80;//mengatur
keluaran
dari
PORTA
yang
jika
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
Gambar 4.17 Tampilan Angka 9 pada Semua Seven Segment yang Menyala
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)
C.
Analisa
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
DELAY 1 SECOND
Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 3 Seven Segment
keluaran
diterjemahkan
kedalam
dari
PORTJ
bahasa
yang
biner,
jika
hexa
B0
PORTA=0xC0;//mengatur
keluaran
diterjemahkan
bernilai
kedalam
11000000
//
dari
PORTA
bahasa
yang
biner,
memunculkan
jika
hexa
angka
C0
pada
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
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
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
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
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
Seven
Segment
memiliki
durasi
selama
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
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
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
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
};
}
Gambar 4.29 Tampilan Angka 9 pada Tiga Seven Segment yang Menyala
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)
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
C. Analisan Output
END
keluaran
diterjemahkan
bernilai
kedalam
00110000
//
dari
PORTJ
yang
bahasa
biner,
hexa
mengatur
supaya
dua
jika
30
dari
PORTA=0xC0;//mengatur
keluaran
diterjemahkan
kedalam
dari
PORTA
bahasa
yang
biner,
hexa
jika
C0
bernilai
11000000
//
memunculkan
angka
pada
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
detik.
Gambar 4.36 Tampilan Angka 4 pada Dua Seven Segment yang Menyala
PORTA=0x92;//mengatur
keluaran
diterjemahkan
bernilai
kedalam
10010010
//
dari
PORTA
bahasa
yang
biner,
memunculkan
angka
jika
hexa
5
92
pada
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
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
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
};
}
Gambar 4.41 Tampilan Angka 9 pada Dua Seven Segment yang Menyala
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
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
DELAY 1 SECOND
C. Analisa Output
Pada percobaan ini terdapat empat tampilan Seven Segment, dengan
output 1 Seven Segment
keluaran
diterjemahkan
dari
kedalam
PORTJ
bahasa
yang
biner,
jika
hexa
20
PORTA=0xC0;//mengatur
keluaran
diterjemahkan
bernilai
dari
kedalam
11000000
//
PORTA
bahasa
yang
biner,
memunculkan
jika
hexa
angka
C0
pada
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
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
};
}
Gambar 4.53 Tampilan Angka 9 pada Satu Seven Segment yang Menyala.
4.3.2
anoda. Dimana pada jenis ini, seluruh anoda dari LED dalam Seven Segment
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
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
8 + 4 + 2 +1
0 + 0 + 0 + 0
= 15
=0
=F
=0
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
B.
Flowchart
START
B
INISIASI
PORTJ=0x F0
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
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
PORTA=0xA0;//mengatur
diterjemahkan
bernilai
keluaran
dari
kedalam
10100000
//
bahasa
PORTA
yang
biner,
memunculkan
jika
hexa
huruf
A0
pada
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
detik.
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
Seven
detik.
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
detik.
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
Seven
Segment
memiliki
durasi
selama
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.
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
};
}
Gambar 4.65 Tampilan Huruf h pada Semua Seven Segment yang Menyala
//
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
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
DELAY 1 SECOND
A
Gambar 4.66 Flowchart Percobaan 2 : Variasi Percobaan 2 (1 Seven Segment Menyala)
C. Analisa Output
keluaran
dari
PORTJ
yang
jika
PORTA=0xA0;//mengatur
keluaran
diterjemahkan
kedalam
dari
PORTA
bahasa
yang
biner,
hexa
jika
A0
Seven
Segment
memiliki
durasi
selama
detik.
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
};
}
Gambar 4.75 Tampilan Huruf h pada Tiga Seven Segment yang Menyala
B.
Flowchart
START
B
INISIASI
PORTJ=0x A0
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
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
PORTA=0xA0;//mengatur
keluaran
diterjemahkan
bernilai
dari
kedalam
10100000
//
PORTA
bahasa
yang
biner,
memunculkan
jika
hexa
huruf
A0
pada
Seven
Segment
memiliki
durasi
selama
detik.
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
Seven
Segment
memiliki
durasi
selama
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
};
Gambar 4.85 Tampilan Huruf h pada Dua Seven Segment yang Menyala
B. Flowchart
START
B
INISIASI
PORTJ=0x40
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
DELAY 1 SECOND
B
DELAY 1 SECOND
END
DELAY 1 SECOND
DELAY 1 SECOND
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
//
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
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
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
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
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
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
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
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
Gambar 4.95 Tampilan Huruf h pada Satu Seven Segment yang Menyala
4.3.3
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
DELAY 1 SECOND
DELAY 1 SECOND
TAMPILKAN Percobaan 3
DELAY 1 SECOND
DELAY 1 SECOND
TAMPILKAN Kelompok 22
DELAY 1 SECOND
DELAY 1 SECOND
END
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
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