You are on page 1of 9

micro club dte Sistem minimum Mikrokontroler Atmega8535/16/32

Mikrokontroler adalah suatu keping IC dimana terdapat mikroprosesor dan memori program (ROM) serta memori serbaguna (RAM), bahkan ada beberapa jenis mikrokontroler yang memiliki fasilitas ADC, PLL, EEPROM dalam satu kemasan. Penggunaan mikrokontroler dalam bidang kontrol sangat luas dan populer. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut "pengendali kecil" dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Secara teknis hanya ada 2 jenis mikrokontroler yaitu RISC dan CISC dan masing-masing mempunyai keturunan/keluarga sendiri-sendiri. RISC kependekan dari Reduced Instruction Set

Computer : instruksi terbatas tapi memiliki fasilitas yang lebih banyak. CISC kependekan dari Complex Instruction Set Computer : instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya. Ada beberapa vendor yang membuat mikrokontroler diantaranya Intel, Microchip, Winbond, Atmel, Philips, Xemics dan lain - lain. Dari beberapa vendor tersebut, yang paling populer digunakan adalah mikrokontroler buatan Atmel. Mikrokontroler AVR (Alf and Vegards Risc prosesor) memiliki arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS 51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi

micro club dte RISC (Reduced Instruction Set Computing), sedangkan seri MCS 51 berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Oleh karena itu, dipergunakan salah satu AVR produk Atmel, yaitu ATMega8535/16/32. Konfigurasi Pin ATMega8535

Gambar: Pin-pin atmega8535 Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 sebagai berikut: 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground. 3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC. 4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter,komparator analog,dan SPI. 5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,komparator analog dan Timer Oscillator. 6. Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog,interupsi eksternal,dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock ekstenal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREF merupakan pin masukan tegangan referensi ADC. Untuk memprogram mikrokontroler dapat menggunakan bahasa assembler atau bahasa tingkat tinggi yaitu bahasa C.

micro club dte Port Sebagai Input / Output Digital Atmega 8535 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bi-directional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf x mewakili nama huruf dari port sedangkan huruf n mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1, maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Maka harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi. Tabel Konfigurasi Pin Port

Tabel diatas menunjukkan konfigurasi pin pada port-port mikrokontroler. Bit 2 PUD = Pull-up Disable, bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).

micro club dte Codevision AVR Pemrograman mikrokontroler AVR lebih mudah dilakukan dengan bahasa pemrograman C, salah satu software pemrograman AVR mikrokontroler adalah Codevision AVR C Compiler. Dengan C AVR program yang telah di tulis selanjutnya di-compile agar diperoleh bentuk hexadesimal dengan bentuk file *.hex. bentuk hexa inilah yang akan dapat di download ke mikrokontroller. Memulai project dengan C AVR

File > New > Pilih Project > OK Use codeWizardAVR? >NO< Kemudian simpan project. Dan muncul jendela berikut

Pada colom C compiler, di bagian chip pilih mikrokontroller yang digunakan (Atmega8535) berikut juga crystal nya(12 Mhz). OK

Langkah selanjutnya yaitu, membuat file tempat penulisan source code yang ber ektensi .c. yaitu, pilih File > New > Pilih Source > OK.

micro club dte Kemudian, ketikkan dulu satu atau beberapa baris listing program, kemudian simpan [ File > Save ], dengan ekstensi .c.

Langkah selanjutnya adalah meng-include file source code listing program tadi kedalam project yang kita buat, caranya adalah.. Pilih Project > Configure

Kemudian pilih > Add > masukkkan/ open file ber-ekstensi .c yang tadi di save.

Menggunakan Simulator Proteus


Proteus ISIS, dapat digunakan untuk mensimulasikan program yang telah dibikin. Tampilan awal proteus 7.6
Memanggil komponen

Start/stop simulation

Rangkai seperti gambar berikut. Ambil komponen, untuk mikro pilih AT90S8535 (sama dengan atmega8535), led pilih yang aktive (warna terserah), resistor MINRES470R, dan tombol dengan button (pilih yang aktif).

micro club dte

Untuk mengubah value tengan dc, klik kanan edit properties

Properties AT90S8535

Untuk sumber tegangan, pilih dc

Ubah clock frequency sesuai pada compiler CAVR, dan pada Program file masukkan /cari file .hex hasil compile program yang dibuat

Menyalakan Lampu di PORT C


Pada gambar Sistem minimum Mikrokontroler Atmega8535/16/32 diatas, PORTC dihubungkan denga 8buah led, dimana 8led tersebut terhubung common anoda (anoda bersama), sehingga saat diberikan logika
0 pada port C maka akan mendapatkan led menyala. Hal ini dikarenakan adanya beda potensial pada kaki anoda dan katoda. Saat kita memberikan logika 1, maka Led akan padam.

Contoh Programnya: 1. Program Menghidupkan LED di PORTC


