Selasa, 07 Oktober 2014

ATMega328 (konfigurasi pin)

            Konfigurasi Pin ATmega328
           ATMega328 merupakan mikrokontroler keluarga AVR 8 bit. Beberapa tipe mikrokontroler yang sama dengan ATMega8 ini antara lain ATMega8535, ATMega16, ATMega32, ATmega328, yang membedakan antara mikrokontroler antara lain adalah, ukuran memori, banyaknya GPIO (pin input/output), peripherial (USART, timer, counter, dll). Dari segi ukuran fisik, ATMega328 memiliki ukuran fisik lebih kecil dibandingkan dengan beberapa mikrokontroler diatas. Namun untuk segi memori dan periperial lainnya ATMega328 tidak kalah dengan yang lainnya karena ukuran memori dan periperialnya relatif sama dengan ATMega8535, ATMega32, hanya saja jumlah GPIO lebih sedikit dibandingkan mikrokontroler diatas.

 Pin Mikrokontroler Atmega328
          ATMega328 memiliki 3 buah PORT utama yaitu PORTB, PORTC, dan PORTD dengan total pin input/output sebanyak 23 pin. PORT tersebut dapat difungsikan sebagaiinput/output digital atau difungsikan sebagai periperal lainnya.
1.     Port B
Port B merupakan jalur data 8 bit yang dapat difungsikan sebagai input/output. Selain itu PORTB juga dapat memiliki fungsi alternatif seperti di bawah ini.
     a.    ICP1 (PB0), berfungsi sebagai Timer Counter 1 input capture pin. 
b.    OC1A (PB1), OC1B (PB2) dan OC2 (PB3) dapat difungsikan sebagai keluaran PWM (Pulse Width Modulation).
c.    MOSI (PB3), MISO (PB4), SCK (PB5), SS (PB2) merupakan jalur komunikasi SPI.
d.   Selain itu pin ini juga berfungsi sebagai jalur pemograman serial (ISP).
e.    TOSC1 (PB6) dan TOSC2 (PB7) dapat difungsikan sebagai sumber clock external untuktimer.
f.     XTAL1 (PB6) dan XTAL2 (PB7) merupakan sumber clock utama mikrokontroler. 
2.    Port C
Port C merupakan jalur data 7 bit yang dapat difungsikan sebagai input/output digital. Fungsi alternatif PORTC antara lain sebagai berikut.
a.    ADC6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi sebesar 10 bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital
b.    I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck.
3.    Port D
Port D merupakan jalur data 8 bit yang masing-masing pin-nya juga dapat difungsikan sebagai input/output. Sama seperti Port B dan Port C, Port D juga memiliki fungsi alternatif dibawah ini.
a.    USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial.
b.    Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsihardware. Interupsi biasanya digunakan sebagai selaan dari program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi.
c.    XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external clock.
d.   T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer 0.
e.    AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.

ATMega328 (Diagram Blok)

  ATMega328   
     
     ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer).
        ATMega328 merupakan mikrokontroler keluarga AVR 8 bit. Beberapa tipe mikrokontroler yang sama dengan ATMega8 ini antara lain ATMega8535, ATMega16, ATMega32, ATmega328, yang membedakan antara mikrokontroler antara lain adalah, ukuran memori, banyaknya GPIO (pin input/output), peripherial (USART, timer, counter, dll). Dari segi ukuran fisik, ATMega328 memiliki ukuran fisik lebih kecil dibandingkan dengan beberapa mikrokontroler diatas. Namun untuk segi memori dan periperial lainnya ATMega328 tidak kalah dengan yang lainnya karena ukuran memori dan periperialnya relatif sama dengan ATMega8535, ATMega32, hanya saja jumlah GPIO lebih sedikit dibandingkan mikrokontroler diatas.  

Mikrokontroller ini memiliki beberapa fitur antara lain :
§ 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
§ 32 x 8-bit register serba guna.
§ Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
§ 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
§ Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
§ Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
§ Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.
§ Master / Slave SPI Serial interface.



          Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism.
              instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data.

 Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit.
Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh. 
           Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data.
 Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit.
Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh. 
Berikut gambar diagram blok ATMEga328:

Gambar diagram blok ATmega328



























