Anda di halaman 1dari 33

LAPORAN PRAKTIKUM KENDALI MIKRO

SEVEN SEGMEN

Disusun oleh :
Fajri Anugerah Pratama
3.39.19.0.14
LT-2E

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
SEMARANG
2021
PERCOBAAN 04
SEVEN SEGMEN

A. Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Dapat membuat program dengan ouput seven segmen.


2. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR.
3. Dapat membuat program dengan input push button dan output Seven Segmen.

B. Alat dan Bahan

• Modul mikrokontroller
• PC atau laptop
• power supply DC

C. Dasar Teori:
Pada percobaan ini akan menggunakan display 7 segmen sebanyak 8 buah, dengan
menggunakan scanning data, maka jumlah port yang dibutuhkan menjadi sedikit. Display
7 segmen yang digunakan pada percobaan ini adalah 7 segmen common anoda, dengan
driver transistor PNP dan decoder 74LS138 untuk scanning 7 segmen.
Gambar seven segmen
Data Display Seven Segmen

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus
dikirimkan data logika low ”0” dan sebaliknya untuk mematikan segmen, harus
dikirimkan data logika high ”1”.
Rangkaian decoder dan driver 7 Segmen
Tabel kebenaran 74LS138

Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup
tergantung pada output dari dekoder 74LS138, yang sedang mengeluarkan logika low
”0”, sehingga dari 8 buah display tersebut, selalu hanya satu display yang akan
dihidupkan. Agar display tampak nyala secara bersamaan maka ketiga display tersebut
harus dihidupkan secara bergantian dengan waktu tunda tertentu. Pada gambar tersebut
seven segment commont anoda dikendalikan dengan menggunakan transistor PNP
melalui decoder 74LS138, apabila ada logika low pada basis transistor, maka 7 segment
akan nyala dan sebaliknya akan padam.
Konfigurasi menggunakan codewizard AVR
D. Langkah Kerja
1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK Use
codeWizardAVR? Yes
3. ketikkan program berikut
a. Menampilkan karakter angka di satu seven segmen
#include <mega8535.h>
#include<delay.h>
unsigned char data;
void convert(){
switch(data)
{
// gfedcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break;
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
void main (void)
{
DDRC=DDRD=PORTC=0xff;
PORTD.5=1;
PORTD.6=1;
PORTD.7=1;
while(1)
{
data=5;
convert();
}
}

simpan dengan nama file segmen1 kemudian compile, menu Project -→Compile

b. Percobaan Display 7 segmen increment data 0 sd 9

Pada percobaan ini data ditampilkan ke sebuah 7 segmen, data ditampilkan


secara berurutan mulai dari 0 sd 9, dengan waktu tunda 1 detik. Untuk setiap
kenaikan angka.
#include <mega8535.h>
#include<delay.h>
unsigned char data;
void convert(){
switch(data)
{
// gfedcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break; }
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
void main (void)
{
}

DDRC=DDRD=PORTC=0xff;
PORTD.5=1;
PORTD.6=1;
while(1)
{
convert();
data=data+1;
if(data==10){data=0;};
delay_ms(1000);
}

Simpan dengan nama file segmen2 kemudian compile, menu Project -→Compile
c. Display 7 Segmen dengan Simulasi Setting data
Pada percobaan ini anda akan belajar bagaimana mensimulasikan setting data
dengan display pada 7 segmen.

#include <mega8535.h>
#include <delay.h>
void convert();
int data,dataTemp,dataPul,dataSat;
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
PORTC=0xFF;
DDRD=0xFF;
data=00;
while(PINB.2==1)
{
if (PINB.0==0)
{
data=data+1;
}

else if (PINB.1==0)
{
data=data-1;
}
dataTemp=data;
dataSat = dataTemp % 10; // sat = sisa dari data dibagi 10
dataPul = dataTemp / 10;

dataTemp=dataSat;
convert();
PORTD.5=1;
PORTD.6=0;
delay_ms(30);

dataTemp=dataPul;
convert();
PORTD.5=0;
PORTD.6=0;
delay_ms(30);

}
PORTC=0x00;
delay_ms(2000);
}
void convert(){
switch(dataTemp)
{
// pg fe dcba
case 0: PORTC=0b11000000;break;
case 1: PORTC=0b11111001;break;
case 2: PORTC=0b10100100;break;
case 3: PORTC=0b10110000;break;
case 4: PORTC=0b10011001;break;
case 5: PORTC=0b10010010;break;
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}

Simpan dengan nama file segmen3 kemudian compile, menu Project -→Compile
E. GAMBAR RANGKAIAN

F. DATA HASIL
1. Percobaan segmen 1

2. Percobaan segmen 2
• Kondisi 1
• Kondisi 2

• Kondisi 3

3. Percobaan segmen 3
• Kondisi 1
• Kondisi 2
4. Tugas 1
• Kondisi 1

• Kondisi 2

• Kondisi 3
5. Tugas 2
• Kondisi 1

• Kondisi 2

• Kondisi 3
• Kondisi 4

• Kondisi 5

• Kondisi 6
• Kondisi 7

• Kondisi 8
6. Tugas 3
7. Tugas 4
G. ANALISIS DATA HASIL
1. Percobaan segmen 1

Baris 1 pada pemrogramman ini menunjukkan atmega 8535 sebagai


mikrokontroler yang dipakai,bari kedua menambahkann fungsi delay pada
pemrograman ini,baris tiga menambahkan variable char,pada baris 4-18 menunjukkan
data char yang diinput.Pada program ini menggunakkan data ke kelima. Pada baris
kedua puluh dua hingga ketiga puluh tiga adalah program utamanya dimana port C dan
port D berfungsi sebagai output dengan kondisi awal bernilai high (1). Pada PIND.5,
PIND.6, dan PIND.7 bernilai high (1) dimana menunjukkan seven segmen yang
kedelapan sesuai tabel kebenaran pada IC 74LS138. Pada baris ini terdapat looping
while dimana pada saat kondisi True maka program akan diulang hingga batas tak
hingga dengan data yang diulang adalah data kelima
If
true(0)
)))

2. Percobaan segmen 2
Pada baris pertama menunjukkan masukan atmega 8535 sebagai
mikrokontroler, pada baris kedua berfungsi untuk memasukkan fungsi delay pada
program. Pada baris ketiga mendeklarasikan suatu variabel char dengan nama
“data”. Pada baris keempat hingga kedua puluh adalah percabangan kode program
untuk membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses
perbandingan tersebut menghasilkan true, maka blok kode program akan di proses,
jika menghasilkan false maka default akan diproses. Pada program ini
menggunakkan data seluruh data. Pada baris kedua puluh satu hingga baris ke tiga
puluh tiga adalah program utamanya dimana port C dan port D berfungsi sebagai
output dengan kondisi awal bernilai high (1). Pada PIND.5, PIND.6 bernilai high
(1) dan PIND.7 bernilai low (0) dimana menunjukkan seven segmen yang keempat
sesuai tabel kebenaran pada IC 74LS138. Pada baris ini terdapat looping while
dimana pada saat kondisi True maka program akan diulang hingga batas tak hingga
dengan data yang diulang adalah seluruh data dengan increment +1 dari 0-9 dengan
delay 1 s. Jika mencapai angka 10 maka akan Kembali data ke-0.

If
true(0)
)))

