Mikrokontroler Atmega16 LANDASAN TEORI

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