Anda di halaman 1dari 14

AVR Board ATMEGA16 ATmega32 + ISP USBasp

Pengertian Mikrokontroler dan Sistem Minimum Mikrokontroler AVR ATMEGA8535

Pengertian 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 atau bisa juga “Suatu alat elektronika digital
yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus
dengan cara khusus.”

Mikrokontroler populer yang pertama dibuat oleh Intel pada tahun 1976, yaitu mikrokontroler 8-bit
Intel 8748. Mikrokontroler tersebut adalah bagian dari keluarga mikrokontroler MCS-48.
Sebelumnya, Texas instruments telah memasarkan mikrokontroler 4-bit pertama yaitu TMS
1000 pada tahun 1974. TMS 1000 yang mulai dibuat sejak 1971 adalah mikrokomputer dalam
sebuah chip, lengkap dengan RAM dan ROM.

DI-Smart AVR System (Sistem Minimum Mikrokontroler AVR ATMEGA8535)

DI-Smart AVR System adalah sebuah modul elektronika yang berdasar pada rangkaian sistem
minimum mikrokontroler AVR (sismin AVR) ATMEGA8535 seperti pada gambar 3. Modul ini pun dapat
digunakan sebagai sistem minimum mikrokontroler AVR lain yang pin-pin-nya bersesuaian dengan
mikrokontroler ATMEGA8535, seperti mikrokontroler ATMEGA16 dan mikrokontroler ATMEGA32.
Modul sistem minimum mikrokontroler AVR ini telah dilengkapi dengan beberapa fitur yang dapat
mempermudah proses pembelajaran atau proses “troubleshooting” pemrograman.
Gambar 1. DI-Smart AVR System.

Dimensi PCB:

98.2mm(X) x 93.5mm(Y) x 1.9mm(Z)

Aplikasi:

 DI-Smart AVR System yang berdasar pada sistem minimum mikrokontroler AVR
ATMEGA8535 ini dapat dijadikan sebagaimedia pembelajaran pemrograman mikrokontroler
AVR.
 Modul dengan sistem minimum mikrokontroler AVR ini sangat baik difungsikan sebagai CPU
(Central Processing Unit) atau Pengendali dalam berbagai macam sistem: sistem
instrumentasi, sistem robotika, dan otomasi-otomasi yang lainnya.

Spesifikasi:

 Dapat digunakan sebagai sistem minimum mikrokontroler AVR untuk tipe ATMEGA8535(L),
ATMEGA16(L), ATMEGA32(L), ATMEGA163(L), ATMEGA323(L).
 Menggunakan XTAL 11.0592MHz.
 Dilengkapi rangkaian regulator 5V dan dioda pengaman dengan konektor DC yang mudah
dihubungkan dengan Adaptor-DC.
 Dilengkapi rangkaian antarmuka (interface) Max232 sehingga dapat langsung dihubungkan
pada PORT SERIAL / COM PORT komputer.
 Koneksi ADC sudah disiapkan (AVCC, AGND, dan AREF) sehingga sistem sudah siap untuk
menerima input ANALOG pada PORTA.
 Tersedia Array LED pada PORTC, dan Push-ON pada PORTD.2 dan PORTD.3 sehingga cocok
untuk latihan pemrograman atau pengecekkan program (DEBUG).

Kelengkapan Produk:

 1 buah DI-Smart AVR System


 1 buah kabel konektor IDC-10
 1 Lembar Penjelasan Produk

Seulas Teori “Sistem Minimum Mikrokontroler“:

Sistem minimum mikrokontroler adalah sistem elektronika yang terdiri dari komponen-komponen
dasar yang dibutuhkan oleh suatu mikrokontroler untuk dapat berfungsi dengan baik. Pada umumnya,
suatu mikrokontoler membutuhkan dua elemen (selain power supply) untuk berfungsi: Kristal
Oscillator (XTAL), dan Rangkaian RESET. Analogi fungsi Kristal Oscillator adalah jantung pada tubuh
manusia. Perbedaannya, jantung memompa darah dan seluruh kandungannya, sedangkan XTAL
memompa data. Dan fungsi rangkaian RESET adalah untuk membuat mikrokontroler memulai kembali
pembacaan program, hal tersebut dibutuhkan pada saat mikrokontroler mengalami gangguan dalam
meng-eksekusi program. Pada sistem minimum AVR khususnya ATMEGA8535 terdapat elemen
tambahan (optional), yaitu rangkaian pengendalian ADC: AGND (= GND ADC), AVCC (VCC ADC), dan
AREF (= Tegangan Referensi ADC). Jangan lupa tambahkan konektor ISP untuk mengunduh (download)
program ke mikrokontroler. Rangkaian sistem minimum mikrokontroler AVR ATMEGA8535 dapat
dilihat pada gambar berikut:
Gambar 3. Rangkaian Sistem Minimum Mikrokontroler AVR ATMEGA8535

