This is default featured slide 1 title

UNIVERSITAS NEGERI MALANG

This is default featured slide 3 title

S1 PENDIDIKAN TEKNIK ELEKTRO OFFREING D

This is default featured slide 4 title

WURI HANDAYANI (150534602133)

This is default featured slide 5 title

PENGEMBANGAN SUMBER BELAJAR untuk memenuhi Tugas Mata Kuliah pengembangan sumber belajar yang dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto

Laman

SELAMAT BELAJAR

Sabtu, 03 Desember 2016

LAPORAN PRAKTIKUM ANTARMUKA MIKROKONTROLER dengan LCD



LAPORAN PRAKTIKUM 5

ANTARMUKA MIKROKONTROLER DENGAN LCD

Disusun untuk Memenuhi Matakuliah Praktikum Lab PTE-03
Dibimbing oleh Ibu Dyah Lestari












KELOMPOK 8
                          Muhammad Rusdi                   150534601669
                          Muhammad Zaki N                 150534601331
                           Syafiq Ubaidillah                     150534605079
                            Wuri  Handayani                     150534602133







FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

PRODI S1 PENDIDIKAN TEKNIK ELEKTRO

UNIVERSITAS NEGERI MALANG






PERCOBAAN 5

ANTARMUKA MIKROKONTROLER DENGAN LCD

1.    TUJUAN
  • Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan modul penampil LCD.
  • Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menampil­kan karakter ke penampil LCD.

2.    DASAR TEORI

a.      LCD M1632

LCD (Liquid Cristal Display) berfungsi untuk menampilkan karakter angka, huruf ataupun simbol dengan lebih baik dan dengan konsumsi arus yang rendah. LCD (Liquid Cristal Display) dot matrik M1632 merupakan modul LCD buatan hitachi. Modul LCD (Liquid Cristal Display) dot matrik M1632 terdiri dari bagian penampil karakter (LCD) yang berfungsi menampilkan karakter dan bagian sistem prosesor LCD dalam bentuk modul dengan mikrokontroler yang diletakan dibagian belakan LCD tersebut yang berfungsi untuk mengatur tampilan LCD serta mengatur komunikasi antara LCD dengan mikrokontroler yang menggunakan modul LCD tersebut. Modul prosesor M1632 pada LCD tersebut memiliki memori tersendiri sebagai berikut.





LCD ini memiliki 16 kaki, sebagaimana ditunjukkan dalam Tabel 5.1.
Tabel 5.1 Konfigurasi Pin LCD M1632
No
Kaki
Deskripsi
1
Vss
0V (GND)
2
Vcc
+5V
3
VLC
LCD Contrast Voltage
4
RS
Register Select; H: Data Input; L: Instruction Input
5
RD
H:Read; L: Write
6
EN
Enable Signal
7
D0
Data Bus 0
8
D1
Data Bus 1
9
D2
Data Bus 2
10
D3
Data Bus 3
11
D4
Data Bus 4
12
D5
Data Bus 5
13
D6
Data Bus 6
14
D7
Data Bus 7
15
V+BL
Positive Backlight Voltage
16
V-BL
Negative Backlight Voltage

*      DDRAM
DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. Posisi ini ditunjukkan dalam Gambar 5.2.

Gambar 5.2 Posisi DDRAM
*      CGRAM
CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang.

*      CGROM
CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Pada Gambar 6.3, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H ke DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.
Dalam Gambar 5.4 modul LCD dihubungkan ke PORTB mikrokontroler dimana kaki RS, RD, EN terhubung ke PORTB.0-PORTB.2 dan D4, D5, D6, D7 terhubung ke PORTB.4-PORTB.7.
Gambar 5.3 pola Karakter dalam CGROM
Gambar 5.4 Rangkaian LCD

