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