3. Percobaan segmen 3
Pada baris pertama menunjukkan masukan atmega 8535 sebagai
mikrokontroler, pada baris kedua berfungsi untuk memasukkan fungsi delay pada
program. Pada baris ketiga adalah perintah untuk konfersi. Pada baris keempat
mendeklarasikan suatu variabel integer dengan nama “data”, “dataTemp”,
“dataPul”, dan “dataSat”. Pada baris kelima hingga baris keempat puluh adalah
program utamanya dimana port C sebagai output dengan kondisi awal berlogika
high (1), port B sebagai input dengan kondisi awal berlogika high (1), dan port D
sebagai output sebagai output dengan kondisi awal berlogika high (1). Pada baris
ini menggunakkan looping while dimana ketika PINB.2 tetap berlogika high (1)
maka program akan dijalankan hingga tanpa batas. Jika PINB.0 berlogika low (0),
maka program akan menjalankan seluruh data dengan increment +1 pada seven
segmen no.1 dan no.2 sedangkan jika PINB.1 berlogika 0 maka program akan
menjalankan seluruh data dengan decrement -1 pada seven segmen no.1 dan no.2
dengan delay 0,1 s. Pada baris ke empat puluh empat hingga baris keenam puluh
adalah percabangan kode program untuk membandingkan isi sebuah variabel
dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka
blok kode program akan di proses, jika menghasilkan false maka default akan
diproses.

