Kamis, 30 Desember 2010

Mengenal Counter Pada Mikrokontroler

Setelah sudah lama tidak membahas tentang Mikrokontroler, akhirnya bias share ilmu sedikit lagi nih.. yah hitung – hitung menyebarkan ilmu yang mungkin dapat bermanfaat untuk pembaca setia blog ini.

Pengertian Counter

Secara bahasa counter berarti pencacah, artinya rangkaian ataupun aplikasi counter bias digunakan untuk mencacah / menghitung baik hitungan secara keatas (counter up) ataupun menghitung mundur (counter down). Untuk aplikasi dilapangan biasanya digunakan pada conveyor untuk level industry ataupun aplikasi lainnya, secara hardware pun counter bisa digunakan untuk sensor apapun tetapi lebih ke sensor yang keluarannya berupa lebel tegangan digital semisal, push button, saklar proximity tetapi bukan berarti tidak bisa digunakan pada tegangan analog seperti suhu, tekanan dan lainnya, hanya saja sedikit kurang maksimal.

Counter pada Mikrokontroler

Pada pembahasan tentang counter ini mungkin dikhusukan pada mikrokontroler keluarga ATmega tipe apapun. Sesuai dengan pembahasa diatas mengenai pengertian rangkain counter sebenarnya dengan menggunakan bahasa pemrograman tingkat tinggi (high level language) semisal basic dengan compilernya Bascom (Basic compiler) ataupun C dengan compiler Codevision AVR kita dapat “mengakali aplikasi counter secara software missal:

Do

if tombol = 1 then

A = A + 1

If A =5 then

Lampu = 1

End if

Program diatas merupakan program counter menggunakan bahasa basic yang dimana ketika tombol ditekan sebanyak 5 kali baru lampu akan hidup. Namun kali ini saya akan membahas tentang menggunakan fasilitas counter pada hardware mikrokontroler (yang biasanya pada datasheet disebut interupsi baik interupsi timer maupun counter).

Agar lebih mudah memahami interupsi, kita langsung menganalisi contoh aplikasi berikut:

Rangkaian aplikasi Interupsi

Tambahkan push button ataupun sensor pada pin int0 atau int1

Program dengan menggunakan Bascom

$regfile = “Mega8538.dat”

Dim A as byte, B as bit

Enable interrupts

Enable Int0

On Int Count

Set Tcon.0

A=0

Do

PortA=A

Loop Until A=25

End

Count:

A=A+1

Return


Penjelasan Program

Enable Interrupts, digunakan untuk membolehkan semua interupsi

Enable Int0, digunakan untuk membolehkan Interupsi eksternal 0

On Int0 count, jika terjadi interupsi eksternal 0 maka program akan melopat menuju count:

Set Tcon.0, digunakan untuk mengaktifkan interupsi.

*Ket: untuk jenis interuspsi(mis: interupsi eksternal/internal,Tcon.1/Tcon0,dll) sesuai datasheet pada mikrokontroler.

Mudahkan…

Selamat belajar

Salam santun…

1 komentar:

  1. terimkasih mas atas sharingnya,mas kalau boleh saya mau tanya bagaimana source code BASCOM,dengan fungsi Sbb :
    Disaat start awal pinb.7 aktiv setelah 3detik,
    lalu setelah pind.5 counter sebanyak 5 kali
    maka pinb.7 inactiv
    output>pinb.7
    input>pind5
    atas perhatiannya saya ucapkan terimakasih

    BalasHapus

Silahkan tinggalkan komentar...