Top Banner
1 Praktek 6 Display Data Pada LCD Tujuan: Mahasiswa mengerti cara membuat program C pada mikrokontroller AVR untuk melakukan pemrograman pada modul LCD Peralatan yang digunakan: modul AVR Modul LCD Deskripsi/ Dasar Teori: Gambar 1. Rangkaian Modul AT Mega 128
12

program lcd di atmega 128

Dec 05, 2015

Download

Documents

pemrograman dan elektronika
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: program lcd di atmega 128

1

Praktek 6

Display Data Pada LCD

Tujuan:

Mahasiswa mengerti cara membuat program C pada mikrokontroller AVR untuk

melakukan pemrograman pada modul LCD

Peralatan yang digunakan:

modul AVR

Modul LCD

Deskripsi/ Dasar Teori:

Gambar 1. Rangkaian Modul AT Mega 128

Page 2: program lcd di atmega 128

2

Gambar 2. LCD Karakter 20x2

Page 3: program lcd di atmega 128

3

Gambar 3. Daftar Kode Karakter yang bisa ditampilkan di LCD karakter

Page 4: program lcd di atmega 128

4

PERCOBAAN 1 #include <mega128.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putchar('s');

lcd_putchar('t');

while(1)

{}

}

Hasilnya:

PERCOBAAN 2 #include <mega128.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putchar('s');

lcd_gotoxy(5,0); //untuk meletakkan karakter yang ada di baris

// berikutnya

lcd_putchar('t');

lcd_gotoxy(3,1);

lcd_putchar('t');

while(1)

{}

}

Page 5: program lcd di atmega 128

5

Hasilnya:

PERCOBAAN 3

#include <mega128.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putchar('s');

lcd_putchar(0x30);

lcd_putchar(' ');

lcd_putchar(0xc0);

lcd_putchar(65);

while(1)

{}

}

Hasilnya:

Page 6: program lcd di atmega 128

6

PERCOBAAN 4 #include <mega128.h>

#include <delay.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putsf("hallo");

delay_ms(1000);

lcd_clear();

lcd_putsf("apa kabar..");

while(1)

{}

}

PERCOBAAN 5 Animasi garis yang berputar.

#include <mega128.h>

#include <delay.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putsf ("Loading.. ");

while (1)

{

lcd_gotoxy(10,0);

lcd_putchar('-');

delay_ms(100);

lcd_gotoxy(10,0);

lcd_putchar('|');

delay_ms(100);

lcd_gotoxy(10,0);

lcd_putchar('/');

delay_ms(100);

};

}

Page 7: program lcd di atmega 128

7

Hasilnya:

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM032L

PERCOBAAN 6 Bandingkan dengan percobaan 5 diatas:

#include <mega128.h>

#include <delay.h>

#include "lcd.h"

void main(void)

{

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_putsf ("Loading.. ");

lcd_cursoroff();

while (1)

{

lcd_gotoxy(10,0);

lcd_putchar('-');

delay_ms(100);

lcd_gotoxy(10,0);

lcd_putchar('|');

delay_ms(100);

lcd_gotoxy(10,0);

lcd_putchar('/');

delay_ms(100);

};

}

Hasilnya:

Page 8: program lcd di atmega 128

8

PERCOBAAN 7 #include <mega128.h>

#include <delay.h>

#include "lcd.h"

void main(void)

{

int a;

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_cursoroff();

while (1)

{

lcd_putsf ("Loading.. ");

lcd_gotoxy(0,1);

for (a=1;a<=20;a++)

{

lcd_putchar(0xff);

delay_ms(300);

}

lcd_gotoxy(0,0);

lcd_putsf ("Process Complete. ");

delay_ms(2000);

lcd_clear();

};

}

Hasilnya:

Page 9: program lcd di atmega 128

9

PERCOBAAN 8

Menampilkan angka desimal dari 0 sampai 199 dan berulang.

#include <mega128.h>

#include <delay.h>

#include "lcd.h"

///////////////////////////////

void H2BCD(int bilangan)

{

int ratusan,puluhan,satuan;

ratusan= bilangan/100; // misal bilangan=231

// 231/100= 2

puluhan = (bilangan - (ratusan*100))/10; // (231-(2*100))/10

// (231-200)/10 = 31/10 = 3

satuan = bilangan - (puluhan*10) - (ratusan*100);

lcd_putchar(ratusan+0x30);

lcd_putchar(puluhan+0x30);

lcd_putchar(satuan+0x30);

}

void main(void)

{

int a;

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_cursoroff();

while (1)

{

for(a=0;a<=199;a++)

{ lcd_gotoxy(0,0);

H2BCD(a);

delay_ms(200);

}

}

}

Hasilnya:

Page 10: program lcd di atmega 128

10

PERCOBAAN 9

Menampilkan tulisan “tes lcd” scroll dari kiri ke kanan.

#include <mega128.h>

#include <delay.h>

#include "lcd.h"

/////////////////////////

void main(void)

{ int a,i;

flash unsigned char *pesan;

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_cursoroff();

// 47=20+ jmlh karakter + 20 (20 jmlh barisnya LCD)

// 12345678901234567890123456789012345678901234567

pesan=" tes lcd ";

while (1)

{

for(a=0;a<20+7;a++) // 20+Jmlh karakter

{

for(i=0;i<=19;i++)

{

lcd_putchar(pesan[a+i]);

}

delay_ms(100);

lcd_clear();

}

}

}

Hasilnya:

Page 11: program lcd di atmega 128

11

PERCOBAAN 10

Menampilkan tulisan “tes lcd” scroll dari kiri ke kanan (2).

#include <mega128.h>

#include <delay.h>

#include "lcd.h"

/////////////////////////

void main(void)

{ int a,i;

flash unsigned char *pesan;

PORTA=0xff; // semua bit jadi output

DDRA=0xff;

lcd_init();

lcd_cursoroff();

// 12345678901234567890123456789012345678901234567

pesan=" tes lcd ";

lcd_gotoxy(0,1);

// 12345678901234567890

lcd_putsf("********************");

while (1)

{

for(a=0;a<=20+7;a++)

{

lcd_gotoxy(0,0);

for(i=0;i<=19;i++)

{

lcd_putchar(pesan[a+i]);

}

delay_ms(100);

}

}

}

Hasilnya:

Page 12: program lcd di atmega 128

12

.