Mikrokontroler adalah sebuah sistem komputer
lengkap dalam satu chip. Mikrokontroler lebih dari sekedar sebuah
mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM
(Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa
peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC
(Digital to Analog converter) dan serial komunikasi. Salah satu
mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR.
AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan
arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat
dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan
ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori,
peripheral, dan fiturnya Seperti mikroprosesor pada umumnya, secara internal
mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and
Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi,
dan pewaktu serta komponen kendali lainnya. Berbeda dengan mikroprosesor,
mikrokontroler menyediakan memori dalam chip yang sama dengen prosesornya (in
chip).
Arsitektur
ATMega 16
Mikrokontroler
ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori
data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data
dapat dilakukan secara bersamaan (concurrent), adapun blog diagram arsitektur
ATMega16. Secara garis besar mikrokontroler ATMega16 terdiri dari :
1.
Arsitektur RISC dengan throughput mencapai 16
MIPS pada frekuensi 16Mhz.
2.
Memiliki kapasitas Flash memori 16Kbyte,
EEPROM 512 Byte, dan SRAM 1Kbyte
3.
Saluran I/O 32 buah, yaitu Port A, Port B,
Port C, dan Port D.
4.
CPU yang terdiri dari 32 buah register.
5.
User interupsi internal dan eksternal
6.
Port antarmuka SPI dan Port USART sebagai
komunikasi serial
7. Fitur Peripheral
ATMega16 memiliki 8 Pin untuk masing-masing Port A, Port B, Port C, dan Port D.
Gambar 1. Konfigurasi PIN pada Atmega 16
Deskripsi
Mikrokontroler ATMega16
·
VCC (Power Supply) dan GND(Ground)
·
Port A (PA7..PA0)
Port A berfungsi sebagai
input analog pada konverter A/D. Port A juga sebagai suatu port I/O 8-bit
dua arah, jika A/D konverter tidak digunakan. Pin - pin Port dapat
menyediakan resistor internal pull-up (yang dipilih untuk masing-masing
bit). Port A output buffer mempunyai karakteristik gerakan simetris
dengan keduanya sink tinggi dan kemampuan sumber. Ketika pin PA0 ke PA7
digunakan sebagai input dan secara eksternal ditarik rendah, pin–pin akan
memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Port
A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu
habis.
·
Port B (PB7..PB0)
Pin B adalah suatu pin I/O
8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa
bit). Pin B output buffer mempunyai karakteristik gerakan simetris dengan
keduanya sink tinggi dan kemampuan sumber. Sebagai input, Pin B yang
secara eksternal ditarik rendah akan arus sumber jika resistor pull-up
diaktifkan. Pin B adalah tri-stated manakala suatu kondisi reset menjadi
aktif, sekalipun waktu habis.
·
Port C (PC7..PC0)
Pin C adalah suatu pin I/O
8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa
bit). Pin C output buffer mempunyai karakteristik gerakan simetris dengan
keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin C yang
secara eksternal ditarik rendah akan arus sumber jika resistor pull-up
diaktifkan. pin C adalah tri-stated manakala suatu kondisi reset menjadi
aktif, sekalipun waktu habis.
·
Port D (PD7..PD0)
Pin D adalah suatu pin I/O
8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa
bit). Pin D output buffer mempunyai karakteristik gerakan simetris dengan
keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin D yang
secara eksternal ditarik rendah akan arus sumber jika resistor pull-up
diaktifkan. Pin D adalah tri-stated manakala suatu kondisi reset menjadi
aktif, sekalipun waktu habis.
·
RESET (Reset input)
·
XTAL1 (Input Oscillator)
·
XTAL2 (Output Oscillator)
·
AVCC adalah pin penyedia tegangan untuk Port
A dan Konverter A/D
·
AREF adalah pin referensi analog untuk
konverter A/D
Peta Memori ATMega16
Memori Program
Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori
program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan
data. ATMega16 memiliki 16K byte On-chip In-System Reprogrammable Flash
Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki
format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori
flash dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi.
Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang
dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.
Bahasa Pemrograman Mikrokontroller
Jenis Jenis Bahasa Pemrograman
1 . Low Level (bahasa tingkat rendah)
·
Assembly MCS-51 Æ Franklim, ASM-51
·
Assembly AVR Æ AVR Studio
2 . High Level (bahasa tingkat tinggi)
·
Basic Æ Bascom – 8051, Bascom AVR
·
C Æ SDCC, Franklin32
Secara
umum bahasa
yang digunakan
pemrogramannya adalah bahasa
tingkat rendah
yaitu bahasa
assembly, dimana setiap mikrokontroler memiliki bahasa – bahasa pemrograman yang berbeda– beda.
Karenanya hambatan dalam menggunakan
bahasa
assembly
ini (yang
pasti cukup sulit) maka mulai dikembangkan compiler
atau penerjemah untuk bahasa tingkat tinggi. Untuk MCS-51 bahasa
tingkat tinggi yang banyak dikembangkan antara lain BASIC, PASCAL dan C. Bahasa Program Basic Compiler AVR (Bascom AVR).
BASCOM-AVR
BASCOM-AVR
adalah program basic compiler berbasis windows untuk mikrokontroler keluarga AVR merupakan
pemrograman dengan bahasa tingkat tinggi ” BASIC ”
yang dikembangkan dan
dikeluarkan oleh MCS elektronika
sehingga dapat dengan mudah dimengerti atau diterjemahkan.
Dalam
program BASCOM-AVR terdapat beberapa kemudahan, untuk membuat
program
software
ATMEGA 8535,
seperti program
simulasi
yang sangat
berguna
untuk
melihat,
simulasi
hasil
program yang telah kita
buat,
sebelum program tersebut kita download ke IC atau ke mikrokontroler.
Ketika program BASCOM-AVR dijalankan dengan mengklik icon
BASCOM-AVR, maka jendela berikut akan tampil :
Tampilan Jendela Program BASCOM-AVR
Intruksi yang dapat digunakan
pada
editor Bascom-AVR
relatif
cukup banyak dan tergantung dari tipe dan jenis
AVR yang digunakan. Berikut ini
beberapa instruksi-instruksi dasar
yang dapat digunakan pada mikrokontroler ATMEGA 16.
Tabel 2.1 Beberapa instruksi dasar Bascom AVR
Instuksi
|
Keterangan
|
DO ..... LOOP
|
Perulangan
|
GOSUB
|
Memanggil
Prosedur
|
IF ...... THEN
|
Percabangan
|
FOR ..... NEXT
|
Perulangan
|
WAIT
|
Waktu Tunda Detik
|
WAITMS
|
Waktu Tunda MiliDetik
|
WAITUS
|
Waktu Tunda MicroDetik
|
GOTO
|
Loncat Kealamat Memori
|
SELECT ...... CASE
|
Percabangan
|
0 comments:
Post a Comment