mikrokontroler atmega 8535.docx

Upload: regarz-arrow

Post on 30-Oct-2015

59 views

Category:

Documents


0 download

TRANSCRIPT

Mikrokontroler ATmega 8535Mikrokontroler Atmega 8535

Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus (Agus Bejo, 2007). Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR (Alf and Vegards Risc processor) ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satusiklus clockuntuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.Mikrokontroler AVR ATmega8535 memiliki fitur yang cukup lengkap. Mikrokontroler AVR ATmega8535 telah dilengkapi dengan ADCinternal,EEPROM internal,Timer/Counter, PWM, analog comparator,dll (M.Ary Heryanto, 2008). Sehingga dengan fasilitas yang lengkap ini memungkinkan kita belajar mikrokontroler keluarga AVR dengan lebih mudah dan efisien, serta dapat mengembangkan kreativitas penggunaan mikrokontroler ATmega8535.Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut:1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.2. ADC internal sebanyak 8 saluran.3. Tiga buah Timer/Counter dengan kemampuan pembandingan.4. CPU yang terdiri atas 32 buah register.5. SRAM sebesar 512 byte.6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.7. Port antarmuka SPI8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.9. Antarmuka komparator analog.10. Port USART untuk komunikasi serial.11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.12. Dan lain-lainnya.

Arsitektur Atmega 8535

Konstruksi ATmega8535Mikrokontroler ATmega8535 memiliki 3 jenis memori, yaitu memori program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.a. Memori programATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan dari alamat 0000h 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian programbootdan bagian program aplikasi.b. Memori dataATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register I/O yang dapat diakses sebagai bagian dari memori RAM (menggunakan instuksi LD atau ST) atau dapat juga diakses sebagai I/O (menggunakan instruksi IN atau OUT), dan 512 byte digunakan untuk memori data SRAM.c. Memori EEPROMATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROMAddress, register EEPROMData, dan register EEPROMControl. Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM.

ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat dikonfigurasi, baik secarasingle ended inputmaupundifferential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.

ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 1 buah timer/counter 16 bit. Ketiga modul timer/counter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu, semua timer/counter juga dapat difungsikan sebagai sumber interupsi. Masing-masing timer/counter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya.

Serial Peripheral Interface(SPI) merupakan salah satu mode komunikasi serialsyncrhronouskecepatan tinggi yang dimiliki oleh ATmega8535.Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter(USART) juga merupakan salah satu mode komunikasi serial yang dimiliki oleh ATmega8535.USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART.USART memungkinkan transmisi data baik secarasyncrhronousmaupunasyncrhronous,sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan modesyncrhronousmaupunasyncrhronousadalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada modeasyncrhronousmasing-masing peripheral memiliki sumber clock sendiri, maka pada modesyncrhronoushanya ada satu sumber clock yang digunakan secara bersama-sama. Dengan demikian, secara hardware untuk modeasyncrhronoushanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk modesyncrhronousharus 3 pin yaitu TXD, RXD dan XCK.

Port I/O ATMega8535

Port I/O pada mikrokontroler ATMega8535 dapat difungsikan sebagai input ataupun dengan keluaranhighataulow. Untuk mengatur fungsi port I/O sebagai input ataupun output perlu dilakukan setting pada DDR dan Port. Berikut tabel pengaturan port I/O.Dari tabel di atas, menyeting input/output adalah :1. Input ; DDr bit 0 dan Port bit 12. Output High ; DDR bit 1 dan Port bit 13. Output Low ; DDR bit 1 dan Port bit 0Logika port I/O dapat berubah-ubah dalam program secara byte atau hanyabit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakanperintahcbi (clear bit I/O)untuk menghasilkan outputlowatau perintahsbi (set bit I/O)untuk menghasilkan outputhigh. Perubahan secara byte dilakukan denganperintah in atau out yang menggunakan register bantu.Port I/O sebagai output hanya memberikan arussourcingsebesar 20mAsehingga untuk menggerakkan motor atau kendali alat elektronis yang lain, perludiberikan penguat tambahan atau dapat juga dengan konfigurasi port sebagaisinkingcurrent, seperti pada port yang digunakan untuk menyalakan LED, yang akanmenyala saat port diberikan logikalowdan mati saat port logikahigh.

Status Register (SREG) ATMega8535

Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.

1.1. Bit 7-I : Global Interrupt EnableBit harus diset untuk meng-enable interupsi. Setelah itu anda dapat mengaktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinyainterupsi, serta akan diset kembali oleh instruksi RETI.2.2. Bit 6-T : Bit Copy StorageInstruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BTS, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BDL. 3. Bit 5-H : half Carry Flag 4. Bit 4-S : Sigh Bit Bit-S merupakan hasil operasi EOR antara Flag-N (negatif) dan flag V (komplemen dua overflow). 5. Bit 3-V : Twos Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika.6. Bit 2-N : Negative FlagApabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan di-set.7. Bit 1-Z : Zero FlagBit akan di-set bila hasil operasi yang diperoleh adalah nol.8. Bit 0-C : Carry FlagApabila suatu operasi menghasilkan carry, maka bit akan di-set.

