P. 1
ModulMikrokontrolerATmega8535

ModulMikrokontrolerATmega8535

|Views: 2,268|Likes:
Published by Dharmawan
Komunikasi I/O berbantuan Mikrokontroler... By Agus Putranto
Komunikasi I/O berbantuan Mikrokontroler... By Agus Putranto

More info:

Published by: Dharmawan on Jun 17, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/18/2013

pdf

text

original

Modul Mikrokontroler ATmega8535

1

1. PENDAHULUAN

1.1 Deskripsi Judul Memprogram Peralatan Sistem Otomasi Elektronik yang Berkaitan I/O berbantuan Mikrokontroller ATmega8535 merupakan modul teori dan praktikum yang membahas Prosedur Penyusunan Algoritma Pemrograman, Identifikasi Arsitektur Mikrokontroller ATmega8535 dan Pemrograman Sistem Mikrokontroller ATmega8535.

1.2 Prasyarat Untuk mengikuti modul Memprogram Peralatan Sistem Otomasi Elektronik yang Berkaitan I/O berbantuan Mikrokontroller ATmega8535 ini perserta didik harus telah mengikuti modul sebelumnya yaitu Menguasai Dasar Elektronika Digital dan Komputer dan Merakit dan Mengoperasikan Komputer Menggunakan Sistem Operasi DOS dan Windows.

1.3 Tujuan Umum Pembelajaran Diharapkan setelah mempelajari modul ini peserta didik dapat memiliki kemampuan : 1. 2. 3. Menguasai Prosedur Penyusunan Algoritma Pemrograman Mengidentifikasi Arsitektur Mikrokontroller ATmega8535 Memprogram Sistem Mikrokontroller ATmega8535

1.4 Petunjuk Penggunaan Modul Ikutilah kegiatan pembelajaran setiap pokok bahasan dengan baik, yang terdiri dari penjelasan materi, latihan dan tugas. Latihan dan tugas merupakan alat ukur keberhasilan peserta didik dalam memahami setiap pokok bahasan, yang mana apabila peserta didik dapat menyelesaikan latihan dan tugas dengan mandiri, maka kompetensi dianggap telah tercapai sesuai dengan tujuan pembelajaran yang dihararapkan Pelaksanaan Modul Memprogram Peralatan Sistem Otomasi Elektronik yang Berkaitan I/O berbantuan Mikrokontroller ATmega8535 ini menggunakan peralatan : 1. 2. 3. Komputer atau laptop yang memiliki saluran port LPT dan COM Bascom-AVR Teaching aid dan kelengkapannya seperti pada gambar berikut
Third |Semester

2

Modul Mikrokontroler ATmega8535

Modul Mikrokontroller

Modul Digital Input Output Test

Modul DAC 2 Kanal - SPI

Modul Lampu Lalu Lintas

Modul Seven Segment

Modul Motor Stepper

Modul LED Matriks

Modul Analog Input test

Modul Keypad LCD

Modul Analog Digital Input Output Test

DC Power Suppy 12 Volt

Modul RTC

Kabel input output digital dengan stecker DB25 Male – Female

Kabel serial RS232 dengan stecker DB9 Female – female, crossed

Kabel Port ke Printer dengan stecker amphenol 26 pin – DB25 Female

Kabel jumper dengan stecker amphenol 26 pin

Third |Semester

Modul Mikrokontroler ATmega8535

3

2. ALGORITMA PEMROGRAMAN

2.1 Tujuan Kegiatan Pembelajaran Setelah mengikuti kegiatan pembelajaran pada pokok bahasan ini, diharapkan peserta didik dapat Menguasai Prosedur Penyusunan Algoritma Pemrograman.

2.2 Uraian Materi 2.2.1 Algo ritma Algoritma adalah urutan langkah-langkah atau tahapan-tahapan penyelesaian masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah logis dalam Algoritma ini harus dapat ditentukan bernilai salah atau benar. Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang procedural. Definisi procedural menurut kamus Bahasa Indonesia : 1. 2. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah

Pada pemrograman proseduaral, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu persatu secara beruruta n oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan dalam memori dimanipulasi oleh instruksi secara beruntun procedural. Paradikma pemrograman seperti ini dinamakan pemrograman procedural. Algoritma adalah bagian paling utama dari pemrograman. Dalam kehidupan sehari-hari banyak pula dijumpai proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat membuat masakan. Bila langkah langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah langkahlangkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, computer, robot atau alat elektronik lainnya. Pemroses melakukan sua tu proses dengan
Third |Semester

4

Modul Mikrokontroler ATmega8535

melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Jurus masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dslam bentuk yang dapat dimengerti pemroses. Jadi suatu pemroses harus : 1. 2. Mengerti setiap langkah dalam algoritma Mengerjakan operasi yang sesuai dengan langkah tersebut

Mekanisme pelaksanaan algoritma dilakukan oleh pemroses (komputer). Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa perograman tertentu sehingga dapat dilaksanakan oleh komputer. Program ditulis dalam salah satu bahasa pemrog raman dan kegiatan membuat program disebut Pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah yang yang ditulis di dalam program disebut pernyataan (statement) atau instruksi. Jadi program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasioperasi yang bersesuaian dengan instruksi tersebut dijalankan oleh komputer. Secara garis besar komputer tersusun dari empat komponen utama, yaitu ; 1. Piranti masukan, ialah alat yang digunakan untuk untuk memasukkan data atau program ke dalam memori. Misalnya : keyboard, scanner, mouse, joystick Piranti keluaran, ialah alat yang digunakan untuk komputer untuk menampilkan hasil-hasil operasi pemrosesan data. Misalnya : monitor, printer, plotter Unit pemroses utama (CPU). Ini merupakan otak dari computer yang berfungsi mengerjakan operasi-operasi dasar seperti operasi aritmetika dan logika Memory . Tempat menyimpan program yang berisi operasi-operasi yang akan dikerjakan oleh CPU dan menyi mpan data atau informasi yang akan diolah pemroses ataupun data hasil proses.

2.

3.

4.

Third |Semester

Modul Mikrokontroler ATmega8535

5

Gambar 2.1 Komponen Utama Komputer Mula-mula program dimasukkan ke dalam memory komputer. Ketika program dilaksanakan (dieksekusi) setiap instruksi yang telah tersimpan didalam memory dikirim ke CPU. CPU menjerjakan operasi-operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan memo ry lalu dikirim ke CPU untuk operasi yang memerlukan tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan dalam memory lalu CPU menuliskan data keluaran tadi ke piranti keluaran. Pada dasarnya sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Sebuah proses (job) dikerjakan oleh pemroses menurut algoritma yang sudah ditulis. Algoritma disusun oleh sederetan langkah instruksi yang logis. Tiap lagkah instruksi tersebut mengerjakan suatu tindakan (aksi), bila suatu aksi dilaksanakan maka sejumlah operasi yang bersesuaian dengan aksi tersebut dikerjakan oleh pemroses. Contoh : Algoritma tukar isi gelas Diketahui gelas A berisi susu, gelas B berisi kopi. Tukarkan isi kedua gelas tersebut sehingga gelas A berisi kopi dan gelas B berisi susu. Algoritma pemecahan masalah di atas adalah : 1. 2. 3. Tuang isi gelas A ke gelas C Tuang isi gelas B ke gelas A Tuang isi gelas C ke gelas B

Contoh algoritma tukar isi gelas di atas apabila dianalogikan tugar data dari suatu lokasi memory maka menjadi sebagai berikut : Contoh : Algoritma tukar isi register r16 dengan r17 . Diketahui register r16 berisi data #$55, register r17 berisi data #$AA. Tukarkan isi kedua register tersebut sehingga r16 berisi data #$AA dan r17 berisi data #$55.
Third |Semester

6

Modul Mikrokontroler ATmega8535

Algoritma pemecahan masalah di atas adalah : 1. 2. 3. Copykan isi register r16 ke r18 Copykan isi register r17 ke r16 Copykan isi register r18 ke r17

Algoritma dapat disajikan dengan menggunakan dua macam cara, yaitu dengan tulisan dan gambar. Penyajian dengan cara tulisan adalah seperti pada contoh di atas, yang mana suatu langkah-langkah pemecahan masalah dijelaskan dalam bentuk kata-kata dengan bahasa sendiri seperti halnya penulisan resep makanan. Penyajian algoritma dengan bentuk gambar banyak bentuk chart yang bisa dipakai dan yang paling banyak dipergunakan adalah flowchart.