ADC DAN DAC

1. Analog to Digital Converter (ADC)
          ADC adalah kepanjangan dari  Analog To Digital Converter yang berfungsi untuk mengubah input analog menjadi kode – kode digital. ADC banyak digunakan sebagai Pengatur proses industri, komunikasi digitaldan rangkaian pengukuran/atau pengujian.Umumnya ADC digunakan sebagai perantara antara sensor yang kebanyakan analog dengan sistim komputer seperti sensor suhu, cahaya, tekanan atau berat, aliran dan sebagainya kemudian diukur dengan menggunakan sistim digital (komputer).
      Secara singkat prinsip kerja dari konverter A/D adalah semua bit-bit diset kemudian diuji, dan bilamana perlu sesuai dengan kondisi yang telah ditentukan. Dengan rangkaian yang paling cepat, konversi akan diselesaikan sesudah 8 clock, dan keluaran D/A merupakan nilai analog yang ekivalen dengan nilai regiser SAR.
Apabila konversi telah dilaksanakan, rangkaian kembali mengirim sinyal selesai konversi yang berlogika rendah. Sisi turun sinyal ini akan menghasilkan data digital yang ekivalen ke dalam register buffer. Dengan demikian, keluaran digital akan tetap tersimpan sekalipun akan di mulai siklus konversi yang baru.

Jenis-jenis dari ADC dan fungsi dari masing-masing jenisnya

·      Tipe Tracking Tipe tracking menggunakan prinsip up down counter (pencacah naik dan turun). Fungsinya adalah : Binary counter (pencacah biner) akan mendapat masukan clock secara kontinyu dan hitungan akan bertambah atau berkurang tergantung pada kontrol dari pencacah apakah sedang naik (up counter) atau sedang turun (down counter).
·             Tipe flash / paralel Tipe ini dapat menunjukkan konversi secara lengkap pada kecepatan 100 MHz dengan rangkaian kerja yang sederhana. Berfungsi untuk mengatur masukan inverting dari tiap-tiap konverter menuju tegangan yang lebih tinggi dari konverter sebelumnya, jadi untuk tegangan masukan Vin, dengan full scale range, komparator dengan bias dibawah Vin akan mempunyai keluaran rendah.
·        Tipe successive approximation Tipe successive approximation merupakan suatu konverter yang paling sering ditemui dalam desain perangkat keras yang menggunakan ADC. Tipe ini memiliki kecepatan konversi yang cukup tinggi, meskipun dari segi harga relatif mahal. Prinsip kerja konverter tipe ini adalah, dengan membangkitkan pertanyaan-pertanyaan yang pada intinya berupa tebakan nilai digital terhadap nilai tegangan analog yang dikonversikan.
·     Tipe Integrating, menawarkan resolusi tertinggi dengan biaya terendah. ADC tipe ini tidak dibutuhkan rangkaian sample hold. Tipe ini memiliki kelemahan yaitu waktu konversi yang agak lama, biasanya beberapa milidetik.

      contoh Fungsi dari ADC adalah untuk mengubah data analog menjadi data digital yang diaplikasiakn pada komponen digital misalkan pada mikrokontroller AT89S51. Inputan dari ADC ini ada 2 yaitu input positif (+) dan input negatif (-). ADC 0804 ini terdiri dari 8 bit microprocessor Analog to Digital Converter.
            V (+) dan V (-) adalah inputan tegangan analog differensial sehingga data tegangan yang akan diproses oleh ADC adalah selisih antara Vi (+) dan Vi (-). Vref adalah tegangan referensi ADC yang digunakan untuk mengatur tegangan input pada Vi+ dan Vi-. Besarnya tegangan referensi ini adalah setengah dari tegangan input maksimal. Hal ini bertujuan agar pada saat inputan maksimal data digital juga akan maksimal. Frekuensi clock dari ADC dapat diatur dengan komponen R dan C eksternal pada pin Rclk dan Cclk dengan ketentuan :
