Top Banner
1 I. PENDAHULUAN I.1 Latar Belakang Di dunia elektronika, mikrokontroler tentu bukanlah barang yang asing lagi untuk dibahas. Seperti yang kita ketahui, mikrokontroler merupakan sebuah mikroprosesor yang memiliki ROM (Read-Only Memory), RAM (Read- Write Memory), beberapa masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi. Dalam hal ini, mikrokontroler dapat difungsikan sebagai ‘otak’ untuk menampilkan karakter di LCD. LCD ( Liquid Cystal Display) merupakan modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah tipe M1632 karena harganya cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 16x2 (16 kolom x 2 baris) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD. Untuk rangkaian interfacing, LCD tidak banyak memerlukan komponen pendukung. Hanya diperlukan satu variable resistor untuk memberi tegangan kontras pada matriks LCD. Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan karakter atau string ke LCD sangat mudah karena didukung library yang telah disediakan oleh CodeVision AVR itu sendiri. Kita tidak harus memahami karakteristik LCD secara mendalam, perintah tulis dan inisialisasi sudah disediakan oleh library dari CodeVision AVR. Untuk
20

Menampilkan Karakter pada Lcd dengan Mikrokontroler ATMEGA16

Jul 18, 2015

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

1

I. PENDAHULUAN

I.1 Latar Belakang

Di dunia elektronika, mikrokontroler tentu bukanlah barang yang asing lagi

untuk dibahas. Seperti yang kita ketahui, mikrokontroler merupakan sebuah

mikroprosesor yang memiliki ROM (Read-Only Memory), RAM (Read-

Write Memory), beberapa masukan maupun keluaran, dan beberapa

peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter),

DAC (Digital to Analog converter) dan serial komunikasi.

Dalam hal ini, mikrokontroler dapat difungsikan sebagai ‘otak’ untuk

menampilkan karakter di LCD. LCD (Liquid Cystal Display) merupakan

modul penampil yang banyak digunakan karena tampilannya menarik. LCD

yang paling banyak digunakan saat ini ialah tipe M1632 karena harganya

cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 16x2

(16 kolom x 2 baris) dengan konsumsi daya rendah. Modul tersebut

dilengkapi dengan mikrokontroler yang didesain khusus untuk

mengendalikan LCD. Untuk rangkaian interfacing, LCD tidak banyak

memerlukan komponen pendukung. Hanya diperlukan satu variable resistor

untuk memberi tegangan kontras pada matriks LCD.

Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan

karakter atau string ke LCD sangat mudah karena didukung library yang

telah disediakan oleh CodeVision AVR itu sendiri. Kita tidak harus

memahami karakteristik LCD secara mendalam, perintah tulis dan

inisialisasi sudah disediakan oleh library dari CodeVision AVR. Untuk

Page 2: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

2

mengetahui lebih lengkap mengenai cara menampilkan karakter pada LCD

dengan mikrokontroler, maka dilakukan praktikum percobaan ini.

I.2 Tujuan Percobaan

Tujuan dilakukan percobaan ini adalah untuk menampilkan karakter pada

LCD menggunakan mikrokontroler ATMega16 secara simulasi pada

program Proteus ISIS.

Page 3: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

3

II. TINJAUAN PUSTAKA

II.1 Mikrokontroler ATMega16

Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu chip.

Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah

terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write

Memory), beberapa masukan maupun keluaran, dan beberapa peripheral

seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC

(Digital to Analog converter) dan serial komunikasi.

Salah satu mikrokontroler yang banyak digunakan saat ini yaitu

mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction

Set Computer) 8 bit berdasarkan arsitektur Harvard. Secara umum

mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu

keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang

membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya

(Putra, 2002).

Seperti mikroprosesor pada umumnya, secara internal mikrokontroler

ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical

Unit (ALU), himpunan register kerja, register dan dekoder instruksi,

