Anda di halaman 1dari 5

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA


LAB SHEET PRAKTIK MIKROKONTROLLER

Semester 4 AKSES LCD JOB 2 200 menit

No. EKA/EKA165 Revisi:02 Tgl:25 Feb 2014 Hal 1/1

A. TUJUAN

Setelah melakukan praktik mahasiswa diharapkan dapat:


1. Memahami konfigurasi LCD
2. Menguasai animasi tampilan data pada LCD

B. TEORI DASAR
Mengakses LCD padaAVR 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
1
2
3

RR 4
RW 5
EN 6

7
8
9
10
D4 11
D5 12
D6 13
D7 14

2 1 1 40
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
X1 13 32
2

4k7 R1 XTAL2 AREF


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>

2
// 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

3
// 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 2012"); //

lcd_gotoxy(0,1);
delay_ms(100); //delay akhir tampilnya 100ms
lcd_clear(); // bersihkan LCD untuk tampilan
berikutnya
}

4
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 2012");
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.

Anda mungkin juga menyukai