You are on page 1of 13

LAPORAN PRAKTIKUM MIKROPROSESOR DAN TEKNIK ANTARMUKA

Petunjuk Praktikum DYAH LESTARI

MODUL V PRAKTIKUM ANTARMUKA MIKROKONTROLER DENGAN LCD ( LIQUID CRYSTAL DISPLAY )


Tanggal praktikum : 25 Februari 2013 Pengumpulan laporan pada tanggal : 3-4 Maret 2013

OLEH :
KELOMPOK 8 CHOLIFANUR ANNISAK (100533402626) S1 PTI 2010 / Offering A

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI PENDIDIKAN TEKNIK INFORMATIKA MARET 2013
Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM
1

MODUL I ANTARMUKA MIKROKONTROLER DENGAN LCD ( LIQUID CRYSTAL DISPLAY )


Cholifanur Annisak (100533402626-Kelompok 8) Tanggal Percobaan: 25/02/2013 PTI494 Praktikum Mikroprocessor dan Teknik Antarmuka

Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika Fakultas Teknik Universitas Negeri Malang
Abstrak Modul V Praktikum Antarmuka Mikrokontroler Dengan LCD ( LIQUID CRYSTAL DISPLAY ) dengan tujuan untuk dapat mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan modul penampil LCD serta untuk mengetahui dan memahami bagaimana memprogram mikrokontroler untuk menampilkan karakter ke penampil LCD Praktikum ini, diawali dengan menghubungkan alfanumeric port D yaitu HD44780 dan charperline 16 ,dalam praktikum kali ini kami mempraktekkan cara mengantarmukakan mikrokontroler dengan penampil LCD, modul LCD merupakan tampilan 16x2 baris dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD kemudian mengamati nyala LCD dengan perintah pada program ,kseimpulan dari praktik ini yaitu untuk dapat menampilkan inputan yang telah dimasukkan agar muncul pada outputnya dibutuhkan software pemrograman agar inputan dapat bisa dibaca oleh outputnya. Kata kunci: Mikrokontroler,LCD. PENDAHULUAN
Percobaan yang dilakuakan pada Praktikum Antarmuka Mikrokontroler dengan seven segmen antara lain : Memprogram mikrokontroler melalui software yang disediakan Mencoba beberapa code program yang terdapat pada modul untuk diamati tampilan LCD Memodifikasi code program untuk mendapatkan LCD sesuai modul praktikum

STUDI PUSTAKA
2.1 LCD M1632 Modul LCD M1632 seperti dalam Gambar 5.1 merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai: CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), DDRAM (Display Data Random Access Memory).

Gambar 2.1.1 LED Untuk menyalakan sebuah LED perlu rangkaian tambahan yang dapat dilihat dalam Gambar 2.2. Rangkaian tersebut berupa sebuah transistor yang difungsikan sebagai saklar dan dua buah resistor untuk pembatas arus. Dalam modul I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan ke sebuah soket jumper bernama OUTPUT.
Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM
2

Gambar 2.1.2 Rangkaian LED

1.1

KEYPAD

Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga membentuk matriks. Keypad banyak digunakan sebagai piranti masukan dalam piranti elektronik. Gambar 5.1 memperlihatkan bentuk fisik keypad. Keypad ini memiliki 16 tombol yaitu 0,1,2,3,4,5,6,7,8,9,A,B,C,D,* dan #.

Gambar 2.2.1 Keypad 4x4 Dalam gambar 5.2 keypad dihubungkan ke PORTB mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi kolom (c1-c4) terhubung ke PORTB.4PORTB.7. Sedangkan untuk mengetahui tombol apa yang ditekan oleh user, 8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.

Gambar 2.2.2 Rangkaian keypad dan LED

METODOLOGI
Langkah-langkah percobaan : a. Menyiapkan komponen dan alat yang dibutuhkan Komponen dan alat yang digunakan selama praktikum antara lain :

1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama, 1 buah catudaya DC +5V , 1 buahmultimeter, 1 buah ISP Downloader AVR , 1 buah sistem minimum AVR ,1 buah modul I/O ,1 buah keypad, 1 buah kabel printer USB ,2 buah kabel pita hitam.
3

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

