PRAKTIKUM MIKROPROSESOR
MODUL I
PENGENALAN MIKROKONTROLER AVR ATMega 8535
LAPORAN AWAL
NAMA : Mukh Yasin Nur Supriyadi
NPM : 140303130001
WAKTU :
ASSISTEN :
LABORATORIUM HARDWARE
PROGRAM STUDI TEKNIK KOMPUTER
FMIPA UNPAD
2014
MODUL 1
Pengenalan Mikrokontroller AVR ATMega 8535
Tujuan Praktikum
Praktikan mampu memahami fungsi pin I/O pada mikrokontroler AVR sebagai input dan output.
Praktikan mampu memahami I/O sebagai output untuk mengendalikan LED.
Praktikan mampu memahami pin I/O sebagai input untuk membaca penekanan switch.
Teori Dasar
2.1 Pengenalan Mikrokontroler
Suatu mikrokontroller digunakan untuk mengontrol suatu proses atau aspek-aspek dari lingkungan. Satu contoh aplikasi dari mikrokontroler adalah untuk mengatur rumah kita. Ketika suhu naik, kontroller membuka jendela dan sebaliknya. Pada masanya, kontroler dibangun dari komponen-komponen logika secara keseluruhan, sehingga menjadikanya besar dan berat. Setelah itu barulah dipergunakan mikroprosesor sehingga keseluruhan kontroler masuk kedalam PCB yang cukup kecil.
Mikrokontroler AVR merupakan mikrokontroller berbasis arsitektur RISC (Reduced Instruction Set Computing) 8 bit. Mikrokontroller AVR didesain menggunakan arsitektur Harvard, dimana ruang dan jalur bus bagi memory program dipisahkan dengan memori data. Memori program diakses dengan single-pipelening, dimana ketika sebuah instruksi dijalankan, instruksi lain berikutnya akan di prefetch dari program memori. AVR mempunyai kepanjangan Advance Versatilc RISC atau Alf and Vegard's RISC prosesor yang berasal dari dua nama mahasiswa yaitu Alf-Egil Bogel dan Vergerd Wollan.
AVR memiliki keunggulan dibandingkan mikrokontroller lain, keunggulan mikrokontroller AVR yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat karena sebagian instruksi dieksekusi dalam satu siklus clock, lebih cepat dibandingkan dengan mikrokontroller MSC51, Mikrokontroller AVR memiliki fasilitas yang lengkap (ADC internal, EEPROM internal, timer/counter, watchdog timer, PWM, port I/O, komunikasi serial, komparartor 12C, dan lain-lain. Sehingga dengan fasilitas yang lengkap ini, programmer dan designer dapat menggunakanya untuk berbagai aplikasi sistem elektronika seperti robot, otomasi industri, peralatan telekomunikasi, dan berbagai keperluan lain. Secara umum mikrokontroller ACR dapat dikelompokan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega, dan Atiny.
Tabel Jenis Mikrokontroller AVR
Mikrokontroller AVR
Memori
Tipe
Jumlah pin
Flash
EEPROM
SRAM
Tiny AVR
8 – 32
1 – 2k
64 – 128
0 – 128
AT90Sxx
20 – 44
1 – 8k
128 – 512
0 – 1k
ATMega
32 – 64
8 – 128k
512 – 4k
512 – 4k
Fitur-fitur pada ATMega 8535
Fitur yang dimiliki ATMega 8535 sebagai berikut:
Saluran IO sebangak 32 buah
ADC 10 bit sebanyak 8 channel
Tiga buah timer / counter
Memiliki 32 register
Watcthdog Timer dengan osicilator internal
SRAM sebanyak 512 byte, EEPROM 512 byte, memori flash sebesar 8kb
Sumber Interrupt internal dan external
Mempunyai port SPI (Serial Peripheral Interface) dan port USART (Universal Shyncronous Ashyncronous Receiver Transmitter).
Konfigurasi pin AVR ATMega 8535
PDIP
Konfigurasi kaki (pin) ATMega 8535
Konfigurasi pin ATMega 8535 dengan kemasan 40 pin DIP (Dual In-Line package) dapat dilihat pada gambar diatas. Dari gambar diatas dapat dijelaskan fungsi dari masing-masing pin ATMega 8535 sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground
3. Port A (PA0...PA7) merupakan pin I/O dan pin ADC
4. Port B (PB0....PB7) merupakan pin I/O dan pin yang mempunyai fungsi khusus yaitu timer/counter, komparator Analog dan SPI.
5. Port C (PC0....PC7) merupakan port I/O dan pin yang mempunyai fungsi khusus yaitu komparator analog dan timer Oscillator.
6. Port D (PD0....PD7) merupakan port I/O dan pin fungsi khusus yaitu komparator analog dan interupt eksternal serta komunikasi serial.
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroller.
8. XTAL 1 dan XTAL 2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREF merupakan pin masukan tegangan referensi untuk ADC.
2.2. Pemrograman mikrokontroller AVR ATMega 8535
Pengembangan sebuah sistem menggunakan mikrokontroller AVR buatan ATMEL menggunakan software AVR STUDIO dan Code Vision AVR. AVR STUDIO merupakan software khusus untuk bahasa assembly. Sedangkan Code Vision AVR merupakan software C-Corss Compiler, dimana program dapat ditulis dalam bahasa C, Code Vision memiliki IDE (Integrated Development Environment) yang lengkap, dimana penulisan program, compile, link, pembuatan code mesin (assembler) dan download program ke chip AVR dapat dilakukan pada code vision, selain itu ada fasilitas itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroller yang sudah diprogram. Proses download program IC mikrokontroller AVR dapat menggunakan sistem download secara ISP (In-System Programing). In-System Programmable flash on-chip mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
#include
#include
#define sensor PINA.0
#define servo PORTB.0
// variabel global
Unsigned int i,j;
Void main (void)
{
// variabel local
Char data_rx;
DDRA=0x00;
PORTA=0XFF;
DDRA=0XFF;
PORTB=0x00;
While (1)
{
.........
.........
.........
};
}
Penjelasan :
Prosessor(#): digunakan untuk memasukan (include) text dari file lain, mendefinisikan marco yang dapat mengurangi beban kerja pemograman dan meningkatkan legibility source code (mudah dibaca).
#define: digunakan untuk mendefinisikan macro
Contoh:
#define ALFA 0xff
#define SUM (a,b) a+b
#define Sensor PINA.2
#define Pompa PORTB.0
Komentar
Penulisan komentar untuk beberapa baris komentar sekaligus
/*
..........komentar
..../*
Penulisan untuk satu baris saja
//.........komentar.........
Input Output Mikrokontroller AVR ATMega 8535
Mikrokontroller AVR ATMega 8535 terdiri dari empat buah port yaitu port A (PA), portB (PB), portC (PC) dan portD (PD) yang semuanya dapat diprogram sebagai input ataupun output. Pin I/O pada mikrokontroller VR dapat konfigurasi sebagai input atau output, dengan cara mengubah isi I/O register Data Direction Register.
Misalnya, jika ingin port B dikonfigurasikan sebagai output, maka Data Direction Register portB (DDRB) harus diset sebagai 0xFFH (sama dengan 255). Jika sebagai input maka 0x00H (sama dengan 0).
Contoh :
DDRB = 255; //portB dikonfigurasikan sebagai output. Yaitu PB0-PB7.
DDRD = 0x00; //portD dikonfigurasikan sebagai input.
VOH (Output High Voltage) ialah tegangan pada pin I/O mikrokontroller ketika ia mengeluarkan logika "1" dengan besar sekitar 4.2 V dan arus sebesar 20mA (IOH). Setiap pin I/O mikrokontroller AVR memiliki internal pull up. Misalnya portB dikonfigurasikan sebagai input dan internal pull-upnya diaktifkan maka DDRB = 00H dan PORTB = 00H.
DDRB = 0; //portB dikonfigurasikan sebagai input.
PORTB.0 = 0; //internal pull-up
Untuk mendeteksi input pada salah satu port, dapat digunakan fungsi PINx, sedangkan mendeteksi per pin pada suatu port dapat digunakan funsi pin x bit.
Contoh:
PORTB = PINC //semua data di portC dikirim ke portB
PORTB.0 = PINC.0; //data di portC.0 dikirim ke portB.0
Tegangan keluaran pada pin I/O mikrokontroller ketika logika "1" besarnya sekitar 4.2 V dan arusnya 20 mA. Port I/O sebagai output hanya memberikan arus (sourcing) sebesa 20 Ma, keluaran dari suatu port mikrokontroller hanya dapat mengemudikan perangkat output dengan arus kecil, sehingga untuk peralatan elektronik yang membutuhkan arus yang besar misalnya untuk menggerakkan motor perlu diberikan penguat tambahan, oleh karena itu biasanya dipergunakan penguat lagi berupa transistor atau IC penguat (driver) agar port tersebut tidak terbebani, atau dapat juga dengan konfigurasi port sebagai sinking current, seperti pada port untuk menyalakan LED, yang akan menyala saat port diberikan nilai logika low dan mati saat port diberikan nilai logika high.
Program Control
Perintah if dan if.. else..
Perintah if dan if... else... digunakan untuk melakukan operasi percabangan bersyarat. Fungsi-fungsi untuk menetapkan kondisi dapat dilihat dalam tabel.
Syntax penulisan if dapat ditulis sebagai berikut:
If ()
;
Else
;
Jika hasil testing expression memberikan hasil tidak nol statement 1 akan dilaksanakan. Pada keadaan sebaliknya statement 2 yang akan dilaksanakan. Sebaliknya pemanfaatan perintah if untuk beberapa kondisi dilakukan dengan menggunakan blok-blok.
Percabangan Switch
Perintah percabangan if .... else ..... dapat digantikan dengan perintah swicth. Dalam pernyataan switch, sebuah variabel secara berurutan diuji oleh beberapa konstanta bilangan bulat atau konstanta karakter, syntax perintah switch dapat dituliskan sebagai berikut:
Switch (variabel)
{
Case konstanta_1 : statement;
Break;
Case konstanta_2: statement;
Break;
Case konstanta_3: statement;
Break;
Default:
}
Hal-hal yang harus diperhatikan :
1. Switch hanya dapat memeriksa variabel terhadap sebuah konstanta, sedangkan if dapat memeriksa persyaratan perbandingan (lebih besar, lebih kecil, dan seterusnya).
2. Tidak ada 2 konstanta yang sama didalam sebuah switch.
3. Perintah switch jika dimanfaatkan dengan tepat dapat memberikan hasil lebih baik daripada perintah if .... else .... yang membentuk tangga dan / bersarang.
Looping (perulangan)
Looping adalah perulangan satu atau beberapa perintah sampai mencapai keadaan tertentu. Ada
tiga perintah looping, yaitu : for .... while.... , dan do.... while....
Syntax loop dor dapat dituliskan sebagai berikut:
For
Untuk perulangan yang melakukan proses increment
For (nama_variabel = nilai_awal; syarat_loop;
Nama_variabel++)
{
Statement_yang_diulang;
}
Untuk perulangan yang melakukan proses decrement
For (nama_variabel = nilai_awal; syarat_loop;
Nama_variabel --)
{
Statement_yang_diulang;
}
Syarat loop adalah pernyataan relasional yang menyatakan syarat berhentinya perulangan, biasanya berkaitan dengan variabel control, nama_variabel++ dan nama_variabel --, menyatakan proses increment dan proses descrement pada variabel control.
While
Perintah while dapat melakukan looping apabila persyaratannya benar, syntax perintah while dapat dituliskan sebagai berikut:
Nama_variabel = nilai_awal;
While (syarat_loop)
{
Statement_yang_akan_diulang;
Nama_variabel++;
}
Do... while
Perintah while terlebih dahulu melakukan pengujian persyaratan sebelum melakukan looping. Kadang-kadang hal ini menimbulkan kerepotan-kerepotan yang tidak perlu, misalnya inisialisasi variabel control. Salah satu solusi adalah dengan menggunakan loop do... while:
Nama_variabel = nilai_awal;
Do
{
Statement_yang_akan_diulang;
Nama_variabel++;
}
While (syarat_loop)
Tugas Pendahuluan
Jelaskan perbedaan Mikrokontroler dan Mikroprosesor!
Jawab :
i. Mikroprosesor
Bersifat general purpose (berfungsi umum).
Mikroprosesor hanya berisikan sepaket chip yang hanya berfungsi sebagai pengolah data (terdiri dari ALU, PC, SP, register, clock, interrupt, data/address bus) dari memory.
Mikroprosesor tidak memiliki fitur lainya sehingga untuk dapat beroperasi harus ditambahkan lagi RAM, I/O dan berbagai peripheral atau device lain tergantung penggunaannya. Contoh nya seperti processor INTEL atau AMD pada PC.
ii. Mikrokontroler
Bersifat specific purpose (berfungsi khusus).
Mikrokontroler berisikan sepaket chip lengkap yang terdiri dari fitur-fitur pengolah data yang juga terdapat dalam mikroprosesor, ditambah RAM, ROM, I/O, dan fitur lain yang terintegrasi di dalamnya. Contohnya dapat ditemui pada perangkat otomotif, mesin industri, elektronik dan perangkat- perangkat lain yang memiliki embedded sistem di dalamnya.
Apa bedanya mikrokontroller ATMega 8535, ATMega 8535L, dan ATMega 16 ?
Jawab :
ATMega 8535
Tegangan catu operasinya 4.5V S/d 5.5V,
Tingkat kecepatan mikrokontrollernya 0 – 16 Mhz.
Range kemampuan tegangan kerja dan kecepatan clock lebih besar/tinggi daripada ATMega 8535L
ATMega 8535L
Tegangan catu operasinya 2.7V s/d 5.5V,
Tingkat kecepatan mikrokontrollernya 0 – 8 Mhz.
Range kemampuan tegangan kerja dan kecepatan clock lebih kecil/rendah daripada ATMega 8535L
ATMega 16
Tidak sestabil seri 8535
Apa saja keunggulan mikrokontroller ATMega 8535 dibandingkan dengan mikrokontroller lainya ?
Jawab : Harga mikrokontroler ini tergolong murah saat ini jika dilihat dari fasilitas yang dimilikinya. ATmega8535 memiliki empat port yang dapat digunakan untuk banyak masukan atau keluaran, memiliki ADC, Timer dan fasilitas lainya. Keuntungan lain mikrokontroler ini adalah cara memrogramnya juga mudah karena tidak memerlukan downloader yang sangat merepotkan seperti mikrokontroler generasi sebelumnya karena dapat diprogram menggunakan sistem minimalnya.
Jelaskan fungsi, tujuan dari CODEVISION AVR ?
Jawab : Code Vision AVR merupakan software C-Corss Compiler, dimana program dapat ditulis dalam bahasa C, Code Vision memiliki IDE (Integrated Development Environment) yang lengkap, dimana penulisan program, compile, link, pembuatan code mesin (assembler) dan download program ke chip AVR dapat dilakukan pada code vision, selain itu ada fasilitas itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroller yang sudah diprogram.
Pada dasarnya CODEVISION AVR merupakan sebuah software yang digunakan untuk kepentingan pemrograman pada Mikrokontroller.
Jelaskan Spesifikasi dari ATMega 8535!
Jawab :
Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D
ADC (Analog to Digital Converter)
Tiga buah Timer/Counter dengan kemampuan perbandingan
CPU yang terdiri atas 32 register
Watchdog Timer dengan osilator internal
SRAM sebesar 512 byte
Memori Flash sebesar 8kb dengan kemampuan read while write
Unit Interupsi Internal dan External
Port antarmuka SPI untuk men-download program ke flash
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
Antarmuka komparator analog
Port USART untuk komunikasi seria
Gambarkan Data Sheet ATMega 8535 beserta fungsi umum dan fungsi khusus dari masing-masing PIN pada port ATMega 8535 ?
Jawab:
Datasheet ATMega 8535
Fungsi PIN secara umum dan khusus :
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground
3. Port A (PA0...PA7) merupakan pin I/O dan pin ADC
4. Port B (PB0....PB7) merupakan pin I/O dan pin yang mempunyai fungsi khusus yaitu timer/counter, komparator Analog dan SPI.
5. Port C (PC0....PC7) merupakan port I/O dan pin yang mempunyai fungsi khusus yaitu komparator analog dan timer Oscillator.
6. Port D (PD0....PD7) merupakan port I/O dan pin fungsi khusus yaitu komparator analog dan interupt eksternal serta komunikasi serial.
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroller.
8. XTAL 1 dan XTAL 2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREF merupakan pin masukan tegangan referensi untuk ADC.
Apa yang dimaksud dengan arduino ?
Jawab : Arduino adalah pengendali mikro single-board yang bersifat open-source, yang di turunkan dari wiring platform, yang di rancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Sebutkan dan jelaskan jenis-jenis arduino!
Jawab:
Arduino USB.
Papan Arduino jenis ini menggunakan port USB sebagai antar muka pemrograman atau komunikasi komputer. Karena menggunakan port USB sebagai antar mukanya, jenis papan Arduino ini dapat digunakan secara plug and play. Beberapa contoh papan Arduino dengan port USB, ialah: Arduino Uno, Arduino Duemilanove, Arduino Diecimila, Arduino NG Rev. C. dan masih banyak lagi
.
b. Arduino Serial.
Papan Arduino ini menggunakan port serial RS232 sebagai antar muka pemrograman atau komunikasi komputernya. Penggunan papan Arduino jenis ini cukup rumit, sehingga dibutuhkan kecakapan yang cukup memadai dari user.
c. Arduino Mega
Papan Arduino jenis ini merupakan jenis papan Arduino dengan spesifikasi yang lebih tinggi yang telah dilengkapi dengan tambahan pin digital, pin analog, port serial dan peripheral lainnya yang dapat meningkatkan kemampuan papan Arduino jenis ini. Beberapa contoh papan Arduino jenis ini, ialah: Arduino Mega dan Arduino Mega 2560.
d. Arduino Fio
Papan Arduino jenis ini merupakan jenis papan Arduino yang khusus dikembangkan untuk keperluan project Nirkabel (Wireless).
e. Arduino Lilypad
Papan Arduino Lilypad merupakan jenis papan Arduino yang memiliki karakteristik unik yang tidak dimiliki papan Arduino jenis lain. Papan Arduino Lilypad meiliki bentuk melingkar yang tidak umum dijumpai pada papan-papan Arduino lainnya. Contoh papan Arduino jenis ini, ialah: LilyPad 00, LilyPad 01, LilyPad 02, LilyPad 03, dan LilyPad04.
f. Arduino BT
Papan Arduino jenis ini memiliki kelebihan tersendiri yang tidak dimiliki oleh papan Arduino jenis lain. Pada papan Arduino jenis ini telah terpasang modul Bluetooth untuk komunikasi nirkabel (Wireless).
f. Arduino Nano
Papan Arduino Nano merupakan jenis papan yang mwmiliki bentuk paling simple dibandingkan dengan papan Arduino jenis lain. Papan Arduino Nano memiliki bentuk compact dengan port USB sebagai antar muka dan media komunikasi dengan komputer. Arduino Nano juga biasa digunakan bersama breadboard. Contohnya ialah sebagai berikut; Arduino Nano 3.0 dan Arduino 2.x.
Apa kelebihan dan kekurangan arduino?
Jawab :
Kelebihan
Tidak perlu perangkat chip programmer karena di dalamnya sudah ada bootloader yang akan menangani upload program dari komputer.
Sudah memiliki sarana komunikasi USB, sehingga pengguna Laptop yang tidak memiliki port serial/RS323 bisa menggunakan nya.
Bahasa pemrograman relatif mudah karena software Arduino dilengkapi dengan kumpulan library yang cukup lengkap.
Memiliki modul siap pakai (shield) yang bisa ditancapkan pada board Arduino. Misalnya shield GPS, Ethernet, SD Card, dll
Kekurangan
Buatlah program untuk running led menggunakan arduino !
Jawab:
Download konfigurasi pin Arduino!
Jawab:
Apa yang dimaksud USART ?
Jawab: USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter ), merupakan salah satu mode komunikasi yang dimiliki oleh Mikrokontroler ATMega8535. USART memiliki 2 pin (RxD dan TxD) untuk Asynchronous dan 3 bit TxD, RxD, xCK untuk Synchronous.
Berapakah arus minimal yang dibutuhkan untuk menyalakan LED?
Jawab : LED berdiameter 3 mm - 5 mm pada umumnya beroperasi 20 mA sampai 30 mA.
Download gambar rangkaian LED!
Jawab :
Buatlah program untuk meyalakan 4 buah LED secara bergantian!
Jawab :
void setup() {
pinMode(13, OUTPUT );
pinMode(12, OUTPUT );
pinMode(11, OUTPUT );
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH );
delay(100);
digitalWrite(13, LOW);
delay(100);
digitalWrite(12, HIGH );
delay(100);
digitalWrite(12, LOW );
delay(100);
digitalWrite(11, HIGH);
delay(100);
digitalWrite(11, LOW);
delay(100);
digitalWrite(10, HIGH);
delay(100);
digitalWrite(10, LOW);
delay(100);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(9, LOW);
delay(100);
}
Komponen apa saja yang digunakan untuk membuat minimum sistem pada ATMega 8535?
Jawab:
Sistem minimum ini meliputi catu daya mikrokontroller (vcc) yang berkisar antara 2,7 V – 5,5 V,
Kristal oscillator (opsional) yang berfungsi sebagai referensi kecepatan akses mikrokontroller (kristal oscillator diperlukan jika menginginkan referensi clock yang tinggi, tapi tanpa kristal oscillator pun mikrokontroler masih dapat bekerja, karena sudah memiliki referensi clock internal),
Referensi ADC (Analog to digital konverter),
Tombol reset,
Serta port-port I/O.
Bahasa apa saja yang digunakan mikrokontroller agar dapat diprogram ?
Jawab: Bahasa Assembly, Bahasa Bascom, Bahasa C dan lain sebagainya.
DAFTAR PUSTAKA
Ino Suryana, Drs., M.Kom. Modul Praktikum Mikroprosesor, 2014. Laboratorium Hardware Universitas Padjadjaran.
http://r0fqh1.blogspot.com/2012/04/microcontroller-atmega-16.html
http://digitallaboratory.wordpress.com/2010/01/21/apa-beda-atmega-8535-dan-8535l/
http://christianto.tjahyadi.com/tag/atmega8535-atmega16-atmega32
http://fahmizaleeits.wordpress.com/tag/keunggulan-atmega-8535/
http://ghavianarduino.blogspot.com/2013/09/pengertian-arduino.html
http://afif1609.blogspot.com/2013/05/jenis-jenis-papan-arduino.html
http://fahmizaleeits.wordpress.com/tag/kelebihan-arduino/
http://anotherorion.com/membuat-running-led-dengan-arduino/
http://komputasirobotic.blogspot.com/2014/02/membuat-running-led-dengan-arduino-pada.html
http://www.duniaelektronika.net/mikrokontroler-atmega8535-sistem-minimum/