Counter juga disebut pencacah atau penghitung yaitu rangkaian logika sekuensial yang digunakan untuk menghitung jumlah pulsa yang diberikan pada bagian masukan. Counter digunakan untuk berbagai operasi aritmatika, pembagi frekuensi, penghitung jarak (odometer), penghitung kecepatan (spedometer), yang pengembangannya digunakan luas dalam aplikasi perhitungan pada instrumen ilmiah, kontrol industri, komputer, perlengkapan komunikasi, dan sebagainya .
Counter tersusun atas sederetan flip-flop yang dimanipulasi sedemikian rupa dengan menggunakan peta Karnough sehingga pulsa yang masuk dapat dihitung sesuai rancangan. Dalam perancangannya counter dapat tersusun atas semua jenis flip-flop, tergantung karakteristik masing-masing flip-flop tersebut.
Dilihat dari arah cacahan, rangkaian pencacah dibedakan atas pencacah naik (Up Counter) dan pencacah turun (Down Counter). Pencacah naik melakukan cacahan dari kecil ke arah besar, kemudian kembali ke cacahan awal secara otomatis. Pada pencacah menurun, pencacahan dari besar ke arah kecil hingga cacahan terakhir kemudian kembali ke cacahan awal.
Tiga faktor yang harus diperhatikan untuk membangun pencacah naik atau turun yaitu (1) pada transisi mana Flip-flop tersebut aktif. Transisi pulsa dari positif ke negatif atau sebaliknya, (2) output Flip-flop yang diumpankan ke Flip-flop berikutnya diambilkan dari mana. Dari output Q atau Q, (3) indikator hasil cacahan dinyatakan sebagai output yang mana. Output Q atau Q. ketiga faktor tersebut di atas dapat dinyatakan dalam persamaan EX-OR.
Secara global counter terbagi atas 2 jenis, yaitu: Syncronus Counter dan Asyncronous counter. Perbedaan kedua jenis counter ini adalah pada pemicuannya. Pada Syncronous counter pemicuan flip-flop dilakukan serentak (dipicu oleh satu sumber clock) susunan flip-flopnya paralel. Sedangkan pada Asyncronous counter, minimal ada salah satu flip-flop yang clock-nya dipicu oleh keluaran flip-flop lain atau dari sumber clock lain, dan susunan flip-flopnya seri. Dengan memanipulasi koneksi flip-flop berdasarkan peta karnough atau timing diagram dapat dihasilkan counter acak, shift counter (counter sebagai fungsi register) atau juga up-down counter.
1). Synchronous Counter
Syncronous counter memiliki pemicuan dari sumber clock yang sama dan susunan flip-flopnya adalah paralel. Dalam Syncronous counter ini sendiri terdapat perbedaan penempatan atau manipulasi gerbang dasarnya yang menyebabkan perbadaan waktu tunda yang di sebut carry propagation delay.
Penerapan counter dalam aplikasinya adalah berupa chip IC baik IC TTL, maupun CMOS, antara lain adalah: (TTL) 7490, 7493, 74190, 74191, 74192, 74193, (CMOS) 4017,4029,4042,dan lain-lain.
Pada Counter Sinkron, sumber clock diberikan pada masing-masing input Clock dari Flip-flop penyusunnya, sehingga apabila ada perubahan pulsa dari sumber, maka perubahan tersebut akan men-trigger seluruh Flip-flop secara bersama-sama.
Tabel Kebenaran untuk Up Counter dan Down Counter Sinkron 3 bit :
Rangkaian Up/Down Counter merupakan gabungan dari Up Counter dan Down Counter. Rangkaian ini dapat menghitung bergantian antara Up dan Down karena adanya input eksternal sebagai control yang menentukan saat menghitung Up atau Down. Pada gambar 4.4 ditunjukkan rangkaian Up/Down Counter Sinkron 3 bit. Jika input CNTRL bernilai ‘1’ maka Counter akan menghitung naik (UP), sedangkan jika input CNTRL bernilai ‘0’, Counter akan menghitung turun (DOWN).
2). Asyncronous counter
Seperti tersebut pada bagian sebelumnya Asyncronous counter tersusun atas flip-flop yang dihubungkan seri dan pemicuannya tergantung dari flip-flop sebelumnya, kemudian menjalar sampai flip-flop MSB-nya. Karena itulah Asyncronous counter sering disebut juga sebagai ripple-through counter.
Sebuah Counter Asinkron (Ripple) terdiri atas sederetan Flip-flop yang dikonfigurasikan dengan menyambung outputnya dari yan satu ke yang lain. Yang berikutnya sebuah sinyal yang terpasang pada input Clock FF pertama akan mengubah kedudukan outpunyanya apabila tebing (Edge) yang benar yang diperlukan terdeteksi.
Output ini kemudian mentrigger inputclock berikutnya ketika terjadi tebing yang seharusnya sampai. Dengan cara ini sebuah sinyal pada inputnya akan meriplle (mentrigger input berikutnya) dari satu FF ke yang berikutnya sehingga sinyal itu mencapau ujung akhir deretan itu. Ingatlah bahwa FF T dapat membagi sinyal input dengan faktor 2 (dua). Jadi Counter dapat menghitung dari 0 sampai 2” = 1 (dengan n sama dengan banyaknya Flip-flop dalam deretan itu).
Tabel Kebenaran dari Up Counter Asinkron 3-bit
Gambar rangkaian Up Counter Asinkron 3 bit :
Timing Diagram untuk Up Counter Asinkron 3 bit :
Berdasarkan bentuk timing diagram di atas, output dari flip-flop C menjadi clock dari flip-flop B, sedangkan output dari flip-flop B menjadi clock dari flip-flop A. Perubahan pada negatif edge di masing-masing clock flip-flop sebelumnya menyebabkan flip-flop sesudahnya berganti kondisi (toggle), sehingga input-input J dan K di masing-masing flip-flop diberi nilai ”1” (sifat toggle dari JK flip-flop).
Counter Asinkron Mod-N
Counter Mod-N adalah Counter yang tidak 2n. Misalkan Counter Mod-6, menghitung : 0, 1, 2, 3, 4, 5. Sehingga Up Counter Mod-N akan menghitung 0 s/d N-1, sedangkan Down Counter MOD-N akan menghitung dari bilangan tertinggi sebanyak N kali ke bawah. Misalkan Down Counter MOD-9, akan menghitung : 15, 14, 13, 12, 11, 10, 9, 8, 7, 15, 14, 13,..
Gambar rangkaian Up Counter Asinkron Mod-6
Sebuah Up Counter Asinkron Mod-6, akan menghitung : 0,1,2,3,4,5,0,1,2,… Maka nilai yang tidak pernah dikeluarkan adalah 6. Jika hitungan menginjak ke-6, maka counter akan reset kembali ke 0. Untuk itu masing-masing Flip-flop perlu di-reset ke nilai ”0” dengan memanfaatkan input-input Asinkron-nya (dan ). Nilai ”0” yang akan dimasukkan di PC didapatkan dengan me-NAND kan input A dan B (ABC =110 untuk desimal 6). Jika input A dan B keduanya bernilai 1, maka seluruh flip-flop akan di-reset.
Gambar rangkaian Up/Down Counter Asinkron 3 bit
Rangkaian Up/Down Counter merupakan gabungan dari Up Counter dan Down Counter. Rangkaian ini dapat menghitung bergantian antara Up dan Down karena adanya input eksternal sebagai control yang menentukan saat menghitung Up atau Down. Pada rangkaian Up/Down Counter ASinkron, output dari flip-flop sebelumnya menjadi input clock dari flip-flop berikutnya.
Perancangan Counter
Perancangan counter dapat dibagi menjadi 2, yaitu dengan menggunakan peta Karnough, dan dengan diagram waktu. Berikut ini akan dijelaskan langkah-langkah dalam merancang suatu counter.
a). Perancangan Counter Menggunakan Peta Karnaugh
Umumnya perancangan dengan peta karnaugh ini digunakan dalam merancang syncronous counter. Langkah-langkah perancangannya:
a. Dengan mengetahui urutan keluaran counter yang akan dirancang, kita tentukan masukan masing-masing flip-flop untuk setiap kondisi keluaran, dengan menggunakan tabel kebalikan.
b. Cari fungsi boolean masing-masing masukan flip-flop dengan menggunakan peta Karnough. Usahakan untuk mendapatkan fungsi yang sesederhana mungkin, agar rangkaian counter menjadi sederhana.
c. Buat rangkaian counter, dengan fungsi masukan flip-flop yang telah ditentukan. Pada umumnya digunakan gerbang-gerbang logika untuk membentuk fungsi tersebut.
b). Perancangan Counter Menggunakan Diagram Waktu
Umumnya perancangan dengan diagram waktu digunakan dalam merancang asyncronous counter, karena kita dapat mengamati dan menentukan sumber pemicuan suatu flip-flop dari flip-flop lainnya. Adapun langkah-langkah perancangannya:
1) Menggambarkan diagram waktu clock, tentukan jenis pemicuan yang digunakan, dan keluaran masing-masing flip-flop yang kita inginkan. Untuk n kondisi keluaran, terdapat njumlah pulsa clock.
2) Dengan melihat keluaran masing-masing flip-flop sebelum dan sesudah clock aktif (Qn dan Qn+1), tentukan fungsi masukan flip-flop dengan menggunakan tabel kebalikan.
3) Menggambarkan fungsi masukan tersebut pada diagram waktu yang sama.
4) Sederhanakan fungsi masukan yang telah diperoleh sebelumnya, dengan melihat kondisi logika dan kondisi keluaran flip-flop. Untuk flip-flop R-S dan J-K kondisi don’t care (x) dapat dianggap sama dengan 0 atau 1.
5) Tentukan (minimal satu) flip-flop yang dipicu oleh keluaran flip-flop lain. Hal ini dapat dilakukan dengan mengamati perubahan keluaran suatu flip-flop setiap perubahan keluaran flip-flop lain, sesuai dengan jenis pemicuannya.
6) Buat rangkaian counter, dengan fungsi masukan flip-flop yang telah ditentukan. Pada umumnya digunakan gerbang-gerbang logika untuk membentuk fungsi tersebut.