LAPORAN
PRAKTIKUM 3
ANTARMUKA
MIKROKONTROLER DENGAN SEVEN SEGMEN
Disusun untuk Memenuhi Mata Kuliah Praktikum Lab-PTE-03
Dibimbing oleh IbuDyah Lestari
Oleh:
Adi Indera DwiAnggara (150534600359)
Affan Dawam Firdaus (150534607075)
Moch. Burhanuddin Alfarobbi (150534603979)
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI PENDIDIKAN TEKNIK ELEKTRO
September 2016
TUJUAN
- Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian seven segment.
- Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menampilkan karakter ke seven segment.
SEVEN SEGMENT
Penampil
seven segment adalah sebuah piranti penampil untuk menampilkan angka desimal.
Penampil seven segment banyak digunakan dalam jam digital, meter elektronik,
dan piranti elektronik yang lain. Gambar 3.1 memperlihatkan bentuk fisik dan
layout dasar penampil seven segment. Penampil seven segment terdiri atas 8 LED
yang disusun seperti dalam Gambar 3.1(b). Setiap LED diidentifikasi sebagai
huruf a, b, c, d, e, f, g, yang dimulai dari huruf a di sebelah atas. Di
sebelah kanan terdapat satu LED tambahan yang digunakan sebagai koma (dp).
(a)Penampil
seven segment (b) Layout LED
Gambar 3.1
Seven segment
Untuk menampilkan
sebuah karakter, minimal 2 LED harus dinyalakan. Tabel 3.1 memperlihatkan kode
heksadesimal untuk menampilkan angka 0 sampai 9.
Dalam modul
I/O yang dipakai dalam praktikum, seven segment yang digunakan ada 2 buah,
semuanya bertipe common anoda. Kedua
seven segment tersebut dimultipleks sehingga data diperoleh dari satu kaki
(D0-D7), sedangkan untuk menyalakannya digunakan kaki kontrol yang berbeda (DO1
dan DO2). Rangkaian lengkap seven segment dapat dilihat dalam Gambar 3.2.
Tabel3.1 Kodeheksadesimaluntukangka 0-9
Digit
|
gfedcba
|
G
|
f
|
E
|
d
|
c
|
b
|
a
|
0
|
0x3F
|
off
|
on
|
on
|
on
|
on
|
on
|
on
|
1
|
0x06
|
off
|
off
|
off
|
off
|
on
|
on
|
off
|
2
|
0x5B
|
On
|
off
|
on
|
on
|
off
|
on
|
On
|
3
|
0x4F
|
On
|
off
|
off
|
on
|
on
|
on
|
On
|
4
|
0x66
|
On
|
on
|
off
|
off
|
on
|
on
|
Off
|
5
|
0x6D
|
On
|
on
|
off
|
on
|
on
|
off
|
On
|
6
|
0x7D
|
On
|
on
|
on
|
on
|
on
|
off
|
On
|
7
|
0x07
|
off
|
off
|
off
|
off
|
on
|
on
|
On
|
8
|
0x7F
|
On
|
on
|
on
|
on
|
on
|
on
|
On
|
9
|
0x6F
|
On
|
on
|
off
|
on
|
on
|
on
|
On
|
Dalam Gambar 3.2, kaki a, b, c, d,
e, f, g, dp dihubungkan ke soket jumper DATA 7S, sedangkan kaki kontrol (DO1
dan DO2 dihubungkan dengan soket jumper I/P S KEY.
ALAT DAN BAHAN YANG DIGUNAKAN
- 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
- 1 buah catu daya DC +5V
- 1 buah multimeter
- 1 buah ISP Downloader AVR
- 1 buah sistem minimum AVR
- 1 buah I/O
- 1 buah kabel printer USB
- 2 buah kabel pita hitam
PROSEDUR
1.
Hubungkan soket jumper PORTB pada minimum system
dengan soket jumper DATA7S pada I/O dan soket jumper PORTC pada minimum system
dengan soket jumper I/P S KEY pada I/O.
2.
Buka aplikasi Code Vision AVR
3.
Buatlah file project (.prj) kemudian pilih IC
yang digunakan (ATmega8535) dan atur clock 4.000 Mhz. (seperti praktikum
sebelumnya)
4.
Buatlah file source (.c) kemudian hubungkan file
project dengan file source seperti pada praktikum sebelumnya.
5.
Tambahkan file header
6.
Buatlah program utama dan inisialisasikan PORTB
sebagai output (DDRB = FFH) dan output value = 0 (PORTB=00H), dan PORTC.0-PORTC.3 sebagai input,
PORTC.4-PORTC.7 sebagai output (DDRC = F0H) dan (PORTC=F0H) sehingga
inisialisasi PORTB dan PORTC terlihat sebagai berikut:
7.
Tuliskan program seven segmen 1 dalam program
utama tepatnya di dalam while (1).
8.
Compile dan Build program jika ada yang error
perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik
auto program, amati nyala seven segment.
9.
Hapus program seven segmen 1 dan tuliskan program
seven segmen 2 dalam program utama tepatnya di dalam while (1).
10. Compile dan
Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan
Khanzama AVR Programer. Klik auto program, amati nyala seven segment.
11. Hapus
program seven segmen 2. Gabungkan program seven segmen 1 dan seven segmen 2.
12. Compile dan
Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati nyala seven
segment.
13. Ubah nilai
delay untuk masing-masing program seven segment menjadi 100 ms
14. Compile dan
Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati nyala seven
segment.
15. Hapus
gabungan program seven segmen 1 dan program seven segmen 2
Masukkan variabel berikut diluar program utama.
16. Masukkan
variabel berikut di dalam program utama.
17. Tuliskan
program seven segmen 3 pada program utama tepatnya di dalam while (1)
18. Compile dan
Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati nyala seven
segment.
19. Ubah nilai
delay untuk program SEGMEN3 menjadi 100 ms
20. Compile dan
Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati nyala seven
segment.
21. Buat
program SEGMEN4 untuk menampilkan 00-99 di kedua seven segmen sehingga kedua
angka tampil bersamaan.
22. Buat
program SEGMEN5 untuk menampilkan 00 hingga dua digit terakhir NIM anda
(counter up) lalu menghitung mundur dari dua digit NIM terakhir anda ke 00
(counter down). (kedua seven segment menyala bersamaan).
DATA HASIL PERCOBAAN
1. Program
SEGMEN1
#include
<mega8535.h>
#include
<delay.h>
void
main (void)
{ PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
PORTC.7=1;
PORTC.6=0; //untukmengaktifkan 7
segmenkanan
PORTB=0x7f;
delay_ms(10);
}
}
2. Program
SEGMEN2
#include
<mega8535.h>
#include
<delay.h>
void
main (void)
{ PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
PORTC.7=0; //untukmengaktifkan 7 segmenkiri
PORTC.6=1;
PORTB=0x66;
delay_ms(10);
}
}
3. Gabungan
SEGMEN1 dan SEGMEN2 delay 100ms
#include
<mega8535.h>
#include
<delay.h>
void
main (void)
{ PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
PORTC.7=1;
PORTC.6=0;
PORTB=0x7f;
delay_ms(100);
PORTC.7=0;
PORTC.6=1;
PORTB=0x66;
delay_ms(100);
}
}
4. Program
SEGMEN3
#include
<mega8535.h>
#include
<delay.h>
unsigned
char
bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void
main (void)
{ int kanan;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7=1;
PORTC.6=0; //untukmengaktifkan 7
segmenkanan
PORTB=bil[kanan];
delay_ms(1000);
}
}
}
5. Program
SEGMEN3 delay 100ms
#include
<mega8535.h>
#include
<delay.h>
unsigned
char
bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void
main (void)
{ int kanan;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7=1;
PORTC.6=0;
PORTB=bil[kanan];
delay_ms(100);
}
}
}
6. Source code
Program SEGMEN4
#include
<mega8535.h>
#include
<delay.h>
unsigned
char
bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void
main (void)
{ int kanan;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while (1)
{
kanan=0;
for(kanan=0;kanan<10;kanan++)
{
PORTC.7=0; //untukmengaktifkan 7 segmenkiri
PORTC.6=0; //untukmengaktifkan 7
segmenkanan
PORTB=bil[kanan];
delay_ms(100);
}
}
}
7. Source code
Program SEGMEN5
#include
<mega8535.h>
#include
<delay.h>
unsigned
char
bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void
main (void)
{ int kanan;
int kiri;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xF0;
DDRC=0xF0;
while
(1)
{
kanan=0;
kiri=0;
for(kiri=0;kiri<6;kiri++)
{
for(kanan=0;kanan<10;kanan++)
{
PORTC.6=0;
PORTC.7=1;
PORTB=bil[kanan];
delay_ms(100);
PORTC.7=0;
PORTC.6=1;
PORTB=bil[kiri];
delay_ms(100);
}
if (kanan==9 && kiri==5)
{
goto kedua; }
}
kedua:
for(kiri=5;kiri>=0;kiri--)
{
for(kanan=9;kanan>=0;kanan--)
{
PORTC.6=0;
PORTC.7=1;
PORTB=bil[kanan];
delay_ms(100);
PORTC.7=0;
PORTC.6=1;
PORTB=bil[kiri];
delay_ms(100);
}
}
}
}
ANALISA DATA
1.
Analisa Program SEGMEN1 sampai SEGMEN5
-
PadaProgram
SEGMEN1digunakanuntukmenampilkanangka 8dengankode
0x7fpada 7 segmenkanan.
-
PadaProgram
SEGMEN2digunakanuntukmenampilkanangka 4 dengankode
0x66pada 7 segmenkiri.
-
PadaProgram
SEGMEN3digunakanuntukmenampilkanangka 0 sampai 9
denganwaktutunda0,1detikpada 7 segmenkanan.
-
PadaProgram
SEGMEN4digunakanuntukmenampilkanangka 0 sampai 9
denganwaktutunda 0,1 detikpadakedua 7 segmensecarabersamaan.
-
PadaProgram
SEGMEN5digunakanuntukmenampilkanangka 0 sampai 59
padakedua 7 segmen (counter up) danketikatelahmencapai 59 akanmenghitungmundur
(counter down).
2.
Instruksi apa yang digunakan untuk mengeluarkan
data ke seven segment?
-
PORTB=0x3f; // menampilkanangka 0
-
PORTB=0x06; // menampilkanangka 1
-
PORTB=0x5b; // menampilkanangka 2
-
PORTB=0x4f; // menampilkanangka 3
-
PORTB=0x66; // menampilkanangka 4
-
PORTB=0x6d; // menampilkanangka 5
-
PORTB=0x7d; // menampilkanangka 6
-
PORTB=0x07; // menampilkanangka 7
-
PORTB=0x7f; // menampilkanangka 7
-
PORTB=0x6f; // menampilkanangka 8
3.
Instruksi apa yang digunakan untuk mengontrol
nyala seven segment?
PORTC.7=1; //untukmematikan
7 segmenkiri
PORTC.6=0; //untukmenyalakan
7 segmenkanan
4.
Jika nilai delay pada Gabungan Program SEGMEN1
dan SEGMEN2 diperbesar, apa yang terjadi pada tampilan seven segment?
Pergantiannyaladarikeduanyaakanterlihat.
5.
Jika nilai delay pada program SEGMEN3
diperkecil, apa yang terjadi pada tampilan seven segmen?
Pergantianangkanyaterlihatcepat.
0 komentar:
Posting Komentar