laporan 3.docx

14
MODUL II ANTARMUKA MIKROKONTROLER DENGAN SEVEN SEGMEN Aris Mbajeng Wahyu Prasiska (100533402635- Kelompok 12 ) Tanggal Percobaan: 11/02/2013 PTI494 – Praktikum Mikroprocessor dan Teknik Antarmuka Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – Fakultas Teknik Universitas Negeri Malang Abstrak Abstrak- Percobaan yang telah dilakukan pada praktikum antarmuka mikrokontroler dengan seven segmen digunakan untuk memberikan nilai masukan atau sebuah kondisi yang telah ditentukan setalah proses pengkodean dan download program dilakukan. Setiap LED pada seven segmen diidentifikasi sebagai huruf a, b, c, d, e, f, g, yang dimulai dari huruf a di sebelah atas dan 1 led tambahan yang digunkan sebagai koma (dp). Kata kunci: LED, seven segmen, 1. PENDAHULUAN Praktikum ini dilaksanakan untuk mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian seven segmen sehingga dapat menghasilkan output berupa keadaan nyala atau tidaknya led yang ada pada seven segmen yang digunakan untuk menampilkan karakter ke seven segmen yang berupa angka desimal. 2. STUDI PUSTAKA 2.1. SEVEN SEGMEN Seven Segment adalah suatu segmen- segmen yang digunakan menampilkan angka. Seven segment merupakan display visual yang umum digunakan dalam dunia digital. Seven segment sering dijumpai pada jam digital, penujuk antrian, diplay angka digital dan termometer digital. Penggunaan secara umum adalah untuk menampilkan informasi secara visual mengenai data-data yang sedang diolah oleh suatu rangkaian digital. Seven segmen ini tersusun atas 7 batang LED yang disusun membentuk angka 8 yang penyusunnya menggunakan diberikan lebel dari ‘a’ sampai ‘g’ dan satu lagi untuk dot point (DP). Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). salah satu terminal LED dihubungkan menjadi satu sebagai kaki common. Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM 1

Upload: ariz-mbajeng-wahyu-prasiska

Post on 10-Aug-2015

422 views

Category:

Documents


30 download

TRANSCRIPT

Page 1: laporan 3.docx

MODUL II ANTARMUKA MIKROKONTROLER DENGAN SEVEN SEGMEN

Aris Mbajeng Wahyu Prasiska (100533402635- Kelompok 12 )Tanggal Percobaan: 11/02/2013

PTI494 – Praktikum Mikroprocessor dan Teknik AntarmukaLaboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – Fakultas

Teknik Universitas Negeri Malang

Abstrak

Abstrak- Percobaan yang telah dilakukan pada praktikum antarmuka mikrokontroler dengan seven segmen digunakan untuk memberikan nilai masukan atau sebuah kondisi yang telah ditentukan setalah proses pengkodean dan download program dilakukan. Setiap LED pada seven segmen diidentifikasi sebagai huruf a, b, c, d, e, f, g, yang dimulai dari huruf a di sebelah atas dan 1 led tambahan yang digunkan sebagai koma (dp).

Kata kunci: LED, seven segmen,

1. PENDAHULUAN

Praktikum ini dilaksanakan untuk mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian seven segmen sehingga dapat menghasilkan output berupa keadaan nyala atau tidaknya led yang ada pada seven segmen yang digunakan untuk menampilkan karakter ke seven segmen yang berupa angka desimal.

2. STUDI PUSTAKA

2.1. SEVEN SEGMEN

Seven Segment adalah suatu segmen- segmen yang digunakan menampilkan angka. Seven segment merupakan display visual yang umum digunakan dalam dunia digital. Seven segment sering dijumpai pada jam digital, penujuk antrian, diplay angka digital dan termometer digital. Penggunaan secara umum adalah untuk menampilkan informasi secara visual mengenai data-data yang sedang diolah oleh suatu rangkaian digital.

