PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR

Perbedaan Mikrokontroler Dengan Mikroprosesor 
Terdapat perbedaan yg signifikan antara mikrokontroler serta mikroprosessor. Perbedaan yang utama antara keduanya bisa ditinjau menurut 2 faktor primer yaitu arsitektur perangkat keras (hardware architecture) serta aplikasi masing-masing. 

Ditinjau menurut segi arsitekturnya, mikroprosesor hanya merupakan single chip CPU, sedangkan mikrokontroler dalam IC-nya selain CPU juga terdapat device lain yang memungkinkan mikrokontroler berfungsi sebagai suatu single chip computer. Dalam sebuah IC mikrokontroler telah masih ada ROM, RAM, EPROM, serial interface dan paralel interface, timer, interrupt controller, konverter Anlog ke Digital, serta lainnya (tergantung feature yang melengkapi mikrokontroler tersebut).

Sedangkan berdasarkan segi aplikasinya, mikroprosessor hanya berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan mikrokontroller, pada bentuknya yang mungil, dalam umumnya ditujukan buat melakukan tugas–tugas yg berorientasi kontrol dalam rangkaian yg membutuhkan jumlah komponen minimum serta porto rendah (low cost).

APLIKASI MIKROKONTROLER 
Karena kemampuannya yg tinggi, bentuknya yang kecil, konsumsi dayanya yg rendah, dan harga yang murah maka mikrokontroler begitu poly dipakai di dunia. Mikrokontroler digunakan mulai menurut mainan anak-anak, perangkat elektronik rumah tangga, perangkat pendukung otomotif, peralatan industri, peralatan telekomunikasi, alat-alat medis dan kedokteran, sampai menggunakan pengendali robot dan persenjataan militer. 

Terdapat beberapa keunggulan yang diharapkan menurut indera-alat yg berbasis mikrokontroler (microcontroller-based solutions) : 
  • Kehandalan tinggi (high reliability) serta kemudahan integrasi dengan komponen lain (high degree of integration) 
  • Ukuran yang semakin dapat diperkecil (reduced in size) 
  • Penggunaan komponen dipersedikit (reduced component count) yang jua akan mengakibatkan porto produksi bisa semakin ditekan (lower manufacturing cost) 
  • Waktu pembuatan lebih singkat (shorter development time) sebagai akibatnya lebih cepat pula dijual ke pasar sesuai kebutuhan (shorter time to market) 
  • Konsumsi daya yang rendah (lower power consumption)

PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR

Perbedaan Mikrokontroler Dengan Mikroprosesor 
Terdapat perbedaan yang signifikan antara mikrokontroler serta mikroprosessor. Perbedaan yang primer antara keduanya bisa dipandang berdasarkan 2 faktor utama yaitu arsitektur perangkat keras (hardware architecture) serta pelaksanaan masing-masing. 

Ditinjau berdasarkan segi arsitekturnya, mikroprosesor hanya merupakan single chip CPU, sedangkan mikrokontroler pada IC-nya selain CPU jua terdapat device lain yg memungkinkan mikrokontroler berfungsi menjadi suatu single chip computer. Dalam sebuah IC mikrokontroler sudah masih ada ROM, RAM, EPROM, serial interface dan paralel interface, timer, interrupt controller, konverter Anlog ke Digital, dan lainnya (tergantung feature yg melengkapi mikrokontroler tersebut).

Sedangkan dari segi aplikasinya, mikroprosessor hanya berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan mikrokontroller, pada bentuknya yg kecil, dalam biasanya ditujukan buat melakukan tugas–tugas yg berorientasi kontrol dalam rangkaian yg membutuhkan jumlah komponen minimum serta porto rendah (low cost).

APLIKASI MIKROKONTROLER 
Karena kemampuannya yg tinggi, bentuknya yang mini , konsumsi dayanya yg rendah, dan harga yang murah maka mikrokontroler begitu banyak dipakai di global. Mikrokontroler digunakan mulai berdasarkan mainan anak-anak, perangkat elektro tempat tinggal tangga, perangkat pendukung otomotif, alat-alat industri, peralatan telekomunikasi, peralatan medis dan kedokteran, hingga menggunakan pengendali robot dan persenjataan militer. 

Terdapat beberapa keunggulan yg diperlukan menurut indera-indera yg berbasis mikrokontroler (microcontroller-based solutions) : 
  • Kehandalan tinggi (high reliability) serta kemudahan integrasi dengan komponen lain (high degree of integration) 
  • Ukuran yg semakin bisa diperkecil (reduced in size) 
  • Penggunaan komponen dipersedikit (reduced component count) yang jua akan mengakibatkan biaya produksi dapat semakin ditekan (lower manufacturing cost) 
  • Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat juga dijual ke pasar sinkron kebutuhan (shorter time to market) 
  • Konsumsi daya yg rendah (lower power consumption)

PERBEDAAN ANTARA MIKROPROSESOR DAN MIKROKONTROLER


Hampir semua elektro yg kita temui di sekitar kita hadir menggunakan dibekali mikroprosesor atau mikrokontroler menjadi otak dari perangkat elektronik tersebut. Meskipun ke 2 komponen ini mungkin bekerja menggunakan cara yang sama, keduanya sebenarnya tidak sama. Selain itu, lantaran ada perbedaan di antara keduanya, masing-masing dipakai di berbagai bidang pula. Komputer high-end serta laptop memakai mikroprosesor sebagai otaknya. Sementara elektronika mini lainnya misalnya jam digital, sensor suhu memakai mikrokontroler sebagai otaknya.
Dengan demikian, mikroprosesor digunakan untuk beberapa elektro sophisticated, sedangkan mikrokontroler dipakai dalam elektronik low-end serta sistem embedded . Itulah disparitas antara keduanya. Tetapi ada perbedaan lain pada antara keduanya terlepas menurut disparitas pada implementasi, terdapat perbedaan antara mikroprosesor serta mikrokontroler dalam arsitektur, harga, cara kerja, dan aspek lainnya. Apabila Anda berencana membuat proyek elektronika, Anda wajib tahu perbedaan antara keduanya buat mengenali yang paling sinkron buat proyek Anda.

Perbedaan Antara Mikroprosesor Dan Mikrokontroler

Arsitektur
Ada banyak disparitas antara mikroprosesor dan mikrokontroler pada sisi arsitektur. Mikrokontroler berdasarkan pada arsitektur Harvard, pada mana kode program serta data berada pada 2 unit yang tidak sama. Selain itu, mikrokontroler merupakan chip siap pakai, di mana chip seukuran telapak tangan dilengkapi menggunakan unit pemrosesan RAM dan ROM buat penyimpanan data. Dengan demikian, Anda tidak perlu risi mengenai koneksi antar RAM serta ROM. Sebagian besar mikrokontroler berdasarkan pada arsitektur 8-bit. Cukup burn program ke mikrokontroler Anda, pasang periferal , dan mikrokontroler Anda siap digunakan.