Fclk = 1 / (1,1 RC)


           Chip select fungsinya untuk mengaktifkan ADC yang diaktifkan dengan logika low. Read adalah inputan yang digunakan untuk membaca data digital hasil konversi yang aktif pada kondisi logika low. Write berfungsi untuk melakukan start konversi ADC diaktifkan pada kondisi logika low. Instruksi berfungsi untuk mendeteksi apakah konversi telah selesai atau tidak, jika sudah selesai maka pin instruksi akan mengeluarkan logika low. Data outputan digital sebanyak 8 byte (DB0-DB7) biner 0000 0000 sampai dengan 1111 1111, sehingga kemungkinan angka decimal yang akan muncul adalah 0 sampai 255 dapat diambil pada pin D0 sampai D7. DB0-DB7 mempunyai sifat latching.

Gambar : Konfigurasi Pin ADC 0804
Deskripsi Fungsi Pin ADC 0804 :
  • WR, pulsa transisi high to low pada input input write maka ADC akan melakukan konversi data, tegangan analog menjadi data digital. Kode 8 bit data akan ditransfer ke output lacht flip – flop.
  • INT, bila konversi data analog menjadi digital telah selesai maka pin INT akan mengeluarkan pulsa transisi high to low. Perangkat ADC dapat diopersikan dalam mode free running dengan menghubungkan pin INT ke input WR.
  • CS, agar ADC dapat aktif , melakukan konversi data maka input chip select harus diberi logika low. Data output akan berada pada kondisi three state apabila CS mendapat logika high.
  • RD, agar data ADC data dapat dibaca oleh sistem mikroprosessor maka pin RD harus diberi logika low.
  • Tegangan analog input deferensial, input Vin (+) dan Vin (-) merupakan input tegangan deferensial yang akan mengambil nilai selisih dari kedua input. Dengan memanfaatkaninput Vin maka dapat dilakukan offset tegangan nol pada ADC.
  • Vref, tegangan referensi dapat diatur sesuai dengan input tegangn pada Vin (+) dan Vin (-), Vref = Vin / 2.
Vresolusi = Vin max / 255.
  • CLOCK, clock untuk ADC dapat diturunkan pada clock CPU atau RC eksternaldapat ditambahkan untuk memberikan generator clock dari dalam CLK In menggunakan schmitt triger
Resolusi dari converter menandakan nilai angka diskret yang menghasilkan range nilai analog, biasanya ditulis dalam biner dalam bit-bit. Contoh ADC dengan resolusi 8 bit dapat mengenkode masukan analog ke 256 (28=256), yang merepresentasikan range dari 0 sampai 255 (unsigned integer) atau dari -128 ke 127 (signed integer) tergantung pada aplikasi.
Resolusi juga dapat didefinisikan secara elektris dan diekspresikan dalam volt. Resolusi tegangan ADC sama dengan range pengukuran tegangan dibagi dengan jumlah interval diskret, sebagaimana ditunjukkan berikut;
           Dimana Q merupakan resolusi dalam volt per step (volt per kode keluaran), EFSR merupakan skala penuh range tegangan = VRefHi – VrefLow, M merupakan resolusi ADC dalam bit dan N merupakan jumlah interval yang diberikan oleh kode keluaran dimana N=2M.

            Pada prakteknya, resolusi dari converter dibatasi oleh signal-to-noise ratio terbaik yang dapat dicapai untuk digitized signal. ADC dapat menghasilkan sinyal dengan resolusi bit angka tertentu yang disebut “effective number of bits” (ENOB). Satu resolusi bit saja dapat merubah signal-to-noise ratio dari digitized signal oleh 6dB, jika resolusi dibatasi oleh ADC. Jika preamplifier digunakan pada konversi A/D makaamplifier akan berkontribusi pada hasil SNR (Signal-to-Noise Ratio).

