Mikrokontroler AT89S51 vs AVR

Microcontroller AVR review

Berdasarkan informasi dari teman-teman yang kuliah di universitas lain, ternyata banyak dari mereka yang masih memakai mikrokontroler kuno tipe MCS52 (AT89S51/52) (untuk jurusan elektronika, red). Padahal sekarang (sudah lama juga sih launchingnya) ATMEL telah memperkenalkan Mikrokontroler generasi baru type AVR sebagai pengganti dari Type MCS51. Alasan mereka adalah “Di kampus yang diajarkan cuma mikrokontroler type AT89S51”. Kalau AVR menawarkan kemudahan dan kelebihan kamu nggak ingin mencoba? Memang sih belajar sendiri itu lebih sulit dibanding kan kalau sudah ada referensi dari dosen. Tapi, kalau membuat project electronic yang berbasis mikrokontroler, penggunaan AVR akan lebih mudah dan efisien. Ya kalau bisa jangan stagnan dengan materi kuliah yang notabene banyak yang nggak di update.CMIIW.

Berikut fitur-fitur yang terdapat di AVR (based on my observation)

1. Kecepatan
Untuk mengeksekusi 1 buah instruksi mikrokontroler AVR hanya memerlukan 1 clock sedangkan MCS51 dalam hal ini AT89S51 memerlukan 12 clock. Jadi jelas AVR lebih cepat dari MCS51

2. Bahasa Pemrograman
Bahasa pemrograman yang digunakan oleh AVR adalah bahasa C (salah satunya, red). Sehingga lebih mudah dipahami daripada bahasa assembly. Memang bahasa assembly lebih dekat ke bahasa mesin sehingg lebih cepat eksekusinya. Tapi, pihat Atmel telah mengoptimasi bahasa C yang dipakai untuk AVR sehingga lebih cepat dan efisien.

3. Memory yang lebih besar
Untuk keluarga mikrokontroler AVR sudah banyak yang memiliki memory internal yang relatif besar. Misal untuk seri ATmega16 : 16 Kb (Flash memory), 512 Bytes (eeprom), 1 Kb (RAM). sedangkan untuk AT89S51 memiliki 4 Kb (Flash memory), 128 bytes (RAM). Dari sini terlihat kalau kapasitas memory AVR lebih besar daripada AT89S51. Dan lagi, AVR sudah punya EEPROM internal sehingga kita tidak perlu memakai EEPROM eksternal sebagaimana kalau kita pakai AT8951.

4. Efisiensi Hardware
Dengan memakai AVR kita bisa meminimalisasi penggunaan komponen pendukung seperti EEPROM eksternal (baca poin 3), sehingga kita tidak perlu lagi EEPROM eksternal.
Untuk sumber clock AVR telah menyediakannya secara terintegrasi. Karena didalam AVR sudah ada XTAL yang bisa diaktifkan sehingga kita tidak perlu memakai XTAL lagi. Untuk nilainya bisa kita kalibrasi sendiri apakah 4 Mhz, 1Mhz atau lainnya. Sebagai catatan untuk kebutuhan akurasi XTAL eksternal masih perlu dipakai. Tapi kalau akurasi tidak terlalu signifikan saya rasa cukup Xtal internal.
Bagi yang memerlukan ADC untuk konversi sinyal analog ke digital kita tidak perlu lagi memakai ADC eksternal (ADC 0804) karena untuk AVR seri ATmega 16 sudah ada ADC internal 10 bit.

5. Fitur-fitur tambahan
Mikrokontroler AVR memiliki fitur-fitur tambahan lainnya yang tidak terdapat di mikrokontroler AT89S51. Diantaranya
– RTC dengan oscilator terpisah
– PWM (Pulse Width Modulation)
– ADC 10 bit internal
– Master/slave SPI Serial interface
– On chip analog comparator

So, masih “setia” dengan mikrokontroler AT89S51?  atau ingin tertarik “mencicipi” kelebihan fitur dari mikrokontroler AVR? it’s all up to you 🙂

PS: maaf, mungkin saat tulisan ini di buat telah beredar microcontroller yang lebih canggih dari mikrokontroler AVR? karena penulis baru paham tentang AVR ya cuma AVR aja yang dibahas

