Bab 1 Mikrokontroller
Bab 1 Mikrokontroller
MIKROKONTROLER
Asisten
Asisten
BAB I PENDAHULUAN
I.1. Tujuan Mengetahui rangkaian minimum sistem Mikrokontroler ATMEGA8535 Mengenal software pemrograman Mikrokontroler ATMEGA8535 Mengenal instruksi-instruksi pada Mikrokontroler ATMEGA8535 Dapat mengakses Port pada Mikrokontroler
I.2. Alat dan Bahan Mikrokontroler ATMEGA8535 Software pemrograman Mikrokontroler ATMEGA8535 8 Buah LED yang terhubung dengan Mikrokontroler ATMEGA8535 8 tombol push button yang terhubung dengan Mikrokontroler ATMEGA8535
II.1.
Teori Dasar Mikrokontroller AVR AVR adalah mikrokontroler RISC (Reduce Intstruction Set Compute) 8 bit
bit berdasarkan arsitekstur harvard, yang dibuat oleh atmel pada tahun 1996. AVR mempunyai kepanjangan advanced versatile RISC atau alf and vegards RISC procesor yang berasal dari dua nama mahasiswa Norwegian Institute Of Technology (NTH), yaitu Alf-Egil Bogen dan Vegard Wollan.
AVR
memiliki
keunggulan
dibandingkan
dengan
mikrokontroller
lain,
keunggulan mikrokontroller AVR yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat karena sebagian besar intruksi dieksekusi dalam satu siklus clock, lebih cepat dibandingkan mikrokontroller ATMEGA8535 yang memiliki arsitektur cisc ( complec instruction set compute ) dimana mirokontroller ATMEGA8535 membutuhkan 12 siklus clock untuk mengeksekusi satu intruksi . selain itu mikrokontroller AVR memiliki fitur yang lengkap (ADC internal, eeprom internal, timer/counter, wotchdog timer, pwm, port I/O, komunikasi serial, komparator, ic, dll). Sehingga dengan fasilitas yang lengkap ini programmer dan desainer dapat dapan menggunakannya untuk berbagai aplikasi sistem elektronika. Secara umum mikrokontroller AVR dapat dikelompokan menjadi 3 kelompok, yaitu keluarga AT90Sxx, keluarga ATMega, dan keluarga Attiny. Pemograman mikrokontroller AVR dapat menggunakan low level language (assembly) dan high level language (C, Basic, Pascal, JAVA, dll) Tergantung compiler yang digunakan. Arsitektur ATMega8535 Fitur fitur yang dimiliki ATMega8535 adalah sebagai berikut : 1. Mikrokontroller AVR 8 bit yang memiliki kemampuan tinggi, dengan daya rendah.
2. Arsitektur RISC dengan troughput mencapai 16 MIPS pada frekuensi 16 MHz. 3. Memiliki kapasitas flash memori 8 Kbyte, EEPROM 512 Byte dan SRAM 1 Kbyte. 4. Saluran I/O sebanyak 32 buah, yaitu port A, port B, Port C, dan Port D. 5. CPU yang terdiri atas 32 Register. 6. Unit Interupsi internal dan eksternal. 7. Port UASRT untuk komunikasi serial. 8. Fitur peripheral Tiga buah timer/counter dengan kemampuan perbandingan. 2 buah timer/counter 8 bit dengan prescaler terpisah dengan mode compare. 1 buah timer/counter 16 bit dengan prescaler terpisah mode compare dan capture. Real time counter dengan Oscillator tersendiri. 4 channel PWM. 8 channel ADC 10 bit. Byte oriented two wire serial interface. Programable serial USART. Antarmuka SPI. Watchdog TIMER dengan Oscillator internal. Onchip Analog Comparator.
Fungsi dari masing masing pin ATMega8535 sebagai berikut : 1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merupakan pin ground. 3. Port A(PA0....PA7) merupakan pin I/O dua arah dan pin masukan ADC. 4. Port B (PB.....PB7) merupakan pin I/O dua arah dan pin fungsi khusus.
Tabel Fungsi Khusus Port B 5. Port C (PortC0PortC7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti dapat dilihat pada tabel dibawah ini.
6. Port D (PortD0PortD7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti yang terlihat pada tabel dibawah ini.
Tabel Fungsi Khusus Port D 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREFF merupakan pin masukan tegangan referensi ADC.
II.2.
Teori Tambahan
Mikrokontroler adalah suatu single chip yang didalamnya terdapat mikroprosesor, RAM, ROM, TimerMdan I/O Port dalam satu kesatuan, sehingga dalam menggunakannya tidak diperlukan penambahan RAM, ROM, Timer dan I/O Port. Mikrokontroler juga ada yang memiliki Address Bus sehingga memungkinkan mikrokontroler untuk menambahkan RAM, ROM, I/O Port dan Timer. ATMega8535 merupakan salah satu mikrokontroler 8 bit buatan Atmel untuk keluarga AVR yang diproduksi secara masal pada tahun 2006. Karena
merupakan keluarga AVR, maka ATMega8535 juga menggunakan arsitektur RISC. Secara singkat, ATMega8535[1] memiliki beberapa kemampuan: 1. Sistem mikrokontroler 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. 2. Memiliki memori flash 8 KB, SRAM sebesar 512 byte dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. Memiliki ADC (Pengubah analog-ke-digital) internal dengan ketelitian 10 bit sebanyak 8 saluran. 4. Memiliki PWM (Pulse Wide Modulation) internal sebanyak 4 saluran. 5. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 6. Enam pilihan mode sleep, untuk menghemat penggunaan daya listrik. Untuk melakukan pemrograman dalam mikrokontroler AVR, Atmel telah menyediakan software khusus yang dapat diunduh dari website resmi Atmel. Software tersebut adalah AVRStudio. Software ini menggunakan bahasa assembly sebagai bahasa perantaranya. Selain AVRStudio, ada beberapa software pihak ketiga yang dapat digunakan untuk membuat program pada AVR. Software dari pihak ketiga ini menggunakan bahasa pemrograman tingkat tinggi seperti bahasa C, Java, atau Basic. Untuk melakukan pemindahan dari komputer ke dalam chip, dapat digunakan beberapa cara seperti menggunakan kabel JTAG atau menggunakan STNK buatan Atmel.
Konsep Sistem Mikrokontroler Digambarkan sistem komputer dengan bagian yang dikelilingi oleh garis putus-putus. Bagian inilah yang menyusun mikrokontroler. Bagian yang dilingkupi kotak bagian bawah adalah gambar lebih detail dari susunan bagian yang dilingkupi garis putus-putus. Kristal tidak termasuk dalam sistem mikrokontroler tetapi diperlukan dalam sirkuit osilator clock. Suatu mikrokontroler dapat didefinisikan sebagai sistem komputer yang lengkap termasuk sebuah CPU, memori, osilator clock, dan I/O dalam satu
rangkaian terpadu. Jika sebagian elemen dihilangkan, yaitu I/O dan memori, maka chip ini akan disebut sebagai mikroprosesor.
Rangkaian lampu LED Rangkaian minimum untuk menghidupkan 8 LED melalui Port B ditunjukan pada Gambar 3.1. yang perlu diperhatikan adalah konfigurasi rangkaian LED yaitu Common Anode (CA) artinya untuk menghidupkan LED pada Port B, port B harus dikirim atau diberi logika 0.
Pemograman Menyalakan Lampu LED Setelah rangkaian LED di buat dan dihubungkan dengan port paralel mikrokontroller, maka sekarang saatnya anda membuat program yang di gunakan untuk menghidupkan LED tersebut.program sebagai berikut ini
Cara kerja program: Pada program Program LED Menyala, di perlukan deklarasi register dan delay untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan masuk ke dalam program utama. Di dalam program utama, terdapat variabel karakter yang berfungsi untuk menyimpan data angka 0x000. Data 0x00 digunakan untuk menyalakan LED karena LED di pasang common anoda Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan PORTC. Data tersebut di simpan dalam variabel a yang dideklarasikan sebagai char. Data tersebut dikeluarkan dengan menggunakan PORTC sehingga harus dideklarasikan PORTC sebagai output dengan DDRC=0xFF. Instruksi while merupakan instruksi perulangan, sehingga mikrokontroller akan mengeluarkan data yang di simpan oleh variabel karakter secara terus menerus.
Pemrograman LED Berkedip Setelah membuat dan menjalankan program menyalakan lampu LED, maka sekarang saatnya Anda membuat program kedua yang digunakan untuk menghidupkan LED berkedip.
Cara kerja program: Pada program Program LED Berkedip, terlihat menggunakan
mikrokontroller ATMEGA8535, sehingga di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Di dalam program utama, terdapat variabel
karakter yang berfungsi untuk menyimpan data 00 dan FF. Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan port 0. Instruksi while merupakan instruksi perulangan.
Pemrograman LED Flip Flop Setelah membuat dan menjalankan program menyalakan lampu LED berkedip,maka sekarang saatnya Anda membuat program ketiga yang digunakan untuk menghidupkan LED flip-flop 1. Program sebagai berikut ini
Cara kerja program: Pada program LED Flip-Flop di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan mendeklarasikan waktu 1 sekon. Waktu tersebut berfungsi untuk waktu tunda. Kemudian mikrokontroller akan mengeksekusi program utama. Di dalam program utama, terdapat variabel karakter yang berfungsi untuk menyimpan data 0x00F dan 0x0F0. Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan port B.
Pemrograman LED Berjalan Kekanan Setelah membuat dan menjalankan program menyalakan lampu LED flipflop, maka sekarang saatnya Anda membuat program yang digunakan untuk menghidupkan LED berjalan kanan. Program LED berjalan kekanan ini dijalankan pada hardware nyala LED berlogika tinggi atau logika 1. jika menggunakan logika rendah maka LED bukan menyala tetapi akan mati. Program LED berjalan kekanan menggunakan operasi geser kanan. Operasi geser kiri akan menggeser bit-bit kekanan sehingga bit 0 akan berpindah ke bit 1 dan bit 1 akan berpindah ke bit 2 dan seterusnya.
Cara kerja program: Pada program Program LED berjalan Kekanan di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan mendeklarasikan waktu kurang lebih 1 sekon. Kemudian mikrokontroller akan mengeksekusi program utama. Di dalam program utama, terdapat variabel karakter yang berfungsi untuk menyimpan data 0x01. Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan port 0. kemudian mikrokontroller menjalankan operasi geser kanan. Diantara operasi geser kiri dan mengeluarkan data di PORTB tersebut terdapat waktu tunda kurang
lebih 1 sekon. Didalam program utama terdapat pernyataan while(1). Pernyataan itu berfungsi untuk melakukan looping secara terus menerus.
Pemrograman LED Berjalan Kekiri Setelah membuat dan menjalankan program menyalakan lampu LED berjalan kekanan, maka sekarang saatnya Anda membuat program yang digunakan untuk menghidupkan LED berjalan kekiri. Program LED berjalan kekanan menggunakan operasi geser kiri. Operasi geser kiri akan menggeser bitbit kekanan sehingga bit 7 akan berpindah ke bit 6 dan bit 6 akan berpindah ke bit 5 dan seterusnya. Program sebagai berikut ini.
Cara kerja program: Pada program Program LED berjalan ke kiri di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan mendeklarasikan waktu kurang lebih 1 sekon. Kemudian mikrokontroller akan mengeksekusi program utama. Di dalam program utama, terdapat variabel karakter yang berfungsi untuk menyimpan data 0x01. Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan port 0. kemudian mikrokontroller menjalankan operasi geser kekiri. Diantara operasi geser kiri dan mengeluarkan data di PORTB tersebut terdapat waktu tunda kurang
lebih 1 sekon. Didalam program utama terdapat pernyataan while(1). Pernyataan itu berfungsi untuk melakukan Looping secara terus menerus.
Pemrograman LED Berjalan Bolak-Balik Setelah membuat dan menjalankan program menyalakan lampu LED berjalan menyala kekiri, maka sekarang saatnya Anda membuat program ketuga yang digunakan untuk menghidupkan LED bolak balik. Program LED bolak balik menggunakan operasi pernyataan geser kanan dan geser kiri.
Cara kerja program: Pada program menyalakan LED dari kiri ke kanan di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan mendeklarasikan waktu kurang lebih 1 sekon. Waktu tersebut berfungsi untuk waktu tunda. Waktu tunda itu tidak tidak akurat. Kemudian mikrokontroller akan mengeksekusi program utama. Di dalam program utama, terdapat variabel karakter yang berfungsi untuk menyimpan data 0x01. Data tersebut akan di keluarkan oleh mikrokontroller dengan menggunakan port 0. kemudian mikrokontroller menjalankan operasi geser kanan. Diantara operasi geser kiri dan mengeluarkan data di port 0 tersebut terdapat waktu tunda kurang lebih 1 sekon. Didalam program utama terdapat pernyataan while(1). Pernyataan itu berfungsi untuk melakukan Looping secara terus menerus.
Pemrograman Pembacaan 8 Buah Tombol Setelah rangkaian tombol dibuat dan dihubungkan dengan port pararel mikrokontroller, maka sekarang saatnya Anda membuat program pembacaan tombol.
Cara kerja program: Pada program pembacaan 8 buah tombol, di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan masuk ke dalam program utama. Di dalam program utama, mikrokontroller akan membaca PORT C. Data dari PORT C akan dimasukan ke dalam variabel, Kemudian data yang ada di variabel tersebut akan dikeluarakan pada PORT B oleh mikrokontroller. Didalam program utama terdapat pernyataan while(1). Pernyataan itu berfungsi untuk melakukan Looping secara terus menerus.
BAB V KESIMPULAN
DAFTAR PUSTAKA
LAMPIRAN