Fungsi Pin LCD (Liquid Cristal Display) Dot Matrix 2×16 M1632 DB0
·           DB7 adalah jalur data (data bus) yang berfungsi sebagai jalur komunikasi untuk mengirimkan dan menerima data atau instruksi dari mikrokontrooler ke modul LCD.
·           RS adalah pin yang berfungsi sebagai selektor register (register sellect) yaitu dengan memberikan logika low (0) sebagai register perintah dan logika high (1) sebagai register data.
·           R/W adalah pin yang berfungsi untuk menentukan mode baca atau tulis dari data yang terdapat pada DB0 – DB7. Yaitu dengan memberikan logika low (0) untuk fungsi read dan logika high (1) untuk mode write.
·           Enable (E), berfungsi sebagai Enable Clock LCD, logika 1 setiap   kali pengiriman atau pembacaan data.
1. Penulisan Data Register Perintah LCD (Liquid Cristal Display) M1632
Penulisan data ke Register Perintah dilakukan dengan tujuan mengatur tampilan LCD, inisialisasi dan mengatur Address Counter maupun Address Data. Kondisi RS berlogika 0 menunjukkan akses data ke Register Perintah. RW berlogika 0 yang menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit 7 sampai bit 4) terlebih dahulu dikirimkan dengan diawali pulsa logika 1 pada E Clock. Kemudian Nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawali pulsa logika 1 pada E Clock lagi. Untuk mode 8 bit interface, proses penulisan dapat langsung dilakukan secara 8 bit (bit 7 … bit 0) dan diawali sebuah pulsa logika 1 pada E Clock.
2. Pembacaan Data Register Perintah LCD (Liquid Cristal Display) M1632
Proses pembacaan data pada register perintah biasa digunakan untuk melihat status busy dari LCD atau membaca Address Counter. RS diatur pada logika 0 untuk akses ke Register Perintah, R/W diatur pada logika 1 yang menunjukkan proses pembacaan data. 4 bit nibble tinggi dibaca dengan diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dibaca dengan diawali pulsa logika 1 pada E Clock. Untuk Mode 8 bit interface, pembacaan 8 bit (nibble tinggi dan rendah) dilakukan sekaligus dengan diawali sebuah pulsa logika 1 pada E Clock.
3. Penulisan Data Register Data LCD (Liquid Cristal Display) M1632
Penulisan data pada Register Data dilakukan untuk mengirimkan data yang akan ditampilkan pada LCD. Proses diawali dengan adanya logika 1 pada RS yang menunjukkan akses ke Register Data, kondisi R/W diatur pada logika 0 yang menunjukkan proses penulisan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim dengan diawali pulsa logika 1 pada sinyal E Clock dan kemudian diikuti 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali pulsa logika 1 pada sinyal E Clock.
4.   Pembacaan Data Register Data LCD (Liquid Cristal Display) M1632
Pembacaan data dari Register Data dilakukan untuk membaca kembali data yang tampil pada LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang menunjukkan adanya akses ke Register Data. Kondisi R/W diatur pada logika tinggi yang menunjukkan adanya proses pembacaan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali dengan pulsa logika 1 pada E Clock.
3.    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 LCD
  • 1 buah kabel printer USB
4.    PROSEDUR KERJA
1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 6.5. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper pada LCD.
2.  
3.   Gambar 5.5 Rangkaian antarmuka mikrokontroler dengan LCD
4.   Buka program Code Vision AVR
5.   Buatlah file project (.prj) kemudian pilih IC yang digunakan (ATmega8535) dan atur clock 4.000 Mhz. (seperti praktikum sebelumnya).
6.   Klik sub tab Libraries>>Alphanumeric LCD (alcd.h). Centang Enable Alphanumeric LCD Support kemudian sesuaikan pada gambar di bawah ini. Kemudian klik OK
7.    
8. Buatlah file source (.c) kemudian hubungkan file project dengan file source seperti pada praktikum sebelumnya.
9. Tuliskan file header

