Timer dan counter dalam mikrokontroler MCS-51 adalah satu perangkat yang sama. Perbedaanya terletak pada bagaimana bagian ini digunakan. Jika digunakan untuk mencacah detak masukan dari basis waktu yang nilainya sudah pasti (kristal, osilator tetap) maka disebut timer atau pewaktu. Jika digunakan untuk mencacah detak dari suatu kejadian eksternal atau disulut dari program yang dibuat maka disebut counter (pencacah).

Sebagai contoh jika bagian tersebut digunakan untuk menghitung cacahan saat orang mengangkat gagang telepon hingga menutup kembali pada suatu wartel maka disebut timer. Contoh lain menghitung jumlah pencacahan saat benda mulai diluncurkan pada bidang miring hingga menyentuh tanah. Pada aplikasi counter misanya menghitung jumlah kendaraan yang lewat melalui sumber detak sensor ultrasonic. Contoh lain misalnya menghitung jumlah detak yang masuk pada pin selama satu detik (frekuensi counter).

Kontruksi Timer/Counter MCS-51

Kontruksi timer/counter pada MCS-51 ditunjukkan gambar berikut.

Bagan dari kontruksi Timer/Counter MCS-51Gambar 1 Bagan dari kontruksi Timer/Counter MCS-51

Dari kontruksi tersebut dapat dijelaskan bahwa ada 2 timer/counter MCS-51 yang disebut timer 0 dan timer 1. Masing-masing memiliki satu time yang bekerja bersama dalam satu system terpisah. Pasangan tersebut adalah :

  1. Timer 0 terdiri : Pin T0, Pin Int0, TR0, TH0. TL0 dan TF0
  2. Timer 1 terdiri : Pin T1, Pin Int1, TR1, TH1. TL1 dan TF1

Selain itu perlu dijelaskan bahwa pin T0/1 dan Int0/1  diaktifkan secara perangkat keras (sumber arus listrik yang dibuat) dan berada diluar chip, sedangkan Gate dan TR0/1 diaktifkan secara software (cukup dengan instruksi program).

Mengeset Timer/Counter MCS-51

Sumber Timer atau Counter berasal dari pin T0 atau T1, padahal kaki tersebut digunakan juga untuk port 3.4 dan P3.5. Pertanyaanya adalah apakah tidak bentrok?. Dan jawabnya adalah tidak, karena diset melaui sebuah register TCON dan dikendalikan oleh register TMOD. Kedua register ini yang paling bertanggungjawab melakukan pengesetan dan pengontrolan fungsi-fungsi timer/counter. TMOD dan TCON memiliki susunan bit sebagai berikut :

Tmod MCS51

Untuk memahami fungsi-fungsi intuksi ini dapat dilihat diagram gambar 1. Untuk mengeset TMOD dilakukan dengan contoh instruksi :

MOV                  TMOD,#53H

TCON

Untuk pengaktifan TCON pada umumnya dilakukan operasi bit karena lebih mudah dalam investigasi program, misalnya :

SETB     TR1                  ; timer 1 di jalankan

CLR      TR0                  ; timer 0 di stop

CLR      TF1                   ; Tanda overflow pada timer 1 diset ‘0’

Perlu diketahui bahwa timer/counter dalam MCS-51 memiliki sifat independen terhadap siklus intruksi di dalam chip. Artinya pencacahan yang dilakukan tanpa menunggu urutan mikrokoktroler dalam melakukan siklus instruksi. Untuk mrngambal hasil pencacahan tinggal dilakukan pemindahan register TL0, TH0, TL1 atau TH1 ke akumulator, misalnya :

MOV     A,TH1

MOV      R1,A

MOV      A,TL1

MOV     R2,A