2.2.2 Flowchart Flowchart adalah suatu metode untuk menggambarkan tahap -tahap pemecahan masalah dengan merepresentasikan sy mbol-simbol tertentu yang mudah dimengerti, digunakan dan standar untuk diterapkan. Tujuan utama dari penggunaan lowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas menggunakan sy mbol-simbol yang standar. Berikut ini adalah sy mbol-simbol standar yang digunakan dalam penulisan program flowchart.

Gambar 2.2 Simbol-simbol program flowchart
Third |Semester

Modul Mikrokontroler ATmega8535

7

Apabila suatu flowchart lengkap telah selesai dikerjakan, gambaran lengkap tentang proses pemikiran seorang programmer dalam memecahkan suatu masalah dapatlah diikuti. Peranan flowchart sangat penting terutama pada pemeriksaan program. Flowchart, yang merupakan bagian penting dalam suatu program yang telah selesai, dapat juga membantu orang lain dalam memahami algoritma yang tepat yang dibuat oleh programmer. Ada dua jenis flowchart, yaitu : 1. 2. Flowchart system, untuk menunjukkan jalannya program secara umum (garis besarnya saja) Flowchart terperinci, memuat perincian-perincian (detail) yang terutama penting untuk programmer

Biasanya suatu program yang rumit didahului dengan flowchart system, lalu dilengkapi pula dengan flowchart terperinci. Keuntungan dari sebuah flowchart ialah bahwa di menunjukkan urutan langkah-langkah dengan mengunakan sy mbol anak panah. Simbol-simbol yang lain digunakan untuk menunjukkan operasi apa yang dilaksanakan pada tiap-tiap langkah tersebut. Contoh Algoritma tukar isi register di atas dapat digambarkan dalam bentuk flowchart sebagai berikut ;

Gambar 2.3 Flowchart program tukar isi register 2.2.3 Bahasa Pemrograman Suatu program komputer merupakan susunan instruksi (perintah). CPU komputer akan melaksanakan instruksi-instruksi itu langkah demi langkah. Sebelum suatu program dilaksanakan oleh CPU, program tersebut harus disimpan di memory dalam bentuk biner. Program jenis ini disebut program
Third |Semester

8

Modul Mikrokontroler ATmega8535

dalam bahasa mesin (machine language). Hanya bahasa inilah yang yang dapat dimengerti oleh oleh sebuah komputer. Program dalam bahasa mesin ini biasanya dinyatakan dalam digit heksadesimal dan program ini dapat pula disimpan dalam suatu file ASCII. Bagi pemakai, menginterpretasikan suatu program dalam bahasa mesin sangatlah sulit dan membutuhkan banyak waktu. Para pembuat mikroprosessor dan mikrokontroller telah membagi instruksi-instruksi menjadi beberapa katagori menurut fungsinya. Instruksi-instruksi CPU dan registerregister biasanya dinyatakan dalam sy mbol-simbol yang disebut “mnenonics”. Misalnya instruksi “MOV” adalah perintah untuk meng-copy isi register satu ke register lainnya. Suatu program yang ditulis dalam kode mnemonic disebut program dalam bahasa assembly. Sebelum suatu program dalam bahasa assembly dilaksanakan oleh CPU, program tersebut harus diterjemahkan dalam bahasa mesin oleh suatu program khusus yang disebut “Assembler”. Kebanyakan instruksi pada bahasa assembly merupakan kependekan dari instruksi dalam bahasa manusia, contoh di atas MOV merupakan kepend ekan dari MOVE, contoh lain misalnya LD kependekan dari LOAD, ST kependekan dari STORE. Selain dengan menggunakan bahasa mesin yang berupa kode heksadesimal dan bahasa assembly, terdapat pilihan bahasa pemrograman lain yang lebih manusiawi dan berorientasi ke bahasa manusia yang biasa disebut dengan bahasa tingkat tinggi. Program dalam bahasa tinggat tinggi tidak dapat langsung dilaksanakan oleh computer tetapi harus diterjemahkan dahulu oleh sebuah translator bahasa yang disebut kompilator (compiler) ke dalam bahasa mesin. Yang tergolong dalam bahasa ini adalah Pascal, Basic, C, Delphi, Visual Basic, Visual C++ dan lain-lain. Walaupun bahasa tingkat tinggi terus berkembang dengan segala fasilitas dan kemudahannya, peranan bahasa pemrograman tingkat rendah tetap tidak dapat digantikan. Bahasa assembly mempunyai keunggulan yang tidak mungkin diikuti oleh bahasa tingkat apapun dalam hal kecepatan, ukuran file yang kecil serta kemudahan dalam manipulasi sistem komputer. Pada modul ini bahasa pemrogra man yang akan dipergunakan adalah bahasa assembly yang secara keseluruhan instruksinya tercantum dalam tabel berikut ini :

Third |Semester

Modul Mikrokontroler ATmega8535

9

Tabel 2.1 Instruksi Mikrokontroller ATmega8535

Third |Semester

10

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

11

Contoh Algoritma tukar isi register di atas dapat diimplementasikan dalam bentuk bahasa pemrograman assembly sebagai berikut ;

2.3 Rangkuman Algoritma adalah urutan langkah-langkah atau tahapan-tahapan penyelesaian masalah yang disusun secara sistematis dan logis. Mekanisme pelaksanaan algoritma dilakukan oleh pemroses (komputer). Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa perograman tertentu sehingga dapat dilaksanakan oleh komputer. Program ditulis dalam salah satu ba hasa pemrograman dan kegiatan membuat program disebut Pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah yang yang ditulis di dalam program disebut pernyataan (statement) atau instruksi. Jadi program tersusun
Third |Semester

12

Modul Mikrokontroler ATmega8535

atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi operasi yang bersesuaian dengan instruksi tersebut dijalankan oleh komputer. Flowchart adalah suatu metode untuk menggambarkan tahap -tahap pemecahan masalah dengan merepresentasikan sy mbol-simbol tertentu yang mudah dimengerti, digunakan dan standar untuk diterapkan. Biasanya suatu program yang rumit didahului dengan flowchart system, lalu dilengkapi pula dengan flowchart terperinci. Keuntungan dari sebuah flowchart ialah bahwa di menunjukkan urutan langkah-langkah dengan mengunakan sy mbol anak panah. Simbol-simbol yang lain digunakan untuk menunjukkan operasi apa yang dilaksanakan pada tiap-tiap langkah tersebut. Pembuatan program dapat dilakukan dengan menggunakan bahasa mesin berupa kode heksadesimal, bahasa assembly dan bahasa tingkat tinggi.

2.4 Latihan Pada Tabel Instruksi Mikrokontroller ATmega8535 tidak ditemukan instruksi pembagian integer, pada latihan ini kita akan membuat sub routine yang berfungsi sebagai pembagi integer sebagai berikut ;

Masukan

:

r16 r17 r18 r19

→ → → →

data yang akan dibagi data pembagi hasil pembagian integer sisa pembagian

Keluaran

:

Fungsi :

Isi register r16 dibagi dengan isi register r17, hasil pembagian integer disimpan ke register r18 sisa pembagian disimpan ke register r19.

Register r16, r17, r18 dan r19 masing-masing adalah register 8 bit, sehingga angka yang dapat diproses berkisar antara 0 sampai dengan 255 desimal. Algoritma atau langkah-langkah pemecahan masalah : 1. Jika r16 lebih kecil dari r17 maka r16 tidak dapat dibagi, maka hasil pembagian sama dengan 0 ( r18 = 0 ) dan sisa pembagian sama dengan
Third |Semester

Modul Mikrokontroler ATmega8535

13

2.

r16 ( r19 = r16 ) Dan proses pembagian tidak dapat dilakukan lagi, proses selesai. ika r16 tidak lebih kecil dari r17 maka lakukan proses pengurangan r16 – r17 hasilnyanya disimpan ke r16

Kemudian lakukan proses inc remen pada register r18 setiap kali terjadi proses pengurangan tersebut di atas.

Kembali ke langkah nomor satu Dari ide pemecahan masalah di atas, selanjutnya dibuat flowchart terperinci sebagai berikut :

Dari flowchart di atas dan memperhatikan table Instruksi Mikrokontroller ATmega8535, disusun program dalam bahasa assembly sebagai berikut :

Third |Semester

14

Modul Mikrokontroler ATmega8535

Berikut ini dengan 50.

latihan membuat program untuk membagi bilangan integer 125

Algoritma langkah-langkah pemecahan masalah : 1. 2. Dengan menggunakan sub routine di atas, register r16 diisi dengan data desimal 100, register r17 diisi data desimal 50 Panggil sub routine pembagian integer idiv Program dalam bahasa assembley :

Flowchart :