4. Tugas 1
Pada baris 1 dan 2 menunjukkan atmega 8535 sebagai mikrokontroler dan
penambahan fungsi delay,pada baris 3 menunjukkann deklarasi variable char dalam
pemrograman ini,pada baris 4-13 menunjukkan data char yang akan
dideklarasikan,apabila benar maka data akan dijalankan dan apabia salah maka
pemrogramman akan berada pada kondisi default,pada baris 18 menunjukkan
kondisi awal dari port d,b dan c berada pada kondisi high(1),pada baris 20
menunjukkan fungsi perulangan,baris 22-41 menunjukkan data yang ingin
dimasukkan dengan penambahan fungsi delay 100ms.Baris 42 merupakkan
penutupan dari fungsi perulangan dan baris 43 merupakkan penutupan dari sebuah
pemrograman.

If
true(0)
)))

5. Tugas 2
Pada baris 1 dan 2 menunjukkan atmega 8535 sebagai mikrokontroler dan
penambahan fungsi delay,pada baris 3 menunjukkann deklarasi variable char dalam
pemrograman ini,pada baris 4-17 menunjukkan data char yang akan
dideklarasikan,apabila benar maka data akan dijalankan dan apabia salah maka
pemrogramman akan berada pada kondisi default,pada baris 22 menunjukkan
kondisi awal dari port d,b dan c berada pada kondisi high(1),pada baris 24
menunjukkan fungsi perulangan,baris 26-60 menunjukkan data yang ingin
dimasukkan dengan penambahan fungsi delay 100ms.Baris 81 merupakkan
penutupan dari fungsi perulangan dan baris 82 merupakkan penutupan dari sebuah
pemrograman.
If
true(0)
)))
6. Tugas 3
Pada baris 1 dan 2 menunjukkan atmega 8535 sebagai mikrokontroler dan
penambahan fungsi delay,pada baris 3 menunjukkann deklarasi variable char dalam
pemrograman ini,pada baris 4-15 menunjukkan data char yang akan
dideklarasikan,apabila benar maka data akan dijalankan,pada baris 18 menunjukkan
port c berfungsi sebagai output,pada baris 19 port b berfungsi sebagai input,baris 20
dan 21 menunjukkan kondisi awal inputan bernilai high(1),baris 22 menunjukkan
port d sebagai output,baris 25 menunjukkan fungsi perulangan,baris 27 apabila pin
B0 diberi inputan low maka akan menjalankan fungsi x dimana fungsi x sendiri
bernilai data char yang ada pada baris 31-59 dengan penambahan fungsi delay 100
ms.

If
true(0)
)))

If PINB0 If PINB0
(0) (0)
7. Tugas 4
Pada baris 1 dan 2 menunjukkan atmega 8535 sebagai mikrokontroler dan
penambahan fungsi delay,pada baris 3 menunjukkann deklarasi variable char dalam
pemrograman ini,pada baris 4-15 menunjukkan data char yang akan
dideklarasikan,apabila benar maka data akan dijalankan,pada baris 18 menunjukkan
port c berfungsi sebagai output,pada baris 19 port b berfungsi sebagai input,baris 20
dan 21 menunjukkan kondisi awal inputan bernilai high(1),baris 22 menunjukkan port
d sebagai output,pada baris 26 menunjukkan fungsi perulangan,pada baris 28 apabila
pin B0 diberi inputan low maka akan menjalankan data dengan penambahan atau data
akan berjalan maju,apabila data 1-5 maka akan menjalankan pemrogramman data
yang ada pada baris 34-87,pada baris 88-91 apabila pin b0 diberi inputan low maka
data akan selalu bertambah maju.
While
true(0)

If PINB0
(0)

While
true(0)

H. KESIMPULAN
1. Pada percobaan menggunakkan rangkaian common anoda dimana penggabungan
kaki-kaki anoda dari komponen-komponen. Artinya, mereka membutuhkan Arus
positif. Untuk dapat menjalankan fungsinya (dalam hal pulsa, saat LOW[1] ).
Karena kaki negatif, berarti membutuhkan arus postif.
2. Common anoda diberi tegangan Vcc dan seven segment dengan common anoda
akan aktif pada saat diberi logika rendah (0) atau sering disebut aktif low. Kaki
katoda dengan label a sampai h sebagai pin aktifasi yang menetukan nyala LED.
3. Pada percobaan ini akan menggunakan display 7 segmen sebanyak 8 buah, dengan
menggunakan scanning data, maka jumlah port yang dibutuhkan menjadi sedikit.
I. DAFTAR PUSTAKA
https://www.academia.edu/31760870/Laporan_Mikrokontroler
http://renosiskasyaflina152006.blogspot.com/2017/09/rangkaian-seven-segmen-
menggunakan.html

Anda mungkin juga menyukai