YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

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

.


Related Documents