Jika program ini dijalankan, seharusnya register r18 akan berisi data decimal 2dan register r19 akan berisi data decimal 25

Third |Semester

Modul Mikrokontroler ATmega8535

15

3. ARSITEKTUR MIKROKONTROLLER ATMEGA8535

3.1 Tujuan Kegiatan Pembelajaran Setelah mengikuti kegiatan pembelajaran pada pokok bahasan ini, diharapkan peserta didik dapat mengidentifikasi arsitektur mikrokontroller ATmega8535 .

3.2 Uraian Materi 3.2.1 Arsitektur Mikrokontroller ATmega8535 Mikrokontroller Atmega8535 adalah mikrokontroller AVR 8 bit buatan ATMEL yang memiliki arsitektur RISC (Reduce Instruc tion Set Computing). Instruksi dikemas dalam kode 16 bit dan dijalankan hanya dengan satu siklus clock. Struktur I/O yang baik dengan sedikit komponen tambahan diluar. Fasilitas internal yang terdapat pada mikrokontroller ini adalah oscillators, timers, UART, SPI, pull-up resistors, pulse width modulation (PWM), ADC, analog comparator dan watch-dog timers. AVR merupakan kependekan dari Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor.

3.2.1.1 Fitur 1. 2. High-performance, Low-power AVR® 8-bit Microcontroller Advanced RISC Architecture 130 Powerful Instruc tions – Most Single Clock Cycle Execution 32 x 8 General Purpose Working Registers Fully Static Operation Up to 16 MIPS Throughput at 16 MHz On-chip 2-cycle Multiplier Nonvolatile Program and Data Memories 8K Bytes of In-System Self-Programmable Flash Endurance: 10,000 Write/Erase Cycles Optional Boot Code Section with Independent Lock Bits. In-System Programming by On-chip Boot Program True Read-While-Write Operation 512 Bytes EEPROM, Endurance: 100,000 Write/Erase Cycles 512 Bytes Internal SRAM Programming Lock for Software Security Peripheral Features Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
Third |Semester

3.

4.

16

Modul Mikrokontroler ATmega8535

5.

6.

7.

8.

One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode Real Time Counter with Separate Oscillator Four PWM Channels 8-channel, 10-bit ADC Byte-oriented Two-wire Serial Interface Master/Slave SPI Serial Interface Programmable Watchdog Timer with Separate On-chip Oscillator On-chip Analog Comparator Special Microcontroller Features Power-on Reset and Programmable Brown-out Detec tion Internal Calibrated RC Oscillato External and Internal Interrupt Sources Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown, Standby and Extended Standby I/O and Packages 32 Programmable I/O Lines 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad QFN/MLF Operating Voltages 2.7 - 5.5V for ATmega8535L 4.5 - 5.5V for ATmega8535 Speed Grades 0 - 8 MHz for ATmega8535L 0 - 16 MHz for ATmega8535

Keunggulan AVR adalah pengkombinasian banyak instruksi dengan 32 general purpose working registers. Kesemua 32 register tersambung langsung ke Arithmetic Logic Unit (ALU), Mengijinkan dua register bebas dapat diakses dengan intruksi yang dieksekusi hanya dengan satu siklus clock. Hasilnya adalah suatu arsitektur dengan kode yang lebih efisien dan 10 kali lebih cepat dibandingkan dengan mikrokontroller konvensional CISC (Complex Instruc tion set Computing). Mikrokontroller ini dibuat dengan using Atmel’s high density nonvolatile memory technology. Program memory ISP Flash pada chip tunggal ini dapat deprogram dalam mode In-System melalui saluran interface serial SPI.

Third |Semester

Modul Mikrokontroler ATmega8535

17

3.2.1.2 Konfigurasi Pin

Gambar 3. 1 Pinout Atmega8535 3.2.1.3 Deskripsi Pin Vcc GND Port A (PA7..PA0) Power Supply Ground Port A berfungsi sebagai masukan analog ke A/D Converter Selain itu Port A juga berfungsi sebagai port I/O dua arah 8 bit apabila ADC tidak digunakan. Pin pada port dilengkapi pula dengan resistor pull-up internal yang dapat diaktifkan untuk setiap bit yang dipilih.

Third |Semester

18

Modul Mikrokontroler ATmega8535

Port B (PB7..PB0)

Port B berfungsi sebagai port I/O dua arah 8 bit dengan resistor pull-up internal yang dapat diaktifkan untuk setiap bit yang dipilih.

Port C (PC7..PC0)

Port C berfungsi sebagai port I/O dua arah 8 bit dengan resistor pull-up internal yang dapat diaktifkan untuk setiap bit yang dipilih.

Port D (PD7..PD0)

Port D berfungsi sebagai port I/O dua arah 8 bit dengan resistor pull-up internal yang dapat diaktifkan untuk setiap bit yang dipilih.

Third |Semester

Modul Mikrokontroler ATmega8535

19

Pin ini berfungsi untuk mereset mikrokontroller. Aktif low. Artinya jika pin ini diberi input logika 0, maka mikrokontroller akan ter-reset. XTAL1 Pin ini tersambung ke kristal eksternal. Dilihat dari rangkaian internal, pin ini sebagai input ke inverting Oscillator amplifier dan input ke rangkaian operasinal clock internal. Pin ini tersambung ke kristal eksternal. Merupakan keluaran dari inverting Oscillator amplifier Berfungsi sebagai input power supply untuk Port A dan A/D Converter. Pin ini harus disambung pada Vcc dan sebaiknya dipasangi low pass filter. Jika tidak tersambung ke Vcc maka A/D Converter tidak berfungsi. Adalah pin tegangan reference analog untuk A/D Converter.

XTAL2

AVCC

AREF

Third |Semester

20

Modul Mikrokontroler ATmega8535

3.2.1.4 Digram Blok Mikrokontroller Atmega8535

Gambar 3.2. Blok Diagram Atmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

21

3.2.2 Fungsi Blok pada masing-masing Mikrokontroller ATmega8535 3.2.2.1 AVR CPU Core

komponen

dalam

sistem

Gambar 3.3 Diagram Block Arsitektur MCU AVR Untuk memaksimalkan performansi dan paralelisme, AVR menggunakan arsitektur Harvard dengan pemisahan memory dan bus program dan data. Instruksi dalam memory program dieksekusi dengan single level pipelining. Ketika suatu instruksi sedang dieksekusi, instruksi beikutnya diambil dahulu dari memory program. Konsep ini memungkinkan instruksi dieksekusi setiap siklus clock. Memory program adalah In-System Re-Programmable Flas memory . Fast-access Register File terdiri dari 32 x 8 bit general purpose working registers dengan waktu akses satu siklus clock memungkinkan operasi Arithmetic Logic Unit (ALU) dilakukan dalam satu siklus clock. Pada operasi ALU, dua operand dikeluarkan dari register File, operasi dieksekusi dan hasilnya disimpan kembali ke dalam register file dalam satu clock.
Third |Semester

22

Modul Mikrokontroler ATmega8535

Tabel 3.1 Register Mikrokontroller Atmega8535

Enam dari 32 register dapat dipergunakan sebagai register penunjuk alamat tidak langsung 16-bit untuk pengalamatan data index yang memungkinkan
Third |Semester

Modul Mikrokontroler ATmega8535

23

kalkulasi alamat menjadi efisien. Satu dari penunjuk alamat ini dapat dipergunakan sebagai penunjuk alamat untuk look up tables di dalam memory program flash. Ketiga register 16 bit tersebut adalah register X, Y dan Z. ALU mendukung operasi aritmetika dan logika antar register atau antar konstanta dan register. Operasi dengan register tunggal juga dapat dilakukan oleh ALU. Setelah operasi aritmetika dilakukan, register status di -update informasinya sesuai dengan hasil operasi. Register status adalah SREG dengan penjelasan setiap bitnya sebagai berikut :

Gambar 3.4 Diagram Block AVR CPU General Purpose Working Registers Seperti tampak pada gambar di atas, setiap register menempati satu alamat pada memory data yang dipetakan langsung ke dalam 32 lokasi memory pertama. Meskipun tidak diimplementasikan langsung sebagai lokasi SRAM, organisasi memory ini menyediakan fleksibilitas yang baik dalam mengakses
Third |Semester

24

Modul Mikrokontroler ATmega8535

register misalnya register penunjuk X, Y dan Z dapat di-set sebagai register indek unutk register lain dalam file. Register R26 sampai dengan R31 memiliki fungsi tambahan. Register ini adalah penunjuk alamat 16 bit untuk pengalamatan tidak langsung dari data space. Tiga register pengalamatan tidaklangsung X, Y dan Z digambarkan sebagai brikut :

