Counter atau yang biasa disebut pencacah (penghitung) merupakan rangkaian logika sekuensial yang berfungsi untuk menghitung jumlah pulsa pada bagian masukan. Counter terdiri dari beberapa rangkaian flip-flop yang jumlahnya disesuaikan dengan kebutuhan. Counter dapat digunakan untuk penghitung jarak (odometer), penghitung kecepatan (spedometer), dan lain-lain.
Secara umum counter dikategorikan ke dalam dua jenis yaitu, Counter Asinkron dan Counter Sinkron.
Selain itu, counter juga dapat dilihat berdasarkan arah cacahannya yaitu, Pencacah Naik (Counter Up) dan Pencacah Turun (Counter Down). Adapun penjelasannya adalah sebagai berikut:
5.1.1 Counter Asinkron
Disebut counter asinkron karena aktivitas picu dilakukan tidak secara bersama sama. Counter asinkron terdiri atas beberapa flip-flop yang dikonfigurasikan dengan menyambung outputnya satu sama lain. Prinsip kerjanya adalah flip-flop A harus mengubah keadaan terlebih dahulu sebelum memicu pada flip-flop B, lalu flip-flop B harus mengubah keadaan sebelum memicu pada flip-flop C dan begitupun seterusnya.
5.1.2 Counter Sinkron
Disebut counter sinkron karena aktivitas picu dilakukan secara bersama sama atau serempak.
Perhitungan di setiap flip-flopnya menerima input clock pada saat yang bersamaan, ini terjadi karena counter sinkron dirangkai secara parallel. Prinsip kerja dari counter sinkron adalah sama dengan counter asinkron, sehingga keluaran yang dihasilkan juga akan sama.
5.1.3 Counter Up
Counter up adalah counter yang dapat menghitung mulai dari bilangan terkecil hingga bilangan terbesar.
5.1.4 Counter Down
Counter down adalah counter yang dapat menghitung mulai dari bilangan terbesar hingga bilangan terkecil.
6.1 Register
Register merupakan sekumpulan sel biner yang digunakan untuk menyimpan data sementara atau informasi yang akan ditampilkan dalam bentuk kode biner. Data yang tersimpan di dalam register dapat digeser, dibaca, maupun dihapus. Dalam proses penyimpanan bit bilangan biner diperlukan flip-flop yang dihubungkan agar dapat dimasukkan dan dikeluarkan dari register.
6.1.1 Shift Register
Shift Register merupakan register yang dapat memproses perpindahan atau pergeseran bit bilangan biner ke arah kanan dan kiri sesuai dengan sinyal clock yang diterima. Pada shift register terdapat flip-flop yang saling terhubung dan ketika sinyal clock diterima, nilai bit pada flip-flop pertama akan dipindahkan ke flip-flop kedua dan begitupun seterusnya.
6.2 Jenis-jenis Shift Register
6.2.1 Parallel Input Serial Output (PISO)
Register PISO merupakan shift register yang menerima masukan input secara paralle dan
mengeluarkan output secara seri. Shift register ini memiliki empat jalur masukan data dan satu jalur untuk keluaran. Data yang masuk bergeser bersamaan ke kanan sehingga data yang keluar satu persatu.