Di sisi lain, mikroprosesor berdasarkan dalam arsitektur von Neumann, di mana data program dan kode berada pada memori yg sama. Chip sendiri hanya dibekali menggunakan prosesor. Ini membutuhkan eksternal RAM, penyimpanan, serta ROM buat berfungsi menggunakan benar. Meskipun mikroprosesor dilengkapi menggunakan beberapa register yang sangat terbatas dan digunakan buat menyimpan sejumlah data yg mungkin dibutuhkan sang chip saat melakukan beberapa jenis operasi. Mikroprosesor umumnya berdasarkan pada arsitektur 16-bit, 32-bit atau 64-bit. Jadi, Anda perlu menghubungkan RAM, ROM, dan penyimpanan terlebih dahulu buat membuatnya berfungsi, serta sehabis itu, Anda dapat menambahkan periferal lain yg diharapkan.
Beberapa contoh mikrokontroler merupakan AVR, 8051, PIC dll. Beberapa mikroprosesor adalah Intel 8085, AMD, dll.
Ukuran
Karena mikrokontroler tidak memerlukan periferal eksternal lainnya, ukuran sistem berbasis mikrokontroler cukup kecil serta digunakan dalam sistem embedded serta elektronik mini secara ekstensif.
Di sisi lain, sistem berbasis mikroprosesor memerlukan komponen tambahan yg menciptakan ukuran sirkuit sangat besar . Ini adalah alasan di balik penggunaan mikroprosesor secara luas pada komputer serta perangkat elektronik lainnya.
Biaya
Karena mikrokontroler merupakan sirkuit terpadu tunggal, porto sistem berbasis mikrokontroler relatif lebih murah, bila dibandingkan menggunakan sistem, yang didasarkan dalam mikroprosesor.
Kinerja
Mikroprosesor biasanya memiliki kinerja yang lebih baik dibandingkan mikrokontroler. Bahkan mikrokontroler terbaik hanya memiliki kecepatan clock maksimum 200 MHz atau lebih. Sementara di sisi lain, mikroprosesor hadir dengan kecepatan clock yang sangat tinggi, yg berada pada kisaran tiga GHz, 4 GHz, dll.
Fleksibilitas
Microcontrollers merupakan sirkuit terintegrasi tunggal, yg hadir dengan jumlah RAM dan penyimpanan yang tetap. Jika Anda ingin menambah atau membarui berukuran RAM serta penyimpanan, satu-satunya pilihan merupakan mengganti mikrokontroler lengkap serta memakai mikrokontroler yang baru, yang dilengkapi dengan jumlah RAM serta penyimpanan yang Anda inginkan.
Di sisi lain, karena mikroprosesor membutuhkan tambahan RAM serta penyimpanan agar bisa berfungsi. Dengan demikian Anda bebas buat membarui ukuran RAM dan penyimpanan kapan pun Anda mau tanpa mengganti seluruh mikroprosesor yang merupakan jantung menurut sistem. Ini mirip dengan komputer, di mana RAM serta penyimpanan dapat diubah kapan pun diperlukan.
Dengan demikian, sistem berbasis mikroprosesor menunjukkan lebih banyak fleksibilitas apabila dibandingkan menggunakan mikrokontroler.

Konsumsi daya
Mikrokontroler sebagai platform berbasis IC tunggal kebutuhan daya nisbi lebih rendah dari mikroproseso, pada mana daya diharapkan buat semua periferal tambahan yg terhubung dengannya. Dengan demikian, mikrokontroler menawarkan fitur penghematan daya yang lebih baik dibandingkan dengan sistem berbasis mikroprosesor.
Itulah perbedaan antara mikroprosesor serta mikrokontroler. Semoga artikel sanggup menambah wawasan anda, terima kasih atas kunjungannya.

PENGERTIAN CODEVISIONAVR

Pengertian CodeVisionAVR 
CodeVisionAVR dalam dasarnya adalah software pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada 3 komponen krusial yg sudah diintegrasikan dalam aplikasi ini: Compiler C, IDE dan Program generator. 

Berdasarkan spesifikasi yang dimuntahkan sang perusahaan pengembangnya, Compiler C yg dipakai hampir mengimplementasikan seluruh komponen standar yang terdapat dalam bahasa C baku ANSI (seperti struktur acara, jenis tipe data, jenis operator, serta library fungsi baku-berikut penamaannya). Namun andaipun demikian, dibandingkan bahasa C buat pelaksanaan personal komputer , compiler C buat microcontroller ini mempunyai sedikit disparitas yg disesuaikan menggunakan arsitektur AVR loka acara C tersebut ditanamkan (embedded). 