2. Digital to Analog Converter (DAC)
             DAC (Digital to Analog Converter) adalah perangkat untuk mengkonversikan  sinyal masukan dalam bentuk digital menjadi sinyal keluaran dalam bentuk analog (tegangan, arus, muatan electrik).Tegangan keluaran yang dihasilkan DAC sebanding dengan nilai digital yang masuk ke dalam DAC.Sinyal mudah di simpan dan di transmisikan dalam bentuk digital, tapi DAC diperlukkan untu sinyal utuk diakui oleh indera manusia atau non-sistem digital.
    contohnya pada DAC0808, sebuah digital to analog converter 8-bit monolothic yang mempunyai waktu settling sekitar 150 ns. Tidak diperlukan setting arus referensi (IREF)dalam berbagai penerapan. Pada pengaturan skala penuh arus output yang dikeluarakan umumnya 255 (IREF/256). Arus power supply dari DAC0808 tidak bergantung pada kode bit dan akan menunjukkan karakteristik DAC yang tetap konstan pada keseluruhan jangkauan tegangan. DAC0808 mempunyai jangkauan tegangan power supply: ±4,5V sampai ±18V dengan konsumsi daya berkisar 33 mW pada tegangan ±5V. Untuk penggunaan interface ADC0808 dapat dihubungkan langsung ke level logika CMOS, TTL dan DTL.
Gambar : Konfigutasi Pin DAC0808
  1. A1-A8, input digital 8 bit, data inputan yang akan dikonversikan ke besaran tegangan analog.
  2. VREF(-), VREF(+) input tegangan referensi yang digunakan untuk mengatur levelouput tegangan analog.
  3. Compensation, pin compensation dihubungkan dengan menggunakan capasitor ke VEE atau ground untuk mempertahankan batas fase yang bersesuaian.


Gambar : Koneksi rangkaian DAC dan konverter arus ke tegangan

            Pengubahan besaran analog ke digital ditentukan oleh besar tegangan input maksimum yang diukur dalam Volt, mVolt atau uVolt, sedang nilai konversi digitalnya juga bebas ditentukan hal ini tergantung berapa bita yang digunakan untuk mengkonversinya. Begitu pula untuk pengubah digital ke analog juga sama dan hasil konversi tergantung pula pada besar tegangan referensinya.
Bila kita gunakan tegangan tertinggi untuk konversi 15 volt maka setiap kenaikan nilai konversi adalah 1 volt jadi bila nilai digital 0100 hasil konversinya adalah 4x1volt = 4 volt. Seandainya nilai tertinggi dibuat 4,5 volt maka setiap kenaikan adalah 0,3 volt sehingga bila nilai digital 0100 hasil konversinya adalah 4×0,3volt = 1,2 volt.

Gambar : Pengubah digital ke analog (DAC) 4 bit

            Dari penjelasan diatas dapat ditentukan jumlah harga tegangan atau aplitudo sebagai hasil konversi adalah tergantung pada jumlah bit digital yang dikonversikan, dan besar kecilnya harga analog hasil konversi juga ditentukan oleh besar kecilnya tegangan referensi.
            Makin banyak jumlah bit yang digunakan untuk konversi maka akan semakin banyak jumlah harga amplitudo yang di dapat, dan dengan semakin banyaknya jumlah tersebut akan menyebabkan tingkat kehalusan konversi semakin tinggi. Sebagai contoh untuk konversi tegangan analog 10 volt dengan menggunakan jumlah bit 10, maka akan didapatkan jumlah harga amplitudo 1024 dengan demikian akan diperoleh perbedaan setiap tingkat konversi adalah 10volt dibagi (1024-1) yaitu sama dengan 9,77 milivolt dan bila digunakan 8 bit maka perbedaan setiap tingkat konversi adalah 39,21 milivolt.

Senin, 06 Oktober 2014

BAGIAN MIKROKONTROLER

Mikrokontroler terdiri dari bagian berikut,

CPU (Central Processing Unit), adalah otak dari sistem komputer. Pekerjaan utama dari CPU adalah mengerjakan program yang terdiri atas instruksi-instruksi yang diprogram oleh programmer. Suatu program komputer akan menginstruksikan CPU untuk membaca informasi dari piranti input, membaca informasi dari dan menulis informasi ke memori, dan untuk menulis informasi ke output.
RAM (Random Access Memory),digunakan sebagai tempat penyimpan data sementara dan hasil kalkulasi selama proses operasi.
ROM (Read Only Memory), digunakan sebagai media penyimpan program dandata permanen yang tidak boleh berubah meskipun tidak ada tegangan yang diberikan pada mikrokontroler.
I/O, bagian yang menghubungkan program perintah dengan bagian output.
CLOK, pulsa yang digunakan untuk menyusun mikrokontroler.
BUS, menghubungkan bagian – bagian mikrokontroler.



