kompatibel-logika yaitu ketika sinyal-sinyal tersebut berada di luar jangkauan sinyal-sinyal yang dapat disambungkan secara langsung kepada mikrokontroller
sejumlah rangkaian anatrmuka dibutuhkan sebagai tambahan akan dibutuhkan untuk menggeser level tegangan atau menyediakan level penggerak arus
tambahan. Sebagai contoh, tersedia sejumlah rangkaian antarmuka yang umum digunakan relay solid-state yang akan memungkinkan mikrokontroller untuk
berhubungan dengan suatu beban yang tersambung ke sumber a.c. setelah itu adalah mungkin bagi sebuah mikrokontroller kecil yang bekerja hanya dengan
sumber d.c. 5V untuk mengontrol suatu sistem pemanasan terpusat yang beroperasi dengan sumber a.c. 240V.
•
Pemrograman Mikrokontroller AVR
Pemrograman mikrokontroller AVR dapat menggunakan low level language assembly dan high language C, Basic, Pascal, java dll tergantung
compiler yang digunakan. Bahasa assembler mikrokontroller AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroller AVR
sudah dikuasai, maka dengan mudah akan menguasai pemrograman keseluruhan mikrokontroller jenis AVR. Namun bahasa assembler relatif lebih sulit dipelajari
daripada bahasa C, untuk pembuatan satu proyek yang besar akan memakan waktu yang sangat lama. Serta penulisan programnya akan panjang. Sedangkan
bahasa C memiliki keunggulan dibanding bahasa assembler yaitu indepedent terhadap hardware serta lebih mudah untuk menangani project yang besar.
Basaha C mempunyai keuntungan-keungtungan yang dipunyai oleh bahasa mein asemmbly. Hampir semua opersi yang dapat dilakukan oleh bahasa mesin,
dapat dilakukan dengan bahsa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C sendiri sebanarnya terletak diantara bahasa
pemrograman tingkat tinggi dan assembly.
2.4 Mikrokontroler Atmega16
Fitur-fitur yang dimiliki oleh Atmega 16 adalah mikrokontroller 8 bit yang memiliki kemampuan tinggi dengan daya rendah. arsitektur RISC dengan
throughput mencapai 16 MIP pada frekuensi 16MHz, memiliki kapasitas flash
Universitas Sumatera Utara
memory 16Kbyte EEPROM 512 byte dan SRAM 1Kbyte, sluran IO sebanyak 32 buah yaitu port A, B, C dan D. CPU yang terdiri dari 32 register, unit
interupsi intrnal dan eksternal, port USART untuk komunikasi serial, fitur peripheral dengan 3 buah timercounter dengan kemampuan pembandingan dua
2 buah timercounter 8 bit dengan prescaler terpisah dan mode compare dan satu 1 buah timercounter 16 bit dengan precaler terpisah mode campare, dan
mode capture, real time counter dengan oscillator tersendiri, 4 chanel PWM, 8 channel 10 bit-ADC, 8 singel-ended channel, 7 differential channel hanya pada
kemasan TQFP, 2 differential channel dengan programmable gain 1x, 10x, atau 200x, antarmuka SPI, on-chip analog comparator.
•
Konfigurasi Pin AVR Atmega16
Gambar berikut ini merupakan susunan kaki standart 40 pin DIP mikrokontroller AVR Atmega16.
Gambar 2.2 Tampilan Fisik Atmega16 Terlihat pada gambar diatas terdapat 4 port yaitu A B C dan D. Keempat
porrt tersebut merupakan jalur bi-derectoinal yang semuanya dapat diprogram sebagai input maupun output dengan pilihan intrnal pull-up. Tiap port tersebut
mempunyai 3 register bit, yaitu DDxn, PORTxn, PINxn. Huruf x mewakili nama port sedangkan n mewakili nama bit. Bit DDxn terdapat pada IO address DDRx
sedangkan PORTxn terdapat pada IO address PORTx dn bit PINxn terdapat pada IO address PINx. Deskripsi untuk port A port B port C dan port D sama
Universitas Sumatera Utara
yaitu PORTxn dan PINxn. Port IO pada mikrokontroller AVR dapat dikonfigurasi sebagai input atau ouput dengan mengubah isi IO register. Bit
data DDxn dalam register DDRx data derictoin register menentukan arah pin. Arsitektur AVR mepunyai dua memori utama yaitu memori data dan
memori program selain itu, Atmega16 memiliki meliki memori EPROM untuk menyimpan data. Atmega16 memiliki 16Kbyte on-chip in-system
reproggrammable flash memory untuk mennyimpan program. Karena instruktur Atmega16 memiliki 16 atau 32 bit. Flash diatur dalam 18K x 16 bit. Untuk
keamanan program, memori program, flash dibagi menjadi dua bagian yaitu bagian program bot dan aplikasi. Boot loader adalah program kecil yang bekerja
pada saat up time yang dapat memasukkan ke program aplikasi ke dalam mikroposessor.
Memori AVR Atmega16 terbagi menjadi 3 bagian yaitu 32 buah register umum,64 buah register IO dan 1Kbyte SRAM internal. General purpose register
menempati data alamat terbawah yaitu S00 sampai S1F. Sedangkan memory IO menempati 64 alamatnnya berikutnya mulai dari 20 hingga 5F. Memory IO
merupakan register yang khusus digunakan mengatur fungsi yang khusus terhadap berbagai pheriperal mikrokontroller seperti control register, timer atau
counter fungsi IO dan sebagainya.1024 alamat memory berikutnya mulai alamat 45F digunakan untuk SRAM internal. Atmega 16 terdiri dari 512 byte memori
data EEPROM 8 bit, data dapat ditulis atau dibacadari memori, ini ketika catu daya yang dimatikan, data yang terakhir ditulis pada memori EEPROM masi
tersimpan pada memori ini, atau kata lain EEPROM bersifat nonvolatile alamat EEPROM dari 000 hingga 1FF.
2.5 Codvision AVR