Khusus buat library fungsi, disamping library baku (misalnya fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR jua menyediakan fungsi-fungsi tambahan yg sangat berguna pada pemrograman antarmuka AVR dengan perangkat luar yg generik digunakan pada aplikasi kontrol. Beberapa fungsi library yang krusial antara lain adalah fungsi-fungsi buat pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya. 

Untuk memudahkan pengembangan acara aplikasi, CodeVisionAVR pula dilengkapi IDE yang sangat user friendly (lihat gambar 1.1). Selain pilihan menu-pilihan menu pilihan yg generik dijumpai dalam setiap perangkat lunak berbasis Windows, CodeVisionAVR ini sudah mengintegrasikan aplikasi downloader (in system programmer) yang bisa digunakan buat mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram.

CodeVisionAVR 1.dua.4.9 merupakan suatu kompiler berbasis bahasa C, yg terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR (Alf and Vegard’s Risc processor) terhadap mikrokontroler menggunakan sistem berbasis window. CodeVisionAVR ini dapat mengimplematasikan hampir seluruh interuksi bahasa C yg sesuai menggunakan arsitektur AVR, bahkan masih ada beberapa keunggulan tambahan buat memenuhi keunggulan spesifikasi dari CodeVisionAVR yaitu hasil kompilasi studio debugger berdasarkan ATMEL. 

Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yaitu In-System Programmer software, memungkinkan programmer buat mentransfer acara ke chip mikrokontroler secara otomatis sesudah proses assembly/kompilasi berhasil. In-System Programmer aplikasi didesign buat bekerja serta bisa berjalan dengan aplikasi lain misalnya AVR Dragon, AVRISP, Atmel STK500, serta lain sebagainya.

Disamping library baku C, CodeVisionAVR C compiler mempunyai librari lain buat:
  • Modul LCD Alpanumerik
  • Delays
  • Protokol semikonduktor Maxim/Dallas
  • Dan lainnya
CodeVisionAVR juga mempunyai CodeWizardAVR sebagaki generator program otomatis, yg memungkinkan kita buat menulis, segala bentuk pengaturan Chip dalam saat singkat, serta semua kode yg diperlukan untuk mengimplementasikan fungsi-fungsi misalnya:

Pengaturan akses External Memory
Untuk chip-chip AVR yang memungkinkan koneksi memori eksternal SRAM, dapat pula mengatur ukuran memori serta wait state (tahap tunggu) dari memori waktu memori tersebut diakses.

Identifikasi chip reset source
Adalah suatu layanan dimana kita bisa menciptakan kode secara otomatis yg dapat mengidentifikasi kondisi yang mengakibatkan chip di reset.

Inisialisasi port input/output
Pengaturan port-port yang kan dijadikan gerbang masukan serta keluaran bisa secara otomatis digenerate codenya. Yang kita lakukan hanya memilih port-port yang akan digunakan menjadi input atau hasil.

Inisialisasi Interupsi external
Pengaturan interupsi eksternal yg nantinya akan digunakan buat menginterupsi acara primer 

Inisialisasi timers/counters
Pengaturan timers yang berfungsi buat mengatur frekwensi yang nantinya digunakan pada interupsi.

Inisialisasi timer watchdog
Pengaturan timers yang berfungsi buat mengatur frekwensi yg nantinya dipakai dalam interupsi, sebagai akibatnya interupsi akan dilayani oleh suatu fungsi wdt_timeout_isr .

Inisialisasi UART(USART) serta komunuikasi serial 
Pengaturan komunikasi serial sebagai penerima atau pengirim data.

Inisialisasi komparasi analog
Pengaturan yg berkaitan dengan masukan data yg dipakai pada aplikasi yang membutuhkan komparasi pada ADC nya.

Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang berfungsi buat merubah format analog menjadi format digital untuk diolah lebih lanjut.

Inisialisasi antarmuka SPI
Pengaturan chip yg berkaitan dengan Clock rate, Clock Phase, serta lainnya.

Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara register yg terdapat dalam chip AVR. 

Inisialisasi antarmuka CAN
Pengaturan chip yang lebih kompleks, yg bisa mengatur interupsi, transmisi data, timers, dan lainnya.

Inisialisasi sensor temperatur, thermometer, serta lainnya
Pengaturan yang berhubungan dengan sensor temperatur one wire bus, memiliki fungsi-fungsi yg terdapat pada librari CodeVisionAVR.

Inisialisasi one wire bus
Pengaturan yg herbi sensor temperatur yang mempunyai fungsi-fungsi yang terdapat pada librari CodeVisionAVR. Seperti Maxim/Dallas Semiconductor.

Inisialisasi modul LCD
Pengaturan port-port yang kan digunakan sebagai penghubung menggunakan LCD alphanumerik.

Contoh cara kerja sebelum melakukan pemograman pada AVR, dimana model disini merupakan contoh pengaturan acara agar mikrokontroler dapat berkomunikasi dengan komputer:
a. Memilih project baru dan melakukan penyetingan komponen yang digunakan dalam board.
b. Pengaturan IC/Chip, pada chip yg kita wajib dilakukan adalah IC apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan Clock 16 MHz. Clock ini wajib pada atur dengan ukuran 16 MHz, karena pada komponen oksilator yang dipakai sebesar 16 MHz. 
c. Pengaturan ADC, pada ADC ini ada beberapa pilihan yg harus dipilih. Antara lain ADC Enable pada check list(v), Use 8 bit di check list(v), high speed pada check list (v) dan Volt Ref dipilih ‘AVCC PIN’. AVCC PIN bermanfaat sebagai referensi tegangan pada ADC buat nilainya sebanyak lima volt.
d. Pengaturan USART, usart ini yang nantinya menghubungkan rangkaian mikrokontroler menggunakan PC (komputer). Langkah-langkah yg dilakukan menggunakan adanya pilihan Receiver di check list(v) serta Transmitter pada check list(v). Pengaturan receiver berfungsi apakah serial itu menjadi penerima data, sedangkan transmitter berfungsi serial mampu dipakai sebagai pengiriman data.

Untuk lebih jelas tampilan pengaturan yang disediakan oleh AVR dapat ditinjau pada gambar dibawah ini :

Gambar Form Pegaturan CodeVisionAVR

Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan menciptakan sebuah instruksi layaknya perintah acara ke IC/Chip, adapula perintah acara yang kita ketik sendiri. 

Selain itu, CodeVisionAVR pula menyediakan sebuah tool yg dinamakan dengan Code Generator atau CodeWizardAVR (lihat gambar dua.1). Secara simpel, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan pula memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yg masih ada pada microcontroller AVR yg sedang diprogram. Dinamakan Code Generator, lantaran aplikasi CodeVision ini akan membangkitkan kode-kode program secara otomatis sesudah fase inisialisasi pada jendela CodeWizardAVR terselesaikan dilakukan. Secara teknis, penggunaan tool ini pada dasarnya hampir sama menggunakan application wizard pada bahasa-bahasa pemrograman Visual buat komputer (seperti Visual C, Borland Delphi, dan sebagainya).

Disamping versi yg komersil, Perusahaan Pavel Haiduc pula mengeluarkan CodeVisionAVR versi Demo yang dapat didownload dari internet secara perdeo (lihat alamat URL: //www.hpinfotech.ro) Dalam versi ini, memori flash yg bisa diprogram dibatasi aporisma 2K, selain itu tidak seluruh fungsi library yg tersedia dapat dipanggil secara bebas.

Seperti halnya belajar pemrograman komputer, agar mendapatkan pemahaman yg bertenaga dalam pemrograman microcontroller AVR, anda sebaiknya mencoba eksklusif menciptakan aplikasi program pada microcontroller tadi. Untuk tujuan latihan, perangkat lunak CodevisionAVR versi demo dalam dasarnya adalah wahana yg cocok serta sudah relatif memenuhi kebutuhan minimal anda. Gambar 1.4. Berikut memperlihatkan diagram blok yg mengilustrasikan alur pemrograman microcontroller AVR menggunakan CodevisionAVR yg dapat anda lakukan :

Gambar  Alur pemrograman microcontroller AVR menggunakan menggunakan CodevisionAVR


Seperti terlihat pada gambar dua.2, CodevisionAVR pada dasarnya telah mengintegrasikan komponen-komponen krusial pada pemrograman microcontroller AVR: Editor,Compiler C, assembler serta ISP (In System Programmer). Khusus menggunakan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh aplikasi CodevisionAVR ini, salah satu antara lain merupakan Kanda System STK 200/300 produk Perusahaan Kanda yang terhubung dalam saluran antarmuka port Paralel Komputer. 

Jika anda berencana menciptakan dongle yg kompatible menggunakan produk Kanda, rangkaiannya bisa ditinjau pada situs:http:\www.grandtonics.com. Atau apabila mau membeli sistem yg siap pakai (berupa dongle beserta papan pengembangnya), keliru satu produk pada negeri menggunakan harga yang relative murah adalah DT AVR nano/micro System dialamat URL:http//www.innovative_electronic.com., Sistem ini kompatibel dengan kanda System STK 200/300. Untuk tujuan-tujuan percobaan, produk innovative_electronic ini telah sangat memadai, selain gampang dihubungkan dengan modul-modul perangkat input/hasil, misalnya modul LCD, keypad, array LED, penggerak motor stepper, dan sebagainya, sistem ini jua sudah dilengkapi konverter TTL ke RS232 yg berguna untuk komunikasi microcontroller AVR menggunakan komputer. 

Berkaitan menggunakan perangkat lunak downloader, pada dasarnya anda bisa menggunakan perangkat lunak lain (pada luar CodeVisionAVR) buat keperluan transfer kode mesin kedalam sistem memori microcontroller AVR. Salah satunya merupakan ISP_AVR yang dibentuk oleh Holger Buss dan Ingo Busker berdasarkan Jerman. Perangkat lunak bersama rangkaian antarmukanya dapat di-download secara perdeo pada alamat URL: //www.mikrocontroller.com

MIKROKONTROLER AVR DAN BAHASA C
Tak bisa disangkal, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal dan sebagainya) semakin populer dan poly dipakai buat memprogram sistem microcontroller. Berdasarkan sifatnya yg sangat fleksibel pada hal keleluasaan pemrogram untuk mengakses perangkat keras, Bahasa C merupakan bahasa pemrograman yang paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya. 

Dikembangkan pertama kali sang Dennis Ritchie serta Ken Thomson dalam tahun 1972, Bahasa C adalah galat satu bahasa pemrograman yg paling populer buat pengembangan program-acara aplikasi yg berjalan pada sistem microprocessor (komputer). Lantaran kepopulerannya, vendor-vendor software lalu menyebarkan compiler C sebagai akibatnya menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C serta lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) sebagai standar bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak dalam pengembangan fungsi-fungsi library serta fasilitas IDE (Integrated Development Environment)–nya saja. 