Peta Memori Atmega 8535ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal.Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada tabel dibawah . Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.

Pin-pin pada Mikrokontroler ATmega8535KonfigurasipinATmega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat dijelaskan fungsi dari masing-masingpinAtmega8535 sebagai berikut:1. VCC merupakanpinyang berfungsi sebagai masukan catu daya.2. GND merukanpin Ground.3.PortA (PortA0PortA7) merupakanpin input/outputdua arah danpinmasukan ADC.4.PortB (PortB0PortB7) merupakanpin input/outputdua arah dan danpinfungsi khusus, seperti dapat dilihat pada tabel di bawah ini.

Tabel 2. Fungsi Khusus Port B

PinFungsi Khusus

PB7SCK (SPIBus Serial Clock)

PB6MISO (SPIBus Master Input/ Slave Output)

PB5MOSI (SPIBus Master Output/ Slave Input)

PB4SS (SPISlave Select Input)

PB3AIN1 (Analog Comparator Negative Input)OC0 (Timer/Counter0 Output Compare Match Output)

PB2AIN0 (Analog Comparator Positive Input)INT2 (External Interrupt 2 Input)

PB1T1 (Timer/ Counter1 External Counter Input)

PB0T0 T1 (Timer/Counter External Counter Input)XCK (USARTExternal Clock Input/Output)

5.PortC (PortC0PortC7) merupakanpin input/outputdua arah danpinfungsi khusus, seperti dapat dilihat pada tabel dibawah ini.

Tabel 3. Fungsi khusus Port CPinFungsi khusus

PC7TOSC2 (Timer Oscillator Pin2)

PC6TOSC1 (Timer Oscillator Pin1)

PC5Input/Output

PC4Input/Output

PC3Input/Output

PC2Input/Output

PC1SDA (Two-wire Serial Buas Data Input/Output Line)

PC0SCL (Two-wire Serial Buas Clock Line)

6.PortD (PortD0PortD7) merupakanpin input/outputdua arah danpinfungsi khusus, seperti yang terlihat pada tabel dibawah ini.

Tabel 4. Fungsi khusus Port DPinFungsi khusus

PD7OC2 (Timer/Counter Output Compare Match Output)

PinFungsi khusus

PD7OC2 (Timer/Counter Output Compare Match Output)

PD6ICP (Timer/Counter1 Input Capture Pin)

PD5OC1A (Timer/Counter1 Output Compare A Match Output)

PD4OC1B (Timer/Counter1 Output Compare B Match Output)

PD3INT1 (External Interrupt 1 Input)

PD2INT0 (External Interrupt 0 Input)

PD1TXD (USART Output Pin)

PD0RXD (USART Input Pin)

7. RESET merupakanpinyang digunakan untuk me-resetmikrokontroler.8. XTAL1 dan XTAL2 merupakanpinmasukanclockeksternal.9. AVCC merupakanpinmasukan tegangan untuk ADC.10. AREFF merupakanpinmasukan tegangan referensi ADC.

Bahasa Pemrograman ATmega8535Pemrograman mikrokontroler ATmega8535 dapat menggunakanlow level language (assembly)dan highlevel language(C, Basic, Pascal, JAVA,dll) tergantungcompileryang digunakan (Widodo Budiharto, 2006). BahasaAssemblermikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun bahasaassemblerrelatif lebih sulit dipelajari dari pada bahasa C.Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasaassembleryaituindependentterhadaphardwareserta lebih mudah untuk menanganiprojectyang besar. Bahasa C memiliki keuntungan-keuntungan yang dimiliki bahasaassembler(bahasa mesin), hampir semua operasi yang dapat dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa pemrograman tingkat tinggi danassembly(Agus Bejo,2007).

Pengisian Program pada Mikrokontroler AVRUntuk melakukan pemrograman dalam mikrokontroler AVR, Atmel telah menyediakan software khusus yang dapat diunduh dariwebsite resmi Atmel. Software tersebut adalahAVRStudio. Software ini menggunakan bahasaassemblysebagai bahasa perantaranya. Selain AVRStudio, ada beberapa software pihak ketiga yang dapat digunakan untuk membuat program pada AVR. Software dari pihak ketiga ini menggunakanbahasa pemrograman tingkat tinggisepertibahasa C,Java, atauBasicseperti code vision AVR. Untuk melakukan pemindahan dari komputer ke dalam chip, dapat digunakan beberapa cara seperti menggunakankabel JTAGatau menggunakan STNK buatan Atmel.Melakukan download program ke mikrokontroler dapat juga menggunakan ponyprog2000. Tampilannya seperti di bawah ini: