Professional Documents
Culture Documents
BAB I
MIKROKONTROLLER
Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi sinyal output
berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai kebutuhan. Sasaran dari pelatihan ini
adalah peserta mampu menggunakan mikrokontroller untuk membangun sendiri suatu sistem otomasi
atau embedded system.
1 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa mikrokontroller:
Dari tabel diatas dapat dilihat, ketika bekerja dengan kecepatan clock yang sama AVR 7 kali lebih
cepat dibandingkan denga PIC16C74, 15 kali lebih cepat daripada 68 HC11, dan 28 kali lebih cepat
dibanding 8051. Dari kemampuan dan fasilitas yang dimiliki, AVR RISC cocok dipilih sebagai
mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem. Oleh karena itu,
dalam pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan yaitu ATMEGA 8535.
Chip AVR ATMEGA8535 memiliki 40 pin kaki, berikut skema kaki AT MEGA8535,
ATMEGA8535 memiliki 4 buah port input/output 8 bit, yaitu PORTA, PORTB, PORTC, dan
PORTD. Selain sebagai input/output masing masing port juga memiliki fungsi yang lain. PORTA dapat
difungsikan sebagai ADC (Analog to Digital Converter), PORTB dapat difungsikan sebagai SPI (Serial
Peripheral Interface) communication. Fungsi-fungsi yang lain dapat dilihat pada datasheet
ATMEGA8535.
2 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Ada 2 cara untuk memprogram mikrokontroller ini, menggunakan software AVR assembler yang
berbasis pada bahasa assembly, dan menggunakan software CV AVR (Code Vision AVR) yang berbasis
pada bahasa C. Pada pelatihan ini akan digunakan cara yang kedua dengan pertimbangan kemudahan
pembuatan program dari algoritma yang telah dibangun.
Pelatihan ini tidak menitikberatkan penggunaan bahasa C pada CV AVR, tapi lebih pada cara dan
aplikasi dari mikrokontroller. Untuk itu peserta diharapkan membaca sendiri petunjuk pemakaian
software ini. Berikut tampilan utama CVAVR,
Untuk dapat menyimpan program yang telah kita buat pada memory mikrokontroller
dibutuhkan perangkat tambahan yang menghubungkan antara PC dan mikrokontroller. Perangkat
interface ini disebut isp_dongle yang menghubungkan port parallel PC dan port SPI (Serial Peripheral
Interface) mikrokontroller.
3 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Gambar 1.5: Isp dongle dan Skema rangkaiannya (dicopy dari buku bamec).
4 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
BAB II
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).
Konfigurasi PORTxn dan DDRxn dapat dilihat pada tabel dibawah,
Tri-state adalah kondisi diantara high dan low, atau biasa disebut dengan keadaan mengambang
(floating). Kondisi tri-state sangat dihindari dalam dunia digital.
Terlepas dari setting DDRxn, PINxn merupakan register yang berfungsi untuk mengetahui
keadaan tiap-tiap pin pada mikrokontroller. Register ini sangat dibutuhkan untuk membaca keadaan pin
pada saat difungsikan sebagai input.
PERANGKAT KERAS
5 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Perangkat keras yang dibutuhkan untuk mendemonstrasikan aplikasi input/output adalah sebagai
berikut:
ATMEGA8535 universal board + isp_dongle.
6 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Gambar 2.2: skema led output indicator (dicopy dari buku bamec).
led array dan push-button array telah dibuat dalam 1 board input output-seperti pada gambar
berikut,
7 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
APLIKASI PRAKTIK
Berikut adalah beberapa aplikasi praktik yang nantinya dapat lebih menjelaskan fungsi dan
fasilitas input/output. Peserta diharapkan mengikuti petunjuk langkah demi langkah.
APLIKASI 1: OUTPUT
Setting Hardware:
1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/output-board)
menggunakan kabel pita.
2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming:
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
8 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
4. Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit 0 – bit 7 sebagai out.
9 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn.
5. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
6. Buat direktori dengan nama io1.
7. Save file CV AVR dengan nama io1.cwp pada direktori io1.
8. Save file .C dengan nama io1.c pada direktori io1.
9. Save file project dengan nama io1.prj pada direktori io1.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan memilih
menu project >> configure.
2. Pilih tab after make, aktifkan program the chip. Terlihat tampilan seperti pada gambar dibawah,
setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita selesai
Make Project File.
Listing Program
1. Sekarang perhatikan kode bahasa C pada bagian setting register DDRxn, dan PORTxn, tampak
sebagai berikut,
10 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
DDRC = 0xFF yang berarti 8 bit port C difungsikan sebagai output. PORTC = 0x00 berarti nilai
awalan output adalah 0(low).
2. Nilai register PORTC diatas adalah nilai awalan pada saat mikrokontroller start-up, kita bisa
mengubah nilai output port C dengan mengubah nilai register PORTC pada looping while.
PORTC = 0xCD, nilai output port C adalah CD dalam bentuk hexa atau 11001101 dalam bentuk
biner.
3. Program chip dengan memilih menu Project >> Make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
11 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
APLIKASI 2: INPUT
Setting hardware:
1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/output board )
menggunakan kabel pita.
2. Hubungkan PORTB universal board dengan push button array (port INPUT pada input/output
board ) menggunakan kabel pita.
3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
• Programming:
12 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Setting port C sebagai output (out).
5. Setting port B sebagai Input (in) dan aktifkan pull-up resistor. (lihat gambar)
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama io2.
8. Save file CV AVR dengan nama io2.cwp pada direktori io2.
9. Save file .C dengan nama io2.c pada direktori io2.
10. Save file project dengan nama io2.prj pada direktori io2.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan memilih
menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
13 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita selesai
Make Project File.
Listing Program
1. Perhatikan setting register port B dan port C.
Port B difungsikan sebagai input (DDRB = 0x00) dengan 8 bit pull-up resistor diaktifkan
(PORTB=0xFF). Port C difungsikan sebagai output (DDRC=0xFF) dengan nilai awalan pada
tiap bit 1 (high).
2. Pada listing kode diatas kita telah men-set port B sebagai input dengan pull-up resistor dan
port C sebagai output. Untuk dapat menunjukkan funggsi input mikrokontroller tambahkan
listing kode berikut pada bagian looping while.
14 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
maksud dari listing program diatas adalah kita menscan register PINB terus menerus dari
PINB.0 – PINB.7. Perhatikan bahwa untuk membaca perubahan keadaan input dari push-
button dibaca pada register PINxn bukan pada register PORTxn maupun DDRxn.
3. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
15 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
EXERCISE
Buatlah program aplikasi agar lampu led pada input/output-board menyala berkelap kelip dengan selang
waktu tertentu.
Gunakan pengarah preprocessor delay.h dengan mengetikkan #include<delay.h>.
16 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
BAB 3
INTERRUPT
Interrupt adalah fasilitas mikrokontroller untuk menyela suatu program yang sedang berjalan.
Interrupt dapat dianalogikan sebagai hak untuk menyela pada suatu rapat. Dari sekian banyak peserta
rapat hanya 21 orang yang diberi hak untuk menyela. Jika terdapat 2 atau lebih orang yang menyela,
maka orang dengan prioritas paling tinggi yang diperbolehkan bicara. Pada ATMEGA8535 terdapat 21
fasilitas interrupt dengan prioritas seperti pada tabel berikut.
Dalam bab ini peserta akan diperkenalkan dengan fasilitas eksternal interrupt mikrokontroller
INT0 dan INT1. Fasilitas ini sangat penting karena menempati urutan kedua dan ketiga setelah RESET.
17 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Register register yang perlu disetting untuk menggunakan fasilitas interrupt adalah MCUCR, MCUSR,
GICR, dan GIFR.
PERANGKAT KERAS
Untuk mendemonstrasikan fasilitas interrupt perangkat keras yang dibutuhkan adalah sebagai berikut:
• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).
• Input/output-board (led array) (mengacu pada bab 3).
• Push-button.
APLIKASI PRAKTIK
Setting hardware
1. Hubungkan salah satu kaki push-button pada PORTD.2 dan PORTD.3, dan kaki lainnya pada
ground.
2. Hubungkan PORTB universal board dengan port OUTPUT pada input/output board ( led array).
3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming:
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Setting port B sebagai output (out).
18 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
5. Setting PORTD.2 dan PORTD.3 sebagai input(in) dan aktifkan pull-up resistor.
19 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Setting External IRQ, Klik tab External IRQ Enable-kan INT0 dan INT1 dan gunakan mode yang
berbeda yaitu low level untuk INT0 dan Falling edge untuk INT1.
7. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
8. Buat direktori dengan nama int.
9. Save file CV AVR dengan nama int.cwp pada direktori int
10. Save file .C dengan nama int .c pada direktori int
11. Save file project dengan nama int.prj pada direktori int.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah _egenerate. Konfigurasi project dengan memilih
menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
Listing Program
1. Perhatikan setting register port B dan port D. Kita telah men-set port B sebagai output, PORTD.2
dan PORTD.3 sebagai input dengan pull-up resistor.
20 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
terlihat register yang mempengaruhi, yaitu GICR, MCUCR, MCUCSR, dan GIFR.
3. Perintah diatas hanya berfungsi untuk setting external interrupt saja, untuk mengaktifkannya kita
perlu perintah (“sei”). Perintah ini tidak hanya mengaktifkan external interrupt saja tetapi juga
internal interrupt seperti timer overflow interrupt. Perintah ini dapat dieksekusi dengan bahasa
assembly, yaitu:
4. Pada pengarah preprosesor tambahkan header baru dengan mengetik #include<delay.h>. Pada
header ini ada 2 fungsi penting yaitu delay_ms() dan delay_us().
5. Sekarang kita coba untuk mendeklarasikan variable bertipe unsigned char. Pemilihan unsigned
char berdasarkan bahwa variable ini digunakan untuk register 8 bit. Pendeklarasian variable
diletakkan dibawah pengarah preprosesor seperti pada gambar. Setelah variable dideklarasikan
maka variable diberikan nilai awalan yang nantinya digunakan pada saat start-up.
21 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Pada bab ini kita akan coba membuat fungsi. Tujuan membuat fungsi adalah untuk lebih
menyederhanakan program serta mempermudah keterbacaan program. Ada tiga buah fungsi
yang dibuat pada program ini, yaitu: led_off, led_blink, dan led_walk. Fungsi fungsi tersebut
ditulis dibawah pengarah preprosessor seperti pada gambar.
7. Fungsi external interrupt dieksekusi apabila pin external interrupt INT0 dan INT1 berubah kondisi
(Low Level pada INT0 dan Falling Edge pada INT1). Pada saat external interrupt tereksekusi,
maka mikrokontroller akan memanggil fungsi yang berada didalamnya, seperti pada gambar,
22 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
jika pin external interrupt tidak mengalami perubahan kondisi (tidal dieksekusi), mikrokontroller
akan menjalankan program pada looping while.
8. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
23 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
9. Klik Program, jika ada kesalahan periksa kembali setting hardware.
10. Jika langlah langkah diatas telah benar, maka pada input/output-board led akan berjalan kekiri
jika tidak ada yang meng-interrupt-nya. Jika INT0 ditekan seluruh led akan mati. Jika INT1
ditekan led akan berkedip beberapa kali.
11. Perhatikan perbedaan trigger antara low level dan falling edge pada output led.
EXERCISE
Buatlah program aplikasi interrupt dengan menggunakan mode trigger lainnya (rising edge dan any
change).
Perhatikan perbedaan masing masing mode trigger.
24 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
BAB 4
ADC (Analog to Digital Convertion)
ADC (Analog to Digital Converter) adalah salah satu fasilitas mikrokontroller ATMEGA8535 yang
berfungsi untuk mengubah data analog menjadi data digital. ADC memiliki 2 karakter prinsip, yaitu
kecepatan sampling dan resolusi. Kecepatan sampling suatu ADC menyatakan seberapa sering sinyal
analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu. Kecepatan sampling biasanya
dinyatakan dalam sample per second (SPS).
Gambar 4.1: ADC dengan kecepatan sampling rendah dan kecepatan sampling tinggi
Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai contoh: ADC 8 bit akan
memiliki output 8 bit data digital, ini berarti sinyal input dapat dinyatakan dalam 255 (2 n – 1) nilai diskrit.
ADC 12 bit memiliki 12 bit output data digital, ini berarti sinyal input dapat dinyatakan dalam 4096 nilai
diskrit. Dari contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil konversi yang jauh lebih baik
daripada ADC 8 bit.
Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran yang merupakan
rasio perbandingan sinyal input dan tegangan referensi. Sebagai contoh, bila tegangan referensi 5 volt,
tegangan input 3 volt, rasio input terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit
dengan skala maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk decimal)
atau 10011001 (bentuk biner).
25 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
ADC pada ATMEGA8535 adalah jenis 10 bit successive approximation dengan tegangan
referensi maksimum 5 volt. Pada universal board M.B.3.2 tegangan referensi dibuat fix tidak dapat
diubah yaitu 5 volt yang diambil dari tegangan sumber (Vcc). Register-register yang harus di setting
adalah ADMUX, ADCSRA, dan SFIOR.
PERANGKAT KERAS
Perangkat keras yang dibutuhkan untuk aplikasi ADC adalah sebagai berikut:
ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3)
Input/output board M.B.3.6 (led array) (mengacu pada bab 3)
Potensiometer.
APLIKASI PRAKTIK
Setting hardware
1. Hubungkan kaki tengah potensiometer pada channel 1 port A (PORTA.0), dua kaki lainnya pada
ground dan Vcc.
2. Hubungkan PORTB universal board dengan port OUTPUT pada input/output board ( led array).
3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming:
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Setting port B sebagai output (out).
5. Setting port A sebagai ADC, klik tab ADC kemudian setting seperti pada gambar.
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama adc.
26 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Project Setting
1. Terlihat pada tampilan CV AVR yang telah degenerate. Konfigurasi project dengan memilih menu
project >> configure.
2. Pilih tab after make, aktifkan program the chip
27 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Listing Program
1. Perhatikan setting register port B. Kita telah men-set port B sebagai output.
3. Sekarang kita mendeklarasikan variable unsigned char didalam fungsi main. Dipilih
unsigned char karena tadi pada saat setting ADC (langkah ke 5) kita meng-enable-kan box
use 8 bit, yang berarti kita memilih ADC 8 bit. Berikut pendeklarasian variabelnya,
28 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
4. Nilai hasil konversi ADC ditempatkan dengan nama variable adc_data[n]. Berikut listing kode
untuk mendapatkan nilai hasil konversi ADC dan menampilkannya pada 8 bit output port B.
5. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
EXERCISE
29 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
Putar potensiometer pada posisi tertentu, lakukan perhitungan nilai hasil pembacaan ADC. Bandingkan
nilai hasil perhitungan dengan tegangan potensiometer yang dibaca dengan menggunakan multitester.
BAB 5
TIMER / COUNTER
Timer dan counter adalah dua fasilitas yang memiliki perangkat yang sama, seperti halnya
register penampungnya (TCNTx). Ketika difungsikan sebagai timer, maka register penampung tersebut
berisikan jumlah waktu yang terlampaui tiap selang waktu tertentu. Besar selang waktu tersebut dapat
disetting sesuai dengan kebutuhan. Jika dipakai sebagai counter, maka register penampung tersebut
digunakan untuk menyimpan data hasil perhitungan terakhir. Saat difungsikan sebagai counter, maka
masuk melewati pin TO dan T1. Register untuk mengatur kapan timer difungsikan sebagai timer dan
kapan sebagai counter adalah TCCRx.
ATMEGA8535 memiliki fasilitas 3 buah timer/counter yaitu timer/counter0 8 bit, timer/counter1
16 bit, dan timer/counter2 8 bit. 8 bit dan 16 bit adalah jumlah data yang bisa ditampung pada register
penampungnya. Pada bab ini akan didemonstrasikan 2 aplikasi praktik, dengan tujuan peserta bisa
membedakan fungsi dari timer dan counter pada mikrokontroller.
PERANGKAT KERAS
Perangkat keras yang dibutuhkan untuk aplikasi timer adalah sebagai berikut:
ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).
Input/output-board M.B.3.6. (mengacu pada bab 3).
APLIKASI PRAKTIK
APLIKASI 1: TIMER
Setting hardware
1. Hubungkan PORTC universal board dengan port OUTPUT pada input/output board (led array).
2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming:
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Setting port C sebagai output (out).
5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar.
30 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama timer.
8. Save file CV AVR dengan nama timer pada direktori timer.
9. Save file .C dengan nama timer.c pada direktori timer.
10. Save file project dengan nama timer.prj pada direktori timer.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan
memilih menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
Listing Program
1. Kita telah menyetting port C sebagai output, dengan nilai awal 0 (low).
31 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
pada listing diatas terlihat register register yang mempengaruhi. TCNT1H dan TCNT1L adalah
register untuk menampung jumlah hitungan waktu.
3. Pada bab ini kita akan coba membuat program dimana nilai pada port C, yang dinyatakan
dengan led pada input/output board, akan bertambah apabila timer1 overflow. Sekarang
perhatikan fungsi interrupt timer1_ovf_isr(), fungsi ini akan dieksekusi apabila timer1 overflow
(ingat fungsi dasar interrupt!!). Tambahkan listing kode seperti berikut,
overflow adalah kondisi dimana nilai register maksimum. (kondisi register FFFF atau 65535)
4. Pada listing program diatas TCNT1H dan TCNT1L merupakan register 8 bit yang digabung
menjadi 16 bit. TCNT1H dan TCNT1L menyatakan nilai awalan dimana hitungan mulai
dilakukan
5. Harga nilai awalan timer adalah 159F (bentuk bilangan hexa) atau 5535 (dalam bentuk
desimal). Timer1 akan overflow jika hitungan telah mencapai FFFF(hexa)/65535(biner).
6. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
7. Klik Program, jika ada kesalahan periksa kembali setting hardware.
8. Perhatikan nyala lampu pada input/output-board. Nilai port C akan bertambah terus jika timer1
overflow.
32 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
APLIKASI 2: COUNTER
Setting hardware
1. Hubungkan PORTC universal board dengan port OUTPUT pada input/output board (led array).
2. Hubungkan PORTB universal board dengan port INPUT pada input/output board (push-button
array).
3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Setting port C sebagai output (out), PORTB.1 sebagai input (in) dengan pull-up resistor.
5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar.
33 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama counter.
8. Save file CV AVR dengan nama counter pada direktori counter.
9. Save file .C dengan nama counter.c pada direktori counter.
10. Save file project dengan nama conter.prj pada direktori counter.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan
memilih menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
Listing Program
1. Kita telah menyetting port C sebagai output, dengan nilai awal 0 (low), dan PORTB.1(T1)
sebagai input dengan pull-up resistor.
34 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
register penampung TCNT1H dan TCNT1L diberikan nilai awalan FFFA (hexa) atau 65530
(decimal). Ini berarti untuk mencapai overflow (kondisi register FFFF atau 65535) register
hanya membutuhkan 5 hitungan.
3. Perhatikan bagian fungsi interrupt timer1_ovf_isr(), dapat dilihat nilai awalan register
penampung. Interrupt akan dijalankan jika pin T1 mengalami perubahan kondisi dengan mode
rising edge sebanyak 5 kali. Tambahkan listing kode seperti dibawah.
4. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
5. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.
35 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Tekan push-button chanel 1 sebanyak 5 kali, perhatikan perubahan nyala lampu pada led array
input/output-board.
EXERCISE
Buatlah program aplikasi counter dengan mode trigger yang berbeda (falling edge). Coba gunakan
timer/counter0 dengan mode dan hitungan yang berbeda beda.
36 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
BAB 6
PWM (Pulse With Modulation)
PWM (Pulse Width Modulation) adalah teknik mendapatkan efek sinyal analog dari sebuah sinyal
digital yang terputus-putus. PWM dapat dibangkitkan hanya dengan menggunakan digital i/o yang
difungsikan sebagai output.
PERANGKAT KERAS
Perangkat keras yang dibutuhkan untuk aplikasi PWM adalah sebagai berikut:
ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).
Single conector.
Input/output-board.
37 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
APLIKASI PRAKTIK
Setting hardware
1. Hubungkan PORTD.4 dan PORTD.5 pada port OUTPUT input/output-board menggunakan
single conector.
2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16Mhz.
4. Setting PORTD.4 (OC1B) dan PORTD.5 (OC1A) sebagai output (out).
5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar. Perhatikan setting
mode non-inverted pada out A dan mode inverted pada out B.
38 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama pwm.
8. Save file CV AVR dengan nama pwm pada direktori pwm.
9. Save file .C dengan nama pwm.c pada direktori pwm.
10. Save file project dengan nama pwm.prj pada direktori pwm.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan
memilih menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
Listing Program
1. Kita telah menyetting PORTD.4 dan PORTD.5 sebagai output, dengan nilai awal 0 (low).
2. Perhatikan register yang mempengaruhi, sama seperti register pada timer/counter pada bab 6.
39 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
3. Untuk mengatur porsi on dan off kita berikan nilai pada register OCR1A dan OCR1B pada
looping while. Nilai maksimum dari OCR1A dan OCR1B adalah 1023 (10bit) seperti pada
setting kita sebelumnya (langkah 5). Tuliskan listing kode seperti dibawah,
4. Kita telah memberikan nilai 800 pada OCR1A dan 800 pada OCR1B (skala 1023).
5. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
6. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.
7. Amati nyala lampu pada input/output-board.
8. Ulangi dengan memberikan nilai OCR1A dan OCR1B yang berbeda beda.
EXERCISE
Buatlah program aplikasi PWM untuk mengendalikan arah dan kecepatan putaran motor listrik DC.
Gunakan motor Kontrol MAX-TRON H-bridge M.B.4.3.
40 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
BAB 7
USART (Universal Synchronous and Asynchronous
Serial Receiver and Transmitter)
Untuk dapat berhubungan dengan piranti lain (ex: mikrokontroller - komputer, mikrokontroller-
mikrokontroller dll), mikrokontroller dilengkapi dengan fasilitas komunikasi. Ada 2 jenis fasilitas
komunikasi yang dikenal, yaitu komunikasi parallel dan komunikasi serial. Sesuai dengan namanya pada
komunikasi parallel transfer data dilakukan secara serempak/bersamaan, sedangkan pada komunikasi
serial data dikirim secara bergantian. Komunikasi secara parallel memiliki kelebihan pada kecepatan
transfer data, tetapi kualitas suatu komunikasi tidak hanya ditentukan oleh kecepatannya saja, ada faktor
lain yang perlu diperhatikan yaitu jarak dan ke-praktis-an. Komunikasi parallel memerlukan jalur data
yang lebih banyak, yang berarti pengkabelan (wiring) juga akan semakin banyak. Pada komunikasi serial
biasanya hanya dibutuhkan 2 sampai 3 kabel saja, jadi bisa dikatakan komunikasi serial lebih praktis
dibanding parallel apalagi jika komunikasi dilakukan dengan jarak yang jauh.
Agar komunikasi serial dapat berjalan dengan baik dibutuhkan suatu protocol/aturan komunikasi.
Pada ATMEGA8535 terdapat beberapa protocol komunikasi serial, yaitu : USART, SPI , dan I2C. Bab ini
akan membahas protocol komunikasi USART, serta mempraktikkan komunikasi antar dua buah
mikrokontroller.
Dengan menggunakan protocol USART ada 2 jenis mode komunikasi, yaitu : Sinkron, dan
asinkron. Pada mode sinkron, mikrokontroller dan peripheral yang berkomunikasi akan menggunakan
clock/detak kerja yang sama, sedangkan pada mode asinkron mikrokontroller dan peripheral bisa bekerja
pada clock-nya masing-masing.
PERANGKAT KERAS
Perangkat keras yang dibutuhkan untuk aplikasi ADC adalah sebagai berikut:
ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).
Input/output-board.
Kabel USART.
APLIKASI PRAKTIK
Pada aplikasi ini akan didemokan komunikasi USART antara mikrokontroller satu peserta dengan peserta
lainnya.
Setting Hardware
1. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader.
41 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
2. Hubungkan USART kabel pada USART port universal board.
3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.
Programming
1. Buka CV AVR., pilih File->New->Project.
2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.
3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.
4. Klik tab port, setting PORTC sebagai input dan PORTB sebagai OUTPUT.
42 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.
7. Buat direktori dengan nama usart.
8. Save file CV AVR dengan nama usart pada direktori usart.
9. Save file .C dengan nama usart.c pada direktori usart.
10. Save file project dengan nama usart.prj pada direktori usart.
Project Setting
1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan
memilih menu project >> configure.
2. Pilih tab after make, aktifkan program the chip.
Listing Program
1. Perhatikan bagian atas program, pengarah preprocessor stdio.h telah ditambahkan secara
otomatis oleh codevisionwizard.
43 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
2. Perhatikan setting register DDRB, DDRC, dan PORTB. Kita telah menyetting PORTB sebagai
output dan PORTC sebagai input dengan pull up resistor.
4. Kita akan membuat program agar informasi/data dari input mikrokontroller satu peserta dapat
ditangkap oleh mikrokontroller peserta lain dan ditampilkan pada input/output board. Kita awali
dengan mendeklarasikan variable yang akan digunakan pada fungsi main,
44 M i c r o ti c s - I n s t
Yogyakarta
AVR Training Module
7. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika
pada kode masih terdapat kesalahan/error akan terlihat pada message.
8. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.
9. Jika anda peserta A, tekan push-button pada input/output, tanyakan perubahan nyala led pada
input/output-board partner anda.
10. Jika anda peserta B, amati perubahan nyala led hasil input dari partner anda.
45 M i c r o ti c s - I n s t
Yogyakarta