search term: mikrokontroler avr, at89s51

43 thoughts on “Mikrokontroler AT89S51 vs AVR

  1. Pingback: Bahasa apa yang kamu suka? « My Simple Blog

  2. elmo_cunox

    #poin 2
    Bahasa programman AVR bahasa C, ga salah lo!!!
    Jangan salah mengerti AVR itu bisa diprogram pake bahasa apapun (Assembler,C,JAVA,PASCAL,BASIC) tergantung compilernya untuk merubah ke HEX…..

  3. @elmo_cunox
    Memang benar AVR bisa diprogram dengan berbagai bahasa pemrograman. Tapi, untuk tulisan saya ini saya hanya menyoroti dari sisi programming dengan bahasa C.
    Terima kasih untuk koreksinya. 🙂

  4. coys

    aq telah lama pakai AVR lebih mudah,luas,n simple ….
    klo ada temen2 yang punya Software yg berbasis C boleh dikirim ke EmailQ………. oke trim

  5. Takasawim

    Membaca Tulisan rekan2 Aq akan beralih ke AVR, aq sdg pesan Atmega8535 dan Atmega16, saya dulu pakai Assembler sekarang pakai BASCOM. Kepada rekan2 tolong kebaikan hati rekan2 untuk mengirimi program apapun ttg AVR yang menggunakan ADC dengan watchdog apapun programnya, saya akan sangat berterimakasih.
    Best Regards..,Trim’s dan matur nuwun.
    takasawim@yahoo.com

    coba gabung di avrfreaks.net, banyak tutorial dan contoh2 program disana

  6. maztikno

    ember 😀
    tapi jangan salah juga bahwa penerusnya keluarga mikro 8051 yang terbaru semisal AT89C51RD2/AT 89C51ED2 tak kalah hebatnya dengan AVR .
    Tapi kalo di indonesia dah populer po gak aku gak tau 😀

  7. elfin

    pertama kali aku beljar mikrokontroler aku belajar avr dengan bascom,,emang awalnya sangat mudah tapi akhirnya merasa masih sangat butuh dengan assembler dan yang lain

  8. faisal

    mohon bantuannya
    mau tanya at89s51 bisa gk dijalankan sebagai timer dan counter sekaligus. bagaimana caranya??oia untuk program dengan bahasa c nya bagaimana caranya mencacah sesuatu dari piranti luar dan menampilkan cacahan dan waktu cacahan dengan lcd secara realtime bagaimana caranya?? terimakasih
    mohon batuannya.

    Di at89s51 kan ada dua timer, coba jalankan timer1 sebagai counter, timer satunya sebagai pewaktu (timer). Kalau dua fungsi dilakukan oleh satu timer tidak bisa. CMIIW.
    Untuk program C coba baca dibuku afgianto, banyak kok contohnya. Atau googling saja.

  9. tergantung, mau di aplikasikan untuk apa. Contohnya pada kasus tugas besar saya, tidak perlu menggunakan mikrokontroller yang memiliki spec tinggi, yaitu rangkaian pulsa counter dengan input dari infrared/optocoupler, yang ditampilkan LCD atau 7 segment. bahkan dengan menggunakan mikrokontroller AT 89S51 pun, program dengan bahasa assembly sudah bisa di jalankan..selain itu harganya pun tentu lebih murah..
    jadi jangan men-judge bahwa AT 89S51 kuno dan tidak berdayaguna maksimal, intinya TERGANTUNG PENGGUNAAN.

  10. @maztikno…
    sayang untuk tipe tersebut tidak ada yang package nya model DIP, hanya PLCC. jadi agak sulit kalau disolder biasa. Dan barangnya susah di cari di Indo 🙂

    @bernard
    saya tidak bilang kalau AT89S51 “tidak berdaya guna maksimal”. Kalau ada yang mikrokontroler yang menawarkan kemudahan dan efisiensi lebih baik kenapa tidak mencoba.
    “Lebih Murah” ? justru kalau memakai AVR pengerjaan project secara keseluruhan akan lebih murah (point 4) 🙂

  11. anto

    wah saya yang termasuk hanya bisa memprogram mikrokontroler dengan bahasa assembler karena memang itu yang diajarkan. klo ada tolong infokan instruksi – instruksi memprogram mikrokontroller menggunakan bahasa C beserta dengan maksud dari instruksi tersebut.

    thanks

    Kalau ingin belajar programming mikrokontroller dengan C, coba download instruksi C nya dari ATMEL, ada kok. Kalau pakai compiler Code Vision, mereka juga menyediakan manual syntax C nya.

  12. bagus Ommm
    terus perjuangkan isi posting dengan tema2 ini……..
    kalo seandainya indonesia kaya akan ilmu dan tehnologi di jamin bakal menjadi negara yang berkembang
    gimana kalo kita tukeran site
    tolong link ke site gw ya bosss

  13. ichank

    misi-misi…
    mw nanya nih, dimna yah link buat download tutorial BASCOM AVR tapi yang make bahasa basic..
    tolongin donk tmn2^^
    skrng lg nyusun nih.. jd perlu bgt tutorial nya..

    thx^_^

  14. Untuk penggunaan microcontroller , memang lebih baik di sesuaikan dengan kebutuhan. Akan tetapi juga , lebih baik lagi setiap ada upgrade teknologi ( misale atmel mcs 51 dengan atmel avr ), seorang hardware designer/ programmer itu ikut mngupgrade skillnya mengikuti fitur baru yang ditawarkan.

    Untuk pemilihan bahasa, Assembler tidak bisa dicompare dengan C , basic, atau bahasa tingkat tinggi lainya. Karena assembler adala bahasa paling rendah yang mendekati bahasa mesin, jadi pasti assembler lah yang paling optimal dari sisi mesin. Kalau mau compare, silakan misalkan compare C antara avrgcc, iar, codevision dan yang lain. btw, sekarang c programming for embedded system, sudah dikembangkan sedemkikian rupa untuk tingkat optimalisasi yang tinggi. Kelebihan C lainya adalah, lebih mudah untuk diporting antar system, misalnya dari avr ke pic atau ke platform lainya. atmel mcs51 juga program bisa dibuat dengan C misalnya sdcc atau keil c.

  15. Menyeng

    salam kenal…aku pengguna baru AVR,
    dulu aku pengguna setia S51, menurut aku dari segi pemrograman aku kurang terbiasa dengan AVR ( assembler ) lebih mudah dengan s51…tapi mungkin seiring berjalan waktu aku terbiasa…

    salam kenal aja

  16. jaya

    AVR aplikasinya lebih mudah dengan aneka bahasa pemrograman…..bagi temen2 yg punya bahasa pemrograman BASCOM AVR tolong bagi2 ilmux ya…terutama caranya membuat port a.0 dikondisikan sebagai input dan bila dapat tegangan 5V maka akan mengirimkan karakter hurf “M” ke komputer….dan bila tidak dapat tegangan 5V maka tidak ada karakter yang dikirim ke komputer….tk u

  17. please tolog kasih tau gimana settingyang benar, jika kita ingin pake clock external 4M ( cristal ).saya pake ATtiny..saya sudah ganti CKsel3,cksel2,cksel1 sesuai datasheet.tapi hasilnya AVR Attiny2313 saya tidak bisa digunakan lagi…tidak bisa download dan tidak bisa dikembalikan kesemula…apakah ada yang kurang atau salah dalam hal yang saya lakukan. saya menggunakan ponyprog untuk ganti settingan fuse bit ini….saya sudah coba 3 kali dan hasilnya sama, tidak bisa. pleasee help me…

  18. chandramde

    Sebagai penggemar setia keluarga 89S, rasanya tidak baik juga ninggalin mereka begitu saja. Lagipula library-nya baik skematik maupun listing program sudah banyak. Tapi skrg saya juga pake AVR. ATMEGA banyak dipake di produk komersil lho. ZELIO-nya Schneider paker ATMEGA128.

    Salam,
    Chandra MDE

  19. adhit

    saya juga butuh banget nih tutorial menggunaan port A =>ADC
    terutama tutorial untuk penguuran SUHU..
    tapi pake BASCOM…
    kalo ada share ya ke email..

  20. karena saya belajar AVR atmega 8535 dengan menggunakan bahsa asembly …
    sekarang saya jasi bingung kalo untuk mengakses compas digital CMPS03 dengan menggunakan jalur i2c…
    ribet banget..
    ada ga yang punya tutorialnya dengan menggunakan bahasa asembly?
    kalo g ada bahasa basic juga gpp deh..
    tolong!

  21. hendra

    teman-teman,minta tolong donk…
    saya mau menghitung RPM(rotasi per menit) dari motor DC (juga ada kendala dengan pengiriman data di USART nya karna data pd transmitter dr mikro yg ada di tempat lain/wireless (pake TLP dan RLP 434) dikirim terus menerus sedangkan bila di bagian receiver ini bila ditambahin sama counter dan timer itu butuh waktu juga,khan!!!Jadi pembacaanya g’ sempurna ).
    tolongin donk…
    dead line TA nya udah tinggal seminggu neh….
    saya menggunakan sensor optocoupler…
    jadi rencananya khan keluaran optocouplernya masuk ke pin eksternal interrupt…Catatan:anggap aja jumlah warna hitam putih pada gear masing-masing 4 jadi satu putaran itu terjadi misalnya 4 kali rising edge…
    nah,mas bisa tidak saya minta tolong dituliskan programnya…
    catatan:
    1. kecepatan putar motor berubah-ubah
    (tergantung input dari PWMnya)…
    2. diinginkan RPMnya ditampilkan ke LCD
    3. keluran optocouplerya masing-masing 0.7 V & 5 V
    4. jumlah terjadinya rising edge pd satu rotasi=4
    5. sekalian dgn setting2nya ya, mas…
    secepatnya ya mas…
    thanks banget sebelumnya…

  22. nugo

    HALLO semua…….

    ada yang tau g list program untuk konversi suhu dari celcius ke fahrenheit dengn mnggnkan BASCOM AVR?sensor yg q gunain tu make interface I2C…
    mohon bantuannya…………trims………..

  23. teguh dwijaya

    waaaaaaaaaaaaaaaaahhh…

    jadi lbih tertarik nih mo nyoba avr nya,

    (kemarin main ke tempat temen lama, dpt oleh2 bascom-avr, but belum begitu diseriusin,.,)

    oya mas,, bisa bantu kirimin contoh2 listing programnya dong,,unt bascom nya ke email aku…(dwijayateguh@yahoo.com)
    maksih bnyk atas ilmunya dan kebaikan hatinya.,

  24. salam hangat,
    teman2 mohon pencerahanya saya masih awam di dunia mikrokontroller saya bingung mengapa atmel at89sxx dianjurkan harus menggunakan xtal 11,0592mhz tidak menggunakan xtal 12mhz, karakteristik dari osc di atmel tsb 1/12 dari frekuensi xtal jadi kita kalo pake xtal 12mhz clock nya jadi 1mhz pas, kalo pake 11,059kan jadinya kurang dari 1mhz kan ga pas mengapa??? teman2 yang baik mohon pencerahannya!!!

    setahu saya, penggunaan xtal 11,0592 lebih cocok untuk komunikasi serial karena setting UART nya bisa lebih pas. Kalau untuk timer mungkin 12mhz bisa lebih pas hitungannya timingnya.
    Mungkin yang lain bisa menambahkan?

  25. Agus

    aku penghobi elektronik,aku belajar mikro dari buku2 aku sangat familier dgn mcs51 n assembler. dan ingin juga bisa tahu Avr dgn bhs C.tolongin aku untuk menerjemahkan intruksi dari C ke assemblernya. ato kalau ada buku/leteratur yg mudah di pahami untuk belajarAVR n bhs Cnya.

  26. menyeng

    haii semua….
    pernah ada yang buat project AVR dengan protocol modbuss ga? …kolo ada boleh ga minta contohnya…

  27. nayu

    hidup AT89C51/s51… murahmeriah…buat anak kos. di bandingin harus beli atmega. mumet dikit ot’s OK. sedikit di pelajari juga mudeng.

  28. dan

    giman ya perintah program BASCOM AVR dengan menggunakan USART untuk 2 MK so program yg aq buat masih rumit kalau ada yg ngerti Bagi Ilmu dong….serrrrr

  29. andi

    pak!

    minta kirimin doang listing programnya line follower dengan menggunakan sensor d-sonar memakai atmel 89s51.

    mohon bantuannya
    trims

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.