You are on page 1of 14

Mikrokontroller Atmega 8535

A. Tujuan 1. Mahasiswa mampu menjalankan software CodeVisionAVR. 2. Mahasiswa dapat mengetahui instruksi-intruksi pada software

CodeVisionAVR. 3. Mahasiswa mampu mengaplikasikan program dari software pada trainer. 4. Mahasiswa dapat memahami fungsi intruksi unsigned char, interrupt, delay, dan timer. B. Alat dan Bahan 1. PC 2. Trainer mikrokontroler Atmega 8535 3. Software CodevisionAVR 4. DB25/ Downloader 5. Power supply 5 volt C. Landasan Teori Mikrokontroler Atmega 8535 Prosesor yang digunakan sebagai pengendali utama robot adalah 8 bit mikrokontroler dari keluarga AVR, yaitu ATmega8535. Alasan penggunaan

mikrokontroler ini adalah karena harga yang relatif murah, mudah diperoleh, kemudahan dalam pemrograman, dan fitur-fitur menarik yang dimilikinya. Beberapa karakteristik dan fitur yang dimiliki mikrokontroler ATMega8535 antara lain: a. Resolusi data 8 bit. b. RISC arsitektur. c. 8 K byte In System Programmable Flash. d. 512 Bytes EEPROM. e. 512 Bytes SRAM internal. f. 8 channel, 10 bit resolusi ADC. g. 4 channel PWM. h. 2 timer/counter 8 bit. i. 1 timer/counter 16 bit. j. Osilator internal yang dikalibrasi.

k. Internal dan eksternal sumber interrupt. l. 6 mode sleep. Mikrokontroler ATMega8535 memiliki bagian struktur bagian sebagai berikut : a. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D. b. Tiga buah Timer/Counter dengan kemampuan perbandingan. c. CPU yang terdiri atas 32 buah register. d. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. e. Unit interupsi internal dan eksternal. f. Port antarmuka SPI g. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. h. Antarmuka komparator analog. i. Port Usart untuk komunikasi serial Mikrokontroler ATMega8535 memiliki 3 jenis memori yaitu Memori Program, Memori Data dan Memori EEPROM. Adapun deskripsi pin mikrokontroler Atmega 8535 sebagai berikut :

Gambar pin Atmega 8535

Pemrograman mikrokontroler dengan menggunakan Codevision AVR Code Vision AVR merupakan salah satu software kompiler yang khusus digunaan untuk mikrokontroler keluarga AVR. Salah satu kelebihan dari software Code Vision AVR adalah tersedianya fasilitas untuk

mendownload program ke mikrokontroler yang telah terintegrasi sehingga dengan demikian Code Vision AVR software kompiler juga ini selain dapat berfungsi sebagai sebagai software

dapat

berfungsi

programer/downloader.

Beberapa kelebihan yang dimiliki oleh Codevision AVR antara lain : a. b. Menggunakan IDE (Integrated DevelomentEnvirontment). Fasilitas yang disediakan lengkap (mengedit program) serta tampilannya terlihat menarik dan mudah dimengerti. Kita dapat mengatur settingan editor sedemikaian rupa sehingga membantu memudahkan kita dalam penulisan program. c. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas Code Wizard AVR. d. Memiliki fasilitas untuk mendownload program langsung dari Codevision AVR dengan menggunakan hardware khusus seperti ATmel STK500 Kanda System STK200+/300 dan bebrapa hardware lain yang telah didefinisikan oleh Codevision AVR. e. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assembler nya, contohnya AVRStudio. f. Memiliki terminal komunikasi serial yang terintegrasi dalam Codevision AVR sehingga dapat digunakan untuk membantu pengecekan program yang telah dibuat khususnya yang menggunakan fasilitas komunikasi UART.

D. Hasil Praktikum 1. Dasar Input dan Output a. Output

Gambar setting chip dan clock dan PORT B sebagai Output

Gambar file hasil code Wizard project

b. Proses Mendownload

Gambar proses mendownload

c. Input- Output 1). Deklarasi variabel data project pertama (project_pertama)

Dari PIN A dimasukan ke data, data kemudian dimasukan ke PORT B. data tersebut berisi 0x00. Program diatas menyatakan semua LED dalam keadaan menyala. PORT B sebagai output diisi dengan intruksi LED menyala. Apabila 0x00 diganti dengan 0xFF, maka semua LED tidak akan menyala atau mati.

Gambar LED menyala dengan PORT B sebagai output

2). Program menggunakan LED 1(Mengontrol nyala LED dengan bilangan heksa) ...........
#include <mega8535.h> #include <delay.h> ............ while (1) { PORTB=0x00; delay_ms(500); PORTB=0xFF; delay_ms(500); PORTB=0x00; delay_ms(500); PORTB=0x0F; delay_ms(500); PORTB=0xF0; delay_ms(500); }; }

Keterangan : 500 menyatakan delay selama 500 milisekon.

Hasilnya LED kelap-kelip yaitu pertama LED menyala semua, kemudian mati semua, selanjutnya 4 LED kiri menyala dan terakhir 4 LED kanan menyala. 0x00 0xFF 0x0F 0xF0 LED menyala semua LED mati semua LED 1 4 mati, LED 5 8 menyala LED 1 4 menyala, LED 5 8 mati

(a)

(b) Gambar (a) dan (b) hasil nyala LED dengan bilangan heksa

