Pertanyaan seputar buku “Mudah dan Menyenangkan Belajar Mikrokontroler”

Seorang pembaca buku Mudah dan Menyenangkan Belajar Mikrokontroler bertanya sebagai berikut:

  1. Pada listing program jam digital yang sudah ada tombol (hal. 91), tolong jelaskan lebih lanjut tentang penggunaan dan perhitungan Timer 0 Mode 2 sehingga menghasilkan timer 1 detik yang akurat.
  2. Tolong jelaskan lebih lanjut tentang cara kerja listing pengambilan data tombol (hal. 119).
  3. Bagaimana cara menggunakan deklarasi variabel dalam listing berekstensi *.M51 seperti: ~byte, ~bit,~word, dan ~array?
  4. Bagaimana cara menggunakan tool: virtual LCD, Tombol, MXLED, dalam simulator?
  5. Nah, pertanyaan selanjutnya mungkin tidak berhubungan dengan buku, namun masih seputar mikrokontroler. Bagaimana membuat 1 tombol menjadi 2 fungsi? Misalnya kita pasang tombol pada P3.0. Jika ditekan 1x maka akan menjalankan subprogram A dan jika ditekan 2x akan menjalankan subprogram B.
  6. Mas, saya mencoba membuat rangkaian PCB jam dan saya memasukan listing program debouncing 2.HEX. Hasilnya memang berjalan dengan sempurna. Tapi saat tombol pengubah menit atau jam ditekan, 7 segment tidak langsung berubah angkanya tapi menunggu dulu program menyelesaikan hitungan menit. Bagaimana cara agar langsung berubah?

