Anda di halaman 1dari 19

1

I.

PENDAHULUAN

A. Latar Belakang
Seiring dengan perkembangan teknologi yang sangat cepat, kebutuhan manusia
akan teknologi juga sangat dibutuhkan sehingga perlu dikembangkan alat-alat
baru yang bertujuan untuk memudahkan kegiatan manusia dalam kehidupan
sehari-hari. Perkembangan teknologi mikrokontroler misalnya telah membawa
era baru dalam dunia elektonika. Dalam praktikum mikrokontroler,
mikrokontroler dapat difungsikan sebagai otak untuk menampilkan karakter
di LCD. LCD (Liquid Cystal Display) merupakan modul penampil yang banyak
digunakan karena tampilannya menarik. Untuk rangkaian interfacing, LCD
tidak banyak memerlukan komponen pendukung. Hanya diperlukan satu
variable resistor untuk memberi tegangan kontras pada matriks LCD.
Banyak software yang dapat digunakan untuk memprogram mikrokontroler
keluarga AVR, dengan bahasa pemrograman masing-masing. Dalam hal ini
Code Vision AVR digunakan untuk pemrograman penampilan karakter atau
string ke LCD yang sangat mudah karena didukung library yang telah
disediakan oleh Code Vision AVR tersebut. Untuk mengetahui lebih lengkap
mengenai cara menampilkan karakter pada LCD dengan mikrokontroler, maka
dilakukan praktikum percobaan LCD berikut ini.

B. Tujuan Percobaan
Adapun tujuan dari percobaan LCD pada praktikum ini adalah sebagai berikut :

1. Untuk menampilkan karakter pada LCD menggunakan mikrokontroler


ATMega16 secara simulasi pada program Proteus ISIS.
2. Mengetahui dan memahami cara mengantarmukakan mikrokontroler
dengan modul penampil LCD.
3. Mengetahui dan memahami bagaimana memprogram mikrokontroler
untuk menampilkan karakter ke penampil LCD.

II.

TINJAUAN PUSTAKA

A. Mikrokontroler

Mikrokontroler merupakan sebuah sistem komputer yang seluruh atau sebagian


besar elemennya dikemas dalam satu chip IC, sehingga sering disebut single
chip microcomputer. Lebih lanjut, mikrokontroler merupakan sistem komputer
yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda
dangan PC (Personal Computer) yang memiliki beragam fungsi. Perbedaan
lainnya adalah perbandingan RAM dan ROM yang sangat berbeda antara
komputer dengan mikrokontroler. Mikrokontroler adalah sebuah system
microprocessor dimana didalamnya sudah terdapat CPU, ROM, RAM, I/O,
Clock dan peralatan internal lainnya yang sudah saling terhubung dan
terorganisasi (teralamati) dengan baik oleh pabrik pembuatnya dan dikemas
dalam satu chipyang siap pakai. Sehingga kita tinggal memprogram isi ROM
sesuai aturan penggunaan oleh pabrik yang membuatnya (Winoto, 2008).
Teknologi yang digunakan pada mikrokontroler AVR berbeda dengan
mikrokontroler seri MCS-51. AVR berteknologi RISC (Reduced Instruction Set
Computer), sedangkan seri MCS-51 berteknologi CISC (Complex Instruction
Set Computer). Mikrokontroler AVR dapat dikelompokkan menjadi empat
kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega, dan
keluarga AT89RFxx. Pada dasarnya yang membedakan masing-masing kelas
adalah memori, kelengkapan periperal dan fungsi-fungsi tambahan yang
dimiliki ( Putra. 2002).

B. Mikorkontroler Atmega 8535

ATMega8535 adalah mikrokontroler CMOS 8 bit daya rendah berbasis


arsitektur RISC. Instruksi dikerjakan pada satu siklus clock, ATMega8535
mempunyai throughput mendekati 1 MIPS per MHz, hal ini membuat
ATMega8535 dapat bekerja dengan kecepatan tinggi walaupun dengan
penggunaan daya rendah. Mikrokontroler ATmega8535 memiliki beberapa fitur
atau spesifikasi yang menjadikannya sebuah solusi pengendali yang efektif
untuk berbagai keperluan. Fitur-fitur tersebut antara lain:
1.

Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D