ISTILAH DALAM MIKROKONTROLER

 Istilah-istilah dalam Mikrokontroler:
·  Tehnik fabrikasi, adalah tehnik yang biasa dilakukan untuk memproduksi hamper semua mikrokontroler terbaru. misalkanMikrokontroler CMOS (Complementary Metal Oxide Semiconductor)  memerlukan daya yang lebih rendah dibanding mikrokontroler yang dibuat dengan tehnik sebelumnya, sehingga memungkinkan untuk dioperasikan menggunakan batere. Chip CMOS juga memungkinkan dioperasikan pada fully atau mendekati fully static, yang berarti bahwa clock dapat diperlambat bahkan diberhentikan sehingga chip berada dalam kondisi (mode) sleep. CMOS juga lebih tahan terhadap noise dibandingkan cara fabrikasi sebelumnya.
·       CISC (Complete Instruction Set Computer), instruksi yang bekerja seperti sebuah makro, sehingga memungkinkan programmer untuk menggunakan sebuah instruksi menggantikan beberapa instruksi sedarhana lainnya. Biasanya memiliki lebih dari 80 instruksi.
·        RISC ( Reduced Instruction Set Computer), instruksi yang bekerja lebih sedikit, memungkinkan lahan pada chip (silicon realestate) digunakan untuk meningkatkan kemampuan chip. Keuntungan dari RIS adalah kesederhanaan disain, chip yang lebih kecil, jumlah pin sedikit dan sangat sedikit mengkonsumsi daya.
·     UART (Universal Asynchronous Receiver Transmitter), adalah adapter serial port adapter untuk komunikasi serial asinkron.
·      USART (Universal Synchronous/Asynchronous Receiver Transmitter),merupakan adapter serial port untuk komunikasi serial sinkron dan asinkron. Komunikasi serial sinkron tidak memerlukan start/stop bit dan dapat beroperasi pada click yang lebih tinggi dibanding asinkron.
·        SPI (serial peripheral interface) merupakan port komunikasi serial sinkron.
·        SCI (serial communications interface) merupakan enhanced UART (asynchronous serial port).
·        I2C bus (Inter-Integrated Circuit bus), berfungsi sebagai antarmuka jaringan multi-master, multi-slave dengan deteksi tabrakan data.
·   Comparator, Mikrokontroler tertentu memiliki ssebuah atau lebih komparator. Komparator ini bekerja seperti IC komparator biasa tetapi sinyal input/outputnya terpasang pada bus mikrokontroler.
·  Interupt, merupakan metode yang efisien bagi mikrokontroler untuk memproses periperalnya, mikrokontroler hanya bekerja memproses periperal tsb hanya pada saat terdapat data diperiperal tsb. Pada saat terjadi interupt, mikrokontroler menunda operasi yang sedang dilakukan kemudian mengidentifikasi interupsi yang datang dan menjalankan rutin pelayanan interupsi.
·      Maskable Interrupts, dengan maskable interupt kita dapat bebas memilih untuk menggunakan satu atau lebih interupsi. Keuntungan maskable interupt inin adalah kita dapat mematikan interupsi pada saat mikrokontroler sedang melakukan proses yang kritis sehingga interupsi yang datang akan diabaikan.
·       Vectored Interrupts, Pada saat terjadi interupsi, interupt handler secara otomatis akan memindahkan program pada alamat tertentu yang telah ditentukan sesuai dengan jenis interupsi yang terjadi.
·  Compiler ,penerjemah untuk bahasa pemrograman tingkat tinggi. Bekerja dengan cara menterjemahkan (mis pada PC) langsung ke bahasa mesin yang dimengerti oleh mikrokontroler.
·    Simulator, mensimulasikan atau menirukan kerja mikrokontroler pada PC. Langkah-langkah yang dikerjakan serta apa yang terjadi ketika program dijalankan dapat diamati dilayar PC.
·   Debuger residen, menjalankan program di mikrokontroler itu sendiri, dan pada saat bersamaan menampilkan hasilnya pada komputer induknya (PC). Alat bantu ini memiliki beberapa keunggulan seperti pada simulator dengan kelebihan lain yaitu kita dapat melihat bagaimana program tersebut bekerja pada target yang sebenarnya. Namun disisi lain, alat bantu ini memakai sebagian sumber daya yang dimiliki oleh mikrokontroler seperti port komunikasi (untuk komunikasi dgn PC), interupsi untuk untuk menjalankan program perlangkah (single step) dan sejumlah memori untuk menyimpan program dari debugger (bagian residen yang ditempatkan di target).
·      Emulator, adalah peralatan yang bekerja dengan berpura-pura sebagai mikrokontroler dan pada saat bersamaan dia mengambil informasi untuk ditampilkan. Emulator memberikan kontrol penuh pada target. Emulator ini bisa berupa perangkat dengan display tersendiri atau merupakan pengantar muka PC.
·     Akumulator, digunakan sebagai register umum untuk mengakumulasikan hasil dari instruksi-instruksi pada mikrokontroler.
·     Register R,delapan set register yang dinamakan R0, R1, R2, R3, R4, R5, R6, dan R7. Register-register ini digunakan sebagai register pembantu penyimpanan data dalam banyak operasi.
·      Register B, sama dengan akumulator dalam hal dia menyimpan sebuah harga 8 bit (1 byte). Register B ini hanya digunakan dalam dua instruksi keluarga 8031, yaitu MUL AB dan DIV AB. Karenanya, jika diinginkan untuk mengalikan atau membagi akumulator A dengan suatu harga, maka simpanlah harga tersebut dalam register B dan kemudian jalankan instruksinya.
·   DPTR (Data Pointer),satu-satunya register yang dapat diakses 16 bit (2 byte) di dalam keluarga mikrokontroler. Sebagaimana namanya, DPTR digunakan untuk menunjuk pada lokasi suatu data.
·      PC (Program Counter), adalah alamat 2 byte yang memberitahu keluarga mikrokontroler 89C51 di mana instruksi selanjutnya akan dilaksanakan.
·    SP (Stack Pointer), mampu menyimpan 8 bit (1 byte) data. SP digunakan untuk menunjukkan di mana harga berikutnya yang akan diambil dari stack.
·   Immediate Addressing, Mode pengalamatan immediate addressing sangat umum dipakai karena harga yang akan disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan.
·    Direct Addressing,Dalam mode pengalamatan direct addressing, harga yang akan dipakai diambil langsung dalam alamat memori lain.
·  Indirect Addressing, Mode pengalamatan indirect addressing sangat berguna karena dapat memberikan fleksibilitas tinggi dalam mengalamati suatu harga.