b. Menghubungkan soket jumper port B pada minimum system dengan soket jumper
KEYPAD dan soket jumper port C pada minimum system dengan soket jumper OUTPUT pada I/O c. Buka program Code Vision AVR d. Buat project baru dengan inisialisasi PORTB.0-PORTB.3 sebagai output dengan kondisi awal berlogika HIGH dan PORTB.4 PORTB.7 sebagai input dengan Pull-Up (DDRB = 0FH dan PORTB = FFH), serta PORTC sebagai Output dan kondisi awal Low ( DDRC=FFH dan PORTC=00H), sehingga pada program bagian inisialisasi PORTB dan PORTC. e. Deklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program ke program utama sebagai bilangan integer pada global variable yang ada pada modul f. Tuliskan script yang ada pada modul g. Tambahkan fungsi berikut di bawah program utama ( diluar fungsi void ) yang ada pada modul h. Tekan tombol keypad, amati nyala Led dan isi tabel yang ada pada modul i. j. Mengubah program utama sesuai dengan yang ada di modul kemudian amati nyala led sesuai perintah keypad. Membuat program dengan algoritma sesuai ketentuan modul kemudian amati nyala led sesuai perintah keypad.

Step 1 : Menyiapkan Alat dan bahan

Step 2 : Menghubung soket jumper

Step 3 : Buka program Code Vision AVR

Step 4 : Deklarasi fungsi keypad

Step 5 : Tuliskan Script

Step 6 : Tambah fungsi

Step 7 : Tekan tombol keypad

Step 8 : Amati nyala LED

Step 9 : Mengubah program utama

Step 10 : Membuat program dan algoritma

Gambar 3-1Diagram Langkah Kerja Percobaan

HASIL

DAN

ANALISIS
0b00110000,0b00100000,0b00001000}; Unsigned char key[10] ={0b00011000,0b00111100,0b01111110,0 b11111111,0b11111111,0b11111111, 0b11111111,0b01111110,0b00111100,000 11000}; //Declare your local variables hereint x,y;while (1) {//a if(keypad()==0)PORTC=0b00000001; //b if(keypad () == 1)PORTC=0b00000010; //c if(keypad()==2)PORTC=0b00000100; //d if(keypad()==3)PORTC=0b00001000;
4

