Mikrokontroler: Output Digital Atmega16


Perusahaan yang mengembangkan mikrokontroler adalah Atmel yang memproduksi AT89C51 dan ATMEGA16.
Microcontroller AT89C51 atau MCS-51 menggunakan bahasa pemrograman Assembler dan mengemas setiap instruksi dalam kode 8-bit pada setiap 1 (satu) siklus clock.
Microcontroller ATMEGA16 atau AVR menggunakan bahasa pemrograman C dan mengemas instruksi dalam kode 16-bit pada setiap 1 (satu) siklus clock.
Perbedaan antara AVR dengan MCS-51 untuk mengerjakan satu instruksi yang sama mencapai 12 siklus clock. Hal ini terjadi karena seri AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS-51 berteknologi CISC (Complex Instruction Set Computing).Microkontroler
Seri MCS-51 berteknologi CISC (Complex Instruction Set Computing). Complex instruction-set computing adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus dalam sebuah instruksi.
Seri AVR berteknologi RISC (Reduced Instruction Set Computing). Reduced Instruction Set Computing yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit karena pada instruksi yang kompleks menjadi sederhana (reduced).Mikrocontroller
Yang membedakan antara AT89C51 dan ATMEGA16 adalah kapasitas memori, kemampuan dan fungsi peripheral. Sedangkan dari segi arsitektur dan instruksi hexadesimal yang digunakan sama.

Tiga komponen utama dari mikrokontroler, yaitu: processor CPU, memory dan input/output (I/O).
Arsitektur Microcontroller


- VCC (pin10) masukan catu daya 5V.
- GND (pin 11, 31) merupakan pin Ground.
- Port A (pin 33 s/d 40) merupakan pin input/output dua arah dan pin masukan ADC.
- Port B (pin 1 s/d 8) merupakan pin input/output dua arah dan pin fungsi khusus,
- Port C (pin 22 s/d 29) merupakan pin input/output dua arah dan pin fungsi khusus
- Port D(pin 14 s/d 21) merupakan pin input/output dua arah dan pin fungsi khusus
- RESET (pin 9) untuk me-reset mikrokontroler.
- XTAL1 dan XTAL2 (pin 12, 13)
- AVCC (pin 30) merupakan pin masukan tegangan untuk ADC.
- AREF (pin 32) merupakan pin masukan tegangan referensi ADC.

#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRA=0xFF;// Register pd Port A sbg Output
while (1)
{
PORTA=0;
delay_ms(500);
PORTA=0xFF;
delay_ms(500);
}
}