·       Interupsi, adalah suatu kejadian yang akan menghentikan sementara jalan program saat itu. Dengan interupsi, suatu alur program dapat dihentikan sementara untuk menjalankan suatu subrutin, dan kemudian melanjutkan aliran program secara normal seperti tidak pernah ada interupsi. Subrutin ini yang disebut dengan interrupt handler, dan hanya dijalankan jika terjadi suatu kejadian khusus (event).

JENIS-JENIS MIKROKONTROLER

Secara umum mikrokontroler terbagi menjadi 3 keluarga besar yang ada di pasaran. Setiap keluarga memepunyai ciri khas dan karekteriktik sendiri sendiri, berikut pembagian keluarga dalam mikrokontroler:
Keluarga MCS51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC. Sebagian besar instruksinya dieksekusi dalam 12 siklus clock. Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan alamat dengan cara jalur pemilihan chip yang terpisah untuk akses program dan memori data. Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah mesin pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit dapat dilakukan secara langsung dan secara efisien dalam register internal dan RAM. Karena itulah MCS51 digunakan dalam rancangan awal PLC (programmable Logic Control).
KELUARGA AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi. Secara umum, AVR dapat dikelompokkan dalam 4 kelas. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Keempat kelas tersebut adalah keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx.
KELUARGA PIC
PIC ialah keluarga mikrokontroler tipe RISC buatan Microchip Technology. Bersumber dari PIC1650 yang dibuat oleh Divisi Mikroelektronika General Instruments. Teknologi Microchip tidak menggukana PIC sebagai akronim,melaikan nama brandnya ialah PICmicro. Hal ini karena PIC singkatan dari Peripheral Interface Controller, tetapi General Instruments mempunyai akronim PIC1650 sebagai Programmabel Intelligent Computer.
PIC pada awalnya dibuat menggunakan teknologi General Instruments 16 bit CPU yaitu CP1600. * bit PIC dibuat pertama kali 1975 untuk meningkatkan performa sistem peningkatan pada I/). Saat ini PIC telah dilengkapi dengan EPROM dan komunikasi serial, UAT, kernel kontrol motor dll serta memori program dari 512 word hingga 32 word. 1 Word disini sama dengan 1 instruki bahasa assembly yang bervariasi dari 12 hingga 16 bit, tergantung dari tipe PICmicro tersebut. Silahkan kunjungi www.microchip.com untuk melihat berbagai produk chip tersebut.
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Controller. Tetapi pada perkembangannya berubah menjadi Programmable Intelligent Computer. PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat oleh Microchip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik General Instruments dengan nama PIC1640. Sekarang Microhip telah mengumumkan pembuatan PIC-nya yang keenam.
PIC cukup popular digunakan oleh para developer dan para penghobi ngoprek karena biayanya yang rendah, ketersediaan dan penggunaan yang luas, database aplikasi yang besar, serta pemrograman (dan pemrograman ulang) melalui hubungan port  serial yang terdapat pada komputer.