dan pewaktu beserta komponen kendali lainnya. Berbeda dengan

mikroprosesor, mikrokontroler menyediakan memori dalam prosesornya

(in chip).

Secara garis besar mikrokontroler ATMega16 terdiri dari :

Page 4: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

4

1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi

16Mhz.

2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte,

dan SRAM 1Kbyte.

3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.

4. CPU yang terdiri dari 32 buah register.

5. User interupsi internal dan eksternal.

6. Bandar antarmuka SPI dan Port USART sebagai komunikasi serial.

7. Fitur Peripheral: Dua buah 8-bit timer/counter dengan prescaler

terpisah dan mode compare, Satu buah 16-bit timer/counter dengan

prescaler terpisah, mode compare, dan mode capture.

8. Real time counter dengan osilator tersendiri.

9. Empat kanal PWM dan Antarmuka komparator analog.

10. 8 kanal, 10 bit ADC.

11. Byte-oriented Two-wire Serial Interface.

12. Watchdog timer dengan osilator internal.

Page 5: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

5

Gambar 1. Blok diagram ATMEGA 16

Konfigurasi pin mikrokontroler ATMega16 dengan 40 pin dapat dilihat pada

Gambar 2. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pin

untuk masing-masing Port A, Port B, Port C, dan Port D.

Page 6: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

6

Gambar 2. Konfigurasi ATMega16

(Wahyudin, 2007).

II.2 Code Vision AVR

CodeVision AVR merupakan sebuah software cross-compiler berbasis

bahasa C, Integrated Development Environment (IDE) dan Program

Generator otomatis yang khusus dirancang 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. CodeVision AVR mempunyai

suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini

memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan

(Heryanto dan Adi, 2008).

II.3 Proteus

Proteus adalah sebuah software simulasi untuk mendesain rangkaian.

Proteus mengkombinasikan program ISIS untuk membuat skematik desain

Page 7: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

7

rangkaian dengan program ARES untuk membuat layout PCB dari skematik

suatu rangkaian. Proteus baik digunakan dalam desain rangkaian elektronika

dasar dan mikrokontroler.

Adapun fitur-fitur proteus adalah memiliki kemampuan untuk mensimulasikan

hasil rancangan baik digital maupun analog maupun gabungan keduanya,

mendukung simulasi yang menarik dan simulasi secara grafis, mendukung

simulasi berbagai jenis mikrokontroler seperti AVR, PIC, 8051 series dan

mikrokontroler lainnya, memiliki model-model peripheral yang interaktif

seperti LED, tampilan LCD, RS232, dan berbagai jenis library lainnya,

mendukung instrumen-instrumen virtual seperti voltmeter, ammeter,

oscciloscope, logic analyser, dll., memiliki kemampuan menampilkan

berbagi jenis analisis secara grafis seperti transient, frekuensi, noise,

distorsi, AC dan DC, dll., 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).

II.4 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).

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.

Page 8: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

8

LCD yang ada dipasaran dikategorikan menurut jumlah baris yang dapat

digunakan pada LCD yaitu 1 baris, 2 baris, dan 4 baris yang dapat

digunakan hingga 80 karakter. Umumnya LCD yang digunakan adalah LCD

dengan 1 controller yang memiliki 14 pin (Anonim, 2013).

Page 9: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

9

III. HASIL PENGAMATAN DAN PEMBAHASAN

III.1 Hasil Pengamatan

Berikut ini adalah hasil pengamatan yang kami peroleh pada praktikum

percobaan ini.

Gambar 3. Hasil Running program LCD

III.2 Pembahasan

Praktikum percobaan mikrokontroler ini dilakukan dengan membuat

simulasi program Proteus ISIS dengan memasukkan program untuk

mikrokontroler pada CodeVisionAVR Evaluation V2.05.0 atau bisa

disingkat CVAVR. Pada percobaan ini kami menggunakan mikrokontroler