Dasar Pemrograman ATmega8535

Prosedur umum untuk memprogram ATmega8535 secara berurutan adalah :

1. Menuliskan listing program menggunakan bahasa tingkat pemrograman tingkat tinggi (assembler,
C, Basic, Pascal, dll)
2. Mengkompail program ke dalam set instruksi ATmega8535 menggunakan software compiler
(WinAVR, GCC, CVAVR, BASCOM, AVR-Studio, dll)
3. Memasukkan file hasil proses compile atau make ke dalam IC ATmega8535 menggunakan
softwaredownloader atau chip programmer (Ponyprog, CVAVR, USB-Downloader, dll). Biasanya
file ini berekstensi .hex atau .bin.
4. IC ATmega8535 telah terprogram dan siap digunakan
Dalam praktikum ini digunakan bahasa C sebagai bahasa pemrograman dan Codevision AVR
(CVAVR) sebagai compiler. CVAVR dipilih karena tersedia dalam versi bajakan (hehehe…) dan
memiliki fasilitas Code Wizard yang sangat membantu. Software chip programmer menggunakan
CVAVR standard V 1.24, Ponyprog2000 atau Universal ISP Programmer V 1.04, tergantung mode
download, menggunakan port paralel atau port USB.
Jika menggunakan PC dengan fasilitas port paralel, pemrograman dapat dilakukan langsung
menggunakan CVAVR. Sebelumnya dibuat dulu kabel downloader, untuk menghubungkan port
paralel PC dengan port SPI (Serial Peripheral Interface) pada mikrokontroler.

Skema Kabel Downloader Paralel

Jika pemrograman menggunakan laptop, yang hanya mengandalkan USB, maka harus dipakai
peralatan downloader via port USB, seperti AVRdoper, USB-downloader, dll.
Langkah untuk menghasilkan file .hex dengan menggunakan CVAVR secara umum adalah :
1. Membuat Project baru, diberi nama.
2. Membuat file Source baru, dalam bahsa C, edit, simpan.
3. Hubungkan/koneksikan file Source dengan Project yang ada.
4. Lakukan proses make (shift+F9) untuk membuat file .hex.
5. Jika ada yang salah, dikoreksi sampai berhasil

FASILITAS DASAR INPUT-OUTPUT

Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal masukan (input)
dan memberikan sinyal keluaran (output). Sinyal input maupun sinyal output adalah berupa data
digital 1 (high, mewakili tegangan 5 volt) dan 0 (low, mewakili tegangan 0 volt). Mikrokontroller
ATMEGA8535 memiliki 4 buah PORT 8 bit bidirectional yang dapat difungsikan sebagai PORT input
maupun PORT output yaitu PORTA, PORTB , PORTC, dan PORT D. Register digunakan untuk mengatur
fungsi dari pin-pin pada tiap port. Register dapat dianalogikan sebagai kumpulan switch on/off yang
digunakan untuk mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroller. Pada setiap
port pin terdapat 3 buah register 8 bit: DDRxn, PORTxn, dan PINxn.
Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan. Jika DDRxn diberikan
nilai 1 (high), maka pin digunakan sebagai output. Jika DDRxn diberikan nilai 0 (low), maka pin
difungsikan sebagai input. Register PORTxn digunakan untuk mengaktifkan pull-up resistor (pada saat
pin difungsikan sebagai input), dan memberikan nilai keluaran pin high/low (pada saat difungsikan
sebagai output). PINxn merupakan register yang berfungsi untuk mengetahui keadaan tiap-tiap pin
pada mikrokontroller. Register ini digunakan untuk membaca keadaan pin pada saat difungsikan
sebagai input.

Rangkaian Output LED dan Input Tombol

Percobaan pertama adalah menyalakan LED sesuai dengan pola tertentu. Sesuai skema, LED
dikonfigurasikan dalam posisi SINK, artinya LED menyala jika port yang bersesuaian diberi logika 0
(tegangan 0 volt atau dianggap ground). Demikian halnya dengan saklar tombol. Jika ditekan, maka
port yang bersesuaian akan terhubung ke ground.
Tugas : menyalakan LED yang terhubung ke port B, selang seling ON dan OFF dimulai dari port B yang
paling besar (PORT B.7)

Penyelesaian :
1. Konfigurasikan PORT B sebagai keluaran
2. Kirimkan urutan bilangan 1 0 1 0 1 0 1 0

Pelaksanaan tanpa menggunakan CodeWizard AVR:


