Anda di halaman 1dari 5

ANTARMUKA MIKROKONTROLLER DENGAN

LCD 4 BIT

TUJUAN:
 Memahami sistem kerja antarmuka LCD 4 bit dengan mikrokontroller
 Dapat mengimplementasikan program antara mikrokontroller dengan LCD 4 bit
Pendahuluan
Liquid Crystal Display (LCD) merupakan salah satu komponen elektronika yang dapat
menampilkan karakter ataupun tulisan. LCD ini memiliki banyak varian, salah satu contoh
adalah LCD dengan konfigurasi 16 x 2 artinya memiliki 16 kolom dan 2 baris. Untuk
memfungsikan LCD sehingga dapat berfungsi untuk menampilkan baik karakter maupun
tulisan, maka LCD perlu diinisialisasi. Pada pertemuan sebelumnya, koneksi antara
mikrokontroller dengan LCD ialah dengan menggunakan mode 4 bit, artinya D0 – D7 dari LCD
dihubungkan secara keseluruhan dengan 1 port dari mikrokontroller dimana 1 port ini memiliki
8 bit. Port sendiri bisa dipilih baik port A, B, C, maupun D yang dimiliki oleh mikrokontroller
khususnya ATMEGA 16. Hubungan atau koneksi antara mikrokontroller dengan LCD 4 bit dapat
dilihat dari gambar 1 dibawah ini.

Gambar 1. Koneksi LCD 4 Bit dengan Mikrokontroller


Program antara mikro dengan LCD 4 bit:

#define F_CPU 16000000UL


#include <avr/io.h>
#include <util/delay.h>

#define LCD_Dir DDRB


#define LCD_Port PORTB
#define RS PB0
#define EN PB1

void LCD_Command( unsigned char cmnd )


{
LCD_Port = (LCD_Port & 0x0F) | (cmnd & 0xF0);
LCD_Port &= ~ (1<<RS);
LCD_Port |= (1<<EN);
_delay_us(1);
LCD_Port &= ~ (1<<EN);

_delay_us(200);

LCD_Port = (LCD_Port & 0x0F) | (cmnd << 4);


LCD_Port |= (1<<EN);
_delay_us(1);
LCD_Port &= ~ (1<<EN);
_delay_ms(2);
}

void LCD_Char( unsigned char data )


{
LCD_Port = (LCD_Port & 0x0F) | (data & 0xF0); /* sending upper nibble */
LCD_Port |= (1<<RS); /* RS=1, data reg. */
LCD_Port|= (1<<EN);
_delay_us(1);
LCD_Port &= ~ (1<<EN);

_delay_us(200);

LCD_Port = (LCD_Port & 0x0F) | (data << 4);


LCD_Port |= (1<<EN);
_delay_us(1);
LCD_Port &= ~ (1<<EN);
_delay_ms(2);
}

void LCD_Init (void)


{
LCD_Dir = 0xFF;
_delay_ms(20);

LCD_Command(0x02); /* Mengirimkan 4 bit inisialisasi */


LCD_Command(0x28); /* 2 line, 5*7 matrix dalam 4-bit mode */
LCD_Command(0x0C); /* Display on cursor off*/
LCD_Command(0x06); /* Kursor bergeser ke kanan*/
LCD_Command(0x01); /* Membersihkan Layar Screen*/
_delay_ms(2);
}

void LCD_String (char *str)


{
int i;
for(i=0;str[i]!=0;i++)
{
LCD_Char (str[i]);
}
}

void LCD_String_xy (char row, char pos, char *str)


{
if (row == 0 && pos<16)
LCD_Command((pos & 0x0F)|0x80);
else if (row == 1 && pos<16)
LCD_Command((pos & 0x0F)|0xC0);
LCD_String(str);
}

void LCD_Clear()
{
LCD_Command (0x01); /* Membersihkan display */
_delay_ms(2);
LCD_Command (0x80); /* kembali ke posisi awal */
}

int main()
{

LCD_Init(); /* Initialization of LCD*/

LCD_String("SISWA POLINEMA");
LCD_Command(0xC0);
LCD_String("MAKIN -- OCEEEEE");

while(1);
}

PROYEK:
- BUAT TAMPILAN LCD MODE 4 BIT DENGAN KEYPAD
o JIKA TEKAN ANGKA 1 HINGGA 9 MAKA AKAN TAMPIL TULISAN (ANGKA .......)
DAN DI SEVEN SEGMENT TAMPIL ANGKA 1 – HINGGA 9 ( 7 SEGMENT TANPA
7447)
o JIKA TEKAN ANGKA 1 HINGGA 9 MAKA AKAN TAMPIL TULISAN (ANGKA .......)
DAN DI SEVEN SEGMENT TAMPIL ANGKA 1 – HINGGA 9 ( 7 SEGMENT DENGAN
7447)

Anda mungkin juga menyukai