ATMega16 dengan Port C sebagai outputnya. Adapun komponen yang

digunakan pada rangkaian LCD ini terdiri dari mikrokontroler ATMega16,

Page 10: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

10

LCD 16x2, potensiometer, catudaya 5 Volt dan ground. Berikut ini adalah

rancangan rangkaian yang kami buat pada program Proteus ISIS.

Gambar 4. Rancangan rangkaian LCD

Setelah membuat rangkaian seperti gambar 4, kami membuat program di

CodeVision AVR. Pembuatan program dengan CVAVR ini dilakukan

dengan membuka program, kemudian memilih menu ‘File’ kemudian ‘New’

lalu memilih ‘project’ sebagai tipe filenya. Kemudian pada kotak

‘CodeWizardAVR’ memilih ‘AT90, ATMega...’ sebagai tipe AVR chipnya.

Selanjutnya muncul pengaturan ‘CodeWizardAVR’ bagian ‘chip’, kami

memilih mikrokontroler ‘ATMega16’ dengan besar clock 12,000000. Pada

bagian ‘Ports’ kami mengubah ‘Port C’ sebagai outputnya, pada bagian

‘Alphanumeric LCD’ kami mengaktifkan Alphanumeric LCD pada port C

dan mengubah ‘line’ menjadi 16 agar sinkron terhadap LCD yang kami

gunakan. LCD yang kami gunakan adalah LCD 16x2 dimana memiliki 16

line pada kolomnya dan 2 line pada barisnya. Setelah itu, dengan ‘Generate’

kita dapat memulai program. Untuk menginisialisasi LCD, maka kami

menambahkan program berikut ini.

#include <lcd.h>

#asm

.equ _lcd_port=0x15; portc

#endasm

Kemudian menambahkan program untuk ditampilkan pada LCD

Page 11: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

11

While(1) { lcd_gotoxy(0,0);

lcd_putsf("FAT’HUL & ANISA");

delay_ms(1000);

lcd_gotoxy(0,1);

lcd_putsf(“YUNI & YURI”);

delay_ms(1000);}

Fungsi lcd_gotoxy(0,0) adalah untuk mengatur posisi karakter awal yang

akan ditampilkan pada kolom x dan baris y. Kemudian

lcd_putsf("FAT’HUL & ANISA") berfungsi untuk menampilkan karakter

FATHUL & ANISA pada kolom pertama (x = 0) dan baris pertama (y = 0)

pada delay waktu 1000 ms (1 sekon). Untuk program selanjutnya hampir

sama, namun karakter YUNI & YURI ditampilkan di kolom pertama (x =

0) dan baris kedua (y = 1) dengan delay waktu 1000 ms (1 sekon). Setelah

selesai membuat progra tersebut, kami meng-’compile’ file untuk

mengetahui ada atau tidaknya kesalahan syntax dalam program. Bila tidak

ada kesalahan, kami dapat langsung mem-‘Build All’ dan program dapat

digunakan untuk menjalankan mikrokontroler.

Kembali ke program Proteus ISIS, dengan meng-klik dua kali pada

mikrokontroler kita dapat memasukkan program yang telah kita buat tadi

dengan menggunakan CVAVR. Kemudian kami menjalankan (running)

program sehingga muncul tampilan seperti pada gambar 3 (lihat di bagian

hasil pengamatan).

Penggunaan CVAVR pada praktikum percobaan ini sebagai compiler

berbahasa C yang mudah digunakan dan mendukung program

mikrokontroler. Program ini khusus dirancang untuk mikrokontroler

keluarga Atmel AVR Mikrokontroler. Program ini dapat dijalankan pada

sistem operasi XP, Vista dan Windows 7 arsitektur 32 bit atau 64 bit.

Page 12: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

12

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. CodeVision AVR mempunyai suatu

keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini

memudahkan kita dalam inisialisasi mikrokontroler yang akan kami