3.2.2.2 AVR Atmega8535 Memory In-System Reprogrammable Flash Program Memory Mikrokontroler Atmega8535 memiliki 8 Kbytes On-chip In-System Reprogrammable Flash memory untuk meyimpan program. Karena semua instruksi AVR lebarnya 16 atau 32 bit, maka memory flash diorganisasi sebagai 4K x 16. Untuk keamanan software, Flash memory space dibagi dalam dua seksi, yaitu : Boot Program section dan Application Program section. Flash memory meiliki ketahanan paling sedikit 10,000 kali siklus w rite/erase. ATmega8535 Program Counter (PC) lebarnya adalah 12 bits yang dapat mengalamati

Gambar 3.5 Peta Memory Program
Third |Semester

Modul Mikrokontroler ATmega8535

25

SRAM Data Memory 608 lokasi alamat data memory adalah Register File, I/O Memory dan internal data SRAM. 96 lokasi alamat pertama adalah Register File dan I/O Memory . 512 lokasi alamat berikutnya adalah internal data SRAM.

Gambar 3.6 Peta Memory Data Pengalamatan langsung dapat mencapai semua space memory data. Pengalamatan tidak langsung dengan mode displacement hanya dapat mencapai 63 lokasi memory dari alamat dasar yang diberikan oleh register Y atau Z. Ketika menggunakan register mode pengalamatan tidak langsung dengan predecrement dan post-increment aotomatis, isi register X, Y dan Z akan didecrement atau di-incrment. Dengan mode pengalamatan tersebut dapat mengakses 32 general purpose working registers, 64 I/O Registers dan the 512 bytes of internal data SRAM.

EEPROM Data Memory ATmega8535 memiliki 512 bytes memory data EEPROM yang tahan paling sedikit 100.000 kali siklus w rite/erase. Ketika EEPROM sedang dibaca, CPU akan berhenti bekerja selama empat siklus clock sebelum instruksi berikutnya diesksekusi. Dan pada saat EEPROM sedang ditulisi CPU akan berhententi selama dua siklus clock.
Third |Semester

26

Modul Mikrokontroler ATmega8535

Untuk menulis EEPROM diperlukan waktu programming selama 8,4 ms Register yang berhubungan dengan EEPROM adalah sebagai berikut :

Contoh program assembly untuk menulis EEPROM :

Contoh program assembly untuk membaca EEPROM :

Third |Semester

Modul Mikrokontroler ATmega8535

27

I/O Memory Semua I/O dan peripheral Atmega8535 ditempatkan pada I/O Space. Untuk mengakases lokasi I/O menggunakan instruksi IN dan OUT yang dapat menstramsfer data antara 32 general purpose working registers dan I/O space. Register I/O yang berada pada alamat antara 0x00 sampai dengan 0x1F dapat diakses langsung per bit denganmenggunakan instruksi SBI dan CBI. Pada register ini, nilai bit tunggal dapat dicek menggunakan instruksi SBIS dan SBIC. Ketika menggunakan instruksi khusus untuk I/O IN dan OUT, alamat I/O 0x00 – 0x3F harus digunakan. Ketika pengalamatan register I/O sebagai data space menggunakan instruksi LD dan ST, 0x20 harus ditambahkan pada alamat ini.

3.2.2.3 I/O Po rts Semua port AVR memiliki fungsi true Read -Modify-Write ketika digunakan sebagai port I/O digital.Maksudnya bahwa arah satu port pin dapat dirubah tanpa merubah arah port pin yang lain dengan instruksi SBI dan CBI. Hal yang sama juga berlaku untuk mengubah nilai keluaran (jika dikonfigurasi sebagai output) atau enable/disable resistor pull-up internal jika dikonfigurasi sebagai input. Setiap buffer keluaran memiliki karakteristik pengendali an yang simetri baik untuk high sink maupun source. Driver pin cukup kuat untuk mendrive LED secara langsung. Semua port memeiliki selektor resistor pull -up sendiri-sendiri dengan suatu sumber tegangan dengan resistansi yang bervariasi. Semua pin I/O memiliki dioda proteksi ke Vcc dan Gorund .

Gambar 3.7 Rangkaian equivalent pin I/O
Third |Semester

28

Modul Mikrokontroler ATmega8535

Pada penjelasan berikutnya dipakai symbol “x” untuk mewakili port dan sy mbol “n” unutk mewakili bit, contoh POR TB3 untuk port B bit 3 dapat ditulis sebagai PORTxn. Tiga buah lokasi memory I/O terletak pada setiap port. Satu untuk register data – PORTx, Data Direction Register–DDRx dan Port Input Pins–PINx. Lokasi Port Port Input Pins I/O adalah read only ketika Register Data dan Data Direction Register sedang dibaca atau ditulisi. Pull-up Disable – PUD bit dalam SFIOR memungkinkan fungsi pull-up untuk semua pin jika diset. Setiap pin port terdiri dari tiga register bits, yaitu DDxn, PORTxn dan PINxn. DDxn bits diakses pada alamat DDRx I/O, PORTxn bits pada PORTx I/O address dan PINxn bits pada PINx I/O. DDxn bit pada Register DDRx dipergunakan untuk mengatur arah data pin. Jika DDxn ditulisi dengan logika 1, maka Pxn dikonfigurasi sebagai pin keluaran. Jika DDxn diberilogika 0, maka Pxn dikonfigurasi sebagai pin masukan. Jika PORTxn diberi logika 1 ketika pin dikonfigurasi sebagai input, resistor pull-up akan diaktifkan. Untuk melepas saklar resistor pull-up, PORTxn harus diberi logika 0 atau pin dikonfigurasi sebagai pin keluaran. Ketika pin reset aktif, pin port akan dikodisikan tristated meskipun tidak ada pulsa clock. Jika PORTxn diberi logika 1 ketika pin dikonfigurasi sebagai pin keluaran, maka pin port akan di-drive ke logika tinggi (1). Jika PORTxn diberi logika 0 ketika pin dikonfigurasi sebagai pin keluaran, maka pin port akan di-drive ke logika rendah (0). Ketika switching antara tri -state ({DDxn, PORTxn} = 0b00) and output high ({DDxn, PORTxn} = 0b11), dimungkinkan sebuah intermediate state dengan pull-up ({DDxn, PORTxn} =0b01) atau output low ({DDxn, PORTxn} = 0b10) akan munc ul. Pada umumnya pull-up enabled state dapat diakses penuh sebagai high-impedant environment tanpa perbedaan antara strong high d river dan pull-up. Jika tidak demikian, maka PUD bit dalam register SFIOR dapat diset ke disable untuk semua pull-up pada semua port. Switching antara input dengan pull-up dan output low menghasilkan masalah yang sama. Pemakai harus menggunakan tri-state ({DDxn, PORTxn} = 0b00) atau output high state ({DDxn, PORTxn} = 0b10) sebagai suatu intermediate step. Tabel 3.2 Konfigurasi Pin Port

Third |Semester

Modul Mikrokontroler ATmega8535

29

Berikut ini contoh program dalam bahasa assembly yang menunjukkan bagaimana men-set port B pin 0 dan1 high, 2 low 3 low, dan menentukan bahwa port pin dari 4 sampai 7 sebagai input dengan pull-up yang ditugaskan ke port pin 6 dan 7. Nilai hasil penge mbalian pin dibaca kembali. Ketika membaca kembali nilai pin, instruksi NOP harus dimasukkan karena adanya keterlambatan sinyal sinkronisasi selama satu periode clock.

3.2.2.4 Timer/Counter Time r/Counter0 8-bit dengan PWM

Gambar 3.8 Diagram Block Timer/Counter0 8 bit Timer/Counter (TCNT0) dan Output Compare Register (OCR0) masing-masing adalah registers 8-bit. Sinyal Interrupt request (dalam gambar di atas disingkat
Third |Semester

30

Modul Mikrokontroler ATmega8535

Int.Req) dapat dilihat pada Timer Interrupt Flag Register (TIFR). Semua interrupt dimasker secara individual pada register Timer Interrupt Mask (TIMSK). TIFR dan TIMSK tidak diperlihatkan pada gambar di atas , register tersebut juga dipergunakan untuk unit timer yang lain. Timer/Counter dapat disambung ke clock internal melalui prescaler, atau dapat juga menggunakan clock eksternal melalui pin T0. Clock select dikontrol oleh selector clock bit (CS02:0) yang terletak pada register Timer/Counter Control (TCCR0). Blok Clock Select logic mengatur pilihan sumber clock. Time r/Counter menggunakan pulsa clock ini untuk meng-inc rement (atau decrement) nilai counter. Timer/Counter tidak aktif apabila tidak ada sumber clock yang dipilih. Keluaran dari Clock Select logic adalah sesuai dengan timer clock (clkT0). Setiap saat nilai Double buffered Output Compare Register (OCR0) dibandingkan dengan nilai Timer/Counter. Hasil perbandingan dapat dipergunakan oleh Waveform Generator untuk menggenerate keluaran PWM atau variable frequency pada pin Output Compare (OC0). The Compare Matc h event juga men-set Compare Flag (OCF0) yang juga dapat dipakai untuk menggenerateoutput compare interrupt request. Time r/Counter1 16-bit

