Tutorial Mikrokontroler AT89S51: Antarmuka LCD 16×2 Mode 4-Bit


telinks_star51_lcd_rs232

Gambar di samping adalah foto modul STAR51 (sistem minimum AT89S51) dengan modul LCD 16×2 karakter dengan mode 4-bit. Tampak pada gambar, 2 buah kabel yakni kabel 1 (GND) dan kabel 2 (VCC) dihubungkan ke power port 5V DC menggunakan black-housing tunggal.

Enam kabel modul LCD yang lain yakni kabel 3 (LCD Register Select), kabel 4 (LCD Enable), kabel 5 (LCD D4), kabel 6 (LCD D5), kabel 7 (LCD D6), dan kabel 8 (LCD D7) dihubungkan ke P2.2, P2.3, P2.4, P2.5, P2.6, dan P2.7. Penempatan kabel-kabel tersebut tidak harus seperti contoh. Masing-masing kabel dapat dihubungkan pada pin I/O manapun dari modul STAR51. Misal, kabel 1 di P2.0, kabel 2 di P1.1, kabel 3. di P2.1, dan seterusnya.

Pada tutorial singkat ini, saya tidak akan membahas mengenai bagaimana teknik antarmuka LCD 16×2 menggunakan mode 4-bit, Anda dapat mempelajarinya dari datasheet maupun dari berbagai sumber di internet. Di sini saya hanya akan memberikan contoh program yang sederhana saja.

Berikut adalah listing program pengujian modul STAR51 yang berfungsi menampilkan tulisan pada LCD 16×2 dan mengirimkan tulisan ke port serial RS232. Program juga berfungsi menerima karakter yang diterima dari port serial dan mengirimkan kembali data karakter tersebut melalui port serial.

/*
Program Testing Modul STAR51
Output LCD dan Komunikasi Serial
Chandra MDE
http://teknikelektrolinks.com
*/

#include <at89x51.h>
#include <stdio.h>
#include <telinks_uartv1.h>

#define LED_STATUS    P2_0
#define LCD_D7          P2_7
#define LCD_D6          P2_6
#define LCD_D5          P2_5
#define LCD_D4          P2_4
#define LCD_RS        P2_2
#define LCD_E         P2_3

#include <telinks_lcd4bit.h>

volatile unsigned int tcounter0;

void timer0_isr (void) __interrupt 1 __using 2
{
EA = 0;
tcounter0++;
if (tcounter0==1500)
{
tcounter0 = 0;
LED_STATUS = !LED_STATUS;
}
EA = 1;
}

int main(void)
{
int x = 0;
char c;

TMOD = TMOD & 0xF0 | 0x02;
TH0   = 0xff – 100;
TL0 = TH0;
TR0 = 1;
ET0 = 1;
EA = 1;
tcounter0 = 0;
init_serial();
init_LCD();

printf_tiny(“STAR51 – Modul Sistem Minimum AT89S51/STC51\n\r”);
printf_tiny(“Teknik Elektro Links\n\r”);
printf_tiny(“http://teknikelektrolinks.com\n\r”);

while(1)
{
c = getchar();
if (c!=-1)
{
printf_tiny(“\n\rTerima data = %d\n\r”, c);
}
x++;
printf_tiny(“%d “, x);

clrscr();
LCD_printxy(1, 1, ” DEMO LCD 4-BIT”);
LCD_printxy(1, 2, ” AT89S51 – SDCC”);
delay(200);
LCD_printxy(1, 1, ” TEKNIK ELEKTRO”);
LCD_printxy(1, 2, ”     LINKS     “);
delay(200);
if (x==10)
{
x = 0;
printf_tiny(“\n\r\n\r”);
printf_tiny(“STAR51 – Modul Sistem Minimum AT89S51/STC51\n\r”);
printf_tiny(“Teknik Elektro Links\n\r”);
printf_tiny(“http://teknikelektrolinks.com\n\r”);
}
}
}

Berikut adalah screenshot program Hyperterminal yang berinteraksi melalui port serial COM1 dengan modul STAR51 pada baudrate 19200.

star51_hypterm

Adapun kompiler yang saya gunakan adalah SDCC versi 3.0.1.

Jika Anda membutuhkan modul STAR51 atau modul LCD 16×2 4-bit atau file-file library program, silakan menghubungi kami melalui email ke: info@teknikelektrolinks.com. Untuk informasi harga dan pemesanan, silakan mengunjungi situs Teknik Elektro Links dengan alamat: http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s