|
Microcontroller Kits
Programmer and
Target 89s51
Simple
Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51
Dot matrix Trainer
ATMEGA8
All Kits
+
Programmer
via USB Port
|
|
1.5.2 Mengatur Timer
Gambar 4 merupakan bagan susunan rangkaian yang bisa
terjadi pada Timer 1 secara lengkap, digambarkan pula hubungan-hubungan
semua register pembentuk dan pengatur Timer 1. Gambar ini berlaku pula
untuk Timer 0.
Dalam pemakaian sesungguhnya, rangkaian yang dipakai hanya sebagian
dari rangkaian lengkap tersebut, sesuai dengan keperluan sistem yang
dibangun. Rangkaian yang dikehendaki dibentuk dengan mengatur register
TMODE, sedangkan kerja dari Timer dikendalikan lewat register TCON.

Gambar 1.16. Diagram blok timer/ counter
Setelah MCS51 di-reset register TMOD bernilai $00,
hal ini berarti :
1. bit C/T* =’0’, menurut Gambar 4 keadaan
ini membuat saklar S1 ke posisi atas, sumber sinyal denyut berasal dari
osilator kristal yang frekuensinya sudah dibagi 12, pencacah biner yang
dibentuk dengan TL1 dan TH1 berfungsi sebagai timer. Jika sistem yang
dirancang memang menghendaki Timer 1 bekerja sebagai timer maka bit
C/T* tidak perlu diatur lagi.
Tapi jika sistem yang dirancang menghendaki agar Timer 1 bekerja sebagai
counter untuk menghitung pulsa yang masuk lewat kakai T1 (P3.5), maka
posisi saklar S1 harus dikebawahkan dengan membuat bit C/T* menjadi
‘1’.
2. bit GATE=’0’, hal ini membuat output gerbang OR selalu
‘1’ tidak dipengaruhi keadaan ‘0’ atau ‘1’
pada kaki INT1 (P3.3). Dalam keadaan semacam ini, saklar S2 hanya dikendalikan
lewat bit TR1 dalam register TCON. Jika TR1=’1’ saklar S2
tertutup sehingga sinyal denyut dari S1 disalurkan ke sistem pencacah
biner, aliran sinyal denyut akan dihentikan jika TR=’0’.
Sebaliknya jika bit GATE=’1’, output gerbang OR akan mengikuti
keadaan kaki INT1, saat INT1=’0’ apa pun keadaan bit TR1
output gerbang AND selalu =’0’ dan saklar S1 selalu terbuka,
agar saklar S1 bisa tertutup kaki INT1 dan bit TR1 harus =’1’
secara bersamaan.Jika sistem yang dirancang menghendaki kerja dari timer/counter
dikendalikan dari sinyal yang berasal dari luar chip, maka bit GATE
harus dibuat menjadi ‘1’
3. bit M1 dan M0=’0’, berarti TL1 dan TH1 disusun menjadi
pencacah biner 13 bit (Mode 0), jika dikehendaki Timer 1 bekerja pada
mode 1 seperti terlihat dalam Gambar 4, maka bit M1 harus dibuat menjadi
‘0’ dan bit M0 menjadi ‘1’.
Pengetahuan di atas dipakai sebagai dasar untuk mengatur dan mengendalikan
Timer seperti terlihat dalam contoh-contoh berikut :
Setelah reset TMOD bernilai $00, berarti Timer 1 bekerja sebagai pencacah
biner 13 bit, sumber sinyal denyut dari osilator kristal atau Timer
1 bekerja sebagai ‘timer’, bit GATE =’0’ berarti
kaki INT1 tidak berpengaruh pada rangkaian sehingga Timer 1 hanya dikendalikan
dari bit TR1.
Dalam pemakaian biasanya dipakai pencacah biner 16 bit, untuk keperluan
itu instruksi yang diperlukan untuk mengatur TMOD adalah :
MOV TMOD,#%00010000
Catatan dalam instruksi di atas tanda ‘#’
menyatakan bagian di belakangnya adalah bilangan konstan yang akan diisikan
ke TMOD, ‘%’ merupakan awalan yang menandakan bahwa bilangan
di belakangnya adalah bilangan biner. Penulisan dengan bilangan biner
semacam ini, memudahkan untuk mengenali dengan cepat bit-bit apa saja
yang diisikan ke TMOD.
Bilangan biner %00010000 diisikan ke TMOD, berakibat bit 7 TMOD (bit
GATE) bernilai ‘0’, bit 6 (bit C/T*) bernilai ‘0’,
bit 5 dan 4 (bit M1 dan M0) bernilai ‘01’, ke-empat bit
ini dipakai untuk mengatur Timer 1, sehingga Timer 1 bekerja sebagai
timer dengan pencacah biner 16 bit yang dikendalikan hanya dengan TR1.
Jika dikehendaki pencacah biner dipakai sebagai counter untuk mencacah
jumlah pulsa yang masuk lewat kaki T1 (P3.5), instruksinya menjadi :
MOV TMOD,#%01010000
Perbedaannya dengan instruksi di atas adalah dalam
instruksi ini bit 6 (bit C/T*) bernilai ‘1’. Selanjutnya
jika diinginkan sinyal dari perangkat keras di luar chip MCS51 bisa
ikut mengendalikan Timer 1, instruksi pengatur Timer 1 akan menjadi
:
MOV TMOD,#%11010000
Dalam hal ini bit 7 (bit GATE) bernilai ‘1’.
Setelah mengatur konfigurasi Timer 0 seperti di atas, pencacah biner
belum mulai mencacah sebelum diperintah dengan instruksi :
SETB TR1
Perlu diingatkan jika bit GATE = ‘1’, selama kaki INT1 bernilai
‘0’ pencacah biner belum akan mencacah. Untuk menghentikan
proses pencacahan, dipakai instruksi
CLR TR1
Di atas hanya dibahas Timer 1 saja, tata canya untuk Timer 0 persis
sama. Yang perlu diperhatikan adalah register TMOD dipakai untuk mengatur
Timer 0 dan juga Timer 1, sedangkan TMOD tidak bisa dialamati secara
bit (non bit addressable) sehingga jika jika kedua Timer dipakai, pengisian
bit-bit dalam register TMOD harus dipikirkan sekali gus untuk Timer
0 dan Timer 1.
Bit TR1 dan TR0 yang dipakai untuk mengendalikan proses pencacahan,
terletak di dalam register TCON (memori-data internal nomor $88) yang
bisa dialamati secara bit (bit addressable). Sehingga TR0 dan TR1 bisa
diatur secara terpisah (dengan perintah SETB atau CLR), tidak seperti
mengatur TMOD yang harus dilakukan secara bersamaan.
Demikian pula bit penampung limpahan pencacah biner TF0 dan TF1, juga
terletak dalam register TCON yang masing-masing bisa di-monitor sendiri.
Sebagimana ditunjukkan pada gambar 1.11 mikrokontroller
dapat beraksi sebagai timer atau counter, sesuai dengan kebutuhan. Perhatikan
pada saklar sebelah kiri dan kanan pada diagram blok tersebut. Mikrokontroller
akan berfungsi sebagai timer ketika saklar diposisikan ke atas dan sebaliknya
akan berfungsi sebagai counter bila saklar diposisikan ke bawah, dengan
mengontrol bit C/T pada register TMOD. Posisi saklar sebelah kanan,
bergantung pada bit GATE (register TMOD), TR1 ( register TCON0 dan INT1.
BACK
|
|
PERCOBAAN 1
LED
PERCOBAAN 2
SAKLAR
PERCOBAAN 3
7 Segmen
PERCOBAAN 4
LCD Character
PERCOBAAN 5
ADC
PERCOBAAN 6
DAC
PERCOBAAN 7
Keypad
PERCOBAAN 8
Motor Stepper
PERCOBAAN 9
Timer Counter
PERCOBAAN 10
Komunikasi Serial
PERCOBAAN 11
Interupsi
PERCOBAAN 12
Keyboard PC
PERCOBAAN 13
Printer
Dot Matr.
PERCOBAAN 14
RTC12C887
PERCOBAAN 15
P W M
APLIKASI
|