Seven segmen ini tersusun atas 7 batang LED yang disusun membentuk angka 8 yang penyusunnya menggunakan diberikan lebel dari ‘a’ sampai ‘g’ dan satu lagi untuk dot point (DP). Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). salah satu terminal LED dihubungkan menjadi satu sebagai kaki common.

Gambar1. Seven segmen display

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM1

Page 2: laporan 3.docx

Jenis-jenis Seven Segment :

1. Common Anoda

Semua anoda dari LED dalam seven segmen disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka COMMON ANODA ini berada pada kondisi AKTIF LOW (led akan menyala/aktif bila diberi logika 0).

2. Common Katoda

Merupakan kebalikan dari Common Anoda. Disini semua katoda disatukan secara parallel dan dihubungkan ke GROUND. Karena seluruh katoda dihubungkan ke GROUND, maka COMMON KATODA ini berada pada kondisi AKTIF HIGH (led akan menyala/aktif bila diberi logika 1).

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.

Tabel 3.1 Kode heksadesimal untuk angka 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

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM2

Page 3: laporan 3.docx

Gambar 3.2 Rangkaian penampil seven segmentDalam 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.

2.1CODEVISION AVR

CodeVisionAVR(CVAVR) adalah compiler untuk bahasa pemrograman C yang nantinya digunakan untuk memprogram mikrokontroler. CVAVR adalah software yang sangat serbaguna yang menawarkan “High Performance ANSI C Compiler”, Integrated Development Environment, Automatic Program Generator dan In- System Programmer untuk keluarga mikrokontroler AVR ATMEL family.

Pada cvAVR terdapar code wizard yang sangat membantu dalam proses inisaialisasi register dalam mikrokontroller dan untuk membentuk fungsi-fungsi interupt. Pada code wizard uintuk membuat inisialisasi cukup dengan meng click atau memberi tanda check sesuai property dari desaik yang dikehendaki setelah itu register yang ter inisislisasi dapat dilihat melalui program preview atau melalui generate and save. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroller AVR mendukung sistem download secara ISP (In-System Programming).

2.1.1 Bahasa C “Codevision AVR”

Pada dasarnya bahasa pemrograman C untuk mikrokontroler sama dengan bahasa pemrograman C untuk dekstop, akan tetapi ada sedikit perbedaan pada proses pengaksesan register dan memori yang digunakan di dalam pemrograman mikrokontroler.

2.1.2 Pemanggilan Bahasa Assembler

Meskipun bahasa pemrograman yang digunakan adalah bahasa C, akan tetapi dalam pemrograman mikrokontroler masih dapat memanggil atau menggunakan bahasa pemrograman Assembler. Cara pemanggilan bahasa Assembler adalah:

#asm;instruksi assembler#endasmContoh:

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM3

Page 4: laporan 3.docx

#asmIdi r0,100Mov r2,r3#endasm

2.2KHAZAMA AVR PROGRAMMER

Khazama AVR programer merupakan salah satu sofware untuk menulis (mendownload) file. hex ke board mikrokontroler.Tujuan dari program ini adalah kecil bagus, program cepat, handal dan mudah digunakan. Anda bisa mendapatkan dan menginstalnya pada OS berbasis windows XP dan Vista untuk USBasp.

3. METODOLOGI

Pada praktikum ini, alat dan bahan yang digunakan diantaranya adalah sebagai berikut:• 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 • 1 buah kabel pita hitam

4. HASIL DAN ANALISIS

4.1HASIL

1. ANALISA PROGRAM SEGMEN1 SAMPAI SEGMEN5a. Program SEGMEN1

PROGRAM SEGMEN1//Menampilkan angka 8 pada seven segmen sebelah kanan. while (1)// Place your code here{PORTC.7=1;

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM4

menyiapkan peralatan

membuka aplikasi yang

akan digunakan

new project

mengecek tampilan

program pada 7 segmen

menjalankan program yang sudah di buat

menuliskan program

sesuai perintah modul

mencatat hsasil

praktikum

Page 5: laporan 3.docx

PORTC.6=0; //AKTIFKAN SEVEN SEGMEN KANAN PORTB=0x7f; //DATA ANGKA 8 delay_ms(10);}