//Prog1: Menghidupkan LED di PortC #include<mega8535.h> void main(void) { DDRC=0xff; // inisialisasi PORTC sebagi keluaran PORTC=0xF0; // keluarkan data F0 di PORT C (cat:F0=11110000) }

micro club dte 2. Program Menghidupkan LED


//Prog2: Menghidupkan LED1,3,5,7 #include<mega8535.h> void main(void) { DDRC=0xff; // inisialisasi PORTC sebagi keluaran PORTC=0xAA; // keluarkan data AA(hex) ke PORTC cat: AA=10101010 }

3. Program LED Berkedip (memakai delay)


//Prog3: LED berkedip pada Port C #include<mega8535.h> #include<delay.h> void main(void) { DDRC=0xff; // inisialisasi PORTC sebagi keluaran while(1) // perulangan yang tidak pernah terpenuhi { PORTC=0x00; delay_ms(1000); PORTC=0xff; delay_ms(1000); } }

4. Program LED Berjalan


//prog4: LED berjalan #include<mega8535.h> #include<delay.h> void main(void) { char urutan[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; char i; DDRC=0xff; PORTC=0Xff; while(1) { for(i=0;i<8;i++) {

micro club dte


PORTC=urutan[i]; delay_ms(500); } } }

Penjelasan : #include<mega8535.h> : Inisialisasi Mikrokontroller yang dipakai, memanggil library ( mempersiapkan perintah2 yang dapat digunakan saat menggunakan mikrokontroler Atmega8535). #include<delay.h> : memanggil library delay, dimana terdapat fungsi2 delay/tunda yang dapat kita gunakan, seperti delay_ms(konstanta) =tunda untuk milisecond, delay_us(konstanta) =tunda untuk microsecond. DDRn : Menyiapkan PORTn sebagai Keluaran (0xff) atau masukan (0x00) PORTn : Keluarkan data di PORTn n : mewakili A,B,C,dan D (PORT) Karena common Annoda maka pada saat logika 0, lampu LED akan menyala. Untuk penggunaan biner, maka penulisannya adalah 0b10101010. Untuk penggunaan Hexa, maka penulisannya adalah 0xaa.

PENEKANAN TOMBOL Port-port mikrokontroler dilengkapi pull up internal, sehingga kondisi default-nya adalah high. Untuk menjadikan Port ini sebagai input, kita tinggal memberikan logika high atau membiarkannya dalam kondisi default. Jika kita menginginkan sebuah masukan terbaca kita sebaiknya menggunakan masukan berupa sinyal Low. Prinsip kerja Hardware ,saat kita menekan tombol SW maka signal reendah akan dikrim ke PORTA pada mikrokontroler, Dengan demikian port ini akan mempunyai logika sesuai dengan penekanan tombol . Kemudian akan memicu PORTC unruk mengeluarkan data.( Tergantung Programnya bagaimana) Contoh Programnya: 1. Penekanan Tombol di PORTA
#include<mega8535.h> void main(void) { DDRA=0x00; // PORTA diinisialisasikan sebagai masukan DDRC=PORTA=PORTC=0xff; while(1) { PORTC=PINA;

micro club dte


}; }

2. Penekanan Tombol di PORTA 2


#include<mega8535.h> void main(void) { DDRA=0x00; // PORTA diinisialisasikan sebagai masukan DDRC=PORTA=PORTC=0xff; while(1) { if (PINA.0==0) {PORTC=0x5f;} else if (PINA.1==0) {PORTC=0xAf;} else if (PINA.2==0) {PORTC=0x9f;} else if (PINA.3==0) {PORTC=0x6f;} else {PORTC=0x0f}; } }

Penjelasan:
DDRA=0x00; // PORTA diinisialisasikan sebagai masukan

DDRC=PORTB=PORTC=0xff; PINB.0

: PORTC sebagai keluaran. Data di PORTC dan

PORTB adalah tinggi semua ( 0xff ). Biner: (11111111). : Kita bisa mengakses langsung ke PIN PORTB nomor 0 ( catatan: PIN

dan PORT berbeda. PIN untuk satu saja kalau PORT untuk keseluruhan PIN. Satu PORT ada 8 PIN ) While (1) : Dipakai karena agar program mengulang kembali instruksi yang berada di

bawahnya. Ciri perulangan while adalah dia akan terus melakukan perulangan karena tidaka akan terpenuhi.
Inti penekanan Tombol adalah Membuat sebuah PORT menjadi masukan. Dan aksinya tentunya akan dilakukan di PORT yang diset sebagai keluaran. >>>>>>>>>>>>>>> Tugas, buatlah program led berjalan dengan penekanan tombol, jika PINA.0 ditekan akan berjalan kekanan, jika PINA.1 ditekan akan berjalan kekiri, jika PINA.2 ditekan akan berkedip-kedip, jika tidak di tekan kondisi led mati.

Tugas dirumah, cari artikel dan pelajari mengenai tipe data dan instruksi dalam CAVR

You might also like