Relatif dibandingkan dengan bahasa aras tinggi lain, bahasa C merupakan bahasa pemrograman yg sangat fleksibel serta tidak terlalu terikat menggunakan aneka macam anggaran yang sifatnya kaku. Satu-satunya hal yg membatasi penggunaan bahasa C dalam sebuah pelaksanaan adalah semata-mata kemampuan imaginasi programmer-nya saja. Sebagai ilustrasi, pada program C kita bisa saja secara bebas menjumlahkan karakter huruf (misal ‘A’) dengan sebuah bilangan bundar (misal ‘2’), dimana hal yang sama nir mungkin dapat dilakukan dengan memakai bahasa aras tinggi lainnya. Lantaran sifatnya ini, sering bahasa C dikatagorikan menjadi bahasa aras menengah (mid level language).

Dalam kaitannya menggunakan pemrograman microcontroller, Tak pelak lagi bahasa C ketika ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sangat efisien terutama buat program microcontroller yg ukuran relatif akbar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C pada pemrograman memiliki beberapa kelebihan berikut: Mempercepat ketika pengembangan, bersifat modular dan terstruktur, sedangkan kelemahannya merupakan kode acara hasil kompilasi akan relative lebih akbar (dan menjadi konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi). 

Khusus pada microcontroller AVR, buat mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sebagai akibatnya arsitektur AVR ini efisien dalam mendekode dan mengeksekusi instruksi-instruksi yang generik dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri sang perusahaan Atmel tetapi terdapat kolaborasi dengan keliru satu vendor pemasok compiler C buat microcontroller tersebut, yaituI ARC).

Seperti halnya compiler C buat sistem microprocessor, pada pasaran terdapat beberapa varian compiler C buat memprogram sistem microcontroller AVR yg bisa dijumpai (lihat tabel dua.dua). 

Dengan beberapa kelebihan yang dimilikinya, waktu ini CodeVisionAVR produk Perusahaan Pavel Haiduc adalah compiler C yg relative banyak digunakan dibandingkan compiler-compiler C lainnya. 

Bahasa C sudah dikritisi secara meluas, serta poly orang dengan cepat menemukan masalahnya. Tapi sebagai bahasa yang sudah hadir, C tetap tidak tersentuh. CodeVisionAVR adalah galat satu yg memanfaatkan keunggulan C pada hal pemrograman mikrokontroler. Salah satu ungkapan menyatakan bahwa “jika engkau menciptakan software yang akan tetap layak suatu hari nanti, jangan belajar bahasa yg popular waktu ini, pelajarilah C”.

C tidak membatasi pandangan orang tentang sebuah bahasa pemrograman. C nir object oriented, namun kita bisa menerapkan konsep objek oriented padanya. Bukan juga bahasa fungsional, tetapi kita bisa bisa menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter LISP dan skema interpreters-interpreters/compiler-kompiler ditulis dengan menggunakan C. Kita dapat memproses list memakai C, meski tak semudah memakai LISP. C jua memiliki fitur-fitur tambahan seperti rekursi, mekanisme menjadi tipe data kelas pertama, serta poly lagi. 

Banyak orang yg merasakan C kekurangan akan kemudahan seperti JAVA, atau C++. Padahal C adalah bahasa yg sederhana. Tapi karena kesederhanaan ini dipercaya kurang memadai sehingga membuat C diubahsuaikan sebagai perkenalan pertama ke termin bahasa tingkat tinggi yang kompleks yg memungkinkan kita mengontrol dengan baik apa yang kita program tanpa fitur yang disembunyikan. Compiler tidak akan melakukan apapun hingga kita memerintahkan buat melakukan sesuatu. Bahasa yg terdapat adalah transparan, bahkan apabila beberapa fitur berdasarkan JAVA seperti garbage collection diikutsertakan pada implementasi C yang akan dipakai. Sebagai bahasa pemrograman, C tetap terdapat. Ini adalah inti menurut development dilingkungan system operasi UNIX. Dan jua inti berdasarkan revolusi mikrokomputer, diantara C++, Delphi, JAVA dan lainnya, C masih tetap bertahan,menggunakan karakteristiknya sendiri.

