Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Program LCD Di Atmega 128
Program LCD Di Atmega 128
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);
lcd_putchar('t');
lcd_gotoxy(3,1);
lcd_putchar('t');
while(1)
{}
}
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:
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);
};
}
Hasilnya:
LCD1
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
1
2
3
VSS
VDD
VEE
LM032L
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:
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:
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:
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++)
{
for(i=0;i<=19;i++)
{
lcd_putchar(pesan[a+i]);
}
delay_ms(100);
lcd_clear();
}
// 20+Jmlh karakter
}
}
Hasilnya:
10
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:
11
12