10. Buatlah program utama dan tuliskan program berikut di dalam program utama .
11. Tuliskan program berikut dalam program utama tepatnya di dalam while(1).
12. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
13. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).
14. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
15. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).
while (1)
{   
                                                              i.      lcd_gotoxy(0,0);//menempatkan kursor di baris 0 kolom 0
                                                            ii.      lcd_putsf("Saya belajar");//menampilkan string “Saya belajar”
}
16. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
17. Hapus program yang ada di dalam while. Tuliskan program berikut 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 tampilan LCD.
19. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).
20. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
21. Buatlah tampilan nama anda berjalan dari kiri ke kanan pada baris 0 dan NIM anda berjalan dari kanan ke kiri pada baris 1 (tampidlan di baris 0 dan 1 muncul secara bersamaan).
22. Ubahlah nilai dalam lcd_init(16) menjadi lcd_init(40) dan lihat perbedaannya.

5.        DATA HASIL PERCOBAAN
A.     Source code
1.      Program pertama
while(1)
{
lcd_gotoxy(0,0);
lcd_putchar(0x41);
}
     }

2.      Program kedua
while(1)
{
lcd_gotoxy(0,0);
lcd_putchar(0x41);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,1);
lcd_putchar(0x30);
delay_ms(1000);
lcd_clear();
}
}

3.      Program ketiga
while(1)
{
  lcd_gotoxy(0,0);
  lcd_putsf("saya belajar");
}
}

4.      program keempat
while(1)
{
lcd_gotoxy(0,1);
lcd_putsf("Antarmuka LCD");
delay_ms(1000);
}
}

5.      program kelima
while(1)
{
lcd_gotoxy(0,0);
lcd_putsf("Saya belajar");
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("Antarmuka LCD");
delay_ms(1000);
lcd_clear();
}
}


6.      program keenam
while(1)
{
 int a,b;
 for (a=0,b=4; a<20; a++,b--)
 { 
    lcd_clear();
    lcd_gotoxy (a,0);
    lcd_putsf ("M Zaki Nasrulloh");
    if(a==0)
    {lcd_gotoxy (5,1);lcd_putsf ("150534601331"); }
    if(a==1)
    {lcd_gotoxy (4,1);lcd_putsf ("150534601331");  }
    if(a==2)
    {lcd_gotoxy (3,1);lcd_putsf ("150534601331"); }
    if(a==3)
    {lcd_gotoxy (2,1);lcd_putsf ("150534601331");}
    if(a==4)
    {lcd_gotoxy (1,1);lcd_putsf ("150534601331");}
    if(a==5)
    {lcd_gotoxy (0,1);lcd_putsf ("150534601331");} 
    if(a==6)
    {lcd_gotoxy (0,1);lcd_putsf ("50534601331");}
    if(a==7)
    {lcd_gotoxy (0,1);lcd_putsf ("0534601331");} 
    if(a==8)
    {lcd_gotoxy (0,1);lcd_putsf ("534601331");}    
    if(a==9)
    {lcd_gotoxy (0,1);lcd_putsf ("34601331");}    
    if(a==10)
    {lcd_gotoxy (0,1);lcd_putsf ("4601331");}
     if(a==11)
    {lcd_gotoxy (0,1);lcd_putsf ("601331");}
     if(a==12)
    {lcd_gotoxy (0,1);lcd_putsf ("01331");} 
     if(a==13)
    {lcd_gotoxy (0,1);lcd_putsf ("1331");} 
     if(a==14)
    {lcd_gotoxy (0,1);lcd_putsf ("331");} 
     if(a==15)
    {lcd_gotoxy (0,1);lcd_putsf ("31");} 
     if(a==16)
    {lcd_gotoxy (0,1);lcd_putsf ("1");}
     if(a==17)
    {lcd_gotoxy (0,1);lcd_putsf (" ");}        
    delay_ms (1000); 
 }
}
}