Gambar 3.9 Diagram Block Timer/Counter1 16 bit
Third |Semester

Modul Mikrokontroler ATmega8535

31

Timer/Counter (TCNT1), Output Compare Registers (OCR1A/B) dan Input Capture Register (ICR1) semuanya adalah register 16-bit. Special procedure harus diikuti untuk mengakses register 16-bit. Timer/Counter Control Registers (TCCR1A/B) adalah register 8-bit dan tidak memiliki akses ke CPU. Sinyal Interrupt requests (dalam gambar disingkat menjadi Int.Req.) dapat dilihat pada Timer Interrupt Flag Register (TIFR). Semua interrupts dimasker secara individual dengan Timer Interrupt Mask Register (TIMSK). TIFR and TIMSK tidak ditunjukkan dalam gambar dan juga dipergunakan oleh timer yang lain. The Timer/Counter dapat di-clock menggunakan clock internal, melalui prescaler, atau dapat juga di-clock dari sumber eksternal melalui pin T1. Block Clock Select logic mengatur sumber dan edge clock. the Timer/Counter menggunakan pulsa clock ini untuk meng-inc rement (atau decrement) nilai counter. Timer/Counter tidak aktif apabila tidak ada sumber clock yang dipilih. Keluaran dari Clock Select logic adalah sesuai dengan timer clock (clkT1). Setiap saat nilai Double buffered Output Co mpare Register (OCR1A/B) dibandingkan dengan nilai Timer/Counter. Hasil perbandingan dapat dipergunakan oleh Waveform Generator untuk menggenerate keluaran PWM atau variable frequency pada pin Output Compare (OC1A/B). The Compare Match event juga men-set Compare Flag (OCF1A/B) yang juga dapat dipakai untuk menggenerateoutput compare interrupt request. TCNT1, OCR1A/B dan ICR1 adalah register 16-bit yang dapat diakses oleh CPU AVR 8 bit melalui data bus. Register 16-bit diakses menggunakan dua operasi baca atau tulis. Setiap timer 16 bit memiliki register 8 bit temporer untuk menyimpan data sementara untuk menyimpan byte tinggi dan byte rendah. Ketika byte low sedang ditulisi oleh CPU, maka by te tinggi disimpan pada register temporer dan ke tika by te low sedang ditulisi oleh CPU maka keduanya di-kopi ke register 16 bit. Ketika byte low sedang dibaca oleh CPU, maka byte tinggi di-kopi ke register temporary pada saat clock yang bersamaan. Tidak semua register 16 bit menggunakan register temporer untuk byte tinggi dan rendah. Memmbaca regigter 16 bit OCR1A/B tidak menggunakan register temporer. Untuk menulisi register 16 bit, by te tinggi harus ditulis dulu sebelum menulis byte rendah. Untuk membaca register 16 bit, by te rendah harus dibaca dulu sebeum membaca byte tinggi. Contoh berikut diperlihatkan bagaimana mengakses register 16 bit dengan asumsi tidak ada interrupt yang meng-update register temporer. Dengan prinsip yang sama dapat pula mengakses register OCR1A/B dan ICR1.

Third |Semester

32

Modul Mikrokontroler ATmega8535

Program di atas mengembalikan nilai TCNT1 ke register pasangan r17 dan r16. Untuk menghindari masalah terjadinya dengan interrupt, maka selama mengakses register 16 bit, interrupt harus dimatikan terlebih dahulu.

Program berikut ini contoh menulisi register TCNT1.

Pemakaian Timer/Counter1 dapat digunakan sebagai tunda waktu (delay), pada contoh dibawah ini bahwa kristal yang dipergunakan modul mikrokontroller adalah 12 MHz. Dengan kristal sebesar ini, maka satu detik sama dengan 12.000.000 pulsa clock. Berikut i ni algoritma membuat tunda waktu 1 detik. 1. Mengaktifkan interrupt TOIE1 dengan cara men-set bit2 – TOIE1: Timer/Counter1, Overflow Interrupt Enable pada register Timer/Counter Interrupt Mask – TIMSK

Third |Semester

Modul Mikrokontroler ATmega8535

33

Jika bit ini diberi logika 1, maka Timer/Counter1 overflow interrupt di enable-kan dan I-flag di Status Register akan di-set 1 (interrupts globally enabled) 2. Menentukan nilai pembagi prescaler dengan Timer/Counter1 Control Register B – TCCR1B men-set register

Bit ke 0 sampai bit ke 2 [CS12,CS11,CS10] digunakan untuk memilih sumber clock yang akan digunakan Timer/Counter, dengan keterangan sebagai berikut :

Dengan memilih sumber clock, dihitung nilai yang paling baik dengan selisih yang paling kecil. Apabila dihitung secara manual akan diperoleh hasil perbandingan sebagai berikut :

Dari table hasil pembagian di atas tampak bahwa sumber clock yang dapat dipakai adalah sumber clock dengan prescaler pembagi 256 dan 1024. Tetapi karena pre scaler 256 menghasilkan angka bulat tanpa nilai lebih dibelakang koma, maka sumber clock ini akan menghasilkan timer yang tepat pula. Oleh karena itu dipilihlah nilai prescaler ini dengan hasil pembagian 46.875

Third |Semester

34

Modul Mikrokontroler ATmega8535

3.

Berikutnya menghitung nilai yang akan dimasukkan ke Timer/Counter1 – TCNT1H dan TCNT1L

register

Karena Timer menghitung naik dan over flow jika melewati nilai $FFFF ke $0000, maka register TCNT1 diisi dengan nilai minus - 46.875 atau dalam bilangan heksa $48E5. Nilai byte tinggi 48 inilah yang nantinya dimasukkan ke register TCNT1H dan Nilai byte rendah E5 dimasukkan ke register TCNT1L Untuk mendapatkan nilai-nilai tersebut dalam algoritma langkah 2 dan 3, lebih mudah dilakukan dengan menggunakan kalkulator yang disertakan dalam CD dengan tampilan sebagai berikut :

Gambar 3.10 Kalkulator AVR 4. Flag overflow dapat dilihat pada bit TOV1 pada register TIFR. Apabila bit TOV berlogika 1, maka timer/counter sudah overflow dan program bagian (sub routine) tunda waktu selesai dan kembali ke program utama. Sebelum keluar sub routine bit TOV harus dienolkan dulu dengan memberikan logika satu.

Third |Semester

Modul Mikrokontroler ATmega8535

35

TOV1 otomatis di-clear ketika Timer/Counter1 Overflow Interrupt Vector diekesekusi. Alternatif lain TOV1 juga dapat di-clear dengan memberikan logika 1 pada lokasi bit tersebut, Berikut ini contoh program bagian dalam bahasa assembly untuk tunda waktu 1 detik

Time r/Counter2 8-bit imer/Counter (TCNT2) dan Output Compare Register (OCR2) masing-masing adalah registers 8-bit. Sinyal Interrupt request (dalam gambar di atas disingkat Int.Req) dapat dilihat pada Timer Interrupt Flag Register (TIFR). Semua interrupt dimasker secara individual pada register Timer Interrupt Mask (TIMSK). TIFR dan TIMSK tidak diperlihatkan pada gambar di atas , register tersebut juga dipergunakan untuk unit timer yang lain. Timer/Counter dapat di -clock mengguanakn internal clock melalui prescaler atau menggunakan clock eksternal asinkron melalui pin TOSC1/2. Opersi asinkron dikontrol oleh Asynchronous Status Register (ASSR). Clock Select logic block digunakan untuk mengatur sumber clock Timer/Counter. Jika tidak ada sumber clock, maka timer/counter akan berhenti. Keluaran Clock Select logic adalah timer clock (clkT2).

Third |Semester

36

Modul Mikrokontroler ATmega8535

Gambar 3.11 Diagram Block Timer/Counter2 8 bi t 3.2.2.5 Serial Peripheral Interface – SPI