1. Hubungkan PC dengan minimum system 8535 melalui port ISP. Nyalakan catu daya.
2. Buka Codevision AVR, lakukan konfigurasi chip programmer. Pilih menu Setting>>Programmer, lalu
pilih type Kanda System STK200+/300.
3. Pilih menu File>>New, pilih Project.
4. Jika ditawari untuk menggunakan CodeWizardAVR, pilih No saja dulu.
5. Beri nama project baru dengan nama “kenalan” (tanpa “)
6. Buat file source C. Pilih menu File>> New, pilih Source.
7. Ketikkan listing seperti ini.

#include
void main(void)
{
DDRB=0xFF;
PORTB=0xFF;
while(1)
{
PORTB=0xAA;
}
}
8. Simpan dulu file C nya. Beri nama “nocw” saja.
9. Lakukan konfigurasi project. Pilih menu Project>>Configure. Tekan tombol Add, lalu pilih file dengan
nama “nocw”. Pilih tab C Compiler. Pada pilihan Chip pilih Atmega8535. Ubah Clock menjadi 4 MHz.
Lalu pilih tab After Make, centang pilihan Program the Chip. Setelah semua selesai, klik OK.
10. Simpan dulu filenya.
11. Lakukan compile dengan menekan shift+F9. Jika tidak ada pesan error atau peringatan, maka klik
Program. Tunggu sebentar, semoga tidak ada kesalahan teknis.
12. Amati keluaran LED pada sismin.
Pelaksanaan menggunakan CodeWizard AVR:
1. Hubungkan PC dengan minimum system 8535 melalui port ISP. Nyalakan catu daya.
2. Buka Codevision AVR, lakukan konfigurasi chip programmer. Pilih menu Setting>>Programmer, lalu
pilih type Kanda System STK200+/300.
3. Pilih menu File>>New, pilih Project.
4. Jika ditawari untuk menggunakan CodeWizardAVR, pilih Yes.
5. Pada tab Chip, pilih 8535 dengan clock 4 MHz.
6. Pilih tab Ports, lalu pilih tab Port B. Setelah itu klik semua pilihan di bawah tulisan Data Direction
dari In berubah menjadi Out. Klik juga semua pilihan di bawah tulisna Pull-up/Output Value dari 0
menjadi 1.
7. Pilih menu File>>Generate, save and exit.
8. Beri nama sourcenya dengan nama withcw
9. Beri nama projectnya dengan nama kenalan2. juga file cwp-nya.
10. Lihatlah, program awal sudah dibuatkan. Scroll ke bawah, amati tulisan DDRB dan PORT B.
Bandingkan nilainya dengan listing program sebelumnya. Sama …
11. Scroll lagi ke bawah. Cari tulisan //place your code here. Di bawahnya tuliskan perintah
PORTB=0xAA;
12. Simpan dulu file C nya.
13. Lakukan konfigurasi project. Pilih menu Project>>Configure. Lalu pilih tab After Make, centang
pilihan Program the Chip. Setelah semua selesai, klik OK.
14. Lakukan compile dengan menekan shift+F9. Jika tidak ada pesan error atau peringatan, maka klik
Program. Tunggu sebentar, semoga tidak ada kesalahan teknis.
15. Amati keluaran LED pada sismin.

PENJELASAN
1. Semua port 8 bit memiliki indeks 0 s/d 7. Misalkan PORTB.0, PORTB.1 s/d PORTB.7
2. Indeks port yang paling besar merupakan bagian Most Significant Bit (MSB).
3. Indeks port yang paling kecil merupakan bagian Least Significant Bit (LSB).
4. Penulisan bilangan biner, yang paling kiri adalah MSB, dan sebaliknya.
5. Biasakan menuliskan data dalam format Heksadesimal. Syntax-nya adalah 0xXX di mana XX
merupakan bilangan heksadesimal. Misalkan dituliskan PORTB=0xAA, artinya kita memasukkan data
AA atau 1 0 1 0 1 0 1 0 ke port B.
6. DDRB=0xFF artinya kita memasukkan bilangan 1 1 1 1 1 1 1 1 ke Data Direction Register B, yang
membuat semua pin B menjadi output.
7. PORTB=0xFF artinya kita memasukkan bilangan 1 1 1 1 1 1 1 1 ke Register PORT B, yang membuat
semua pin B menjadi berlogika high.
8. Perintah #include artinya kita menggunakan file Header mega8535.h yang berisi perintah-perintah
yang dapat dikenali oleh compiler. Nanti kita akan menggunakan header-header lainnya.
9. void main(void) menunjukkan program utama.
10. Tulisan yang berada di belakan tanda // dan berwarna biru dianggap sebagai komentar, dan tidak
dijalankan dalam program. Demikian juga tulisan di antara tanda /* …. */
11. while (1) artinya adalah looping yang tanpa henti.