Pada beberapa tahun yang lalu, the Electrical and Computer Engineering Technology department di Purdue University sudah mempelajai bahasa pemrograman C sebagai bahasa yang dipilih buat mengenalkan mikrokontroler. Mengajarkan Bahasa tingkat tinggi pada ta’aruf mikrokontroler dalam surat keterangan suatu bahasa tingkat assembly adalah sesuatu yg paradoksal pada suatu intitusi yang memiliki acara yang sama. Penggunaan Bahasa tingkat tinggi memungkinkan buat focus pada materi serta konsep serta nir jemu menggunakan melihat detail listing assembly. Salah satu perbedaannya adalah bahasa tingkat tinggi memungkinkan buat menuliskan eksklusif nilai pada register, memindahkan data melalui multiple operations dengan assembly.

Just-in-time (JIT) mengajarkan metode yg digunakan untuk mengenalkan komponen baru pada Bahasa pemrograman C misalnya yg dibutuhkan. Pada prakteknya pokok perkara dipresentasikan, sesudah itu disusun algoritma serta dievaluasi. Setelah itu dituangkan kedalam gambar sebagai diagram alir proses. Lalu menggunakan mudah diterjemahkan kedalanm bahasa C. Misalnya itulah dasar menurut mikrokontroler.

Lebih menurut 10 tahun, beratus juta mikrokontroler, suatu mikrokomputer yg mengandung perangkat ini dan memori didalam suatu single integrated circuit (IC) bersama CPU, sudah disertakan dalam perkembangan produk-produk dari keyboard hingga system control automobile (Ayala, 2000). 

Bahasa taraf tinggi meningkat menjadi metodologi standar buat mikrokontroler terapan berdasar dalam perkembangan serta improvisasi jaman serta pasar dan dukungan perawatan yang sederhana (Myklebust, N.D.). Untuk permanen sejajar dengan perubahan jaman, bahasa taraf tinggi menjadi perlengkapan pada memperkenalkan mikrokontroler menjadi bagian dari kurikulum pada the Electrical and Computer Engineering Technology curriculum pada Purdue University, West Lafayette.

KEUNTUNGAN PEMROGRAMAN TINGKAT TINGGI
Telah dianggap pada era mikrokontroler ketika ini bahwa bahasa assembly adalah satu-satunya pilihan buat membuat kode buat suatu aplikasi.ruang yang sangat terbatas pada chip untuk data dank ode program tidak terjadi jika menggunakan bahasa taraf tinggi (Stewart & Miao, 1999). Sejarah bahasa tingkat tinggi menghasilkan ukuran kode yang lebih akbar dibandingkan assembly yang mempengaruhi kecepatan eksekusi. Selama beberapa tahun terakhir, compiler telah menyatakan kepada pasar dengan menjamin bahwa dapat menghasilkan kode seefisien assembly (Stewart & Miao, 1999).pada tahun-tahun berikutnya, compiler melakukan perkembangan yang lebih luas didunia mikrokontroler menggunakan meningkatkan fungsionalitas dan kecepatan.

Terdapat beberapa keunggulan memakai Bahasa tingkat tinggi diantaranya yaitu dapat memangkas ketika pembangunan aplikasi sebagai lebih singkat, kemudahan perawatan serta ringkas, kemudahan reuse kode. Bahasa taraf tinggi memungkinkan programmer untuk mengatasi objek yg kompleks tanpa khawatir tentang lebih jelasnya komponen prosesor dalam waktu acara berjalan. (Darnell & Margolis, 1991). Menulis program bahasa tingkat tinggi membebaskan programmer menurut kekhawatiran tentang lebih jelasnya tingkat rendah suatu acara (Reisdorph, 1998).

PEMROGRAMAN C DAN MIKROKONTROLER
Pembangunan Perangkat lunak dengan mikrokontroler membutuhkabn suatu pendekatan terstruktur dengna pemrograman. Banyak system terapan wajib berjalan 24 jam sehari, 7 hari pada satu minggu, serta 365 pada satu tahun. Mereka nir dapat pada reboot saat terjadi sesuatu kwesalahan. Untuk alas an ini, baris kode yang baik dipelajari serta melalui ujicoba menghasilkan taraf keutamaan yang baru dalam kenyataan mikrokontroler terapan (Lewis, 2002). Fasilitas bahasa C yang terstruktur serta disiplin(utuh) sebagai pendekatan dalam design program computer (Deitel & Deitel, 1992). Berdasar dalam MacKenzie, keuntungan mengadopsi pendekatan terstruktur pada pemrograman mencakup diantaranya: urutan operasi suatu program begitu sederhana buat ditelusuri melalui fasilitas debugging, urutannya yang terstruktur membuat gampang buat dijadikan sub rutin atau fungsi-fungsi, struktur yang terdapat sebagai dokumentasi sendiri dan memudahkan untuk menyebutkan memakai diagram alir, dan pemrograman yg terstruktur menghasilkan peningkatan produktifitas programer (1991).

Mungkin alasan yg paling memaksa buat memakai bahasa tingkat tinggi adalah menyimpan ketika programmer. Compiler C didukung sang pustaka(library) program C yg mengusung banyak fitur seperti matematika dan penanganan karakter. Menggunakan fungsi baku ini program-program Cmemudahkan programmer buat menulis, menguji coba serta mereka ulang versi yang sama (Ayala, 2000). Meskipun pustaka fungsi baku merupakan teknikal bukan bagian berdasarkan bahasa C, mereka didukaung tanpa terkecuali oleh system ANSI milik C (Deitel & Deitel, 1992).

PENGERTIAN CODEVISIONAVR

Pengertian CodeVisionAVR 
CodeVisionAVR dalam dasarnya merupakan aplikasi pemrograman microcontroller famili AVR berbasis bahasa C. Ada 3 komponen krusial yg sudah diintegrasikan dalam aplikasi ini: Compiler C, IDE dan Program generator. 

Berdasarkan spesifikasi yg dikeluarkan oleh perusahaan pengembangnya, Compiler C yang dipakai hampir mengimplementasikan seluruh komponen standar yg ada pada bahasa C baku ANSI (seperti struktur acara, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C buat pelaksanaan personal komputer , compiler C buat microcontroller ini memiliki sedikit perbedaan yg disesuaikan menggunakan arsitektur AVR tempat acara C tadi ditanamkan (embedded). 

Khusus buat library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yg sangat berguna pada pemrograman antarmuka AVR dengan perangkat luar yg generik dipakai dalam aplikasi kontrol. Beberapa fungsi library yg penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) serta lain sebagainya. 