Dan inilah jawabannya:

  1. Timer 1 detik yang akurat.

    Sebenarnya keterangan di buku sudah cukup jelas. Pertama, kristal yang digunakan adalah 11,0592MHz. Dengan demikian kecepatan siklus mesin adalah 921,6KHz (11,0592MHz/12). Kedua, TH0 diisi #0, yang artinya interupsi timer0 akan dipanggil setiap 256 siklus mesin. Ingat bahwa TH=256-interval atau interval=256-TH. Dengan demikian interval pemanggilan adalah 256 siklus mesin.

    Dari kedua data tadi kita bisa menghitung kecepatan pemanggilan terhadap interupsi timer0 adalah 3600Hz (921,6KHz/256). Nah, untuk memperoleh 1 detik, kita harus membagi lagi interval ini dengan 3600. Jadi kita melakukannya dengan dua tingkatan, yaitu dibagi dengan 225 (3600/225=16), kemudian kita bisa langsung membagi hasilnya dengan 16 untuk memperoleh frekuensi 1 Hz. Akan tetapi karena kita membutuhkan frekuensi 2 Hz untuk mengatur kedipan titik, maka kita tidak membagi dengan 16 tetapi dengan 8.

    Frekuensi 1 Hz diperoleh dengan flip-flop yang merupakan pembagi 2. Flip-flop ini diperoleh dengan menggunakan perintah cpl pada sebuah bendera (Bendera1Detik). Semoga cukup jelas.

    Kembali ke atas

  2. Teknik mengambil data tombol dengan debouncing.

    Potongan program tersebut akan mengambil data beberapa tombol secara bersamaan dan telah dilakukan debouncing. Jadi kita bisa menggunakan sembarang tombol dan tidak perlu kuatir dengan yang namanya bounce. Cara menggunakannya tinggal dipanggil saja nama prosedurnya, yaitu “AmbilTombol”.

    Setelah pemanggilan terhadap prosedur ini, maka Acc akan berisi data tombol. Sebagai contoh, jika tombol dipasang pada bit0 dan bit1, maka setelah pemanggilan prosedur ini, A akan berisi 0 jika tidak ada tombol yang ditekan, 1 jika tombol pada bit0 saja yang ditekan, 2 jika tombol pada bit1 saja yang ditekan, dan 3 jika kedua tombol ditekan.

    Tentu saja nilai yang dihasilkan tergantung di mana saja tombol dipasang. Kita tinggal melihat pada nilai bitnya. Bit0 bernilai 1 dan bit2 bernilai 2. Tentang bagaimana hal itu terjadi, coba perhatikan pada flowchart yang disertakan. Pelajari baik-baik flowchart tersebut. Semoga cukup jelas.

    Kembali ke atas

  3. Alokasi memori untuk variabel dengan teknik yang memudahkan jika terjadi perubahan.

    Variabel ~byte, ~bit, ~word, dan ~array adalah cara yang relatif mudah untuk mengatur lokasi memory dibanding dengan mengatur lokasi memori dengan cara seperti:

      Buffer  equ 8  ;misalkan butuh 4 byte
      Angka   equ 12
      Puluhan equ 13
      Satuan  equ 14

    Akan lebih mudah jika kita menggunakan:

      ~Array 4 Buffer
      ~byte Angka Puluhan Satuan

    Dengan cara yang kedua, kita akan menempatkan Buffer pada lokasi 8, Angka pada lokasi 12, Puluhan pada lokasi 13, dan Satuan pada lokasi 14. Dan secara otomatis akan ada sebuah konstanta yang menyimpan posisi tertinggi dari lokasi memori yang tidak digunakan. Pada posisi inilah sebaiknya stack disimpan untuk inisiasinya. Konstanta ini diberi nama SaveStack. Dengan demikian, kita bisa menginisiasi stack dengan:

      mov SP,#SaveStack

    dan itu akan sama artinya dengan:

      mov SP,#14

    karena lokasi tertinggi yang digunakan adalah 14.

    Jika kita menggunakan cara yang pertama dan kita hendak mengubah kebutuhan memori untuk Buffer menjadi hanya 2 byte, kita akan mengaturnya menjadi:

      Buffer  equ 8
      Angka   equ 10
      Puluhan equ 11
      Satuan  equ 12

    dan pada inisiasi stack menjadi:

      mov SP,#12

    Nah, kita harus mengubah semua angka pada pengaturan lokasi memorinya. Tapi jika kita menggunakan cara yang kedua, maka kita cukup mengganti bilangan 4 menjadi 2 pada deklarasi ~array seperti:

      ~Array 2 Buffer
      ~byte Angka Puluhan Satuan

    atau karena Buffer hanya membutuhkan 2 byte, maka kita bisa menggantinya dengan tipe ~word seperti:

      ~word Buffer
      ~byte Angka Puluhan Satuan

    Perhatikan bahwa kita hanya mengubah bagian deklarasi Buffer dan tidak ada bagian lain yang kita ubah.

    Sedangkan variabel ~bit merupakan variabel berukuran 1 bit yang ditempatkan pada lokasi 20H.0 hingga 3FH.7.

    Penempatan semua variabel tersebut selalu mencari lokasi terbawah yang masih kosong dimulai dari alamat 8 (default) atau bisa dipindah ke posisi tertentu menggunakan ~basequ.

    Dan sebenarnya tentang ini juga sudah ada di lampiran pada buku. Semoga cukup jelas.

    Kembali ke atas

  4. “Virtual LCD” (Simulasi LCD), “MXLED” (Simulasi Matriks LED), dan “Tombol” (Simulasi tombol dengan keyboard).

    • “Virtual LCD” bisa digunakan untuk percobaan yang membutuhkan tampilan karakter yang cukup banyak. Simulasi ini bisa dihubungkan dengan rangkaian nyata menggunakan koneksi serial. Lihat Bab 19 buku “Mudah dan Menyenangkan Belajar Mikrokontroler”. Akan tetapi simulasi ini juga bisa digunakan dari simulator dengan “Link Message”. Untuk melakukan hal tersebut, pilih Com yang digunakan berupa “Message”. Jika Data penekanan tombol keyboard hendak dikirim ke simulator melalui komunikasi serial (diterima di SBUF), maka “Message yang dikirim” harus diisi dengan 1035. Sedangkan jika data diinginkan untuk diterima oleh port, maka “Message yang dikirim” adalah 1034 dan “lParam yang dikirim” diisi dengan nomor port, yaitu 0, 1, 2, atau 3. Disamping itu “Handle” harus mengarah ke simulator yang aktif. Kita bisa menggunakan tombol “Capture Handle” kemudian klik pada jendela simulator yang dituju. Selain melakukan pengaturan pada “Virtual LCD”, port simulator juga harus disesuaikan. Jika simulator ingin mengirimkan data ke “Virtual LCD” melalui simulasi serial, maka Com harus menggunakan “Message” dan mengatur “Handle” agar mengarah ke “Virtual LCD” yang dituju dengan “Message yang dikirim” berupa WM_USER (1024). Sedangkan jika simulator hendak mengirim datanya melalui port, maka kita harus mengatur port untuk di “Link Message” ke arah “Virtual LCD” tersebut.
    • “MXLED” merupakan simulasi Matriks LED. Simulasi ini juga menerima data melalui “Link Message” dari pengaturan port pada simulator. Karena penjelasannya agak panjang, maka saya tempatkan pada post tersendiri yaitu di Menampilkan Gambar pada LED Matriks Menggunakan Simulator.
    • Untuk “Tombol”, jika pengaturan port pada simulator menggunakan “Link Message”, maka penekanan keyboard pada “Tombol” akan dikirim ke simulator. “Tombol” sendiri tidak membutuhkan pengaturan, karena secara otomatis dia akan mencari simulator yang sedang aktif.

    Kembali ke atas

  5. Satu tombol untuk banyak fungsi.

    Pemrograman tombol yang seperti itu membutuhkan pewaktuan yang cukup teliti. Pertama adalah melakukan pengecekkan apakah tombol ditekan atau tidak. Jika ya, maka dimulailah proses pendeteksian tombol.

    Pendeteksian tombol ini pada dasarnya adalah sama dengan debouncing lainnya, yaitu menunggu sampai tombol dilepas lagi, tapi jika tombol telah dilepas tidak langsung menganggap bahwa tombol telah dilepas. Ada sebuah waktu minimum sehingga tombol yang telah dilepas benar-benar dianggap telah dilepas. Jika waktu tersebut tidak tercapai, maka penekanan tombol berikutnya masih akan dianggap sebagai bagian dari penekanan tombol sebelumnya.

    Sekarang jika tombol telah memenuhi syarat untuk dianggap telah dilepas, artinya waktu tunggu minimum (debouncing timeout) terlampaui. Program tidak langsung melakukan aksi tertentu tetapi hanya menaikkan variabel yang menyatakan jumlah penekanan tombol, kemudian menunggu lagi adanya penekanan tombol berikutnya. Hal ini dilakukan dengan membuat bendera yang menyatakan bahwa program sedang menunggu penekanan tombol lagi. Waktu tunggu ini sekarang kita sebut sebagai “next press timeout”. Jika tombol ditekan lagi sebelum waktu tunggu terlampaui, maka penekanan tersebut hanya akan menaikkan perhitungan jumlah penekanan. Program hanya akan memproses data penekanan tombol hanya jika “next press timeout” terlampaui.

    Anda bisa mendownload program contoh yang merupakan penghitung dua digit 0 – 99. Port0 digunakan untuk mengirimkan data segment, Port1 untuk kendali digit, sedangkan Port3.0 digunakan sebagai tombol. Untuk menaikkan hitungan, kita harus menekan tombol sekali. Sedangkan untuk menurunkan hitungan, kita harus menekan tombol dua kali dengan interval yang cepat. Kita juga bisa langsung mencapai nilai 99 dengan cara menekan tombol empat kali dengan cepat. Sedangkan untuk lansung mengembalikan ke 0, maka kita harus menekan tombol tiga kali dengan cepat.

    Dari contoh ini, kita bisa menggunakan satu tombol untuk banyak aksi. Akan tetapi ingat, jika Anda membuat program dan ada fungsi yang dijalankan dengan cara menekan tombol secara cepat hingga sepuluh kali, bisa dipastikan akan tidak nyaman dalam penggunaannya :(

    Kembali ke atas

  6. Revisi contoh program jam digital dengan tombol yang di debouncing.

    Setelah saya cek kembali, mamang ada yang kurang dan ada beberapa yang salah. Seharusnya pada MainLoop susunannya adalah seperti:

                  mov   R4,#NoMode     ;R4 =status mode
       MainLoop0: acall IsiBuffer
       MainLoop:  acall AmbilTombol

    Dan setiap selesai melakukan perubahan pada data baik menit ataupun jam, maka melompatnya adalah ke arah MainLoop0 dan bukan ke MainLoop. Selain itu, konstanta untuk penekanan tombol seharusnya adalah:

       S1ditekan   equ   00010000b ;aslinya =00001000b
       S2ditekan   equ   00100000b ;aslinya =00010000b
       S1S2ditekan equ   00110000b ;aslinya =00011000b

    Dan penyaringan tombol pada “AmbilTombol” seharusnya:

       AmbilTombol_:
                   mov   A,P3
                   cpl   a            ;pembalikan data
                   anl   A,#00110000b ;aslinya =00011000b
                   ret

    Kesalahan tersebut mengakibatkan pembacaan tombol menjadi keliru karena posisi tombol berada pada P3.4 dan P3.5 bukan pada P3.3 dan P3.4. Akan tetapi saya telah membuat versi revisinya dengan sedikit tambahan sehingga saat status mode berada pada ModeJam, maka digit jam akan dikedipkan. Demikian juga saat status mode berada pada ModeMenit, maka digit menit juga akan dikedipkan. Dengan demikian pemakai tahu apa yang akan terjadi jika tombol ditekan. Listing program revisi bisa didownload di sini.

    Kembali ke atas

Yang bisa didownload dari post ini:

  1. Contoh program satu tombol banyak fungsi
  2. Revisi program Debouncing 2

Apakah Anda menyukai post ini? Mengapa tidak memberikan komentar di bawah dan melanjutkan perbincangan, atau berlangganan my feed dan dapatkan artikel semacam ini yang dikirm secara otomatis feed reader Anda.
Harap diperhatikan bahwa komentar atau pertanyaan yang disampaikan haruslah sesuai dengan topik yang sedang dibahas. Komentar atau pertanyaan yang tidak sesuai dengan topik akan kami hapus :!:

37 Komentar
  1. 1.Apakah penambahan perintah pada alamat Timer 0 menyebabkan perhitungan waktu menjadi tidak akurat? Dalam Hal ini saya memodifikasi listing Debounching.A51 yang terdapat di buku karangan anda dengan menambah kan beberapa perintah pada alamat timer 0 hasilnya perhitungan waktu 1 detik menjadi lebih cepat dari sebelumnya.
    2. Sensor Optocoupler itu yang Bagaimana?, Yang Kaki nya 4 Menyerupai IC 4pin bukan? Terus sinyal apa yang dihasilkan (0 atau 1) dari Optocoupler tersebut?
    3. Bagaimana cara mengeser karakter Pada LCD 2×16 tepat nya pada listing program jam_LCD.A51. trus kenapa pas saya coba di simulator Programnya tidak berjalan dengan baik

    • Penambahan listing pada alamat Timer0 sangat mungkin menyebabkan perhitungan waktu menjadi tidak akurat, terutama kalau perintah yang diberikan membuat variabel perhitungan waktu menjadi kacau. Disamping itu, panjang total yang diijinkan untuk ditambahkan di situ, tidak boleh lebih panjang dari 256 siklus mesin, karena hal tersebut berarti seluruh waktu mikrokontroler akan dihabiskan oleh timer0.

      Optocoupler itu pasangan antara pemancar sinar dan penerima sinar (sangat dianjurkan yang infra red). Ada yang memang sudah dalam bentuk pasangan, bisa juga membuatnya dari dua buah LED infra red. LED yang satu digunakan sebagai pemancar, dan LED yang lainnya digunakan sebagai penerima. Pada contoh di buku, yang digunakan sebagai penerima adalah transistor foto. Tentu saja sinyal yang dihasilkan harus bisa diartikan menjadi 0 (L) atau 1 (H) agar bisa dimengerti oleh mikrokontroler.

      JAM_LDC.A51 tidak dirancang untuk dijalankan oleh simulator, tetapi untuk LCD yang sesungguhnya. Virtual LCD memiliki protokol yang berbeda dengan LCD yang sesungguhnya. Jadi tidak kompatibel. Kalau mau mencoba dengan simulator, pakaliah program JAM_LCD_SERIAL.A51 :)

  2. Terimakasih Bapak atas solusi permasalahan program jam sudah selesai, tapi ada pertanyaan yang lain yang tidak ada hubungannya dengan program, tapi masih seputar jam digital.
    Saya membuat display dari LED yang saya susun menyerupai 7 segmen, saya sudah menggunakan LED super bright, dan power suply saya kira sudah cukup, tetapi nyala LED tidak begitu terang. Apakah ada cara atau trik agar LED yang saya fungsikan sebagai display bisa terang.

    Terima kasih

    • Mr. Supriyono >>
      Batas max arus untuk P1-P3 adalah 15 mA. Bright LED membutuhkan arus yang relatif besar sehingga harus ditambah penguat dengan transistor.

    • Terimakasih Pak Sulhan atas jawabannya, tapi saya masih bingung untuk membuat penguat untuk menyalakan & segmen supaya lebih terang. Apakah menggunakan 8 transistor untuk 7 segmen. Berarti, arus yang lewat 7 segmen melewati 2 transistor, yang satu untuk commmon dan dan yang satu penguat yg baru ini.Yang paling baik tipe transistornya apa ?

      Terimakasih

    • Ya, benar. Jadi baik port yang mengendalikan digit, maupun port yang mengendalikan segment, sama-sama menggunakan transistor. Tentu saja arus yang melalui transistor untuk pengendali digit akan sekitar 8x arus yang melalui transistor pengendali segment.
      Transistor yang paling baik untuk digunakan? ya.. yang penting cukup kuat untuk men-supply arus. Sedangkan masalah kecepatan tidak terlalu penting karena kecepatan switchingnya juga hanya lambat saja. Hitung saja kebutuhan arus kolektornya, trus perhitungkan juga dengan kemampuan port untuk menyupply basisnya. Kalo kebutuhan arus kolektor memang cukup besar, mungkin juga perlu untuk di-darlington.

  3. Assalamu ‘alaikum,
    Bagaimana memodifikasi program jam digital agar efek blink, saat setting jam, bisa kembali kekondisi normal apabila tidak ada switch yang ditekan selama waktu tertentu ( misal 30 detik ). Jadi saat akan setting jam/menit, dan tidak jadi maka dibiarkan saja akan kembali normal.
    Terimaksih atas jawabannya.

    Salam hormat,
    Supriyono

    • Itu gampang sekali. Kita lihat bahwa pengaturan jam atau menit ditentukan oleh kondisi R4. Jika R4=#NoMode, maka keadaan adalah normal. Oleh karena itu, untuk mengembalikan ke keadaan normal, kita cukup mengisi R4 dengan #NoMode.

      Sedangkan untuk membuat mekanisme timeout, kita membutuhkan dua variabel lagi, misalkan KeyTimeOut, yaitu untuk perhitungan timeout, dan Detik0, yaitu untuk mengetahui apakah detik telah berubah atau belum.

      Setiap terjadi perubahan detik, maka jika KeyTimeOut belum nol, maka harus dikurangi dengan 1. Sebaliknya jika sudah nol, maka tidak ada yang perlu dilakukan lagi. Akan tetapi pada saat pertama kali KeyTimeOut berubah menjadi nol, maka kita harus mengisi R4 dengan #NoMode karena perubahan ini menunjukkan bahwa telah terjadi timeout.

      KeyTimeOut sendiri diisi setiap kali ada penekanan tombol, yaitu saat kembali dari AmbilTombol dan hasilnya tidak nol.

      Perubahan listing program (dari Debouncing2rev.A51) adalah sebagai berikut:

                    .....
      KeyTimeOut    data  20
      Detik0        data  21
      TimeOutConst  equ   30 ;30 detik
      
                    mov   R4,#NoMode
      MainLoop0:    acall IsiBuffer
      MainLoop:     mov   a,Detik
                    xrl   a,Detik0
                    jz    CekTombol
                    mov   Detik0,Detik
                    mov   a,KeyTimeOut
                    jz    CekTombol
                    djnz  KeyTimeOut,CekTombol
                    mov   R4,#NoMode
      CekTombol:    acall AmbilTombol
                    jz    MainLoop
                    mov   KeyTimeOut,#TimeOutConst
      
                    cjne  A,#S1S2ditekan,maybeS1
                    .....
      

  4. Assalamu alaikum wr. wb.
    Gimana kabarnya, kok jarang online. Aku juga akhir2 ini jarang online, lagi agak repot.

    Iya kayaknya menyerah deh Pak Sulhan tentang PR nya, masih belum ngatasi ilmunya.

    Mohon pencerahan.

    Salam hormat

  5. ass wr wb

    Mohon tambahan list program untuk menambah detik satuan dan puluhan, terimah kasih.

  6. saya ingin download debouncing2 rev A51 tapi tidak dapat gimana caranya?
    trims

    • OIa, maaf, tp sekarang sudah bisa kok. Coba lagi ya :)

  7. Hallo,, mw tanya donk.. bisa buatin program untuk Lan tester menggunakan Mikon ga?? yang terhubung dengan lcd..dan led,,
    jadi klo kabel’ya straight maka akan tampil tulisan di LCD =”STRAIGHT”; klo cross tulisan di LCD = “CROSS”..

    Terimakasih sebelumnya.. ^_^

  8. Mas mau tanya,
    Pada skema rangkaian Bab “kendali motor DC”,
    Rangkaian DAC yang digunakan dar bab sebelumnya ya??
    sensor optocoupler gimana maksudnya??

    • @Fandy: Bener, pake DAC dari percobaan sebelumnya. Optocoupler itu pasangan antara pemancar infrared dan penerima infrared. Kalau tidak ada yg sudah jadi, bisa jg dibuat sendiri menggunakan 2 buah IRLED. yang satu dipake sebagai pemancar, dan yang satunya lagi digunakan sebagai penerima. Akan tetapi bagian penerima harus dikuatkan lg dg sebuah transistor.

    • Ada 2 mas, yg r-2r atau satu lagi??
      Karena say masih menggunakan Proteus terlebih dahulu,
      Ada Opto yg sudah jadi, tp saya gak tau Opto-npn atau MOCxxx yang kita gunakan mas..
      Tolong pencerahannya :)

    • yang R-2R. klo yg satu lg kan adanya di bab sesudahnya. MOC? itu kan optoisolator? ato ada yg optocoupler ya?

    • hehe..
      kurang tau jg mas, makanya saya tanya.
      Yg DAC akan saya coba, makasih ya mas..
      Oia, DAC tu ada IC nya g mas??

    • optoisolator ya optocoupler jg sih, tp maksudku optocoupler seperti yg ada di mouse yg masih pake bola. DAC bentuk IC ya ada lah, itu di bab 18 kan ada DAC0808.

  9. saya punya tugas simulasi mengenai “seven segment 2″ dengan Proteus…

    kira2 rangkaiannya seperti ini bukan?

    http://www.facebook.com/photo.php?fbid=1513441721562&set=a.1334753414466.2041720.1399998772

    • @Aris: maksudnya rangkaian seven segmen 2 tu yg di bab 8? ya kurang lebih begitu lah, tp klo untuk bab-bab selanjutnya, listing programnya dirancang untuk jalan di kristal 11,0592MHz

    • Ooo.. begitu ya mas…

      jadi, untuk seven segmen 2 yg di bab 8, cuma mnghidupkan 4 led seven segmen ya mas?

      pas saya running simulasi dgn mmakai listing program seven segmen keseluruhan pada bab 8, yang tampil pada simulasi hanya menghidupkan keempat seven segmen dengan angka 0.

    • @ Aris
      Sebenarnya itu menyalakan 7-segment untuk menampilkan menit dan jam. Akan tetapi perubahan menitnya bukan berdasarkan menit yg sesungguhnya, tetapi berdasarkan delay. Jika ingin melihat perubahannya secara lebih cepat, ganti
      mov R7,#255
      pada baris 121 menjadi
      mov R7,#2

  10. Mas saya sudah buat rangkaian “pengendalian motor DC”
    Apakah seperti ini rangkaiannya??
    http://www.mediafire.com/?85k4jl772dghrf1

    Tp LEDnya tidak menyala :(
    Lalu optocoupler dan motor bagaimana penenmpatannya??

    • @ Fandy
      Memang LED infra merah tidak kelihatan menyala. Penempatan optocoupler lihat buku hal. 146 – 147.

  11. Salam Kenal Pak Sulhan Setiawan,

    saya ifhan dri Papua,

    saya sudah membeli buku anda “MUDAH DAN MENYENANGKAN BELAJAR MIKROKONTROLER” yang ingin saya tanyakan

    1. untuk rangkaian LED pd halaman 8 (LED1)

    sekarang saya mau masukkan/imput Program k dalam Chip 89c501, nah.. saya harus membuat rangkaian baru untuk Rangkaian Serial..??

    2. apakah kita harus membuat 2 rangkaian dimana rangkaian pertama adalah rangkaian Downloader dan rangkaian ke 2 adalah rangkaian LED1.? setelah di downloader programnya ke Chip, kita pindahkan CHIp ke rangkaian LED1, begitu ya..???

    • salam kenal ifhan. downloader, atau sering jg disebut programmer itu sebuah alat tersendiri. untuk memasukan kode program ke dalam chip, maka chip tersebut langsung dipasang pada downloader dan dilakukan pengisiran sesuai prosedur dari downloader yg digunakan. ada banyak toko online yg menjual perangkat ini. bisa jg browsing2 untuk mencari rangkaian yg mungkin bisa dibuat sendiri. tetapi kalau ifhan menggunakan komputer yg tersedia port paralelnya (bukan laptop), dan chip yg digunakan adalah AT89S51/AT89S52 (bukan AT89Cxx), maka ifhan bisa melakukan download program dg cara yg mudah seperti yg ditunjukkan pada help di Microcontroller Project. Buruan download programnya :!:

  12. Buku cuma 50rb,yg didpt banyak sekali.trimakasih

  13. rangkaian di buku pak sulhn yg ad ic lm 741 itu rangkaian downloader ya…?

    • Semua rangkaian yang ada di buku adalah rangkaian untuk percobaan pada bab yang bersangkutan. Tidak ada rangkaian downloader dalam buku.

  14. as wr wb,oya pak ,kami mau pesan bukunya gmn ya caranya,soal nya kami tinggal di aceh,

  15. pak dalam buku semuanya pake at89c5..
    trus caranya buat donlodernya gimana?
    saya udah browsing2 semuanya harus punya dulu ic master(ic yg sudah terisi program)
    buat donlodernya lewat paralel.
    http://www.sulhansetiawan.com/sdownldr (ini untuk 89s5..)
    hampir seperti itu tapi untuk at89c5..

    • pak saya udah beli bukunya. isinya mantap.. tapi ic 89c51 ditempat saya susah carinya. mau praktek jadi gak bisa. :(
      gimana kalau bikin buku lagi tapi untuk komponen2 nya yg banyak dijual dipasaran ex: 89s51,52 dsb. dan donlodernya mudah dibuat.

    • Joko, Abe. AT89S51 adalah versi yang lebih baru dari AT89C51 yang kompatibel dengan AT89C51. Jadi, semua percobaan pada buku bisa langsung diterapkan untuk AT89S51 tanpa ada persoalan.

Tinggalkan komentar

Sebelum membuat komentar, pastikan Anda telah membaca komentar-komentar sebelumnya. Jangan membuat pertanyaan yang telah ditanyakan. Perhatikan pula link-link dalam artikel. Lihatlah link tersebut sebelum membuat pertanyaan, karena mungkin penjelasan dari pertanyaan Anda telah di jawab dalam link tersebut.

Komentar yang tidak mengikuti aturan ini akan dihapus!

(wajib)

(wajib)



3 + = sepuluh

Beritahu saya melalui email jika ada balasan komentar di artikel ini. Anda juga dapat berlangganan tanpa harus memberi komentar.