LATIHAN 1. LAMPU BERKEDIP

Masukkan listing berikut ini ke dalam 8535.

#include
#include
void main()
{
DDRB=0xFF;
while(1)
{
PORTC=0;
delay_ms(1000);
PORTC=0xFF;
delay_ms(1000);
}
}

PENJELASAN
1. Pada program di atas, digunakan file header untuk mengijinkan digunakannya perintah/fungsi
delay_ms(1000).
2. Perintah ini artinya melakukan delay/penundaan dalam satuan milidetik, sebanyak data yang
dimasukkan dalam (…).
3. Agar lama delaynya akurat, maka setting clock pada 8535 harus persis sama dengan nilai osilator
kristal yang dipasang.

TIPE DATA

Tipe data yang dapat dioperasikan dalam C untuk aplikasi mikrokontroler adalah :
1. byte. Mulai 0 s/d 255 (8 bit)
2. char. Mulai -128 s/d 127 (8 bit)
3. unsigned. Sama dengan byte. (8 bit)
4. int. Mulai -32768 s/d 32767 (16 bit)
5. Unsigned int. Mulai 0 s/d 65535 (16 bit)
6. long int (int versi 32 bit)
7. float dan double mulai 1,175e-38 s/d 3,402e38 (32 bit)

VARIABEL
Variabel Global, digunakan di seluruh program. Dideklarasikan di luar fungsi, di bagian paling atas.
Saat program berjalan, jika tidak ditentukan, akan bernilai 0. Variabel Lokal, digunakan secara lokal di
dalam fungsi tertentu. Dideklarasikan di dalam fungsi tersebut, dan tidak diinisialisasikan pada awal
program berjalan. Variabel dalam bentuk Array, indeks paling kecilnya adalah 0.
OPERATOR ARITMATIKA
* Multiplication x*y kalikan x dengan y
/ Division x/y bagi x dengan y
% Modulo x%y sisa x dibagi oleh y
+ Addition x+y jumlahkan x dan y
- Subtraction x-y Kurangkan y dari x
++ Increment x++ Increment x setelahnya
-- Decrement --x Decrement x sebelumnya
- Negation -x Kalikan x dengan –1

OPERATOR LOGIKA.
> Greater than x>y 1 jika terpenuhi
>= Greater than or equal to x>=y 1 jika terpenuhi
< Less than x<= Less than or equal to x<=y 1 jika terpenuhi == Equal to x==y 1 jika sama != Not equal
to x!=y 1 jika tidak sama ! Logical NOT !x 1 jika x adalah 0 && Logical AND x&&y 0 jika x atau y ada
yang 0 || Logical OR x||y 0 jika x dan y adalah 0 OPERATOR BITWISE ~ Bitwise complement ~x
Mengubah 1 jadi 0 dan sebaliknya NOT & Bitwise AND x&y AND Bitwise antara x dan y | Bitwise OR
x|y OR Bitwise x dan y ^ Bitwise exclusive OR x^y XOR Bitwise << Left shift x<<2 geser ke kiri 2 posisi
bit >> Right shift x>>3 geser ke kanan3 posisi bit

Nb. Syntax variabel = variabel & data dapat dituliskan variabel &= data
KONTROL ALIRAN
Struktur if – else
if (expression)
statement 1
else
statement2
artinya jika expression bernilai true, statement 1 dikerjakan. Kalau tidak statement 2 dikerjakan.

Struktur – while

while(expression)
{
Statement
}

artinya jika expression bernilai true, statement dikerjakan. Kalau false, selesai.

Struktur for –
For(expression1; expression2; expression3)
{
Statement
}

Expression1 adalah inisialisasi, Expression3 adalah operasi atau fungsi yang dilakukan, Expression2
adalah pengujian. Selama Expression2 terpenuhi, statement dikerjakan. Jika tidak, selesai.

LATIHAN 2. MEMBACA TOMBOL:

#include
#define tombol PIND

void main()
{
DDRB=0xFF;
DDRD=0x00;
PORTD=0XFF;
while(1)
{
if((tombol&0x01)==0) PORTB=0x55;
if((tombol&0x02)==0) PORTB=0xAA;
if((tombol&0x04)==0) PORTB=0x00;
if((tombol&0x08)==0) PORTB=0xFF;
}
}

PENJELASAN :
1. Tombol dipasang di PORTD. Jika ditekan berlogika 0.
2. Lampu LED dipasang di PORTB. Jika berlogika 0 akan menyala

Read more: http://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-


atmega8535.html#ixzz646QXPMoS

Anda mungkin juga menyukai