Upload
university-of-lampung
View
2.168
Download
4
Embed Size (px)
Citation preview
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
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.
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 :
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.
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.
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
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.
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).
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,
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
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.
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.
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.
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.
15
LAMPIRAN
16
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;
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;
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;
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); } } }