6.        ANALISA DATA
6.1 Program 1
     Program 1 adalah program tentang operasi LCD sederhana, yaitu menampilkan karakter huruf A pada bagian kiri atas LCD. Sintaks program diawali dengan header program #include <mega8535.h> untuk mengaktifkan fungsi IC ATmega 8535. Kemudian #include <alcd.h> untuk mengaktifkan fungsi LCD dan header terakhir #include <delay.h> untuk mengaktifkan fungsi jeda pada tampilan LCD. Setelah header program kemudian adalah tipe data void dilanjutkan lagi dengan inisialisasi lcd_init(16) yang bermakna bahwa kolom yang tersedia pada lcd adalah 16 (kolom 0-15). Jika angka dalam kolom dirubah, maka jumlah kolom yang dapat diisi karakter sama dengan angka yang tertera pada angka inisialisasi. Setelah itu masuk pada program utama while (1). Sintaks program yang terdapat program utama adalah lcd_gotoxy(0,0) yang bermakna bahwa daerah yang akan dituju pada lcd adalah kolom 0 baris 0. Kemudian setelah menentukan daerah yang akan dituju, program dilanjutkan dengan lcd_putchar(0x41) yang berfungsi untuk meletakkan karakter pada daerah tersebut dengan huruf A (karena bilangan heksa 41 adalah huruf A). selanjutnya program ditutup dengan menggunakan sintaks kurung kurawal.
6.2 Program 2
     Program 2 adalah program tentang operasi lcd sederhana. Sama seperti program pertama, program tersebut hanya menampilkan karakter, akan tetapi karakter yang ditampilkan tidak hanya terdapat di baris satu saja, tetapi juga terdapat di baris dua. Perbedaan tersebut dikarenakan pada program utama tidk hanya memberikan perintah baris satu saja, tetapi juga diberikan perintah untuk mengisi baris kedua. Perintah untuk mengisi baris kedua ditandai dengan sintaks lcd_gotoxy(0,1); yang berarti bahwa daerah lcd yang dituju adalah baris dua (1) dan kolom satu (0). Sedangkan karakter yang ditampilkan adalah karakter “0”, karakter tersebut di tunjukkan dengan sintaks lcd_putchar(0x30) yang berarti bahwa program akan menempatkan karakter 0 dengan rumus bilangan heksadesimal 0x30 pada baris dan kolom yang telah dialamatkan, yaitu baris 2 kolom 1. Sehingga lcd akan menampilkan karakter sesuai sintaks yang diberikan pada program utama (editor).
6.3 Program 3
     Berbeda dengan program yang terdapat pada program satu dan program dua, program tiga adalah program yang berfungsi untuk menampilkan string atau kumpulan beberapa karakter. Perbedaan tersebt terdapat pada sintaks program utama, yaitu perintah menampilkan string lcd_putsf(“saya belajar”); yang berarti bahwa lcd akan menampilkan string “saya belajar” pada baris dan kolom yang telah dituju. Baris dan kolom yang dituju pada dasarnya adalah sama seperti pada program pertama dan kedua, yaitu mnggunakan perintah lcd_gotoxy(0,0); manunjukkan daerah yang dituju adalah baris 1 dan kolom 1. Sehingga yang tampil pada lcd adalah kalimat “saya belajar” yang dimulai dari baris 1 dan kolom 1.
6.4 Program 4
     Sama halnya dengan program tiga, program empat adalah program yang berfungsi untuk menampilkan kalimat. Klimat yang ditampilkan berbeda dengan program tiga. Perbedaannya terdapat pada kalimat yang ditampilkan dan baris yang dituju. Pada program tiga kalimat yang ditampilkan adalah “saya belajar”, sedangkan pada progam empat berikut kalimat yang ditampilkan adalah “antarmuka lcd”. Perbedaan tersebut terjadi karena pemberian kalimat dalam kurung yang tertera pada sintaks putsf berbeda. Kemudian perbedaan daerah yang dituju disebabkan karena penempatan baris dan kolom pada sintaks gotoxy, pada program tiga angka yang terdapat dalam kurung adalah (0,0) menunjukkan daerah yang dituju adalah baris 1 dan kolom 1. Sedangkan pada program empat angka yang terdpat dalam kurung adalah (0,1) yang berarti bahwa daerah yang dituju adalah baris 2 dan kolom 1.
