program lcd di atmega 128
Post on 05-Dec-2015
239 Views
Preview:
DESCRIPTION
Transcript
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
2
Gambar 2. LCD Karakter 20x2
3
Gambar 3. Daftar Kode Karakter yang bisa ditampilkan di LCD karakter
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)
{}
}
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:
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);
};
}
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:
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:
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:
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:
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:
12
.
top related