Mikrokontroler ATMega 8535 dan ATMega 328 merupakan mikrokontroler 8-bit buatan Atmel yang memiliki fitur seperti ROM, RAM, port masukan/keluaran, timer, ADC, DAC, dan komunikasi serial. ATMega 8535 memiliki 32 pin I/O, 8 channel ADC 10-bit, 3 timer/counter, dan memori seperti SRAM 512B, EEPROM 512B, dan flash 8kB. Sedangkan ATMega 328 memiliki arsitektur RISC, kecepatan 1 MIPS/
KOMPONEN ATMEGA 8535 DAN ATMEGA 328 RIFKI AL-FATAH SIREGAR.docx
1. KOMPONEN ATMEGA 8535 DAN ATMEGA 328
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), beberapaplot masukan maupun
keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital
converter), DAC (Digital to Analog converter) dan serial komunikasi
A.TMEGA 8535
ATMega8535 merupakan salah satu mikrokontroler 8 bit buatan Atmel untuk
keluarga AVR yang diproduksi secara massal pada tahun 2006. Karena merupakan keluarga
AVR, maka ATMega8535 juga menggunakan arsitektur RISC
ATMega8535 adalah mikrokontroler CMOS 8 bit daya rendah berbasis arsitektur
RISC. Instruksi dikerjakan pada satu siklus clock, ATMega8535 mempunyai throughput
mendekati 1 MIPS per MHz, hal ini membuat ATMega8535 dapat bekerja dengan kecepatan
tinggi walaupun dengan penggunaan daya rendah
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 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
• Mempunyai port SPI (Serial Peripheral Interface) dan port USART (Universal Shyncronous
Ashyncronous Receiver Transmitter).
2. 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 tegangan referensi untuk ADC.
Konfigurasi pin AVR ATMega 8535
Pemograman Mikrokontroler 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
3. Input outp ut Mikrokontroler 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 logika high.
PROGRAM CONTROL
-Perintah if dan Else
Perintah if dan if... else... digunakan untuk melakukan operasi percabangan bersyarat. Fungsi-
fungsi untuk menetapkan kondisi dapat dilihat dalam tabel.
Sintak penulisan if dapat ditulis sebagai berikut:
(<expression>)==<statement>;==Else==<statement>;
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.
4. -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, sintak 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....
Sintak 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, sintak 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
5. B. ATMEGA 328
ATMega328P merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor
(CMOS) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir
semua instruksi pada program dieksekusi dalam satu siklus clock .ATMega328P mempunyai 8 Kbyte
in-System Programmable Flash yang memungkinkan memori program untuk diprogram ulang
(read/write) dengan koneksi secara serial yang disebut Serial Peripheral Interface (SPI).
AVR memilki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan
mikrokontroler AVR yaitu memiliki kecepatan dalam mengeksekusi program yang lebih cepat, karena
sebagian besar instruksi dieksekusi dalam 1 siklus clock (lebih cepat dibandingkan mikrokontroler
keluarga MCS 51 yang memiliki arsitektur Complex Intrukstion Set Compute). ATMega328P
mempunyai throughput mendekati 1 Millions Instruction Per Second (MIPS) per MHz, sehingga
membuat konsumsi daya menjadi rendah terhadap kecepatan proses eksekusi perintah.
Gambar 1 Mikrokontroler ATMega328P.
Fitur Mikrokontroller ATMega328
ATMega328P adalah mikrokontroller keluaran dari Atmel yang mempunyai arsitektur
RISC (Reduce Instruction Set Computer) dimana setiap proses eksekusi data lebih cepat dari
pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroller ATMega328P
memiliki beberapa fitur antara lain:
1. Memiliki 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
2. Memiliki kecepatan eksekusi mencapai 16 MIPS dengan clock 16 MHz.
3. Memiliki Flash Memory 32 Kb.
4. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1
Kb sebagai tempat penyimpanan data semi permanen karena EEPROM tetap dapat
menyimpan data meskipun catu daya dimatikan.
5. Memiliki SRAM (Static Random Access Memory) sebesar 2 Kb.
6. Memiliki 23 pin I/O digital.
6. 3. Konfigurasi Pin ATMega328P
ATMega328P mempunyai kaki standar 28 pin yang mempunyai fungsi masing-masing.
Untuk lebih jelasnya tentang konfigurasi pin ATMega328P dapat dilihat pada Gambar 2.2
seperti berikut :
Gambar 2. Konfigurasi pin ATMega328P
Adapun rincian dan fungsi dari susunan pin ATMega328P adalah sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground.
3. Port B (PB0 – PB7) merupakan pin masukan/keluaran dua arah (full duplex) dan dengan
masing-masing port memiliki fungsi khusus.
4. Port C (PC0 – PC6) merupakan pin masukan/keluaran dua arah (full duplex) dan dengan
masing-masing port memiliki fungsi khusus.
5. Port D (PD0 – PD7) merupakan pin masukan/keluaran dua arah (full duplex) dan dengan
masing-masing port memiliki fungsi khusus.
6. RESET merupakan pin yang digunakan untuk mengatur ulang mikrokontroler.
7. XTAL1 dan XTAL2, merupakan pin masukan external clock.
7. 8. AVCC merupakan pin masukan tegangan untuk ADC (Analog-Digital Converter).
9. AREF merupakan pin masukan tegangan referensi untuk ADC.