Compared to some time ago, now the microcontroller chips price is relatively inexpensive. Even to simply make the running lights, microcontroller electable. But apparently cheap price does not necessarily make the fans of electronics using a microcontroller in the design. Instead of nothing, but because they can not programm it!

What trick to use?

It must be admitted that designing microcontroller based system does require a fairly complex science base. So many people give up before trying. They were puzzled by a vicious cycle, where to start?

Importantly, you need lots of practice, both theory and practice. Therefore, you should first prepare the tools and materials, ie minimal microcontroller system (consisting of a microcontroller chip, resistors, capacitors, and crystals), downloader, and Integrated System Environment (IDE).

The components you can buy in electronics stores. Downloader you can make yourself or buy. IDE you can get here. Do not forget, have the Easy and Fun Learning Microcontroller book beside you 😀

Indeed, to be an expert, it took quite a long time. But, to only to be able to use a microcontroller, one or two days is enough! Start with the simplest, gradually continue to rise to complex. Later, if you feel stuck facing a complicated problem, make the problem becomes simple. If you are facing a big problem, make the problem becomes small. If you encounter a difficult chapter, do not force yourself. Believe me, another time you can certainly understand it.

What microcontroller to use?

Once you master one type of microcontroller, it will be easy for you to move to other types of microcontrollers. So, no matter what microcontroller to use, but its programming techniques.

AT89S51 or AT89S2051 from MCS-51 family can be a good choice. This easy-cost microcontroller-rousing. You will not be too sad if you make it destroyed. Instead, you’ll be very happy if you can master the science of microcontroller with low-cost.

What language to use?

There are many choices of programming languages. There are suggestion to use high-level programming language first, such as Basic, Pascal, C, and others. However, the best programming language that will really make you understand the microcontroller is the assembly that this language requires you to make the instructions carefully.

Happy learning!

