BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 4)


BAB TIMER/COUNTER

Ilustrasi

14. Umum. Mikrokontroler MCS-51 memiliki 2 buah timer/counter pada jenis 8051, sedangkan pada jenis 8052 terdapat 3 buah timer/counter. Timer/counter tersebut memiliki lebar data 16 bit. Perbedaan fungsi timer/counter terletak pada pulsa yang dicacah. Jika yang dicacah adalah pulsa clock internal, maka fungsi yang dijalankan adalah sebagai timer, sedangkan jika yang dicacah adalah pulsa eksternal, maka fungsinya adalah counter.
           Timer/counter digunakan misalnya untuk menghitung rentetan pulsa, atau pembangkitan delay (jeda) waktu yang presisi, pengukuran lebar pulsa, maupun penentuan frekuensi pulsa. Semua fungsi-fungsi tersebut sebenarnya bisa dikerjakan melalui manipulasi software. Akan tetapi pekerjaan prosesor pusat akan menjadi terkungkung pada rutin-rutin tersebut sehingga aplikasi-aplikasi lain menjadi sulit untuk dilaksanakan. Karenanya akan lebih meringankan jika beban pekerjaan  digantikan oleh hardware timer/counter sebagaimana yang tersedia secara internal.
      Pemakaian timer/counter diatur melalui register TMOD dan TCON. Register data counter terdiri dari masing-masing dua byte, yaitu :
            a.         TH0 dan TL0 untuk Timer 0,
            b.         TH1 dan TL1 untuk Timer 1,
            c.         TH2 dan TL2 untuk Timer 2. 

15.  Mode Operasi. Timer/counter dapat dioperasikan dalam 4 mode. Pengaturan mode ini melalui bit-bit M1 dan M0 pada register TMOD (lihat pada bab mengenai register). Fungsi timer mencacah pulsa clock internal dengan frekuensi 1/12 frekuensi osilator, sedangkan fungsi counter mencacah pulsa clock eksternal melalui pin   T0, T1 atau T2. Untuk lebih mudahnya pada pembahasan selanjutnya istilah timer/counter cukup disingkat sebagai timer saja
a.  Mode 0.   Pada mode ini timer 1 bekerja dengan lebar data 13 bit,    terdiri dari 8 bit tinggi pada register TH1   dan 5 bit rendah pada register TL1. Bit tertinggi sejumlah 3 pada register TL1 tidak dipergunakan dan isinya acak. Pada saat pencacahan mencapai data 07FFh (semua bit pada register timer 13 bit adalah 1) maka pada pencacahan berikutnya data pencacahan menjadi 0000h (terjadi overflow). Di saat kondisi ini terjadi timer 1 men-set flag interrupt TF1 pada register TCON. Untuk mengaktifkan pencacahan pada timer 1, ada dua      metode yang bisa dilakukan yaitu :
1)   Sinyal  trigger  start timer oleh hardware. Bit GATE pada  register TMOD    diset '1' dan bit TR1  pada  register  TCON  diaktifkan. Timer/counter 1 aktif jika pin INT   1 dalam kondisi high.
2)  Sinyal  trigger start timer oleh software. bit GATE pada register TMOD  diclear.  Timer/counter  1 aktif jika  TR1 pada register TCON diaktifkan.
            Pengaturan yang dilakukan pada timer 0   adalah identik dengan timer 1 seperti di atas.
      b. Mode 1. Pada mode ini timer  bekerja dengan lebar data 16 bit. Pengaturan dan metode kerjanya sama dengan mode 0.
      c.  Mode 2. Pada mode ini timer 1  bekerja dengan lebar data 8 bit pada register TL1. Register TH1 diisi dengan data yang akan otomatis dimuat ke  TL1 sebagai harga awal setelah terjadi overflow. Overflow sebagaimana pada mode 0 dan 1 akan men-set bit TF1 pada register TCON. Pengaturan yang dilakukan pada timer 0 adalah identik dengan timer 1 seperti di atas.
      d.  Mode 3.Timer 1 pada mode 3 berada pada posisi hold (menggenggam) register pencacahannya dan berhenti bekerja. Sedangkan      timer 0 bekerja sebagai dua buah timer 8 bit, masing-masing adalah TH0 dan TL0. Pengaturan timer TL0 adalah melalui bit TR0, dan bit TF0 akan di -set   jika terjadi overflow.  Pada timer TH0 pengaturannya adalah melalui bit TR1, dengan bit TF1 akan di-set jika overflow. Jika timer 0 bekerja dengan mode 3, maka timer 1 dapat bekerja dengan mode     0,1, atau 2 kecuali dengan kondisi TF1 tidak dapat di-set oleh timer 1 jika terjadi overflow, karena TF1 diset oleh timer TH0.

16.Tentang Timer 2.  Timer/counter 2 hanya terdapat pada jenis 8052.  Pemilihan mode timer/counter dapat dilakukan dengan mengatur bit C/-T2 pada register T2CON. Timer ini memiliki 3 mode operasi:  capture, auto-load, dan baud-rate generator. Pemilihan mode operasi melalui register T2CON sebagaimana tabel berikut :



Tabel 6.1 Pengaturan Mode Operasi Timer 2

RCLK / TCLK
CP / RL2
TR2
MODE
0
0
1
16-bit auto-reload
0
1
1
16-bit capture
1
X
1
baud rate generator
X
X
0
(off)

a.16-bit auto-reload.   Mode ini memiliki dua pilihan bergantung pada           isi bit EXEN2. Pilihan pertama adalah untuk EXEN2=0. Pada saat transisi data 16 bit yang kesemuanya '1' (data 0FFFFh) menjadi data yang            kesemuanya '0' (0000h) pada Timer 2 yaitu terjadi overflow, maka TF2 pada   register T2CON akan diset. Pada saat yang sama isi register RCAP2H akan   dimuat sebagai harga awal TH2 dan isi register RCAP2L akan dimuat sebagai    harga awal TL2.
                  Pada kondisi EXEN2=1  timer 2 bekerja seperti di atas dengan tambahan             bahwa transisi 1 ke 0 pada pin T2EX juga akan menyebabkan pemuatan kembali data             16 bit dari register RCAP2H ke TH2 dan RCAP2L ke TL2, sekaligus men-set  bit EXF2 pada register T2CON.
b.16-bit capture. Mode ini memiliki dua pilihan bergantung pada isi bit EXEN2. Pilihan pertama adalah untuk EXEN2=0. Pada saat transisi data 16 bit yang kesemuanya '1' (data 0FFFFh) menjadi data yang kesemuanya '0' (0000h) pada Timer 2 yaitu terjadi overflow, maka TF2  pada register  T2CON akan diset. Pada kondisi EXEN2=1  timer 2 bekerja seperti di atas dengan tambahan   bahwa transisi 1 ke 0 pada pin               T2EX  juga   akan   menyebabkan   pemuatan data 16 bit dari register TH2 ke RCAP2H dan TL2 ke RCAP2L, sekaligus   men-set  bit    EXF2   pada register T2CON.
c. Baud-rate generator. pembahasan mengenai ini telah ada pada pembahasan mengenai serial port pada bab sebelumnya.
d.Off. Mode ini menghentikan operasi timer 2.

0 comments:

Terima kasih atas komentar anda