xxxii
3.5 APLIKASI LCD……………………………………36
3.6 RANGKUMAN…………………………………….39
3.7 TUGAS……………………………………………..39
3.8 DAFTAR BACAAN……………………………….40
BAB IV INTERUPSI
4.1 REGISTER INTERUPSI…………………………...41
4.2 CONTOH PROGRAM DENGAN KETIGA
EKSTERNAL INTERRUPT………………………..44
4.3 APLIKASI LED DENGAN INTERUPSI…………..45
4.4 RANGKUMAN……………………………………..47
4.5 TUGAS……………………………………………...47
4.6 DAFTAR BACAAN………………………………..48
BAB V TIMER / COUNTER
5.1 TIMER/COUNTER 0 ……………………………...49
5.2 TIMER/COUNTER1 (16-BIT) …………………… 64
5.3 APLIKASI TIMER…………………………………67
5.4 RANGKUMAN…………………………………….73.
5.5 TUGAS……………………………………………...73
5.6 DAFTAR BACAAN………………………………..78
BAB VI ANALOG TO DIGITAL CONVERTER (ADC)
6.1 REGISTER-REGISTER ADC…………………….. 75
6.2 KONFIGURASI ADC…………………………...... 80
6.3 APLIKASI ADC……………………………………81
6.4 RANGKUMAN……………………………………..83
6.5 TUGAS……………………………………………...83
6.6 DAFTAR BACAAN………………………………..84
BAB VII KOMUNIKASI SERIAL MIKROKONTROLER
7.1 INISIALISASI USART…………………………….85
7.2 APLIKASI USART………………………………...86
7.3 REGISTER USART………………………………. 87
7.4 APLIKASI USART……………………………….. 93
7.5 RANGKUMAN…………………………………….96
7.6 TUGAS……………………………………………...96
7.7 DAFTAR BACAAN………………………………..97
xxxiii
BAB VIII FUNGSI LIBRARY PADA CODE VISION AVR
8.1 FUNGSI INPUT/OUTPUT …………………………...99
8.2 FUNGSI TIPE KARAKTER …………………… 100
8.3 FUNGSI LIBRARY STANDART …………………. 100
8.4 FUNGSI MATEMATIKA …………………………. 100
8.5 FUNGSI KONVERSI BCD …………………….. 101
8.6 FUNGSI LCD …………………………………… 101
8.7 FUNGSI DELAY………………………………….102
8.8 RANGKUMAN………………………………….. 102
8.9 DAFTAR BACAAN…………………………… .. 103
DAFTAR PUSTAKA………………………………...105
xxxiv
DAFTAR GAMBAR
xxxv
Gambar 3.4 CodeWizardAVR seperti konfigurasi…... 34
Gambar 3.5 Seting kode wizard untuk Port B sebagai
input dan port A sebagai output……………………… 35
Gambar 3.6 Aplikasi Tombol Push Button dan LED... 36
Gambar 3.7 Rangkaian LCD dan hubungannya dengan
mikrokontroler…………………………………………. 37
Gambar 3.8 Code Vision Wizard AVR untuk LCD 16x2
tipe HD44780………………………………………….. 38
Gambar 3.9 Potongan program untuk tampilan LCD… 38
Gambar 3.10 Tampilan program LCD setelah
dimasukkan simulasi Proteus………………………….. 39
Gambar 4.1 Rangkaian LED dan Codewizard interupsi
eksternal………………………………………………...46
Gambar 5.1 Diagram blok timer0 / counter 0………... 50
Gambar 5.2 Diagram blok counter dan lingkungannya 51
Gambar 5.3 Diagram blok unit Output Compare……. 52
Gambar 5.4 Diagram timing untuk mode CTC……… 54
Gambar 5.5 Diagram timing untuk mode fast PWM.. 56
Gambar 5.6 Diagram timing untuk mode phase correct
PWM…………………………………………………...58
Gambar 5.7 Blok diagram counter 16 bit dan
sekelilingnya………………………………………….. 66
Gambar 5.8 Rangkaian simulasi proteus timer detik…69
Gambar 5.9 Setting timer 1 pada Code Wizard AVR 70
Gambar 5.10 Setting timer 0 pada CodeWizard AVR 72
Gambar 6.1 Rangkaian simulasi ADC pada LCD……81
Gambar 6.2 Setting code wizard AVR untuk LCD dan
ADC……………………………………………………82
Gambar 7.1 IC MAX232 menyesuaikan level tegangan
dari ke port serial……………………………………. 86
Gambar 7.2 Seting code wizard AVR untuk komunikasi
USART……………………………………………….. 94
Gambar 7.3.Rangkaian komunikasi serial USART pada
simulasi proteus………………………………………. 94
xxxvi
Gambar 7.4. Tampilan eksekusi program simulasi serial
USART ……………………………………………….95
xxxvii
xxxviii
1
BAB I
MIKROKONTROLER AVR DAN
CODE VISION AVR
RINGKASAN
AVR merupakan mikrokontroler RISC dengan
lebar bus data 8 bit. Frekuensi kerja mikrokontroler AVR
ini pada dasarnya sama dengan frekuensi oscilator,
sehingga kecepatan kerja AVR lebih cepat dibandingkan
mikrokontroler keluarga AT89S51/52. AVR juga
dilengkapi dengan 32 register general purpose yang
semuanya terhubung langsung ke ALU. Bahasa C
merupakan bahasa pemrograman yang sangat fleksibel
dan tidak terlalu terikat dengan berbagai aturan yang
sifatnya kaku. CodeVisionAVR merupakan sebuah cross-
compiler C, Integrated Development Environtment (IDE),
dan Automatic Program Generator yang didesain untuk
mikrokontroler AVR.
1.7 RANGKUMAN
1. AVR merupakan mikrokontroler RISC dengan lebar
bus data 8 bit dengan frekuensi kerja sama dengan
frekuensi oscillator.
2. AVR dilengkapi dengan 32 register general purpose
yang semuanya terhubung langsung ke ALU.
19
1.8 TUGAS
1. Buat satu contoh program I/O tanpa memakai code
wizard AVR, coba compile dan running.
2. Apa kelebihan dan kekurangan pemrograman code
vision dengan memakai code wizard dibandingkan
dengan tanpa code wizard.
BAB II
SOFTWARE PROTEUS 7
RINGKASAN
Proteus adalah perangkat lunak untuk
menggambarkan skematik rangkaian sekaligus mensi-
mulasikankannya. Simulasi dilengkapi dengan system
embedded dan bisa diintegrasikan dengan compiler C
seperti Code Vision AVR. File Code Vision C yang akan
dimasukkan ke dalam Proteus harus sudah dikompail
sehingga dihasilkan file dengan ekstensi COFF atau HEX.
2.1 PENGENALAN
Pada umumnya setiap pegguna yang baru mulai
belajar mengalami kesulitan untuk mempelajari apabila
tidak ada pendukung secara langsung seperti pengajar dan
peralatan yang memadai. Untuk itu dibutuhkan suatu
sarana yang dapat digunakan untuk mencoba suatu
rangkaian . Salah satunya adalah software Proteus 7
Professional. Software Proteus 7 Professional ini tidak
free, maka hanya bisa memberikan Proteus 7 Professional
versi demo. Penggunaannya tidak jauh berbeda dengan
Proteus 7 Professional. Proteus 7 Professional memiliki
program yang dapat berfungsi untuk mensimulasikan
rangkaian seolah-olah pengguna berhadapan dengan
rangkaian yang sesungguhnya. Software Proteus terdiri
dari dua program utama yaitu ARES dan ISIS. Masing-
masing program memiliki fungsi yang berbeda. ARES
biasa digunakan untuk membuat layout PCB (Printed
Circuit Board), sedangkan ISIS biasa digunakan untuk
menggambar schematic rangkaian serta mensimulasikan
program. Pada buku ini hanya menggunakan program
ISIS yang digunakan untuk mensimulasikan rangkaian .
22
2.2 INSTALASI
Untuk instalasi program, tidak jauh berbeda dengan
cara menginstal program lain pada umumnya. Yang
diinstal disini adalah software Proteus-nya, namun pada
penggunaannya kita hanya akan menggunakan program
ISIS-nya saja yang dapat digunakan sebagai simulator,
agar rangkaian nya tampak seperti rangkaian
sesungguhnya. Adapun proses instalasi nya adalah
sebagai berikut :
1. Klik dua kali master program Proteus 7 Professional
versi Demo yang ada di CD buku ini atau download
dari http://www. labcenter.co.uk/download/ prodemo _
download.cfm
2. Ikuti langkah-langkah yang diminta dan lakukan
perubahan seperlunya jika dibutuhkan.
3. Setelah selesai, program dapat langsung dijalankan.
2.6 TUGAS
1. Buat program pada kode vision dan simulasi proteus
sehingga LED berlari ke kiri balik ke kanan lagi
selamanya.
2. Dari soal 1 buat program yang sama denngan
memasukkan/memakai bahasa assembly pada code
vision
BAB III
INPUT OUTPUT
RINGKASAN
Fasilitas input/output merupakan fungsi
mikrokontroller AVR untuk dapat menerima sinyal
masukan (input) dan memberikan sinyal keluaran
(output). Pada setiap port I/O terdapat 3 buah register 8 bit
yaitu DDRxn, PORTxn, dan PINxn dengan x berupa port
A,B,C,D dan n adalah bit 0-7. Aplikasi port output
memakai rangkaian LED sedangkan aplikasi pin input
memakai push button. Untuk mempermudah
membuktikan hasil input output dipakai tampilan berupa
rangkaian LCD.
PORTA.2 = 1;
}
// jika pin A0 = 1, maka port A2 diberi logic high
Port input dapat di pullup dengan menambahkan
perintah PORT setelah DDR seperti pada contoh ini:
Gambar 3.5 Seting kode wizard untuk Port B sebagai input dan port
A sebagai output
36
Gambar 3.8 Code Vision Wizard AVR untuk LCD 16x2 tipe
HD44780
Sedangkan potongan kode program untuk menampilkan
nama pada LCD adalah seperti gambar 3.9.
3.6 RANGKUMAN
1. Fasilitas input/output merupakan fungsi
mikrokontroller AVR untuk dapat menerima sinyal
masukan (input) dan memberikan sinyal keluaran
(output).
2. Pada setiap port I/O terdapat 3 buah register 8 bit yaitu
DDRxn, PORTxn, dan PINxn dengan x berupa port
A,B,C,D dan n adalah bit 0-7.
3. Aplikasi port output memakai rangkaian LED
sedangkan aplikasi pin input memakai push button.
Untuk mempermudah membuktikan hasil input output
dipakai tampilan berupa rangkaian LCD.
3.7 TUGAS
1. Buat program dan simulasinya sehingga input dari push
button bisa membuat LED berjalan atau variasi lainnya
tambahkan juga komentar kondisi LED ini pada LCD
2. Buat program dan simulasinya berupa input dari keypad
matrik dan tampilan tombol yang ditekan pada LCD
40
BAB IV
INTERUPSI
RINGKASAN
Interrupt/Interupsi ialah suatu kondisi dimana CPU
(Central Processing Unit) berhenti dari rutinitas yang
sedang dikerjakan dan mengerjakan rutinitas lain yang
ditunjuk oleh interupsi tersebut. Ketika rutinitas yang
ditunjuk interupsi telah selesai dieksekusi, maka CPU
akan mulai mengekseskusi rutinitas awal sebelum adanya
interupsi yang terhenti dari tempat terakhir. ATmega8535
memiliki tiga buah eksternal interrupt yaitu INT0 (PD2),
INT1(PD3), dan INT2(PB2). Ketiga interrupt ini yaitu
INT0 s.d INT2 akan tertrigger walaupun portnya
dikonfigurasi sebagai output. Fitur ini memungkinkan
interrupt yang dikondisikan oleh software yaitu dengan
menseting register interupsi yang sesuai. Semua interupsi
akan tertrigger jika terdapat perubahan rising edge atau
falling edge. Mode any change tidak dimiliki INT2,
sedangkan INT0 dan INT1 memilikinya. Mode any
change memungkinkan interrupt terpanggil baik ketika
rising dan falling edge.
4.4 RANGKUMAN
1. Interrupt/Interupsi ialah suatu kondisi dimana CPU
(Central Processing Unit) berhenti dari rutinitas yang
sedang dikerjakan dan mengerjakan rutinitas lain yang
ditunjuk oleh interupsi tersebut.
2. ATmega8535 memiliki tiga buah eksternal interrupt
yaitu INT0 (PD2), INT1(PD3), dan INT2(PB2).
Ketiga interrupt ini yaitu INT0 s.d INT2 akan
tertrigger walaupun portnya dikonfigurasi sebagai
output.
3. Fitur interupsi perangkat keras ini memungkinkan
interupsi yang dikondisikan oleh software yaitu
dengan menseting register interupsi yang sesuai.
4.5 TUGAS
1. Buatlah program dengan memakai ketiga interup
eksternal sesuai dengan urutan prioritasnya. Pakai
48
BAB V
TIMER / COUNTER
RINGKASAN
Timer/Counter pada AVR dapat digunakan untuk
melakukan pencacahan waktu seperti pada jam digital
maupun untuk menghasilkan sinyal PWM (Pulse Width
Modulation) yakni sinyal kotak dengan frekuensi dan duty
cycle yang nilainya bisa diatur. Atmega8535 memiliki
tiga unit Timer/Counter yaitu Timer/Counter 0 (8 bit),
Timer/Counter 1 (16 bit), dan Timer/Counter 2 (8 bit).
5.1 TIMER/COUNTER 0
Fitur-fitur yang dimiliki:
• Satu buah unit Compare Counter (Unit ini akan
mengcount dan mengcompare)
• Clear timer pada saat compare match (Auto reload)
• Phase Correct PWM yang bebas glitch
• Frequency generator
• External event counter
• Prescaler clock hingga 10 bit
• Source interrupt overflow dan compare match (TOV0
dan OCF0)
Definisi timer
Timer/Counter adalah sebuah unit yang dapat
menghitung (Counter) dan melakukan timing dengan
menggunakan frekuensi kristal se-bagai sumber clock
counter internalnya atau sumber eksternal melalui pin T0.
Gambar 5.1 adalah blok diagram Timer/Counter 0.
50
Deskripsi sinyal:
Count: Increment (menambah) atau decrement
(mengurangi) TCNT0 dengan nilai 1
Direction: Untuk memilih antara menambah atau
mengurangi
Clear: TCNT0 (mengeset semua nilai menjadi 0)
TOP: Memberi sinyal bahwa TCNT0 telah
mencapai nilai maksimum
BOTTOM: Memberi sinyal bahwa TCNT0 telah
mencapai nilai minimum (nol)
Unit Output Compare
Komparator 8 bit secara kontinu membandingkan
nilai TCNT0 dengan nilai register Output Compare
(OCR0). Ketika TCNT0 sama dengan OCR0, maka
komparator akan memberi sinyal bahwa terjadi kesamaan.
Kesamaan ini akan mengeset Output Compare Flag
(OCF0) pada saat clock cycle timer selanjutnya. Jika
OCIE0 = 1 dan Global Interrupt Flag di SREG di set,
maka Output Compare Flag akan menghasilkan interupsi
output compare. Flag OCF0 akan secara otomatis di clear
kan ketika interupsi dieksekusi. Gambar 5.3
memperlihatkan blok diagram unit Output Compare.
Mode
Mode operasi ialah kelakuan dari Timer/Counter
dan pin Output Compare. Mode ini dibedakan melalui
kombinasi dari bit mode Waveform Generation
(WGM01:0) dan bit mode Compare Output (COM01:0).
Mode Compare Output tidak akan mempengaruhi alur
peng-hitungan, sedangkan mode Waveform Generation
mempengaruhinya. Bit-bit COM01:0 mengatur apakan
output PWM yang dihasilkan dibalik atau tidak (inverted
atau noninverted PWM). Untuk mode yang non PWM
maka bit-bit COM01:0 yang akan mengontrol output akan
diset, diclear, atau dibalik (toggle) saat terjadi compare
match.
Mode-mode yang terdapat antara lain:
• Mode Normal
Mode operasi yang paling simpel ialah mode
normal (WGM01:0 = 0). Pada mode ini arah
penghitungan selalu naik (incrementing), dan tidak
terdapat clear terhadap counter yang dilaksanakan.
Counter akan mengalami overrun ketika telah mencapai
nilai maksi-mumnya yaitu 8 bit (TOP = 0xFF) dan
direstart dari bawah (0x00). Pada operasi normal, Flag
Overflow Timer/Counter (TOV0) akan di set pada saat
clock cycle timer yang sama ketika TCNT0 menjadi nol.
Flag TOV0 ini jika digabungkan dengan dengan
interupsi timer overflow yang akan secara otomatis
mengclearkan flag TOV0, maka resolusi timer akan
dapat ditingkatkan melalui software.
• Mode Clear Timer on Compare (CTC) match
Pada mode CTC ini (WGM01:0 = 2), register
OCR0 digunakan untuk memanipulasi resolusi counter.
Pada mode ini counter akan diclear menjadi nol ketika
nilai counter (TCNT0) mengalami nilai yang sama
dengan OCR0. OCR0 mendefinisikan nilai TOP dari
54
5.4 RANGKUMAN
1. Timer/Counter pada AVR dapat digunakan untuk
melakukan pencacahan waktu seperti pada jam digital
maupun untuk menghasilkan sinyal PWM
2. Atmega8535 memiliki tiga unit Timer/Counter yaitu
Timer/Counter 0 (8 bit), Timer/Counter 1 (16 bit), dan
Timer/Counter 2 (8 bit).
3. Lamanya periode unutk timer0 dan timer1 adalah
seperti persamaan berikut
Ttimer0 = Tosc*(256-TCNT0)*N →(8 bit = 256)
Ttimer1 = Tosc*(65536-TCNT1)*N → (16 bit = 65536)
5.5 TUGAS
1. Gunakan timer 1 untuk membangkitkan delay1 menit,
10 menit dan 1 jam. Tampilan bentuk gelombangnya
pada simulasi proteus.
74
BAB VI
ANALOG TO DIGITAL CONVERTER (ADC)
RINGKASAN
Pada AVR terdapat fitur ADC yang dapat diguna-
kan untuk melakukan pembacaan tegangan analog ke
dalam bentuk digital. Secara umum, proses inisialisasi
ADC meliputi proses penentuan clock, tegangan referensi,
format output data, dan mode pembacaan. Register yang
perlu diset nilainya adalah ADMUX (ADC Multiplexer
Selection Register), ADCSRA (ADC Control and Status
Register), dan SFIOR (Special Function IO Register).
ADLAR = 1
Gambar 6.2 Setting code wizard AVR untuk LCD dan ADC
Program untuk membaca data analog pada ADC bisa
dilihat pada bagian berikut ini
83
6.4 RANGKUMAN
1. Pada AVR terdapat fitur ADC yang dapat digunakan
untuk melakukan konversi tegangan analog ke dalam
bentuk digital.
2. Proses inisialisasi ADC meliputi proses penentuan
clock, tegangan referensi, format output data, dan
mode pembacaan.
3. Register yang perlu diset nilainya adalah ADMUX
(ADC Multiplexer Selection Register), ADCSRA
(ADC Control and Status Register), dan SFIOR
(Special Function IO Register).
6.5 TUGAS
1. Eksplorasi fitur-fitur ADC pada AVR seperti
perbedaan tegangan referensi internal dengan
eksternal, bit seleksi gain,
2. Buatkan program untuk soal 1 pada code vision dan
simulasikan hasilnya.
84
BAB VII
KOMUNIKASI SERIAL MIKROKONTROLER
RINGKASAN
Sistem USART (Universal Synchronous and
Asynchronous serial Receiver and Transmitter) pada
mirokontroler AVR adalah piranti komunikasi serial
fleksibel. Proses inisialisasi USART terdiri dari penga-
turan baud rate, pengaturan format frame dan enabel pe-
mancar atau penerima. Register USART terdiri atas
UBRRL dan UBRRH, UCSRA, UCSRB, UCSRC. Untuk
komunikasi antaraUSART dengan computer diperlukan
IC converter RS232.
7.5 RANGKUMAN
1. Sistem USART (Universal Synchronous and
Asynchronous serial Receiver and Transmitter) pada
mikrokontroler AVR adalah piranti komunikasi serial
fleksibel.
2. Proses inisialisasi USART terdiri dari penga-turan
baud rate, pengaturan format frame dan enabel pe-
mancar atau penerima.
3. Register USART terdiri atas UBRRL dan UBRRH,
UCSRA, UCSRB, UCSRC. Untuk komunikasi
antaraUSART dengan computer diperlukan IC
converter RS232.
7.6 TUGAS
1. Buat program untuk menerima data dari PC, tampilkan
data yang dikirim dari PC pada hypertermnal dan LCD
BAB VIII
FUNGSI LIBRARY PADA CODE VISION AVR
RINGKASAN
Code Vision AVR dilengkapi dengan beberapa
fungsi seperti fungsi I/O, fungsi matematika termasuk
beberapa fungsi dengan peripheral misalnya LCD. Fungsi-
fungsi ini berada pada directori -\INC dan berekstensi -.h.
Fungsi -.h ini harus di include kalau mau dipanggil.
d. Void lcd_putchar(char c)
Menampilkan karakter c pada lcd.
e. Lcd_puts(char*str)
Menampilkan string yang disimpan pada SRAM pada lcd.
f. Lcd_putsf(lcd flash*str)
Menampilkan string yang disimpan pada flash pada lcd.
8.8 RANGKUMAN
1. Code Vision AVR dilengkapi dengan beberapa fungsi
seperti fungsi I/O, fungsi matematika termasuk
beberapa fungsi dengan peripheral misalnya LCD.
2. Fungsi-fungsi ini berada pada directori -\INC dan
berekstensi -.h. Fungsi -.h ini harus di include kalu mau
dipanggil.
103
DAFTAR PUSTAKA
1. Adriyanto, Heri. 2008. Pemrograman Mikrokontroler
AVR Atmega16 Menggunakan bahasa C (Code
Vision AVR). Informatika Bandung
2. Atmel. Data sheet AVR ATmega8535/8535L. tersedia
di http://www.atmel.com/images/doc2502.pdf diakses
tgl 16 Mei 2009
3. AVR033: Getting Started with the CodeVisionAVR C
Compiler. tersedia di http://www.atmel.com / images /
doc2500.pdf diakses tgl 16 Mei 2009
4. Barrett, Steven F., Pack, Daniel J.. 2008. Atmel AVR
Microcontroller Primer : Programming and Interfacing.
Laramie and Colorado Springs: Morgan & Claypool
5. CodeVisionAVR tersedia di http://www.hpinfotech. ro.
diakses tgl 1 Mei 2013
6. DIVISI WORKSHOP HME ITB. 2010. MODUL
TRAINING. MIKROKONTROLER AVR. Tersedia
pada http://125.161.127.119/arsip/uploads/arsip/
6MODUL_AVR.pdf diakses tgl 29 Mei 2014
7. P Wisnu Adi., Heryanto, M Ary. 2008. Pemrograman
Bahasa C untuk Mikrokontroler ATmega 8535.
Yogyakarta: Andi
8. Politeknik Caltex. 2012. Buku-Mikrokontroler-AT-
mega8535-Dengan-CodevisionAVR tersedia di https://
www.yumpu.com/id/document/view/16717419/tutoria
l-microcontroller-avr-part-i-123seminarsonlyid.scribd.
com diakses 21 April 2014
9. Proteus. Tersedia di http://www. labcenter.co.uk/
download/prodemo_download.cfm diakses tgl 12 Mei
2014
10. Rangkuti, Syahban. 2011. Mikrokontroler Atel AVR
Simulasi dan Praktek Menggunakan ISIS Proteus dan
Code Vision. Informatika. Bandung.
106