60 thoughts on “Microcontroller tutorial

  1. klo g salah sejak 2007 saya beli buku ini, sempat g tak teruskan, tp sekarang mulai semangat lagi,
    mohon bimbingannya mas yaaa

  2. gini mas, saya dulu pas kuliah kurang paham ama mikro,
    skarang baru belajar lagi.
    saya tertarik dengan aplikasi dot matrix, dan up down counter dengan keypad,
    kira2 mas bisa gak bantu saya, dengan buat tutorial khusus, dan maaf berapa biayanya bila dibuat dalam bentuk ebook,atau media yang kira2 gak nyusahin mas..

    1. oh ya lupa mas, saya ni lagi belajar dengan assembly, jadi ntar kalau memang bisa mohon dalam bahasa assembly…

    2. Tenang saja Mas Beny, buku “Mudah dan Menyenangkan Belajar Mikrokontroler itu ditulis walaupun bukan dalam bentuk tutorial tapi bisa dengan mudah diikuti oleh yang lagi belajar. Tidak butuh banyak prasyarat yang harus dimiliki oleh pembacanya. Disamping itu disertai dengan CD yang berisi semua source code yang ada di dalam buku. Dan yang paling cocok dengan keinginan Mas Beny adalah bahwa semua source code ditulis dalam bahasa assembly 🙂

  3. jam digital yang edisi revisi sudah saya coba dan berjalan dengan baik, seting jam dam menit ditandai dengan berkedip pada 7 segmen baik jam maupun menit. Tapi saya masih penasaran tidak ditampilkan detik, baik satuan maupun puluhan, saya sudah mencoba dengan menambah detik pada listing program (rev) namun selalu gagal, untuk itu mohon petunjuk dari bapak, terima kasih……
    Surabaya, 9 sep 2009

    1. Mmm… Sabar ya klo untuk avr. Kita masi fokus di teknik pemrogramannya, bukan uC yang digunakan. Nah yang sudah lebih lazim kan mcs-51. Jadi kita bisa lebih fokus ke teknik pemrogramannya. Gitu aviv 🙂 dan iya, aku dari Widya Gama

  4. mas cara membuat program speedometer sepeda menggunakan ATMega8 gmn caranya?dg ktentuan timer 0 dijadikan timer n timer 1 dijadikan pencacah?pleassss bantu q krim k emailq2

    1. membuat speedometer ya? mmm, harus ditentukan dulu berapa ukuran roda yang digunakan, berapa pulsa yang dihasilkan setiap satu putaran roda, juga ditampilkan dalam skala apa? m/detik, km/jam, mil/jam?
      trus teknik apa yg mo digunakan, diukur berapa putaran dalam kurun waktu tertentu, atau berapa lama waktu yg dibutuhkan untuk satu kali putaran.
      jadi tentukan itu dulu ya 🙂

  5. pak
    saya temannya ilham..
    tolong dibantu tentang digital filter y pak..
    kalo bisa merubah dari matlab ke C, saya sudah aman dari kejaran dosen…hehehe

  6. mr. minta info ttg gmana cara membangun komunikasi antar 2 mikro dunks, jd sya mauu coba bangun komunikasi mikro di PLC ma mikro yg nerima ledder opcode dri PC. nah bingung sya gmana caranya? pliiis mhn bantuannya. tengkyu ^_^

    1. komunikasi serial antara mikro ke mikro ya sama dengan komunikasi mikro ke PC. yang penting parameter-parameternya sama, seperti baudrate, parity, databit, stopbit, dll. Bahkan kalo cuma mikro ke mikro pada jarak yang dekat, kita bisa langsung menghubungkan tx ke rx antara 2 mikro tersebut secara langsung tanpa melalui RS232.

    1. Buatlah sebuah timer dengan periode sesuai perhitungan berikut. Buat pula sebuah counter yang cacahannya diperoleh dari sensor yang dipasan pada roda. Setiap periode timer, cacahan pada counter diambil dan ditampilkan pada display, lalu cacahan dimulai lagi dari nol.
      1 Km/Jam = 1000 cm/36 det
      Jika 1 putaran roda adalah 180 cm dan periode putaran adalah 1,8 detik, maka 180cm/1,8det = 100cm/1det = 3600cm/36detik.
      Jadi dalam periode 1,8 detik, jumlah putarannya akan menunjukkan nilai 3,6 Km/Jam
      Nah, jika sensor pada roda dibuat untuk menghasilkan 32 pulsa per putaran, maka kita bisa membuat perioda timer menjadi 1,8 detik/32 = 56,25 mdet.
      Atau agar angka pada counter menunjukan 0,1 Km/Jam, maka buatlah periode timer menjadi 560mdet (0,56 detik)

  7. pak,numpang nanya gmana seh ngecek kristal apakah masih bagus atau tdak untuk dipakai pada mc,mksh..

  8. Pak sulhan, mau tanya ini. dibuku bapa yg berjudul mudah dan menyenangkan belajar mikrokontroler ada percobaan jam digital. nah setelah saya coba kok tombolnya yang buat edit jam dan menit tidak berfungsi. tapi itu tombol tidak rusak dan semua rangkaian sudah benar…. mungkin programnya ada yang salah atu dimana ya??? mohon pak sulhan mau membantu

    1. @gita: bikin chip? wah aku bukan ahli VLSI, jangan tanya ke aku tentang bikin chip. silicon ujudnya kaya apa aja aku ga ngerti. aku cuma bisa makenya aja 😛

  9. permisi mas saya seorang pelajar stm yang pingin belajar mikrokontroller tapi selalu terhambat dengan kebingungan masalah pemrogaman yang ruwetnya setengah mati padahal sudah 3 buku yang saya miliki tentang bahasa pemrogaman tapi tetep juga gag bisa ngerti dalam hal ini bahasa assembly mas
    mohon dibantu mas ya soalnya saya lagi ngerjain proyek mikro padahal gag tau blas

    1. @ Satrio
      Baca saja bukunya yang akan membantu Satrio belajar mikrokontroler dengan mudah dan menyenangkan. Di situ diajarkan bahasa assembly secara bertahap dari yang paling mudah terlebih dahulu.
      Donlot juga Microcontroller Project versi terbaru untuk membantu Satrio belajar.

  10. Kalau saya belajar mikrokontroler mulai dari Arduino. Soalnya dengan Arduino mudah dan nggak masuk dalam ‘lingkaran setan’. Setelah itu barulah mendalami mikrokontroler AVR.

    1. kalo belajar dr buku yg aku tulis jg tidak akan masuk dalam lingkaran setan ko. dan aku memilih menggunakan bahasa assembly karena tidak ada pemrograman yg bisa menandingi keampuhan bahasa assembly. tp, klo belajar dg teknik yg bener, tidak akan ada anggapan bahwa bahasa assembly itu terlalu rumit dan sulit.

    2. Betul mas.. Assembly sangat powerful, tapi bagi kebanyakan orang assembly itu susah. Mungkin perlu extra fokus supaya cepat menguasai. Masalahnya extra fokus itu menguras waktu dan energi 🙂

    3. pengalaman dr yg udah baca bukuku sih, penjelasannya mudah dipahami dan diikuti. sama sekali tidak ada kendala karena memakai bahasa assembly. bahkan, ada salah satu komentar di website ini yg bilang “tp saya hanya ngerti assembly mas, saya bingung kalo pake c”. itu menunjukkan bahwa orang yg menganggap bahwa assembly itu lebih sulit, itu terjadi karena orang itu lebih membiasakan dr dg yg bukan assembly. sementara yg dari awal telah membiasakan diri dg assembly, kemungkinan besar dia akan lebih gampang dg assembly dan sulit pake yg lain. hanya pendapat saja sih 😀

  11. mas makasih informasinya, say sangat tertarik untuk belajar mikrokontroler, dan saya ingin sekali membuat automatis building system, karena saya adalah seorang teknisi gedung. mohon sarannya..
    persiapan apa yang harus saya lakukan terimakasih

    1. TOMO, yang harus dipersiapkan pertama kali ya tentu saja buku tentang mikrokontroler. Dan saran saya, ya baca buku karya saya 😀 Memang buku tersebut agak susah kalau dicari di toko buku konvensional, tapi kalau lewat toko online Insya Allah masih cukup gampang. Trus jangan lupa download dulu Microcontroller Project Versi terbaru. Tahap awal mungkin bisa dipelajari melalui simulator saja, jadi tidak perlu benar-benar pakai mikrokontroler. karena mempelajari mikrokontroler itu yang paling penting adalah memahami konsep mikrokontroler dalam hal pemrogramannya, bukan hardwarenya.

  12. tolonng jelaskan fungsi2 menumonic seperti mov,sjmp,dll,terutama yang berhubungan dengan text bejalan.dan bgmn tips-nya supaca bisa memahami dan merancang sendiri suatu proyek dengan bhs assembly?sebelumnya tim’s..

    1. @samarudin, penjelasan mnemonic2 itu dijelaskan di buku. tidak cuma penjelasan tentang mnemonic saja, tp jg teknik2 membuat program.

  13. Dari dulu saya pengen banget bisa mikro kontroler, programing tapi saya bingung harus belajar dari mana dan harus kemana.. karna kalau belajar sendiri itu butuh banyak waktu dibandingkan dengan belajar ada yang membimbing. Saya minta kritik dan saran temen2 yah.. soalnya saya pengen banget bisa IT

  14. Mas, salam kenal.
    saya mau tolong, posting dong bagaimana sistem minimum mikrokontroler PIC dan cara memprogramnya, kalau bisa contoh programnya, makasih

  15. hai Sul, aku mau tanya nih, di buku “mudah dan menyenagkan bljr mikro” untuk mengubah nilai heksa ukuran word bilangan dibagi sepuluh sampai hasil nol. tiap2 pembagian diambil sisa baginya untuk mendapatkan nilai desimalnya. yg jadi pertanyaan…diregister manakah sisa hasil bagi tersebut disimpan yg kemudian akan kita ambil untuk ditampilkan ke 7 segment.

    1. MCS-51 hanya menyediakan pembagian untuk ukuran byte. Untuk ukuran word, kita harus melakukannya dengan manipulasi bit dengan metode mirip seperti porogapet yang diajarkan di SD. Tunggu artikel tentang itu, atau bukuku yang membahas tentang itu, atau coba browsing di internet tentang itu 😀

  16. mas,klo mw bikin downloader AT89C51 atau AT89C2051 dari keluarga MCS-51 caranya gmn,kok dibuku g ada skema rangkaiannya???

    1. Downloader untuk AT89C51 cukup rumit. Akan tetapi AT89C51 sendiri adalah produk lama yang sudah tidak disarankan untuk rancangan baru. Jadi sebaiknya ganti saja dengan AT89S51. Sedangkan untuk AT89C2051 memang lebih sederhana, tetapi lagi-lagi sebenernya semua tipe C adalah produk lama. Tetapi kalau memang maksa ingin memakai tipe C, browsing di internet juga banyak yang membahas.

  17. mas sulhan.. bakal nyusun buku tentang mikrokontroler lg gak mas.. kelanjutan dari buku “mudah belajar mikrokontolrer” yang sekarang.. klo iya.. sya tetep berharap mas sulhan membahas mikrokontroler keluarga mcs51 dengan bhs asembler..& aplikasi yaang dibuat lebih banyak lagi..contohnya led matrix dengan shift register….

    1. Sebenernya sih saya sedang menunggu kabar dari penerbit apa naskah buku yang saya kirim bisa diterbitkan atau tidak. Dan seperti harapan Mas Budi, saya tetap mengupas tentang MCS-51 dengan bahasa assembly. Tapi bukan tentang sesuatu yang bersifat perancangan khusus seperti matriks led, melainkan lebih bersifat teknik lanjut. Yaitu tentang bagaimana kita bisa membuat mikrokontroler agar bersifat multitread sehingga bisa mengerjakan banyak tugas sekaligus (buku 1) dan bagaimana kita mengolah perhitungan matematis yang rumit seperti trigonometri, logaritma, dan sebagainya, menggunakan tipe bilangan yang tidak standar, tetapi menggunakan tipe data yang kita tentukan sendiri sehingga kita bisa berkompromi antara kecepatan dan ketelitian (buku 2). Dan semuanya dibahas menggunakan bahasa assembly!
      Selama ini perhitungan matamatis yang rumit biasanya diselesaikan menggunakan bahasa c atau pascal dan hanya menggunakan tipe data yang telah ditetapkan misalnya single atau double, tetapi saya menyajikan dengan bahasa assembly dengan tipe semau kita. Tolong doain ya Mas, biar bukunya cepet terbit 😀

  18. mas buku mudah dan menyenangkan belajar microcontroller bisa di dapat di mana,lewat online / ada d toko buku.trim’s

  19. Dari beberapa blog yg membahas mikrokontroler yg sy baca,cuma diblog mas sulhan ni yg paling sUka saya simak terus,bukan berarti yg lain itu gak baik.mungkin atau memang bahasa yg digunakan mas dalam memberi penjelasan dan menjelaskan yg gak mbkin mumet.sy lg nunggu buku yg sa pesan,rasanya dah gak sabar tuk mulai belajar mikrokontroler.

  20. Mas….,sy sdh baca buku mudah dan menyenangkan belajar mikrokontroler.ada yg tdk sy mengerti,pd bab 2,led berjalan 1.
    Pada listing program
    mov a, #‎11111110b‬
    loop: mov P1,a
    rl a
    mov R7,#10
    L1: mov R6,#225
    L2: mov R5,#225
    L3: djnz R5,L3
    djnz R6,L2
    djnz R7,L1
    sjmp loop
    end
    Yg ingin sy tanyakan,mengapa pengalamatan berawal dari R7(mov R7),mengapa tdk R1,R2,R3,dst…,dan pd angka 10(mov R7,#10),mengapa harus 10…?,tdk bisakah misal angka angka lebih rendah atau lebih tinggi dari sepuluh…? Pd listing program tersbt jg ada L1,L2,dan L3,apakah “L” merupakan label yg sifatnya opsional atau yg sifatnya sdh ditetapkan…?,atau apakah “L” itu mas…..?mohon jawabannya mas…..,jwban mas sangat membantu sy pastinya,dan tuk sy bisa memahami listing2 program selanjutnya.

    1. Mengapa dari R7 dan bukan dari R1? Sebenarnya itu bebas saja, tetapi R0 dan R1 adalah register istimewa, karena hanya dua register ini yang dapat digunakan untuk pengalamatan tak langsung. Karena itu, saya memilih untuk penggunaan umum dimulai dari R7 ke bawah. Tapi tidak ada aturan harus begitu, suka-suka saja.

      Mengapa harus 10? Tidak ada yang mengharuskan 10, ini juga bebas, silakan mencoba untuk mengganti agar mengerti perbedaannya jika diganti.

      Apakah L itu? Itu hanya untuk memenuhi syarat penulisan label yang tidak boleh diawali dengan angka, jadi saya tambahkan huruf, tetapi sebenarnya tidak harus L. Silakan dicoba untuk mengganti dengan huruf yang lain.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.

Notify me of followup comments via e-mail. You can also subscribe without commenting.