Pembagian jenis-jenis mikrokontroler yang telah umum digunakan:
            Mikrokontroler AT89S52
Mikrokontroler 89S52 merupakan versi terbaru dibandingkan mikrokontroler AT89C51 yang telah banyak digunakan saat ini. AT89S52 mmpunyai kelebihan yaitu mempunyai flash memori sebesar 8K bytei, RAM 256 byte serta 2 buah data pointer 16 bit, Spesifikasinya:
·         Kompatibel dengan keluarga mikrokontroler MCS51 sebelumnya.
·         8 K Bytes In system Programmable (ISP) flash memori dengan kemampuan 1000 kali baca/tulis
·         Tegangan kerja 4-5 V
·         Bekerja dengan rentang 0 – 33MHz
·         256×8 bit RAM internal
·         32 jalur I/O dapat deprogram
·         3 buah 16 bit Timer/Counter
·         8 sumber interrupt
·         saluran full dupleks serial UART
·         watchdog timer
·         dual data pointer
·         Mode pemrograman ISP yang fleksibel (Byte dan Page Mode)
Jenis-jenis Mikrokontroler Atmel lain yang ada di pasaran adalah sebagai berikut:    
Atmel AT91 series (ARM THUMB architecture)
·         Atmel AVR32
·         AT90, Tiny & Mega series – AVR (Atmel Norway design)
·         Atmel AT89 series (Intel 8051/MCS51 architecture)
·         MARC4
AMCC
Hingga Mei 2004, mikrokontroler ini masih dikembangkan dan dipasarkan oleh IBM, hingga kemudian keluarga 4xx dijual ke Applied Micro Circuits Corporation, jenis-jenisnya yaitu:
·         403 PowerPC CPU (PPC 403GCX)
·         405 PowerPC CPU (PPC 405EP, PPC 405GP/CR, PPC 405GPr, PPC NPe405H/L)
·         440 PowerPC Book-E CPU (PPC 440GP, PPC 440GX, PPC 440EP/EPx/GRx, PPC 440SP/SPe)
Cypress MicroSystems
Jenis dari Cypress MicroSystems yang ada di pasaran adalah CY8C2xxxx (PSoC)
Freescale Semiconductor
Hingga 2004, mikrokontroler ini dikembangkan dan dipasarkan oleh Motorola, yang divisi semikonduktornya dilepas untuk mempermudah pengembangan Freescale Semiconductor, adapun jenis-jenisnya yaitu sebagai berikut:
·         8-bit (68HC05 (CPU05), 68HC08 (CPU08), 68HC11 (CPU11))
·         16-bit (68HC12 (CPU12), 68HC16 (CPU16), Freescale DSP56800 (DSPcontroller))
·         32-bit (Freescale 683XX (CPU32), MPC500, MPC 860 (PowerQUICC), MPC 8240/8250 (PowerQUICC II), MPC 8540/8555/8560 (PowerQUICC III))
Fujitsu
Jenis chip mikrokontroler yang dikeluarkan oleh fujitsu diantaranya adalah sebagai berikut:
·         F²MC Family (8/16 bit)
·         FR Family (32 bit)
·         FR-V Family (32 bit RISC)
Holtek
Chip mikrokontroler keluaran holtek adalah jenis HT8.
Intel
Intel adalah salah satu perusahan yang banyak mengeluarkan jenis chip di pasaran, secara umum intel mengeluarkan dua jenis chip mikrokontroler yaitu:
·         8-bit (8XC42, MCS48, MCS51, 8061, 8xC251)
·         16-bit (80186/88, MCS96, MXS296, 32-bit, 386EX, i960)
Microchip
Dalam mengeluarkan prduknya, microchip membagi produknya kedalam beberapa jenis yaitu:
·         Low End, Mikrokontroler PIC 12-bit
·         Mid Range, Mikrokontroler PIC 14-bit (PIC16F84, PIC16F877)
·         16-bit instruction PIC
·         High End, Mikrokontroler PIC 16-bit
National Semiconductor
Jenis chip mikrokontroler yang dikeluarkan oleh National Semiconductor adalah jenis COP8 dan CR16.
NEC
NEC mempunyai beberapa jenis chip mikrokontroler yang ada dipasaran yaitu : jenis 17K, 75X, 78K, V850.
Philips Semiconductors
Ada tiga jenis chip mikrokontroler yang dikeluarkan oleh perusahaan ini yaitu : LPC2000, LPC900, LPC700.
Renesas Tech. Corp.
Renesas adalah perusahan patungan Hitachi dan Mitsubishi. Perusahaan ini mengeluarkan beberapa jenis mikrokontroler yang ada dipasaran yaitu : H8, SH, M16C, M32R.
ST Microelectronics
STMicroelectronic merupakan salah satu perusahaan yang bergerak juga dalam produksi chip mikrokontroler, diantaranya produknya adalah : ST 62, ST 7.
Texas Instruments
Dua jenis chip mikrokontroler yang di produksi oleh perusahaan ini adalah : TMS370, MSP430.
Western Design Center
Perusahaan Wistern Design Center memproduksi dua tipe chip mikrokontroler yang beredar di pasaran yaitu:
·         Tipe 8-bit (W65C02-based µCs)
·         Tipe 16-bit (W65816-based µCs)
Ubicom
Ubicom memproduksi beberapa tipe chip mikrokontroler diantaranya adalah:
·         SX-28, SX-48, SX-54
Seri Ubicom’s SX series adalah jenis mikrokontroler 8 bit yang, tidak seperti biasanya, memiliki kecepatan tinggi, memiliki sumber daya memori yang besar, dan fleksibilitas tinggi. Beberapa pengguna menganjurkan mikrokontroller pemercepat PICs. Meskipun keragaman jenis mikrokontroler Ubicom’s SX sebenarnya terbatas, kecepatan dan kelebihan sumber dayanya yang besar membuat programmer bisa membuat perangkat virtual lain yang dibutuhkan. Referensi bisa ditemukan di Parallax’s Web site, sebagai penyalur utama.
·         IP2022
Ubicom’s IP2022 adalah mikrokontroler 8 bit berkecepatan tinggi (120 MIPs). Fasilitasnya berupa: 64k FLASH code memory, 16k PRAM (fast code dan packet buffering), 4k data memory, 8-channel A/D, various timers, and on-chip support for Ethernet, USB, UART, SPI and GPSI interfaces.
Xilinx
Ada dua jenis chip mikrokontroler yang dikeluarkan oleh perusahaan Xilink diataranya adalah:
·         Microblaze softcore 32 bit microcontroller
·         Picoblaze softcore 8 bit microcontroller
ZiLOG
Dua jenis chip mikrokontroler dari ZiLOG yang ada di pasaran adalah:
·         Z8

·         Z86E02