1. Analisis tabel 4.1 Source Code while (1) { //a if(keypad()==0) PORTC=0x00; //b if(keypad()==1) PORTC=0xff; } //Declare your global variables here Unsigned char led[15] ={0b11110000,0b11100000,0b11010000,0 b11000000,0b10110000,0b10100000, 0b100100000,0b10000000,0b01110000,0b 01100000,0b01010000,0b01000000,

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

//e if(keypad()==4)PORTC=0b00010000; //f if(keypad()==5)PORTC=0b00100000; //g if(keypad()==6)PORTC=0b01000000; //h if(keypad()==7)PORTC=0b10000000; //i if(keypad()==8)for(x=0;x<15;x++) {PORTC=led[x];delay_ms(1000); } //j if(keypad()==9)for(y=0;y<10;y++) {PORTC=key[y];delay_ms(1000); }

//k if(keypad()==10)PORTC=0b01010101; //l if(keypad()==11)PORTC=0b10101010; //m if(keypad()==12)PORTC=0b01010101;delay _ms(1000);PORTC=0b10101010;delay_ms(1 000); //n if(keypad()==13)PORTC=0b00100100; //o if(keypad()==14)PORTC=0x00; //p if(keypad()==15)PORTC=0xff; }

Gambar tabel 4.1


Analisa: Dalam penyalaan LED sebagai Output dari keypad terjadi proses scanning, untuk melakukan proses scanning atau pengecekan kita dapat menggunakan fungsi if. Untuk pendeklarasikan kita harus menambahkan unsigned char keypad ( ) pada program utama, hal ini bertujuan agar keypad dapat terbaca oleh program utama, hal ini bertujuan agar keypad dapat terbaca oleh program yang dihubungkan dengan mikrokontroler. Agar dapat dikenali oleh program maka kita harus mendeklarasikan variabel pada program tersebut, contohnya : //Declare your global variables here Unsigned char Led [15]= {0b11110000,0b11100000,.}

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

2. SourceCode percobaan 8
while (1) { if(keypad()==247) PORTC=0; else if(keypad()==1) PORTC=0xff; else if(keypad()==0) PORTC=0x00; else PORTC=keypad(); //menampilkan hasil yang dikembalikan oleh fungsi ke LED } } if(PINB.4==0) return (1); //======================== PORTB = 0b11111101; //aktifkan baris2 delay_ms(100); if(PINB.7==0) return (11); if(PINB.6==0) return (6); if(PINB.5==0) return (5); if(PINB.4==0) return (4); //======================== PORTB = 0b11111011; //aktifkan baris3 delay_ms(100); if(PINB.7==0) return (12); if(PINB.6==0) return (9); if(PINB.5==0) return (8); if(PINB.4==0) return (7); //======================== PORTB = 0b11110111; //aktifkan baris4 delay_ms(100); if(PINB.7==0) return (13); if(PINB.6==0) return (15); if(PINB.5==0) return (0); if(PINB.4==0) return (14);

unsigned char keypad() { PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1) delay_ms(100); if(PINB.7==0) return (10); if(PINB.6==0) return (3); if(PINB.5==0) return (2); Hasil :

Gambar Hasil tampilan Analisa : Jika yang ditekan tombol keypad 0 maka semua led ditekan maka semua lampu led menyala 3. Sorce code percobaan 9 while (1) { if(keypad()==247){ PORTC=0; } else if(keypad()==0) { PORTC=1; } else if(keypad()==1) { PORTC=2; } else if(keypad()==2) { PORTC=4; } else

percobaan 8 mati tetapi apabila tombol keypad 1 if(keypad()==3) PORTC=8; } else if(keypad()==4) PORTC=16; } else if(keypad()==5) PORTC=32; } else if(keypad()==6) PORTC=64; } else if(keypad()==7) PORTC=128; } else { { { { {

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

if(keypad()==8) { for(i=240;i>=16;){ PORTC=i; i=i-16; delay_ms(1000); } } else if(keypad()==9) { for(i=0;i<10;i++){ PORTC=bil[i]; delay_ms(1000); } } else if(keypad()==10) { PORTC=85; } else if(keypad()==11) { PORTC=170; } else if(keypad()==12) { PORTC=85; delay_ms(1000); PORTC=170; delay_ms(1000); } else if(keypad()==13) { PORTC=26; //anis nim 100533402626 } else if(keypad()==14){ PORTC=0x00; } else if(keypad()==15){ PORTC=0xff; } // Hasil else if {

// //

PORTC=keypad(); } //menampilkan hasil yang dikembalikan oleh fungsi ke LED } } unsigned char keypad() { PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1) delay_ms(100); if(PINB.7==0) return (10); if(PINB.6==0) return (3); if(PINB.5==0) return (2); if(PINB.4==0) return (1); //======================== PORTB = 0b11111101; //aktifkan baris2 delay_ms(100); if(PINB.7==0) return (11); if(PINB.6==0) return (6); if(PINB.5==0) return (5); if(PINB.4==0) return (4); //======================== PORTB = 0b11111011; //aktifkan baris3 delay_ms(100); if(PINB.7==0) return (12); if(PINB.6==0) return (9); if(PINB.5==0) return (8); if(PINB.4==0) return (7); //======================== PORTB = 0b11110111; //aktifkan baris4 delay_ms(100); if(PINB.7==0) return (13); if(PINB.6==0) return (15); if(PINB.5==0) return (0); if(PINB.4==0) return (14); }

Analisis : Lampu led akan menyala sesuai dengan perintah pada keypad yang di tekan misalkan tombol keypad yang ditekan adalah 0 maka lampu led yang menyala hanya led bit ke -0 selain itu bit yang lain mati begitu seterusnya hingga dimulai dari keypad 0 hingga 7. Hasil :
Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM
7

Analisa : Lampu led akan menyala secara bergantian secara berurutan saat salah satu tombol dari keypad ditekan, kita dapat menggunakan fungsi perulangan. Jika tombol 8 ditekan nyala led akan menyala bergantian dengan urutan 11110000,11100000,11010000,11000000,10110000,10100000,10010000,10000000,011100 00,01100000,01010000,01000000, 00110000,00100000,00010000 Hasil :

Analisis Lampu led akan menyala secara bergantian secara berurutan saat salah satu tombol dari keypad ditekan, kita dapat menggunakan fungsi perulangan. Jika tombol 9 ditekan maka nyala led akan berurutan dan bergantian dalam menyalakan lampu led dengan urutan 00011000,00111100,01111110,11111111,11111111,11111111,01111110,00111100,000110 00 Hasil :
Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM
8

Analisis: Jika tombol keypad A di tekan akan menyalakan led bit ke 6,4,2,0 dan led bit 7,5,3,1 akan mati. Hasil :

Analisis:Jika tombol keypad B di tekan akan menyalakan led bit 7,5,3,1 dan led mati pada bit 6,4,2,0. Hasil:

Analisis : Jika tombol C ditekan maka secara bergantian karena menggunakan perulangan if sehingga nyala lampu led menyala bergantian 0101010101,10101010 dengan delay 1 detik Hasil:

Analisis : Jika tombol D ditekan akan menampilkan nyala led 2 digit terakhir nomer nim 100533402626 jadi lampu led nyala pada bit ke 2 dan 6 selain itu nyala led mati. Hasil :

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

Analisis: jika tombol * ditekan maka semua led mati 00000000 Hasil:

Analisis: Jika tombol # ditekan maka semua led nyala 11111111 Analisa Data : 1. Analisa hasil Percobaan pada tabel 4.1! Jawab : Dalam penyalaan LED sebagai Output dari keypad terjadi proses scanning, untuk melakukan proses scanning atau pengecekan kita dapat menggunakan fungsi if. Untuk pendeklarasikan kita harus menambahkan unsigned char keypad ( ) pada program utama, hal ini bertujuan agar keypad dapat terbaca oleh program utama, hal ini bertujuan agar keypad dapat terbaca oleh program yang dihubungkan dengan mikrokontroler. Agar dapat dikenali oleh program maka kita harus mendeklarasikan variabel pada program tersebut, contohnya : //Declare your global variables here Unsigned char Led [15]= {0b11110000,0b11100000,.} 2. Instruksi apa yang digunakan untuk membaca tombol keypad yang telah ditekan? Jawab : yaitu if(keypad()==15){ PORTC=0xff; 3. Instruksi apa yang digunakan untuk menyalakan LED sesuai keypad yang di tekan? Jawab : yaitu Port C = Keypad 4. Buatlah flowchart instruksi pada nomor 3 dan jelaskan algoritmanya? Jawab : Flowchart pada percobaan 3 Penjelasan Algoritma yaitu jika tombol 0 ditekan maka dia tidak akan menyalakan lampu led sehingga lampu lampu led mati semua tetapi jika tombol 1 ditekan maka dia akan menyalakan led bit 0 tetapi apabila tidak maka akan melajutkan ke program selanjutnya begitu pula selanjutnya. Jika inputannya sesuai maka akan menyalakan led yang dikehendaki pada lampu led tetapi jika tidak sesuai dengan inputannya maka diakan tetap melanjutkan program sehingga dia mendapatkan inputan yang sesuai dengan yang diinginkan.

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

10

start

Keypad ()=0 Tidak Keypad ()-1

Ya 00000000

00000001

Keypad () = 2

00000010

00000100 Keypad () = 3 00001000 Keypad () = 4 0001000 Keypad () = 5 00100000 Keypad () = 6

Keypad ( )=7

01000000

Keypad () = 8

11110000 ,11100000 , 1101000 ,11000000 ,10110000 ,10100 00,10000000 ,01110000 ,01100000 ,01 010000 ,00110000 ,00100000 ,000100 00,{delay I detik }

Keypad () = 9

00011000 , 00111100 ,01111110 ,01111110 , 11111111 ,11111111 ,11111111 ,01111 110, 00111100 ,00011000 {delay 1 detik} ,

Keypad () = A

01010101

Keypad () = B

10101010

Keypad () = C

01010101 ,10101010 {delay 1 detik }

Keypad () = D

01000100

Keypad () = *

0000000

Keypad ()= #

11111111

END

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

11

//Declare your global variables here Unsigned char led[15] ={0b11110000,0b11100000,0b110 10000,0b11000000,0b10110000,0b 10100000, 0b100100000,0b10000000,0b0111 0000,0b01100000,0b01010000,0b0 1000000, 0b00110000,0b00100000,0b00001 000}; Unsigned char key[10] ={0b00011000,0b00111100,0b011 11110,0b11111111,0b11111111,0b 11111111, 0b11111111,0b01111110,0b00111 100,00011000}; //Declare your local variables hereint x,y;while (1) {//a if(keypad()==0)PORTC=0b0000000 1; //b if(keypad () == 1)PORTC=0b00000010; //c if(keypad()==2)PORTC=0b0000010 0; //d if(keypad()==3)PORTC=0b0000100 0; //e if(keypad()==4)PORTC=0b0001000 0; //f

if(keypad()==5)PORTC=0b0010000 0; //g if(keypad()==6)PORTC=0b0100000 0; //h if(keypad()==7)PORTC=0b1000000 0; //i if(keypad()==8)for(x=0;x<15;x++) {PORTC=led[x];delay_ms(1000); } //j if(keypad()==9)for(y=0;y<10;y++) {PORTC=key[y];delay_ms(1000); } //k if(keypad()==10)PORTC=0b010101 01; //l if(keypad()==11)PORTC=0b101010 10; //m if(keypad()==12)PORTC=0b010101 01;delay_ms(1000);PORTC=0b1010 1010;delay_ms(1000); //n if(keypad()==13)PORTC=0b001001 00; //o if(keypad()==14)PORTC=0x00; //p if(keypad()==15)PORTC=0xff; }

KESIMPULAN
Berdasarkan percobaan diatas dapat disimpulkan bahwa : Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga membentuk matriks. Untuk menyalakan led sebagai output dari keypad dibutuhkan rangkaian tambahan dari mikrokontroler. Keypad sebagai input dan LED sebagai output. Keypad dihubungkan ke PORTB mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi kolom (c1-c4) terhubung ke PORTB.4-PORTB.7. Sedangkan untuk mengetahui tombol apa yang ditekan oleh user, 8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC. Led akan menyala dengan nyala sesuai dengan angka desimal yang ditekan Agar lampu LED dapat menyala dan mati maka pada script perlu di deklarasikan variabel LED terslebih dahulu.

Unsigned char keypad(); Berfungsi untuk mendeklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai bilangan integer.
Untuk menyalakan led dengan nyala bergantian secara berurutan saat salah satu tombol dari keypad ditekan, kita dapat menggunakan fungsi perulangan.

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

12

Dalam memprogram mikrokontroler untuk menyalakan suatu LED adalah dengan memasukkan instruksi-instruksi dalam sebuah program sesuai dengan tampilan LED yang diinginkan. Pendeklarasian variabel sangat penting agar dapat dikenali oleh program dan dapat dijalankan pada mikrokontroler.

Daftar Pustaka
Lestari ,dyah.2012. Modul Praktikum Mikroprosessor Dan Teknik Antarmuka.Malang: laboratorium mikroprosessor,ft-um Jackstar H. S., Panduan Penulisan Laporan, Jacks Publishing, Bandung, 2008. Adel S. Sedra dan Kennet C. Smith, Microelectronic Circuits, Oxford University Press, USA, 1997. http://ibnubudir.files.wordpress.com/2007/12/praktikum-dasar-mikrokontroler-topview-sim.pdf 14 Februari 2013 20.44 WIB http://puspitaasmara.blogspot.com/2010/12/antarmuka-mikrokontroler-denganseven.html diakses pada 14 Februari 2013 21.05 WIB http://staff.uny.ac.id/sites/default/files/07%20Modul%20Bahan%20Ajar-07.pdf diakses 19 Februari2013 12:48 WIB http://diary-mybustanoel.blogspot.com/2011/12/antarmuka-mikrokontroler-keypaddengan.html diakses 19 Februari 2013 12:52 WIB http://puspitaasmara.blogspot.com/2010/12/antarmuka-mikrokontroler-dengankeypad.html diakses 19 Februari 2013 12:54 WIB http://arisulistiono.blogspot.com/2010/11/antarmuka-keypad-matrix-dengan.html? m=0 diakses 19 Februari2013 1:01 WIB http://puspitaasmara.blogspot.com/2010/12/laporan-tugas-besar-praktikum.html 22 Februari 2013 8:24 WIB http://id.scribd.com/doc/112428239/MODULIV-110534406810-F 10:13 WIB 22 Februari 2013

Laporan Praktikum - Laboratorium Mikroprocessor S1 Pendidikan Teknik Informatika FT UM

13

You might also like