6.5 Program 5
     Pada dasarnya program lima adalah gabungan antara program tiga dan program empat, yaitu program yang berfungsi menampilkan kalimat di dua baris sekaligus. Kalimat yang ditampilkanpun juga sama dengan kalimat yang ditampilkan pada program  tiga dan program empat, yaitu “saya belajar” pada baris satu dan “antaruka lcd” pada baris dua. Perbedaan utamanya adalah adanya penambahan sintaks pada program utama yang tidak terdapat pada program tiga dan program empat. Penambahan tersebut adalah sintaks delay_ms(1000); dan sintaks lcd_clear();. Fungsi sintaks delay dalam program adalah untuk mengatus jeda lcd apabila berlaku fungsi perubahan layar atau fungsi looping pada lcd. Sehingga jeda tersebut sesuai pada program, yaitu 1 detik karena pada sintaks delay ditentukan sebesar 1000msekon. Sedangkan fungsi sintaks lcd_clear(); adalah fungsi untuk menghapuskan karakter atau string yang telah ditampilkan sebelumnya menuju karakter atau string yang akan ditampilkan selanjutnya apabila ada peubahan tampilan atau looping.
6.6 Program 6
Program 6 merupakan pengembangan dari program-program sebelumnya, dimana pengembangan tersebut terdapat pada penembahan perulangan (looping) menggunakan sintaks “for”. Perulangan terseut dilakukan untuk mengubah tampilan lcd secara berkala. Pada program, fungsi perulangan digunakan untuk menggeser posisi kolom tempat kalimat awal ditujukan satu tempat bergeser dari kiri ke kanan dengan jeda waktu satu detik. Perulangan dilakukan pada lcd baris pertama, sedangkan pada baris kedua tidak menggunakan perulangan, melainkan menggunakan pengandaian if yang bertumpu pada keadaan baris pertama, sehingga setiap terdapat perubahan pada baris pertama, maka baris kedua juga akan berubah sesuai dengan yang diperintahkan pada program. Baris pertama program menampilkan nama mahasiswa pembuat program, sedangkan pada baris kedua menampilkan nomor induk mahasiswa pembuat program. Pada baris kedua bergeser berlawanan arah dengan baris pertama. Yaitu pada baris pertama nama mahasiswa bergeser dari kiri ke kanan. Sedangkan pada baris kedua nomor induk mahasiswa bergeser dari kanan ke kiri hingga habis. Baris kedua bisa saja menggunakan perulangan for, tetapi hasilnya selalu tidak sesuai dengan yang diharapkan, yaitu NIM mahasiswa yang bergeser kekiri tidak bisa sampai habis. Pergeseran NIM tersebut berakhir pada saat angka awal NIM menempati kolom pertama. Hal ini disebabkan karena pada perulangan for nilai minimal adalah nol, tidak ada nilai kurang dari nol. Selain itu pada LCD juga hanya terdapat dua baris, sehingga kolom paling kiri pada LCD adalah kolom pertama. Ketika karakter yang diloop sudah mencapai kolom paling kiri, maka karakter tidak bisa lagi bergeser kekiri.
7.        KESIMPULAN
a)      LCD (Liquid Crystal Display) adalah salah satu pitanti elektronik yang berfungsi untuk menampilkan karakter, gambar ataupun tulisan sesuai yang kita inginkan.
b)      LCD M1632 adalah LCD dengan tampilan 16 kolom x 2 baris dengan konsumsi daya yang rendah
c)      LCD memiliki 3 memori utama, yaitu CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory).
d)     DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada.
e)      CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan
f)       CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi
g)      Langkah utama sebelum mengantarmukakan LCD dengan mikrokontroller adalah mengatur konfigurasi program pada libraries untuk mengaktifkan LCD.


DAFTAR PUSTAKA
·  Lestari, Dyah.2012.PRAKTIKUM MIKROPROSESSOR ANTARMUKA DENGAN LCD PTE PRODI S1 PENDIDIKAN TEKNIK ELEKTRO. Malang.Universitas Negeri Malang.