Kiri kanang F e d C b a g f e d c b a0 0 0 0 0 0 0 1 1 1 1 1 1 1

Pada program segmen1, PORTC.7 sebagai DO2( seven segmen kiri) diberi logika 1 untuk menonaktifkan seven segment sebelah kiri. PORTC.6 sebagai DO1( seven segmen sebelah kanan) diberi logika 0 untuk mengaktifkan seven segment sebelah kanan untuk mengeluarkan output dari input dari mikrokontroler.PORTB yang sudah diprogram sebagai  output. PORTB=0x7f; // dimaksudkan memunculkan angka 8 pada seven segmen sebelah kanan.Untuk memunculkan angka 8, maka yang akan diaktifkan adalah bagian a,b,c,d,e,f,g.

g f e d c b a

1 1 1 1 1 1 1

Penulisan dalam PORTB dapat dituliskan dalam bentuk biner: PORTB = 0b11111111 ; atau dalam bentuk heksadesimal adalah PORTB=0x7f;. Fungsi delay dalam program ini tidak ada pengaruh karena hanya memunculkan satu karakter angka 8 dalam seven segmen.

b. Program SEGMEN2PROGRAM SEGMEN2//Menampilkan angka 4 pada seven segmen sebelah kiri. while (1)while (1)// Place your code here{PORTC.7=0; //AKTIFKAN SEVEN SEGMENT KIRIPORTC.6=1; PORTB=0x66; //DATA ANGKA 4 delay_ms(100);}

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM5

Page 6: laporan 3.docx

Kiri Kanang F e d c b a g f e d c b a1 1 0 0 1 1 0 0 1 1 1 1 1 1

Pada program segmen2, PORTC.7 dilogikankan nol untuk mengaktifkan seven segment sebelah kiri. PORTC.6 dilogikakan satu untuk menonaktifkan seven segment sebelah kanan. Data akan ditunjukkan pada seven segment sebelah kiri akan menunjukkan angka 4. PORTB=0x66; // dimaksudkan memunculkan angka 4 pada seven segmen sebelah kiriUntuk memunculkan angka 4, maka yang akan diaktifkan adalah bagian b,c,f,g.

g f e b c b a1 1 0 0 1 1 0

Penulisan  dalam bentuk desimal adalah PORTB = 0b01100110 ; apabila ditulis dalam bentuk heksa desimal adalah PORTB=0x66; ; fungsi delay dalam program ini tidak ada pengaruh karena hanya memunculkan satu karakter angka 4 dalam seven segmen

c. Gabungan SEGMEN1 dan SEGMEN2 delay 100mswhile (1)

{// Place your code herePORTC.7=1;PORTC.6=0; //AKTIFKAN SEVEN SEGMEN KANAN PORTB=0x7f; //DATA ANGKA 8 delay_ms(100); //delay waktu 100msPORTC.7=0; //AKTIFKAN SEVEN SEGMENT KIRIPORTC.6=1; PORTB=0x66; //DATA ANGKA 4 delay_ms(100); //delay waktu 100ms

}

Kiri Kanang f e d c b a g f e d c b a1 1 0 0 1 1 0 1 1 1 1 1 1 1

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM6

Page 7: laporan 3.docx

Pada program ini kedua seven segmen kiri dan kanan menyala tetapi nyala keduanya tidak bersamaan. Seven segmen kanan menyala dahulu dan diikuti seven segmen kiri dengan jeda waktu selama 100ms.

d. Program SEGMEN3

//Membuat counter 0-9 di segmen sebelah kanan// Declare your global variables hereunsigned char bil[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};// Declare your local variables hereint kanan;while (1){

// Place your code herekanan=0;for (kanan=0;kanan<10;kanan++)

{ PORTC.7=1;PORTC.6=0; PORTB=bil[kanan];delay_ms(1000);}

}

Kiri kanang f e d c b a g f e d c b a0 0 0 0 0 0 0 0 1 1 1 1 1 1

