Anda di halaman 1dari 9

LAPORAN

PRAKTIKUM MIKROKONTROLLER
DOSEN PENGAMPU MUSLIKHIN, M.Pd.

AKSES LCD

OLEH:
SETO AJI PRATAMA
NIM. 15507134010/B1

TEKNIK ELEKTRONIKA
PENDIDIKAN TEKNIK ELEKTRONIKA DAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKART
A. TUJUAN
Setelah melakukan praktik mahasiswa diharapkan dapat:
1. Memahami konfigurasi LCD
2. Menguasai animasi tampilan data pada LCD

B. TEORI DASAR
Mengakses LCD pada AVR dapat dilakukan dengan mode 4 bit. Untuk menggunakan
mode 4 bit, kita dapat menggunakan library built in pada Code Vision. Library ini telah
terdapat berbagai fungsi untuk menampilkan karakter ke LCD. Beberapa perintah dasar
akses LCD antara lain;
1) Membersihkan layar LCDClear();
2) Set cursor pada posisi tertentu LCDGotoXY(x,y); x merupakan colom pada
LCD, y adalah barisnya. Pada LCD 16x2, terdapat 16 yakni 0-15 dan 0-1.
3) Inisialisasi LCD lcd_init(void)
4) Menuliskan karakter ke LCD lcd_putchar(char c). Misalnya
lcd_putchar(C) akan menuliskan karakter C ke LCD.
5) Menuliskan string ke LCD lcd_putsf(char*str). Misalnya,
lcd_putsf(TEMPERATURE) akan menuliskan string TEMPERATURE
pada LCD. Sebelum dapat menggunakan berbagai fungsi tersebut, pada bagian
header dari program kita harus menginclude librarynya.

C. ALAT DAN BAHAN


1. Modul AVR Atmega8535/8/16/32
2. PC (Personal computer)/laptop
3. Jumper
D. SKEMA RANGKAIAN

LCD2
LM016L

LCD1
LM016L
VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
HOLD U1
2 1 1 40
1
2
3

RR 4
RW 5
EN 6

7
8
9
10
D4 11
D5 12
D6 13
D7 14
PB0/T0/XCK PA0/ADC0
2 39
PB1/T1 PA1/ADC1
3 38
PB2/AIN0/INT2 PA2/ADC2
4 37
PB3/AIN1/OC0 PA3/ADC3
5 36
PB4/SS PA4/ADC4
RV1 6
PB5/MOSI PA5/ADC5
35
7 34
PB6/MISO PA6/ADC6
8 33
PB7/SCK PA7/ADC7
RR 14 22
PD0/RXD PC0/SCL
RW 15 23
PD1/TXD PC1/SDA
EN 16 24
PD2/INT0 PC2
10k 17 25
PD3/INT1 PC3
RESET

18 26
PD4/OC1B PC4
D4 19 27
PD5/OC1A PC5
D5 20 28
D6 PD6/ICP1 PC6/TOSC1
21 29
PD7/OC2 PC7/TOSC2
D7
C1 12
XTAL1
R1 X1 13
XTAL2 AREF
32
2

4k7 33p 9 30
RESET AVCC
C6 C5 RESETCRYSTAL
ATMEGA8535
100u 10n
C2
1

RESET

33p

E. LANGKAH KERJA DAN PENGAMATAN


1. Buatlah alat dan bahan seperti rangkaian di atas;
2. Buatlah program seperti yang tertulis berikut, uji cobakan/simulasikanlah di
Proteus lalu coba pada hardware nyata;
3. Cobalah list program berikut;
*****************************************************/
#include <mega8535.h>
#include <delay.h>

// Alphanumeric LCD Module functions


#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization


// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization


// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x00;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization


lcd_init(16);
{
lcd_gotoxy(0,0); //masuk ke i digit pertama
lcd_putsf("KELAS B 2015"); //

lcd_gotoxy(0,1);
delay_ms(100); //delay akhir tampilnya 100ms
lcd_clear(); // bersihkan LCD untuk tampilan berikutnya
}
lcd_putsf("BELAJAR AVR..!");
delay_ms(500);
lcd_clear();

lcd_gotoxy(0,0);
lcd_putsf("SUKSES BRO");
lcd_gotoxy(0,1);
lcd_putsf("PT. ELKA 2015");
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Sinau sregep..");
lcd_gotoxy(0,1);
lcd_putsf("by Muslikhin");
delay_ms(500);
lcd_clear();

while (1)
{
// Place your code here

};
}
4. Buatlah kesimpulan dari hasil praktik saudara.
5. Tugas, buatlah program dengan tulisan LOADING berjalan dari kiri ke kanan
setelah itu muncul MIKRO B 2014 tulisan berjalan dari kanan kekiri.
6. Tuliskan hasil praktikum ini dan praktikum selanjutnya dengan format.

F. HASIL DAN ANALISIS


HASIL

Gambar.1 Hasil Praktek


Gambar.2 Hasil Tugas 1

Gambar.3 Hasil Tugas 2


ANALISIS
Program yang dicontohkan labsheet tersebut menampilkan kalimat dengan
waktu delay 100 ms. Untuk penulisan program tersebut ditulis sebelum while.
Jadi karakter yang keluar tidak berulang-ulang.
Adapun untuk program untuk tugas adalah sebagai berikut :
lcd_init(32);
while (1)
{
for(kolom=0;kolom<=16;kolom++){
lcd_clear();
lcd_gotoxy(kolom,0);
lcd_putsf("LOADING...");
delay_ms(500);
}
for(kolom=17;kolom>=0;kolom--){
lcd_clear();
lcd_gotoxy(kolom,1);
lcd_putsf("MIKRO B 2015");
delay_ms(500);
}

}
}
Dari program diatas terdapar perulangan yaitu for yang berfungsi supayan
karakter tersebut bergerak, kemudian terdapat variable kolom yang sebelumnya
harus dikenalkan terlebih dahulu secara global.

G. SIMPULAN
LCD mempunyai banyak macamnya misalkan LCD 16x2, LCD 20x3 dll.
Sebelum menampilkan karakter ke LCD terdapat konfigurasi yang harus di
lakukan didalam AVR adapun konfigurasi tersebut meliputi PORT sebagai output,
karakter line, bit yang digunakan sebagai output ke LCD, semua itu terdapat
dalam alphanumeric LCD dan wajib konfigurasi terlebih dahulu sebelum
menampilkan karakter pada LCD
Untuk mengakses LCD pada AVR terdapat library yang berfungsi untuk
menampilkan karakter. Beberapa contok perintah dasar untuk mengakses LCD
yaitu lcd_clear(), lcd_gotoxy,lcd_init(),lcd_putchar(),lcd_putsf.

Anda mungkin juga menyukai