Gambar 3.12 SPI Master-Slave Interconnection Dengan adanya Serial Peripheral Interface – SPI memungkinkan transfer sinkron data kecepatan tinggi antara Atmega8535 dengan peralatan lain.
Third |Semester

Modul Mikrokontroler ATmega8535

37

Hubungan interkoneksi antara Master dan Slave ditunjukkan pada gambar di atas. Sistem terdiri dari dua register geser dan generator clock master. Untuk menentukan perangkat mana sebagai Master atau Slave, ditentukan dengan men-set pin Slave Select ( ). Jika pin mendapat logika rendah, maka konfigurasi SPI adalah sebagai slave. Maste r harus berinisiatif memulai komunikasi ke Slave. Master dan slave mempersiapakan data yang akan dikirim ke register geser. Master menggenerasi sinyal clock (SCK) untuk menggesesr data. Data selalu bergeser dari Master ke Slave pada pin Master Out – Slave In (MOSI) dan dari Slave ke Master pada pin Master In – Slave Out (MISO). Setelah setiap paket terkirim, Master akan mensinkronisasi Slave dengan mem-pulling high Slave Select ( ). Ketika dikonfigurasi sebagai Master, Interface SPI tidak secara otomatis jalur ( ) ini. Pemakai harus mengatur logika pin ini dengan dengan software sebelum komunikasi dapat dimulai. Ketika hal tersebut sudah dilakukan, tulis data ke SPI Data Register dan berikan pulsa clock, maka hardware akan menggeser delapan bit data ke Slave. Setelah menggeser satu byte, SPI clock generator akan stop, dan menyeting End of ransmission Flag (SPIF). Jika SPI Interrupt Enable bit (SPIE) dalam Register SPCR sama dengan 1, maka suatu interrupt akan di-request. Master dapat melanjutkan pengiriman data berikutnya dengan menulisi register SPDR, atau sinyal tanda akhir paket dengan mem-pulling high pin Slave Select ( ). Byte yang dating terakhir akan disimpan dalam register buffe r untuk penggunaan selanjutnya. Ketika dikonfigurasi sebagai Slave, Interface SPI akan beristirahat bersama MISO tri-state selama pin berlogika tinggi. Dalam kondisi ini, software dapat meng-update isi register SPI Data Register (SPDR), tetapi data tidak akan digeser keluar oleh pulsa clock yag datang pad a pin SCK sampai pin diberi logika rendah. Setelah satu byte data selesai digeser, End of Transmission Flag, SPIF akan di-set 1. Jika bit SPI Interrupt Enable, SPIE dalam register SPCR di set 1, maka suatu interrupt akan di-request. Slave dapat melanjutkan menempatkan data baru yang akan dikirim ke register SPDR sebelum membaca data yang masuk. Byte data yang masuk terakhir akan disimpan ke dalam register buffer untuk penggunaan selanjutnya. Sistem SPI ini menggunakan satu buah buffer untuk arah kirim dan dua buah buffer untuk arah terima. Artinya bahwa byte yang akan dikirim tidak dapat dimasukkan ke register data SPI sebelum siklus geser selesai. Ketika menerima data. Bagaimanapun juga sebuah karakter harus dibaca dari register data SPI sebelum karakter berikutnya selesai digeser, kalau tidak kehilangan byte pertama. Dalam mode SPI Slave, control ligic akan mengambil sample sinyal dari pin SCK. Untuk meyakinkan sampling yang benar dari sinyal clock, minimal dan maksimal perioda harus sebagai berikut :
Third |Semester

38

Modul Mikrokontroler ATmega8535

Periode rendah = lebih panjang dari 2 siklus clock CPU Periode tinggi = lebih panjang dari 2 siklus clock CPU Ketika SPI di-enable-kan, arah data pin MOSI, MISO, SCK dan dengan tabel berikut : disesuaikan

Contoh berikut memeprlihatkan bagaimana menginisialisasi SPI sebagai Master dan bagaimana mengirimkan data. DDR_SPI pada contoh ini harus diganti dengan Data Direction Register yang mengontrol pin SPI yang sesungguhnya. DD_MOSI, DD_MISO dan DD_SCK harus diganti dengan bit arah data yang sesungguhnya dari pin tersebut. Sebagai contoh, jika MOSI berada pada pin PB5, maka gantilah DD_MOSI dengan DDB5 dan DDR_SPI dengan DDRB.

Third |Semester

Modul Mikrokontroler ATmega8535

39

3.2.2.6 The Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART)

Gambar 3.13 USART Block Diagram Berikut ini contoh program mengakses USART

Third |Semester

40

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

41

3.3 Rangkuman Mikrokontroller Atmega8535 adalah mikrokontroller AVR 8 bit buatan ATMEL yang memiliki arsitektur RISC (Reduce Instruc tion Set Computing). Instruksi dikemas dalam kode 16 bit dan dijalankan hanya dengan satu siklus clock. Fitur Mikrokontroller Atmega8535 adalah 1. 2. 3. High-performance, Low-power AVR® 8-bit Microcontroller Nonvolatile Program and Data Memories Peripheral Features Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode Real Time Counter with Separate Oscillator Four PWM Channels 8-channel, 10-bit ADC Byte-oriented Two-wire Serial Interface Master/Slave SPI Serial Interface Programmable Watchdog Timer with Separate On-chip Oscillator On-chip Analog Comparator I/O and Packages 32 Programmable I/O Lines 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad QFN/MLF Operating Voltages 2.7 - 5.5V for ATmega8535L 4.5 - 5.5V for ATmega8535 Speed Grades 0 - 8 MHz for ATmega8535L 0 - 16 MHz for ATmega8535

4.

5.

6.

Third |Semester

42

Modul Mikrokontroler ATmega8535

3.4 Latihan Dengan menggunakan software Eagle atau Protel, gambarlah rangkaian dan layout PCB modul mikrokontroller Atmega8535 seperti gambar berikut.

Gambar 3.14 Rangkaian Modul Mikrokontroller Atmega8535

Gambar 3.15 Desaign PCB Modul Mikrokontroller Atmega8535 3.5 Tugas Dari gambar layout PCB mod ul mikrokontroller yang dibuat pada latihan di atas, kerjakanlah pembuatan PCB tersebut dan solderilah komponen yang diperlukan sehingga menjadi modul mikrokontroller yang nantinya akan dipakai pada modul pembelajaran ini.
Third |Semester

Modul Mikrokontroler ATmega8535

43

4. BASCOM AVR

4.1 Tujuan Kegiatan Pembelajaran Setelah mengikuti kegiatan pembelajaran pada pokok bahasan ini, diharapkan peserta didik dapat memiliki kemampuan membuat program, mensimulasikan dan mempogram mikrokontroller ATmega8535 menggunakan software Bascom-AVR

4.2 Uraian Materi 4.2.1 Membuat Program Mikrokontroller Siapkan modul mikrokontroller mikrokontroller dengan komputer. dan sambungkan kabel LPT antara

Gambar 4.1 Sambungan kabel LPT antara modul mikrokontroller dengan komputer Jalankan program BASCOM AVR, tunggu sampai munc ul jendela utama BASCOM-AVR. Pilih Menu File – New atau tekan toolbar Open new edit window

Third |Semester

44

Modul Mikrokontroler ATmega8535

Pada jendela editor, ketiklah program mikrokontroller yang akan dibuat. Di bawah ini contoh program input output membaca deretan saklar pada Pinc dan menampilkannya pada Portb.

Gambar 4.2 Jendela Editor BASCOM-AVR Simpan file tersebut dalam satu folder tersendiri karena setiap project setelah di-compile akan menghasilkan banyak file. Untuk menyimpan file, pilih menu File – Save atau tekan toolbar Save File

Kemudian compile file tersebut dengan memilih menu Program – File atau tekan toolbar Co mpile current file(F7)

Third |Semester

Modul Mikrokontroler ATmega8535

45

Tunggu sampai proses compiling selesai.

Gambar 4.3 Jendela Proses Compiling Apabila terdapat kesalahan, maka di bawah jendela editor akan munc ul informasi kesalahan seperti contoh berikut

Gambar 4.4 Jendela informasi kesalahan Tampak pada contoh di atas munc ul pesan keslahan Error 124 pada baris 12 bahwa tidak ada instruksi LOOP. Untuk memperbaiki kesalahan yang dimaksud, lompat ke baris yang salah dengan cara double click pada teks informasi keslahan tersebut.

4.2.2 Mensimulasikan Program Mikrokontroller Jika tidak ada kesalahan, maka pesan kesalahan tidak muncul dan program dapat disimulasikan dengan cara pilih menu Program – Simulate atu tekan toolbar Simulate program(F2)
Third |Semester