e. Program SEGMEN3 delay 100ms//Membuat counter 0-9 di segmen sebelah kanan// Declare your global variables hereunsigned char bil[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};// Declare your local variables hereint kanan;while (1){

// Place your code herekanan=0;for (kanan=0;kanan<10;kanan++)

{ PORTC.7=1;PORTC.6=0; PORTB=bil[kanan];delay_ms(100);

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM7

Page 8: laporan 3.docx

}}

Kiri kanang F e d C b a g f e d c b a0 0 0 0 0 0 0 0 1 1 1 1 1 1

Pada program segmen3, program counter dijalankan pada seven segment sebelah kanan dengan mengeset PORTC.6=0. Kemudian PORTB= bil[kanan]; bilangan yang didefinisikan yang memunculkan angka 0 sampai 9 akan dilakukan counter 0-9 dengan jeda waktu 100 ms. Memunculkan angka 0-9 secara urut dengan jeda waktu 100 ms.Pada program segmen3, dalam program didefinisikan variabel global “unsigned char bil[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};” dan mendefinisikan deklarasi local bertipe integer dengan nama “kanan”. Dengan menggunakan pernyataan for yang akan melakukan perulangan berapa kali sesuai yang diinginkan. Yang diberi nilai awal ”kanan” adalah 0 sampai nilai akhir “kanan” kurang dari 10. Dan melakukan penambahan dari nilai awal.

f. Source code Program SEGMEN4

//deklarasi variabelunsigned char bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int kanan,kiri,i;

kanan=0; //deklarasi nilai awal variabelkiri=0;i=0; for (kanan=0;kanan<10;kanan++){ //counter up untuk kanan for (kiri=0;kiri<10;kiri++){ //counter up untuk kiri for (i=0;i<10;i++){ PORTC.7=1; PORTC.6=0; PORTB=bil[kiri]; delay_ms(50); PORTC.7=0; PORTC.6=1; PORTB=bil[kanan]; delay_ms(70); } } }

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM8

Page 9: laporan 3.docx

Kiri kanang f e d c b a g f e d c b a0 1 1 1 1 1 1 0 1 1 1 1 1 1

Kiri kanang f e d c b a g f e d c b a1 0 1 1 1 1 1 1 0 1 1 1 1 1

Pada program ini nyala komponen seven segmen dimulai dari 00 hingga 99. Dimana pada komponen seven segmen kanan digunakan sebagai satuan. Jika satuan sudah menunjukkan angka 9 maka akan menambah komponen seven segmen di kiri yang berlaku sebagai puluhan. Jika keduanya sudah menunjukkan angka 99 maka akan kembali pada tampilan awal (mereset) yaitu angka 00.

g. Source code Program SEGMEN5

//deklarasi variabelunsigned char bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int kanan,kiri,i,angka;

kanan=0;kiri=0;i=0;angka=0; if (angka==0){ //kondisi counter up for (kanan=0;kanan<10;kanan++){ // counter up PORTC.7=0; PORTC.6=1; PORTB=bil[kiri]; delay_ms(100); PORTC.7=1; PORTC.6=0; PORTB=bil[kanan]; delay_ms(100); if (kanan==5){kiri++;} // jika kanan angka 9 maka angka pada kiri bertambah

if (kiri==3 && kanan==5){angka =1;i=1;break;} ;} // jika di kiri angka 3 dan kanan angka 5 maka counter dihentikan

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM9

Page 10: laporan 3.docx

} } if (angka==1){ for(kanan=9;kanan>=0;kanan--){ if(i==1){kanan=5;i++;} //kondisi counter down dimulai dari angka 7, dan dijalankan hanya 1X PORTC.7=0; PORTC.6=1; PORTB=bil[kiri]; delay_ms(100); PORTC.7=1; PORTC.6=0; PORTB=bil[kanan]; delay_ms(100); if (kanan==0){kiri--;} //jika kanan angka 0 maka angka pada kiri berkurang if (kiri==-1 && kanan==0){angka =0;kiri=0;break;} //jika keduanya sudah menunjuk 0 maka

akan mengulangi lagi di kondisi counterup }}