Untuk memudahkan pengembangan program pelaksanaan, CodeVisionAVR juga dilengkapi IDE yg sangat user friendly (lihat gambar 1.1). Selain pilihan menu-pilihan menu pilihan yg umum dijumpai dalam setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan software downloader (in system programmer) yang bisa dipakai buat mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram.

CodeVisionAVR 1.dua.4.9 merupakan suatu kompiler berbasis bahasa C, yang terintegrasi buat memprogram serta sekaligus compiler aplikasi AVR (Alf and Vegard’s Risc processor) terhadap mikrokontroler menggunakan sistem berbasis window. CodeVisionAVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yg sinkron menggunakan arsitektur AVR, bahkan masih ada beberapa keunggulan tambahan buat memenuhi keunggulan spesifikasi dari CodeVisionAVR yaitu output kompilasi studio debugger menurut ATMEL. 

Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yaitu In-System Programmer aplikasi, memungkinkan programmer buat mentransfer acara ke chip mikrokontroler secara otomatis selesainya proses assembly/kompilasi berhasil. In-System Programmer aplikasi didesign buat bekerja serta bisa berjalan dengan perangkat lunak lain seperti AVR Dragon, AVRISP, Atmel STK500, dan lain sebagainya.

Disamping library baku C, CodeVisionAVR C compiler memiliki librari lain untuk:
  • Modul LCD Alpanumerik
  • Delays
  • Protokol semikonduktor Maxim/Dallas
  • Dan lainnya
CodeVisionAVR pula mempunyai CodeWizardAVR sebagaki generator program otomatis, yg memungkinkan kita buat menulis, segala bentuk pengaturan Chip pada ketika singkat, serta seluruh kode yang diperlukan buat mengimplementasikan fungsi-fungsi seperti:

Pengaturan akses External Memory
Untuk chip-chip AVR yg memungkinkan koneksi memori eksternal SRAM, dapat jua mengatur ukuran memori dan wait state (tahap tunggu) menurut memori waktu memori tersebut diakses.

Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat menciptakan kode secara otomatis yang dapat mengidentifikasi syarat yg mengakibatkan chip pada reset.

Inisialisasi port input/output
Pengaturan port-port yg kan dijadikan gerbang masukan serta keluaran dapat secara otomatis digenerate codenya. Yang kita lakukan hanya memilih port-port yang akan dipakai sebagai input atau output.

Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan digunakan buat menginterupsi program primer 

Inisialisasi timers/counters
Pengaturan timers yg berfungsi buat mengatur frekwensi yg nantinya dipakai dalam interupsi.

Inisialisasi timer watchdog
Pengaturan timers yang berfungsi buat mengatur frekwensi yang nantinya dipakai dalam interupsi, sebagai akibatnya interupsi akan dilayani oleh suatu fungsi wdt_timeout_isr .

Inisialisasi UART(USART) serta komunuikasi serial 
Pengaturan komunikasi serial menjadi penerima atau pengirim data.

Inisialisasi komparasi analog
Pengaturan yang berkaitan menggunakan masukan data yang digunakan pada pelaksanaan yg membutuhkan komparasi pada ADC nya.

Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang berfungsi buat merubah format analog sebagai format digital untuk diolah lebih lanjut.

Inisialisasi antarmuka SPI
Pengaturan chip yang berkaitan menggunakan Clock rate, Clock Phase, dan lainnya.

Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara register yang terdapat dalam chip AVR. 

Inisialisasi antarmuka CAN
Pengaturan chip yg lebih kompleks, yg dapat mengatur interupsi, transmisi data, timers, serta lainnya.

Inisialisasi sensor temperatur, thermometer, serta lainnya
Pengaturan yang berhubungan dengan sensor temperatur one wire bus, mempunyai fungsi-fungsi yg terdapat pada librari CodeVisionAVR.

Inisialisasi one wire bus
Pengaturan yang berhubungan dengan sensor temperatur yg mempunyai fungsi-fungsi yg terdapat dalam librari CodeVisionAVR. Seperti Maxim/Dallas Semiconductor.

Inisialisasi modul LCD
Pengaturan port-port yg kan dipakai menjadi penghubung dengan LCD alphanumerik.

Contoh cara kerja sebelum melakukan pemograman pada AVR, dimana model disini merupakan contoh pengaturan acara agar mikrokontroler dapat berkomunikasi menggunakan komputer:
a. Memilih project baru serta melakukan penyetingan komponen yang digunakan dalam board.
b. Pengaturan IC/Chip, dalam chip yang kita wajib dilakukan merupakan IC apa yg kita gunakan, dalam hal ini ATMEGA8535l menggunakan Clock 16 MHz. Clock ini wajib pada atur dengan berukuran 16 MHz, karena dalam komponen oksilator yg dipakai sebesar 16 MHz. 
c. Pengaturan ADC, dalam ADC ini terdapat beberapa pilihan yg wajib dipilih. Antara lain ADC Enable di check list(v), Use 8 bit di check list(v), high speed di check list (v) dan Volt Ref dipilih ‘AVCC PIN’. AVCC PIN bermanfaat sebagai referensi tegangan dalam ADC buat nilainya sebanyak lima volt.
d. Pengaturan USART, usart ini yg nantinya menghubungkan rangkaian mikrokontroler menggunakan PC (personal komputer ). Langkah-langkah yang dilakukan dengan adanya pilihan Receiver pada check list(v) dan Transmitter pada check list(v). Pengaturan receiver berfungsi apakah serial itu sebagai penerima data, sedangkan transmitter berfungsi serial mampu dipakai sebagai pengiriman data.

Untuk lebih jelas tampilan pengaturan yg disediakan oleh AVR dapat ditinjau dalam gambar dibawah ini :

Gambar Form Pegaturan CodeVisionAVR

Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membangun sebuah instruksi layaknya perintah acara ke IC/Chip, adapula perintah program yang kita ketik sendiri. 

Selain itu, CodeVisionAVR pula menyediakan sebuah tool yang dinamakan menggunakan Code Generator atau CodeWizardAVR (lihat gambar dua.1). Secara simpel, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer pada peng-inisialisasian register-register yg masih ada dalam microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena aplikasi CodeVision ini akan membangkitkan kode-kode acara secara otomatis selesainya fase inisialisasi pada ventilasi CodeWizardAVR terselesaikan dilakukan. Secara teknis, penggunaan tool ini dalam dasarnya hampir sama menggunakan application wizard pada bahasa-bahasa pemrograman Visual buat personal komputer (misalnya Visual C, Borland Delphi, dan sebagainya).