2.

ADC (Analog to Digital Converter)


3.

Tiga buah Timer/Counter dengan kemampuan perbandingan

4.

CPU yang terdiri atas 32 register

5.

Watchdog Timer dengan osilator internal

6.

SRAM sebesar 512 byte

7.

Memori Flash sebesar 8kb dengan kemampuan read while write

8.

Unit Interupsi Internal dan External

9.

Port antarmuka SPI untuk men-download program ke flash

10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
11. Antarmuka komparator analog
12. Port USART untuk komunikasi serial (Heryanto, Ary dan Wisnu Adi. 2008).
Mikrokontroler AVR ATMega memiliki 40 pin dengan 32 pin diantaranya
digunakan sebagaiport paralel. Satu port paralel terdiri dari 8 pin, sehingga
jumlah port pada mikrokontroler adalah 4 port, yaitu port A, port B, port C
dan port D. Sebagai contoh adalah port A memiliki pin antara port A.0 sampai
dengan port A.7, demikian selanjutnya untuk port B, port C, port D. Berikut
ini adalah penjelasan dari pin mikrokontroler ATMega8535 menurut port-nya
masing-masing:

1. Port A
Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up

resistor (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction
Register port A (DDRA) harus di-setting terlebih dahulu sebelum

portA

digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output.

2. Port B
Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction
Register port B (DDRB) harus di-setting terlebih dahulu sebelum portB
digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output.

3. Port C
Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri
merupakan port input atau output. Setiap pin-nya dapat menyediakan internal
pull-up resistor (dapat diatur per bit).Output buffer port C dapat memberi arus
20 mA dan dapat mengendalikan display LED secara langsung. Data Direction
Register port C (DDRC) harus di-setting terlebih dahulu sebelum portC
digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output.

4. Port D

Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer port D dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction
Register port D (DDRD) harus di-setting terlebih dahulu sebelumport D
digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output (Wahyudin, Didin.
2007).

C. Code Vision AVR


CodeVision AVR memiliki keunggulan dari compiler lain yakni codewizard,
yang memudahkan kita dalam inisialisasi mikrokontroler yang akan kita
gunakan. CodeVision AVR merupakan software cross-compiler berbasis
bahasa C, Integrated Development Environment (IDE) dan Program
Generator otomatis yang dirancang khusus untuk mikrokontroler keluarga
Atmel AVR Mikrokontroler. Program ini dirancang untuk dijalankan pada
sistem operasi XP, Vista dan Windows 7 arsitektur 32 bit atau 64 bit. Mulai
dari penggunaan untuk kontrol sederhana sampai kontrol yang cukup
kompleks. Mikrokontroler dapat berfungsi jika telah diisi sebuah program,
pengisian program ini dapat dilakukan menggunakan compiler yang
selanjutnya diprogram ke dalam mikrokontroler menggunakan fasilitas yang
sudah disediakan oleh program tersebut (Heryanto dan Adi, 2008).

D. Proteus
Proteus adalah sebuah software simulasi untuk mendesain rangkaian. Proteus
mengkombinasikan program ISIS untuk membuat skematik desain rangkaian

dengan program ARES untuk membuat layout PCB dari skematik suatu
rangkaian. Proteus dapat digunakan dalam desain rangkaian elektronika dasar
dan mikrokontroler. Berikut ini adalah fitur-fitur proteus yakni :
a. Memiliki kemampuan untuk mensimulasikan hasil rancangan baik digital
maupun analog maupun gabungan keduanya.
b. Mendukung simulasi yang menarik dan simulasi secara grafis.
c. Mendukung simulasi berbagai jenis mikrokontroler seperti AVR, PIC,

8051 series dan mikrokontroler lainnya.


d. Memiliki model-model peripheral yang interaktif seperti LED, tampilan

LCD, RS232, dan berbagai jenis library lainnya.


e. Mendukung instrumen-instrumen virtual seperti voltmeter, ammeter,
f.

oscciloscope, logic analyser dan sebagainya.


Memiliki kemampuan menampilkan berbagi jenis analisis secara grafis
seperti transient, frekuensi, noise, distorsi, AC dan DC.

g. Mendukung berbagai jenis komponen-komponen analog, Mendukung

open architecture sehingga kita bisa memasukkan program seperti C++


untuk keperluan simulasi, mendukung pembuatan PCB yang di-update
secara langsung dari program ISIS ke program pembuat PCB-ARES (Ali,
dkk., 2013).
E. LCD (Liquid Cystal Display)
LCD atau Liquid Cystal Display adalah sebuah peralatan elektronik yang
berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk
suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen
penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah
elektroda transparan dan 2 buah filter polarisasi (polarizing filter).

Gambar 1. LCD

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari
pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual
di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai
dapat mengontrol tampilan LCD dengan mudah dengan menggunakan
mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia
(Putra, 2002).

III.

HASIL RUNNING DAN PEMBAHASAN

A. Hasil Running
Adapun hasil running yang didapatkan pada percobaan LCD kali ini adalah
sebagai berikut :

Gambar 2. Hasil Running program LCD

B. Pembahasan
Pada praktikum kali ini praktikan melakukan percobaan simulasi menggunakan
LCD atau Liquid Cystal Display yang dilengkapi dengan bahasa pemrograman
CVAVR serta ISIS Proteus. Pada percobaan simulasi LCD praktikan
menggunakan komponen mikrokontroler 8535 dan LCD dengan 16x2,
potensiometer atau resistor variabel, catudaya 5 Volt dan ground. Untuk lebih
jelas maka berikut ini rancangan simulasi LCD pada program proteus ISIS :

10

Gambar 3. Rangkaian LCD pada Proteus.


Langkah awal membuat rangkaian diatas adalah membuka program ISIS
kemudian

memilih

komponen

seperti

potensiometer,

LCD

16x2

dan

Mikrokontroler 8535 pada pick Devices, selanjutnya menyusun komponen LCD


dan mikrokontroler 8535 ke dalam pin C menjadi satu rangkaian dan
menggroundkannya. Menyusun dan merangkai tegangan DC dan ground pada
potensiometer dan menghubungkan kepada LCD pin 1, 2 dan pin 3. Setelah
rangkaian selesai, save rangkaian proteus LCD pada komputer.
Pada percobaan ini, setelah membuat simulasi rangkaian LCD pada proteus ISIS
selanjutnya membuka code vision CVAVR dan membuka file baru dan memilih
file-new-project dan meng-klik ok. Kemudian akan muncul CodeWizard AVR dan
memilih serta mengatur register dan komponen yang digunakan.

Gambar 4. Create new file


Kemudian mengganti Chip menjadi Atmega 8535 dan clock-nya menjadi
12.000000 hz.

11

Gambar 5. CodeWizardAVR pada chip


Pada bagian Ports mengubah Port C sebagai outputnya. Data direction diubah
menjadi out semua dan pull up diganti menjadi 1 yang menunjukan keluaran
bersifat high. Setelah itu, mengganti LCD port menjadi port C dan menyimpannya
dengan cara klik file-generate save exit sehingga kita dapat memulai program.
Berikut tampilan proses pengaturan LCD :

Gambar 6. CodeWizardAVR pada Ports

12

Gambar 7. CodeWizardAVR pada LCD

Gambar 8. Mengatur dan menyimpan CVAVR

Untuk menginisialisasi LCD, maka dengan menambahkan program berikut ini :


#include <90s8535.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <delay.h>
Program

diatas

bermakna

bahwa

program

menggunakan

mikrokontroler Atmega 8535 <mega 8535.h>, dan menggunakan

13

deklarasi delay untuk menunda karakter yang akan ditampilkan


dan setting LCD di PORT C yang kemudian akan me-link ke library
lcd.h yang didalamnya terdapat instruksi-instruksi untuk akses
LCD secara langsung.
Kemudian menambahkan program untuk ditampilkan pada LCD
lcd_gotoxy(0,0);
lcd_putsf("PRAKTIKUM MIKRO");
delay_ms(1000);
lcd_gotoxy(0,1);
lcd_putsf("SITI WAHYUNI");
delay_ms(1000);
Pada fungsi lcd_gotoxy (0,0) untuk mengatur posisi karakter awal yang akan
ditampilkan pada kolom x dan baris y. Kemudian lcd_putsf("PRAKTIKUM
MIKRO") berfungsi untuk menampilkan karakter PRAKTIKUM MIKRO pada
kolom pertama (x = 0) dan baris pertama (y = 0) pada delay waktu 1000 ms (1
sekon). Kemudian untuk program selanjutnya sama, lcd_gotoxy(0,1); namun
karakter SITI WAHYUNI ditampilkan di kolom pertama (x = 0) dan baris kedua
(y = 1) dengan delay waktu 1000 ms (1 sekon). Setelah selesai membuat program
tersebut, kemudian compile dan build all program untuk mengetahui ada atau
tidaknya kesalahan syntax dalam program atau error. Jika tidak ada kesalahan,
maka program dapat digunakan untuk menjalankan mikrokontroler.
Selanjutnya membuka proteus ISIS yang dibuat tadi dan meng-klik double klik
pada komponen mikrokontroler sehingga program pada CVAVR berbasis bahasa
C yang telah dibuat dapat dimasukkan. Setelah itu, merunning program sehingga
muncul tampilan seperti pada Gambar 2

14

IV.

KESIMPULAN

Adapun kesimpulan yang dapat diperoleh pada percobaan LCD adalah sebagai
berikut :
1. Pada

percobaan

simulasi

LCD

praktikan

menggunakan

komponen

mikrokontroler 8535 dan LCD dengan 16x2, potensiometer atau resistor


variabel, catudaya 5 Volt dan ground.
2. Pada program yang telah

dibuat

karakter

yang

akan

ditampilakan pada posisi kolom dan baris XY (0,0) adalah


kalimat PRAKTIKUM MIKRO sedangkan pada posisi kolom dan
baris XY(0,1) akan tampil karakter SITI WAHYUNI.
3. Deklarasi delay untuk menunda tampilan karakter yang akan ditampilkan
pada program.
4. Penulisan delay (1000) pada program dimaksudkan untuk
menunda penampilan karakter selama 1000 ms.

15

DAFTAR PUSTAKA

Ali, Muhamad dkk. 2013. Proteus Profesional Untuk Simulasi


Rangkaian Digital dan Mikrokontroler. Pendidikan Teknik
Elektro Fakultas Teknik Universitas Negeri Yogyakarta :
Yogyakarta.
Heryanto, Ary dan Wisnu Adi P. 2008. Pemrograman Bahasa C untuk
Mikrokontroler ATMEGA 8535. Penerbit ANDI : Semarang.
Putra. A.E. 2002. Belajar Mikrokontroler Teori dan Aplikasi. Graha Media :
Yogyakarta.
Wahyudin, Didin. 2007. Belajar Mudah Mikrokontroler AT89552 dengan Bahasa
Basic Menggunakan Bascom-8051. Penerbit ANDI : Semarang.

16

LAMPIRAN

17

#include <90s8535.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <delay.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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTC=0xFF;
DDRC=0xFF;
// 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

18

// Clock source: System Clock


// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=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;
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
GIMSK=0x00;
MCUCR=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

19

ACSR=0x80;
// LCD module initialization
lcd_init(16);
while (1)
{
lcd_gotoxy(0,0);
lcd_putsf("PRAKTIKUM MIKRO");
delay_ms(1000);
lcd_gotoxy(0,1);
lcd_putsf("SITI WAHYUNI");
delay_ms(1000);
// Place your code here
};
}