46

Modul Mikrokontroler ATmega8535

Selanjutnya akan munc ul jendela AVR Simulasi seperti berikut

Gambar 4.5 Jendela AVR Simulasi Aktifkan toolbar Show hardware emulation kemudian akan munc ul Jendela Hardware Simation seperti gambar 4.2.2.2

Third |Semester

Modul Mikrokontroler ATmega8535

47

Gambar 4.6 Jendela Hardware Simulasi Aktifkan toolbar Refresh variables agar tampilan jendela hardware simulasi selalu fresh sesuai kondisi actual

Berikutnya jalankan program(F5)

program

simulasi

dengan

menekan

toolbar

Run

Click pada tampilan LED warna hijau IC maka tampilan LED warna merah pada PB akan menyala sesuai masukan pada PinC.

Third |Semester

48

Modul Mikrokontroler ATmega8535

Gambar 4.7 Jendela AVR Simulasi dan Hardware Simulasi keduanya aktif 4.2.3 Memprogram Mikrokontro ller Pilih jenis programmer melalui port paralel LPT d engan cara pilih menu Option–Programmer, selanjutnya pilih TabStrib Programmer dan pada ComboBox Programmer pilih STK200/STK300 Programmer, kemudian tekan tombol OK seperti pada gambar berikut

Gambar 4.8 Jendela BASCOM-AVR Option

Third |Semester

Modul Mikrokontroler ATmega8535

49

Selanjutnya pilih menu Program – Send to chip atau tekan toolbar Run programmer (F4) dan pilih menu Program

Apabila board modul mikrokontroller tidak aktif, maka akan munc ul jendela pesan sebagai berikut

Gambar 4.9 Kotak pesan Jika board modul mikrokontroller tidak ada masalah, maka selanjutnya akan munc ul jendela AVR ISP STK Programmer sebagai berikut

Gambar 4.10 Jendela AVR ISP STK Programmer

Third |Semester

50

Modul Mikrokontroler ATmega8535

Pada combobox Chip, pilih Atmega8535, tekan toolbar Load file into buffer dan pilih file hex yang akan di-download ke chip mikrokontroller

Untuk men-download program , tekan toolbar Write buffer to flash ROM

Tunggu sampai proses programming selesai

ambar 4.11Jendela BASCOM-AVR Programming status Setelah itu lepas kabel LPT dan mikrokontroller langsung menjalankan program yang telah di-download

4.3 Rangkuman Software BASCOM-AVR dapat dipergunakan untuk membuat program dengan bahasa tingkat tinggi BASIC. Program yang sudah ditulis dapat di-compile dapat disimulasikan pada computer. Hasil compiling program berupa file hexa yang nantinya didownloadkan ke chip mikrokontroller.

4.4 Latihan Salinlah program dibawah ini pada editor BASCOM-AVR, kemudian simulasikan dan downloadkanlah ke dalam chip mic rocontroller.

Third |Semester

Modul Mikrokontroler ATmega8535

51

Gambar 4.12 Program kedip pada jendela editor BASCOM-AVR 4.5 Tugas Berikut ini adalah program membaca data analog ADC input kanal 0 dan ditampilkan ke LCD dua baris 16 kolom. Salinlah program tersebut dan simulasikan pada BASCOM-AVR. Aturlah slider mulai pada posisi minimal paling bawah sampai pada posisi paling atas. Berapa penunjukan LCD ketika slider pada posisi minimal dan maksimal ?

Third |Semester

52

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

53

5. PEMROGRAMAN MIKROKONTROLLER ATMEGA8535

5.1 Tujuan Kegiatan Pembelajaran Setelah mengikuti kegiatan pembelajaran pada pokok bahasan ini, diharapkan peserta didik dapat Memprogram Sistem Mikrokontroller ATmega8535

5.1 Uraian Materi 5.2.1 Input Output Digital

Gambar 5.1 Rangkaian Modul Digital Input Output Test

Gambar 5.2 Modul Percobaan Input Output Digital

Third |Semester

54

Modul Mikrokontroler ATmega8535

5.2.2 Deretan LED

Gambar 5.3 Modul Percobaan Deretan LED

Third |Semester

Modul Mikrokontroler ATmega8535

55

Third |Semester

56

Modul Mikrokontroler ATmega8535

5.2.3 Lampu Lalu Lintas

Gambar 5.4 Rangkaian Modul Lampu Lalu Lintas

ambar 5.5 Penempatan LED pada Modul Lampu Lalu Lintas

Third |Semester

Modul Mikrokontroler ATmega8535

57

Gambar 5.6 Modul Percobaan Lampu Lalu Lintas Tabel kebenaran :

Third |Semester

58

Modul Mikrokontroler ATmega8535

5.2.4 Stepping Motor

Gambar 5.7 Rangkaian Modul Motor Stepper

Gambar 5.8 Modul Percobaan Motor Stepper Tabel kebenaran :

Third |Semester

Modul Mikrokontroler ATmega8535

59

5.2.5 Seven Segment Display

Gambar 5.9 Rangkaian Modul Seven Segment

Third |Semester

60

Modul Mikrokontroler ATmega8535

Gambar 5.10 Modul Percobaan Seven Segment

5.2.6 Analog To Digital Convertion (ADC)

Gambar 5.11 Rangkaian Modul Analog Input Test

Third |Semester

Modul Mikrokontroler ATmega8535

61

Gambar 5.12 Modul Percobaan Analog Input Test

Third |Semester

62

Modul Mikrokontroler ATmega8535

5.2.7 Liquid Crystal Display (LCD)

Gambar 5.13 Rangkaian Modul LCD

Gambar 5.14 Modul Percobaan LCD

Third |Semester

Modul Mikrokontroler ATmega8535

63

Third |Semester

64

Modul Mikrokontroler ATmega8535

5.2.8 Real Time Clock (RTC)

Gambar 5.15 Rangkaian Modul RTC

Third |Semester

Modul Mikrokontroler ATmega8535

65

Gambar 5.16 Modul Percobaan RTC

Third |Semester

66

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

67

Third |Semester

68

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

69

Third |Semester

70

Modul Mikrokontroler ATmega8535

5.2.9 The Universal Synchronous and Asynchronous Serial Receiver and Transmitter (USART) 5.2.9.1 Komunikasi Data Menggunakan USART Serial antara PC dengan Mikrokontrolle r

Gambar 5.17 Sistem komunikasi data serial antara PC dengan mikrokontroller menggunakan USART

Gambar 5.18 Percobaan Sistem komunikasi data serial antara PC dengan mikrokontroller menggunakan USART

Third |Semester

Modul Mikrokontroler ATmega8535

71

5.2.9.2 Komunikasi Data Serial antara Dua Mikrokontroller Menggunakan USART

Gambar 5.19 Sistem komunikasi data serial antara dua mikrokontroller menggunakan USART

Third |Semester

72

Modul Mikrokontroler ATmega8535

Gambar 5.20 Percobaan Sistem komunikasi data serial antara dua mikrokontroller menggunakan USART Hardware : Modul Digital Input Output Test pada PORTB/C Sambungkan kabel RS232 crossing antar kedua mikrokontroller Data deretan saklar mikrokontroller 1 ditampilkan pada deretan LED mikrokontroller 2 Data deretan saklar mikrokontroller 2 ditampilkan pada deretan LED mikrokontroller 1

Fungsi

:

Mikrokontroller 2 harus dihidupkan terlebih dahulu, baru kemudian hidupkan mikrokontroller 1 agar tidak saling menunggu (Waitkey)
Third |Semester

Modul Mikrokontroler ATmega8535

73

5.2.10 Serial Peripheral Interface (SPI)

Gambar 5.21 Rangkaian Output Digital Menggunakan SPI

Gambar 5.22 Percobaan Output Digital Menggunakan SPI

Third |Semester

74

Modul Mikrokontroler ATmega8535

5.2.11 Digital to Analog Conversion (DAC)

Gambar 5.23 Rangkaian Modul DAC 2 kanal melalui SPI

Gambar 5.24 Percobaan Modul DAC 2 kanal melalui SPI
Third |Semester

Modul Mikrokontroler ATmega8535

75

Third |Semester

76

Modul Mikrokontroler ATmega8535

5.2.12 Pulse Wide Modulation (PWM)

Gambar 5.25 Rangkaian PWM dengan beban lampu

Gambar 5.26 Percobaan PWM

Third |Semester

Modul Mikrokontroler ATmega8535

77

5.2.13 LED Matriks

Gambar 5.27 Rangkaian LED Matriks

Third |Semester

78

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

79

Third |Semester

80

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

81

Third |Semester