Disamping versi yang komersil, Perusahaan Pavel Haiduc jua mengeluarkan CodeVisionAVR versi Demo yg dapat didownload dari internet secara perdeo (lihat alamat URL: //www.hpinfotech.ro) Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu nir semua fungsi library yang tersedia bisa dipanggil secara bebas.

Seperti halnya belajar pemrograman personal komputer , supaya menerima pemahaman yg bertenaga pada pemrograman microcontroller AVR, anda sebaiknya mencoba pribadi membuat aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, software CodevisionAVR versi demo dalam dasarnya adalah wahana yang cocok serta sudah relatif memenuhi kebutuhan minimal anda. Gambar 1.4. Berikut menerangkan diagram blok yg mengilustrasikan alur pemrograman microcontroller AVR menggunakan CodevisionAVR yg bisa anda lakukan :

Gambar  Alur pemrograman microcontroller AVR menggunakan menggunakan CodevisionAVR


Seperti terlihat dalam gambar dua.2, CodevisionAVR pada dasarnya sudah mengintegrasikan komponen-komponen penting pada pemrograman microcontroller AVR: Editor,Compiler C, assembler serta ISP (In System Programmer). Khusus menggunakan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak CodevisionAVR ini, galat satu diantaranya merupakan Kanda System STK 200/300 produk Perusahaan Kanda yg terhubung pada saluran antarmuka port Paralel Komputer. 

Jika anda berencana membuat dongle yg kompatible menggunakan produk Kanda, rangkaiannya bisa dicermati dalam situs:http:\www.grandtonics.com. Atau jika mau membeli sistem yg siap gunakan (berupa dongle beserta papan pengembangnya), galat satu produk pada negeri menggunakan harga yang relative murah merupakan DT AVR nano/micro System dialamat URL:http//www.innovative_electronic.com., Sistem ini kompatibel menggunakan kanda System STK 200/300. Untuk tujuan-tujuan percobaan, produk innovative_electronic ini telah sangat memadai, selain mudah dihubungkan menggunakan modul-modul perangkat input/output, misalnya modul LCD, keypad, array LED, penggerak motor stepper, dan sebagainya, sistem ini pula telah dilengkapi konverter TTL ke RS232 yang berguna buat komunikasi microcontroller AVR menggunakan komputer. 

Berkaitan dengan software downloader, pada dasarnya anda dapat menggunakan aplikasi lain (pada luar CodeVisionAVR) untuk keperluan transfer kode mesin kedalam sistem memori microcontroller AVR. Salah satunya merupakan ISP_AVR yg dibentuk sang Holger Buss serta Ingo Busker berdasarkan Jerman. Perangkat lunak beserta rangkaian antarmukanya bisa pada-download secara perdeo dalam alamat URL: //www.mikrocontroller.com

MIKROKONTROLER AVR DAN BAHASA C
Tak bisa disangkal, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal dan sebagainya) semakin populer serta banyak dipakai buat memprogram sistem microcontroller. Berdasarkan sifatnya yang sangat fleksibel pada hal keleluasaan pemrogram buat mengakses perangkat keras, Bahasa C merupakan bahasa pemrograman yg paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya. 

Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson dalam tahun 1972, Bahasa C merupakan galat satu bahasa pemrograman yg paling terkenal buat pengembangan program-acara pelaksanaan yang berjalan pada sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak lalu mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) menjadi standar bakunya. Perbedaan antara compiler-compiler tadi umumnya hanya terletak dalam pengembangan fungsi-fungsi library dan fasilitas IDE (Integrated Development Environment)–nya saja. 

Relatif dibandingkan menggunakan bahasa aras tinggi lain, bahasa C merupakan bahasa pemrograman yg sangat fleksibel dan nir terlalu terikat dengan banyak sekali aturan yg sifatnya kaku. Satu-satunya hal yg membatasi penggunaan bahasa C dalam sebuah pelaksanaan adalah semata-mata kemampuan imaginasi programmer-nya saja. Sebagai gambaran, pada program C kita dapat saja secara bebas menjumlahkan karakter huruf (misal ‘A’) menggunakan sebuah sapta bulat (misal ‘dua’), dimana hal yang sama nir mungkin dapat dilakukan menggunakan menggunakan bahasa aras tinggi lainnya. Lantaran sifatnya ini, sering bahasa C dikatagorikan sebagai bahasa aras menengah (mid level language).

Dalam kaitannya menggunakan pemrograman microcontroller, Tak pelak lagi bahasa C waktu ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sangat efisien terutama buat program microcontroller yang berukuran nisbi akbar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C dalam pemrograman mempunyai beberapa kelebihan berikut: Mempercepat ketika pengembangan, bersifat modular dan terstruktur, sedangkan kelemahannya adalah kode acara output kompilasi akan relative lebih besar (serta sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi). 

Khusus dalam microcontroller AVR, buat mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien pada mendekode serta mengeksekusi instruksi-instruksi yg umum dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel namun terdapat kolaborasi dengan galat satu vendor pemasok compiler C buat microcontroller tersebut, yaituI ARC).

Seperti halnya compiler C buat sistem microprocessor, di pasaran ada beberapa varian compiler C buat memprogram sistem microcontroller AVR yang dapat dijumpai (lihat tabel 2.dua). 

Dengan beberapa kelebihan yg dimilikinya, saat ini CodeVisionAVR produk Perusahaan Pavel Haiduc merupakan compiler C yang relative poly dipakai dibandingkan compiler-compiler C lainnya. 

Bahasa C sudah dikritisi secara meluas, serta banyak orang dengan cepat menemukan masalahnya. Tapi sebagai bahasa yg telah hadir, C permanen tidak tersentuh. CodeVisionAVR adalah galat satu yang memanfaatkan keunggulan C dalam hal pemrograman mikrokontroler. Salah satu ungkapan menyatakan bahwa “jika kamu membuat perangkat lunak yg akan tetap layak suatu hari nanti, jangan belajar bahasa yang popular ketika ini, pelajarilah C”.

C tidak membatasi pandangan orang mengenai sebuah bahasa pemrograman. C nir object oriented, namun kita dapat menerapkan konsep objek oriented padanya. Bukan pula bahasa fungsional, tetapi kita dapat dapat menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter LISP serta skema interpreters-interpreters/compiler-kompiler ditulis menggunakan menggunakan C. Kita dapat memproses list menggunakan C, meski tak semudah menggunakan LISP. C jua mempunyai fitur-fitur tambahan seperti rekursi, mekanisme sebagai tipe data kelas pertama, serta poly lagi. 