gunakan.

Percobaan ini menggunakan Proteus ISIS sebagai program untuk simulasi

menampilkan karakter pada LCD dengan menggunakan mikrokontroler.

Penggunaan Proteus ISIS ini dikarenakan program ini memiliki komponen

pendukung yang banyak digunakan user (pengguna) dan mudah digunakan

untuk membuat rangkaian elektronika sederhana dan berbagai aplikasi

mikrokontroler.

Page 13: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

13

IV. KESIMPULAN

Berdasarkan hasil percobaan yang telah kami lakukan dapat diperoleh kesimpulan

sebagai berikut.

1. Percobaan menggunakan mikrokontroler ATMega16 sebagai mikroprosesor

untuk menjalankan (running) program menampilkan karakter pada LCD

dengan Port C sebagai outputnya.

2. Simulasi program menggunakan Proteus ISIS yang menyediakan komponen

dan fitur lengkap dalam membuat rangkaian elektronika dasar dan

mikrokontroler.

3. CodeVisionAVR merupakan program berbahasa C yang mempunyai

codewizard yang memudahkan dalam inisialisasi mikrokontroler yang akan

digunakan.

Page 14: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

14

DAFTAR PUSTAKA

Ali, Muhammad, M.T., Chandra, Ariadie N., M.T., Asmara, Andik, S.Pd.. 2013. Modul pelatihan praktikum mikrokontroler dengan software proteus.Yogyakarta: Universitas Yogyakarta.

Anonim. 2013. http://ilmuef.blogspot.com/2013/11/liquid-crystal-display-lcd-adalah_9490.html. diakses pada tanggal 19 November 2014 pukul 13.00 WIB.

Heryanto, M. Ary, ST, dan Ir. Adi, Wisnu P. Pemrograman Bahasa C untuk Mikrokontroler. Semarang: Penerbit ANDI.

Putra, A.E.. 2002. Belajar Mikrokontroler : Teori dan Aplikasi. Yogyakarta: Gava Media.

Wahyudin, Didin. 2007. Belajar Mudah Mikrokontroler. Semarang: Penerbit ANDI.

Page 15: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

15

LAMPIRAN

Page 16: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

16

Page 17: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

17

PROGRAM CVAVR

/*****************************************************This program was produced by theCodeWizardAVR V2.05.0 EvaluationAutomatic Program Generator© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : Version : Date : 14/11/2014Author : Freeware, for evaluation and non-commercial use onlyCompany : Comments:

Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency : 12,000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*****************************************************/

#include <mega16.h>

// Alphanumeric LCD Module functions#asm.equ _lcd_port=0x15; portc#endasm#include <alcd.h>#include <delay.h>

// Declare your global variables herevoid 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;

Page 18: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

18

// 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=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00;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// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=0xFF// OC0 output: DisconnectedTCCR0=0x00;TCNT0=0x00;OCR0=0x00;

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

Page 19: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

19

ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;

// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer2 Stopped// Mode: Normal top=0xFF// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;

// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;

// USART initialization// USART disabledUCSRB=0x00;

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

// ADC initialization// ADC disabledADCSRA=0x00;

// SPI initialization// SPI disabledSPCR=0x00;

// TWI initialization// TWI disabledTWCR=0x00;

Page 20: Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16

20

// Alphanumeric LCD initialization// Connections specified in the// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:// RS - PORTC Bit 0// RD - PORTC Bit 1// EN - PORTC Bit 2// D4 - PORTC Bit 4// D5 - PORTC Bit 5// D6 - PORTC Bit 6// D7 - PORTC Bit 7// Characters/line: 16lcd_init(16);

while (1) {

lcd_gotoxy(0,0);

lcd_putsf("FAT’HUL & ANISA");

delay_ms(1000);

lcd_gotoxy(0,1);

lcd_putsf(“YUNI & YURI”);

delay_ms(1000); } } }