KIRI

KANAN

Pada program ini, tampilan menggunakan counter up dimulai dari angka 00 sampai 35 serta conter down dari angka 35 sampai 00.Langkah-langkah :a. Mendeklarasikan variabel yang bernilai 0.b. Menuliskan program untuk membuat counter up c. Pengkondisian counter up dibatasi sampai angka 35.d. program counter up akan memanggil program counter down e. dengan ketentuan setelah mencapai angka 35 maka akan berkurang 1 hingga

mencapai kondisi 00.f. Jika sudah 00 maka program kembali pada conter down dan memmanggil

program counter up (perulangan)

2. Instruksi apa yang digunakan untuk mengeluarkan data ke seven segment?Inputan pada PORTB = nilaiMisalnya : PORTB = 0x66;

3. Instruksi apa yang digunakan untuk mengontrol nyala seven segment?PORTC.7 dan PORTC.6 yang di set 1 atau 0

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM10

g f e d c b a1 0 0 1 1 1 1

g f e d c b a1 1 0 1 1 0 1

Page 11: laporan 3.docx

4. Jika nilai delay pada Gabungan Program SEGMEN1 dan SEGMEN2 diperbesar, apa yang terjadi pada tampilan seven segment?Jika nilai delaynya diperbesar maka jeda waktu bergantinya kedua seven segment itu semakin lama.Pergantian nyala seven segmen kanan dan kiri juga semakin lama

5. Jika nilai delay pada program SEGMEN3 diperkecil, apa yang terjadi pada tampilan seven segment?Jika nilai delaynya diperkecil maka jeda waktu semakin cepat .

5. KESIMPULAN

1. Cara mengantarmukakan mikrokontroler dengan rangkaian penampil seven segment adalah sebagai berikut :a. Menyusun program untuk mengantarmukakan rangkaian penampil seven

segment dengan program Code Vision AVR . Membuat project baru dengan inisialisasi PORT-PORT yang akan digunakan sesuai dengan tampilan seven segment yang diinginkan.

b. Program yang sudah dibuat ditransfer dari computer ke dalam mikrokontroler dengan menggunakan ISP downloader.

c. Jika program yang dibuat sudah benar, maka seven segment akan menyala sesuai dengan yang diinginkan.

1. Cara memprogram mikrokontroler untuk menampilkan karakter ke penampil seven segment adalah sebagai berikut :a. Inisialisasi PORT yang akan digunakan.

Inisialisasinya adalah sebagai berikut :PORTB=0x00;DDRB=0xff; //portb sebagai output, 0b11111111

PORTC=0xf0;DDRC=0xf0; // portc sebagai input dan output, 0b11110000

Untuk mengaktifkan segment sebelah kanan maka dalam main program harus diberi script : PORTC.7=1;Sebaliknya untuk mengaktifkan segment sebelah kiri maka dalam main program harus diberi script : PORTC.7=0 Instruksi yang digunakan untuk mengeluarkan data ke seven segmen adalah : PORTC.7 dan PORTC.6 yang di set 1 atau 0Instruksi yang digunakan untuk mengontrol nyala seven segmen adalahInputan pada PORTB = nilaiMisalnya : PORTB = 0x5b

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM11

Page 12: laporan 3.docx

DAFTAR PUSTAKA

[1] Lestari , dyah.2012. Modul Praktikum Mikroprosessor dan Teknik Antarmuka. Malang: laboratorium mikroprosessor,ft-um

[2] http://repository.binus.ac.id/content/H0461/H046142714.pdf , 17 Februari 2013, pukul 08.00 wib.

[3] ilmubawang.blogspot.com/2011/04/download-artikel-ini-dalam-bahasa.html diakses 17 Februari 2013,pukul 08.2 wib

[4] Permatasari, dian. 2010. “Antarmuka mikrokontroler dengan seven segmen”. http://puspitaasmara.blogspot.com/2010/12/antarmuka-mikrokontroler-dengan-seven.html diakses pada 17 Februari 2013 pukul 10.10 WIB

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika – FT UM12