Banyak orang yang mencicipi C kekurangan akan kemudahan seperti JAVA, atau C++. Padahal C merupakan bahasa yg sederhana. Tapi lantaran kesederhanaan ini dianggap kurang memadai sebagai akibatnya membuat C diubahsuaikan menjadi ta’aruf pertama ke tahap bahasa taraf tinggi yang kompleks yg memungkinkan kita mengontrol dengan baik apa yang kita acara tanpa fitur yang disembunyikan. Compiler tidak akan melakukan apapun hingga kita memerintahkan buat melakukan sesuatu. Bahasa yang terdapat adalah transparan, bahkan bila beberapa fitur menurut JAVA seperti garbage collection diikutsertakan dalam implementasi C yang akan digunakan. Sebagai bahasa pemrograman, C tetap terdapat. Ini adalah inti menurut development dilingkungan system operasi UNIX. Dan jua inti menurut revolusi mikrokomputer, diantara C++, Delphi, JAVA serta lainnya, C masih tetap bertahan,dengan karakteristiknya sendiri.

Pada beberapa tahun yang kemudian, the Electrical and Computer Engineering Technology department di Purdue University telah mempelajai bahasa pemrograman C sebagai bahasa yang dipilih buat mengenalkan mikrokontroler. Mengajarkan Bahasa taraf tinggi dalam ta’aruf mikrokontroler dalam referensi suatu bahasa taraf assembly merupakan sesuatu yg paradoksal pada suatu intitusi yg memiliki acara yang sama. Penggunaan Bahasa taraf tinggi memungkinkan buat focus dalam materi dan konsep dan tidak jemu menggunakan melihat lebih jelasnya listing assembly. Salah satu perbedaannya merupakan bahasa tingkat tinggi memungkinkan buat menuliskan eksklusif nilai pada register, memindahkan data melalui multiple operations dengan assembly.

Just-in-time (JIT) mengajarkan metode yang digunakan buat mengenalkan komponen baru dalam Bahasa pemrograman C seperti yg diharapkan. Pada prakteknya pokok masalah dipresentasikan, selesainya itu disusun prosedur pemecahan serta dievaluasi. Setelah itu dituangkan kedalam gambar sebagai diagram alir proses. Lalu menggunakan mudah diterjemahkan kedalanm bahasa C. Misalnya itulah dasar menurut mikrokontroler.

Lebih menurut 10 tahun, beratus juta mikrokontroler, suatu mikrokomputer yang mengandung perangkat ini dan memori didalam suatu single integrated circuit (IC) beserta CPU, sudah disertakan pada perkembangan produk-produk dari keyboard hingga system control automobile (Ayala, 2000). 

Bahasa taraf tinggi semakin tinggi sebagai metodologi baku buat mikrokontroler terapan berdasar dalam perkembangan dan improvisasi jaman dan pasar serta dukungan perawatan yang sederhana (Myklebust, N.D.). Untuk permanen sejajar menggunakan perubahan jaman, bahasa tingkat tinggi menjadi perlengkapan pada memperkenalkan mikrokontroler sebagai bagian berdasarkan kurikulum dalam the Electrical and Computer Engineering Technology curriculum pada Purdue University, West Lafayette.

KEUNTUNGAN PEMROGRAMAN TINGKAT TINGGI
Telah dipercaya pada era mikrokontroler ketika ini bahwa bahasa assembly adalah satu-satunya pilihan buat menciptakan kode untuk suatu pelaksanaan.ruang yg sangat terbatas pada chip buat data dank ode program tidak terjadi apabila menggunakan bahasa tingkat tinggi (Stewart & Miao, 1999). Sejarah bahasa tingkat tinggi menghasilkan berukuran kode yang lebih besar dibandingkan assembly yang mempengaruhi kecepatan eksekusi. Selama beberapa tahun terakhir, compiler sudah menyatakan kepada pasar menggunakan menjamin bahwa bisa menghasilkan kode seefisien assembly (Stewart & Miao, 1999).pada tahun-tahun berikutnya, compiler melakukan perkembangan yang lebih luas didunia mikrokontroler dengan menaikkan fungsionalitas serta kecepatan.

Terdapat beberapa keunggulan menggunakan Bahasa tingkat tinggi antara lain yaitu bisa memangkas saat pembangunan aplikasi menjadi lebih singkat, kemudahan perawatan serta ringkas, kemudahan reuse kode. Bahasa tingkat tinggi memungkinkan programmer buat mengatasi objek yang kompleks tanpa khawatir mengenai lebih jelasnya komponen prosesor dalam ketika acara berjalan. (Darnell & Margolis, 1991). Menulis program bahasa taraf tinggi membebaskan programmer menurut kekhawatiran tentang lebih jelasnya taraf rendah suatu acara (Reisdorph, 1998).

PEMROGRAMAN C DAN MIKROKONTROLER
Pembangunan Perangkat lunak menggunakan mikrokontroler membutuhkabn suatu pendekatan terstruktur dengna pemrograman. Banyak system terapan wajib berjalan 24 jam sehari, 7 hari pada satu minggu, dan 365 pada satu tahun. Mereka tidak bisa di reboot ketika terjadi sesuatu kwesalahan. Untuk alas an ini, baris kode yang baik dipelajari dan melalui ujicoba menghasilkan taraf keutamaan yg baru pada fenomena mikrokontroler terapan (Lewis, 2002). Fasilitas bahasa C yang terstruktur dan disiplin(utuh) menjadi pendekatan pada design program computer (Deitel & Deitel, 1992). Berdasar dalam MacKenzie, keuntungan mengadopsi pendekatan terstruktur pada pemrograman meliputi antara lain: urutan operasi suatu program begitu sederhana buat ditelusuri melalui fasilitas debugging, urutannya yang terstruktur membuat gampang buat dijadikan sub rutin atau fungsi-fungsi, struktur yg ada sebagai dokumentasi sendiri serta memudahkan buat mengungkapkan memakai diagram alir, dan pemrograman yg terstruktur membentuk peningkatan produktifitas programer (1991).

Mungkin alasan yg paling memaksa buat memakai bahasa taraf tinggi adalah menyimpan ketika programmer. Compiler C didukung oleh pustaka(library) acara C yang mengusung banyak fitur seperti matematika dan penanganan karakter. Menggunakan fungsi standar ini program-program Cmemudahkan programmer buat menulis, menguji coba serta mereka ulang versi yg sama (Ayala, 2000). Meskipun pustaka fungsi baku adalah teknikal bukan bagian menurut bahasa C, mereka didukaung tanpa terkecuali oleh system ANSI milik C (Deitel & Deitel, 1992).