82

Modul Mikrokontroler ATmega8535

5.2.14 Keypad

Gambar 5.28 Rangkaian Keypad

Third |Semester

Modul Mikrokontroler ATmega8535

83

Gambar 5.29 Percobaan 1 Modul Keypad

Third |Semester

84

Modul Mikrokontroler ATmega8535

Gambar 5.30 Percobaan 2 Modul Keypad LCD

Third |Semester

Modul Mikrokontroler ATmega8535

85

Third |Semester

86

Modul Mikrokontroler ATmega8535

5.2.15 Printer

Gambar 5.31 Sambungan Mikrokontroller ke Printer

Third |Semester

Modul Mikrokontroler ATmega8535

87

Gambar 5.32 Percobaan Mencetak Data ke Printer

Third |Semester

88

Modul Mikrokontroler ATmega8535

Third |Semester

Modul Mikrokontroler ATmega8535

89

Third |Semester

90

Modul Mikrokontroler ATmega8535

5.3 Rangkuman 1. Sebelum mengakses port digital, harus dilakukan inisialisasi yaitu menentukan arah data sebagai masukan atau keluaran dengan instruksi config

2.

Untuk program penyalaan LED diperlukan tunda waktu yaitu Waitms

Third |Semester

Modul Mikrokontroler ATmega8535

91

3.

Penyalaan Seven Segment Display menggunakan sistem sacnning, yaitu menyalakan setiap modul dalam waktu tertentu bergantian sehingga seolah-olah menyala serentak bersamaan. Untuk itu diperlukan penentuan tunda waktu yang tepat Untuk membaca data analog harus melakukan inisialisasi ADC sebagai berikut :

4.

5.

ntuk menulis LCD harus melakukan inisialisasi pin LCD sebagai berikut :

6.

Real Time Clock (RTC) memiliki data informasi kalender yang tersedia dalam alamat tertentu. Data kalender dapat dibaca dan ditulisi. Komunikasi data serial dapat melalui USART menggunakan pin Tx dan Rx serta GND Komunikasi data serial dapat melalui SPI menggunakan pin SS’, MOSI, MISO, dan CLK serta GND Mikrokontroller Atmega8535 tidak memiliki DAC internal. Mikrokontroller Atmega8535 memiliki PWM internal

7.

8.

9. 10.

Third |Semester

92

Modul Mikrokontroler ATmega8535

5.4 Latihan Siapkan peralatan yang diperlukan pada setiap topik di atas. Salinlah listing program pada software editor BASCOM-AVR Compile dan download program tersebut pada modul mikrokontroller. Jalankan program tersebut. Lakukan semua langkah diatas untuk masing masing percobaan. Selanjutnya kerjakan soal latihan membuat program sesuai topik di bawah ini : 1 Topik Hardware Fungsi Tabel kebenaran : : : Input Output Digital Modul Digital I/O Test pada PORTD/A Input deretan saklar pada PORTA Output deretan LED pada PORTD Counter Up/Down biner ditampilkan pada deretan LED PORTD dengan tunda waktu 100ms sesuai tabel kebenaran berikut ini

2 Topik Hardware Fungsi

: : :

Deretan LED Modul Digital I/O Test pada PORTD/A Led berjalan bolak balik kiri kanan dengan tunda waktu 100ms Lampu Lalu Lintas Modul Lalin pada PORTD/A Kontrol lampu lalu lintas dengan mengulang-ulang data penyalaan sesuai tabel kebenaran 1 selama 10 kali dilanjutkan dengan penyalaan sesuai tabel kebenaran 2 sebanyak 20 kali.

3 Topik Hardware Fungsi

: : :

Tabel kebenaran 1

Third |Semester

Modul Mikrokontroler ATmega8535

93

Tabel kebenaran 2

4 Topik Hardware Fungsi

: : :

Stepping Motor Modul Motor Stepper pada PORTB Memutar motor stepper clock wise 5 kali putaran dan contra clock wise 3 kali putaran setelah itu berhenti. Tunda waktu 10 ms Seven Segment Display Modul Seven Segment pada PORTB/PORTC Counter up 6 digit dengan input dari tombol pada PinC.0 Untuk mereset, tekan tombol PinC.1 Analog To Digital Convertion (ADC) Modul Analog Input Test pada PORTA/PORTB , Modul Digital Input Output Test pada PORTB/PORTC Tegangan pada ADC0 ditampilkan pada deretan LED PORTB dengan cara balok seperti pada tabel kebenaran berikut

5 Topik Hardware Fungsi

: : :

6 Topik Hardware Fungsi

: : :

Tabel kebenaran

7 Topik Hardware

: :

Liquid Crystal Display (LCD) Modul Analog Input Test pada PORTA , Modul LCD pada PORTB Membaca tegangan analog ADC0 0 s.d. 5.0 Volt ditampilkan pada LCD baris pertama sebagai 0.0
Third |Semester

94

Modul Mikrokontroler ATmega8535

s.d. 150.0 C Membaca tegangan analog ADC1 0 s.d. 5.0 Volt ditampilkan pada LCD baris pertama sebagai 0 s.d. 100 % 8 Topik Hardware Fungsi : : : Real Time Clock (RTC) Modul RTC PORTA/D, Modul LCD pada PORTB Membaca data RTC dan ditampilkan pada LCD Baris pertama menampilkan Hari, Tanggal, B ulan dan Tahun Baris kedua menampilkan Jam, Menit dan Detik

9 Topik Hardware

: :

Fungsi

:

The Universal Synchronous and Asynchronous Serial Receiver and Transmitter (USART) Dua modul mikrokontroller, modul Analog Input pada PORTA, modul mikrokontroller 1 Modul LCD pada PORTB, modul mikrokontroller 2 Membaca data tegangan ADC0 mikrokontroller 1 dan ditampilkan pada LCD mikrokontroller 2 Serial Peripheral Interface (SPI) Dua modul mikrokontroller, Modul Digital I/O pada PORTA, modul mikrokontroller 1 dan 2 Data deretan saklar mikrokontroller ditampilkan pada deretan LED mikrokontroller 2 Data deretan saklar mikrokontroller 2 ditampilkan pada deretan LED mikrokontroller 1

10 Topik Hardware Fungsi

: : :

Gambar 5.33 Sistem komunikasi data serial antara dua mikrokontroller menggunakan SPI 11 Topik Hardware Fungsi
Third |Semester

: : :

Digital to Analog Conversion (DAC) Modul Analog Input Test pada PORTA, Modul DAC 2 Kanal – SPI pada PORTB DAC1 = ADC0 – ADC1

Modul Mikrokontroler ATmega8535

95

12 Topik Hardware Fungsi

: : :

Pulse Wide Modulation (PWM) Modul Digital I/O Test pada PORTB/C Membaca data dari PC berupa angka 0 s.d. 255 Data tersebut dipergunakan untuk mengatur duty cycle PWM yang di keluarkan pada OC0. Terang redupnya nyala LED diatur dari PC melalui RS232 LED Matriks Modul LED Matriks pada PORTB/C Counter Up 0 s.d. 9 setiap 500ms Keypad Modul LCD Keypad pada PORTB/C, Modul Motor Stepper pada PORTD Motor stepper berputar clock wise dengan jumlah putaran ditentukan dengan angka yang ditekan pada keypad 0 s.d. 9

13 Topik Hardware Fungsi 14 Topik Hardware Fungsi

: : : : : :

Third |Semester

96

Modul Mikrokontroler ATmega8535

6. PENUTUP
Setelah menyelesaikan modul ini dan mengerjakan semua latihan dan tugas pada setiap pokok bahasan maka peserta diklat dapat dinyatakan telah memiliki kompetensi Memprogram Peralatan Sistem Otomasi Elektronik yang Berkaitan I/O berbantuan Mikrokontroller ATmega 8535. Dengan demikian peserta dapat melanjutkan pada modul berikutnya sesuai peta alur kedudukan modul.

Third |Semester

Modul Mikrokontroler ATmega8535

97

DAFTAR PUSTAKA
1. Datasheet, 8-bit AVR Micrcontroller with 8K Bytes In-System Programmable Flash Atmega8535 Atmega8535L, Atmel Corporation, San Jose USA, 2006 Datasheet, 8-bit AVR Instruction Set, Atmel Corporation, San Jose USA, 2005 BASCOM-AVR Help Reference Version 1.11.8.3 document build 8, MCS Electronics, 2006 Rinaldi Munir, Algoritma dan Pemrograman, Penerbit Informatika, Bandung, 2000 Guru Mikro Saya, Bandung, 1986

2. 3. 4. 5.

Third |Semester

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->