3). Program menggunakan LED 2 (Mengontrol nyala LED dengan bilangan biner)
#include <mega8535.h> #include <delay.h>

................
while (1) { PORTB=0b011111111; delay_ms(200); PORTB=0b101111111; delay_ms(200); PORTB=0b110111111; delay_ms(200); PORTB=0b111011111; delay_ms(200);

PORTB=0b111101111; delay_ms(200); PORTB=0b111110111; delay_ms(200); PORTB=0b111111011; delay_ms(200); PORTB=0b111111101; delay_ms(200); PORTB=0b111111110; delay_ms(200); }; }

Hasilnya LED menyala satu persatu secara bergantian dari kanan ke kiri secara berulang-ulang

Gambar LED menyala dan bergeser ke kanan

4). Program menggunakan LED 4 (Mengontrol nyala LED dengan operator BITWISE) ................
#include <mega8535.h> #include <delay.h> unsigned int a; unsigned char lcd[16]; interrupt [TIM0_OVF] void timer0_ovf_isr(void) {

.........
#asm("sei") a=1<<8; PORTB=~a; delay_ms(100); { PORTB=a; while (1) { delay_ms(100); a>>=1; PORTB=~a; if(==0)

{ a=1<<8 }} };

Hasilnya LED menyala satu persatu ke kanan mulai dari LED 1 dan seterusnya.

Gambar LED bergeser ke kanan dengan operator BITWISE

2. Kontrol I/O per bit a. Program LED menggunakan tombol ..........


#include <mega8535.h> #include <delay.h> #define pin0 PORTA.0 #define pin1 PORTA.1 #define pin2 PORTA.2 // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h>

........
while (1) { // Place your code here pin0=0; delay_ms(200);pin0=1;delay_ms(200); pin1=0; delay_ms(200);pin1=1; delay_ms(200); pin2=1; delay_ms(200);pin2=0; delay_ms(200); }; }

Hasilnya LED menyala semua karena PORT B diaktifkan semua. Hal ini menyebabkan push button tidak dapat berfungsi.

Gambar LED menyala semua karena PORT B diaktifkan semua 3. Tunda


#include <mega8535.h> #include <delay.h>

..........
#asm("cli") PORTB=0xFF; delay_ms(500); PORTB=0xF0; delay_ms(500); #asm("sei") }; }

Hasilnya pada saat PORTB=0xF0; LED yang menyala adalah LED 0 sampai LED 4. Pada saat PORTB=0x00; LED menyala semua dengan waktu 500 milisekon.

Gambar LED yang didelay setelah 500ms

4. Penampilan LCD

Gambar setting PORTC sebagaioutput LCD

Listing Program : ..........


#include <mega8535.h> #include <delay.h>

.......
while (1) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("*SELAMAT DATANG*"); lcd_gotoxy(0,1); lcd_putsf("PESERTA PELATIHAN"); delay_ms(5000); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("*MIKROKONTROLER*"); lcd_gotoxy(0,1); lcd_putsf("-ATMEGA 8535-"); delay_ms(5000); }; }

Hasilnya

Muncul

tulisan

SELAMAT

DATANG

PSERTA

PELATIHAN

MIKROKONTROLER ATMega 8535

Gambar tampilan tulisan di LCD 5. Aplikasi antarmuka dengan push button

(a)

(b)

Gambar (a) untuk setting push button di PORT A Gambar (b) untuk setting LED di PORT B Syntaxnya :
#include <mega8535.h> #include <delay.h> #define saklar1 PINA.0 #define saklar2 PINA.1 #define saklar7 PINA.7 #define saklar4 PINA.3 #define led PORTB

.............
while (1) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("LINDA"); delay_ms(100); lcd_gotoxy(0,1); lcd_putsf("REGINA"); delay_ms(1000);

if(saklar1==1){ PORTB=0x00; delay_ms(1000); PORTB=0xFF; delay_ms(1000); } if(saklar2==1){ PORTB=0x0F; delay_ms(1000); PORTB=0xF0; delay_ms(1000); } if(saklar7==1){ PORTB=0xAA; delay_ms(1000); PORTB=0x55; delay_ms(1000); } if(saklar4==1){ PORTB=0b11001100; delay_ms(1000); PORTB=0b00110011; delay_ms(1000); } else PORTB=0xFF; }; }

Hasilnya Pada percobaan ini yaitu jika push button 1 ditekan LED akan kedap-kedip. Jika push button 2 ditekan flip-flop (empat LED nyala, dan empat LED mati).Jika pus button 4 ditekan maka LED blink-blink. Jika push button 7 ditekan maka LED 2 blink.

Gambar LED kedap-kedip

Gambar LED flip flop

Gambar LED blink-blink

E. Kesimpulan 1. Mikrokontroler dapat digunakan untuk mengontrol/mengendalikan berbagai macam keluaran seperti lampu led, LCD, motor,dll. 2. Pada pembuatan program mikrokontroller yang harus terlebih dahulu kita lakukan adalah mengenalkan mikrokontroller apa yang kita pakai dan pendeklarasian port-port yang kita gunakan baik sebagai input ataupun oupu

DAFTAR PUSTAKA Bejo agus,Rahasia kemudahan bahasa C dalam mikrokontroler ATmega 8535.graha ilmu,yogyakarta,2007. http://riswato-teguh.blogspot.com/

You might also like