| Pelatihan
Mikrokontroller
Microcontroller Kits
Programmer
and Target 89s51
Simple
Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51
All Kits
+
Programmer
Serial
|
|
1.5 Timer Counter
Timer dan Counter merupakan sarana input yang kurang
dapat perhatian pemakai mikrokontroler, dengan sarana input ini mikrokontroler
dengan mudah bisa dipakai untuk mengukur lebar pulsa, membangkitkan
pulsa dengan lebar yang pasti, dipakai dalam pengendalian tegangan secara
PWM (Pulse Width Modulation) dan sangat diperlukan untuk aplikasi remote
control dengan infra merah.
Pada dasarnya sarana input yang satu ini merupakan seperangkat pencacah
biner (binary counter) yang terhubung langsung ke saluran-data mikrokontroler,
sehingga mikrokontroler bisa membaca kedudukan pancacah, bila diperlukan
mikrokontroler dapat pula merubah kedudukan pencacah tersebut.
Seperti layaknya pencacah biner, bilamana sinyal denyut (clock) yang
diumpankan sudah melebihi kapasitas pencacah, maka pada bagian akhir
untaian pencacah akan timbul sinyal limpahan, sinyal ini merupakan suatu
hal yang penting sekali dalam pemakaian pencacah. Terjadinya limpahan
pencacah ini dicatat dalam sebuah flip-flop tersendiri.
Di samping itu, sinyal denyut yang diumpankan ke pencacah harus pula
bisa dikendalikan dengan mudah. Hal-hal yang dibicarakan di atas diringkas
dalam Gambar 1.
MCS-51 mempunyai dua buah register timer/ counter 16 bit, yaitu Timer
0 dan Timer 1. Keduanya dapat dikonfigurasikan untuk beroperasi sebagai
timer atau counter, seperti yang terlihat pada gambar di bawah.

Gambar 1.9. Konsep dasar Timer/Counter sebagai sarana
input
Sinyal denyut yang diumpankan ke pencacah bisa dibedakan
menjadi 2 macam, yang pertama yalah sinyal denyut dengan frekuensi tetap
yang sudah diketahui besarnya dan yang kedua adalah sinyal denyut dengan
frekuensi tidak tetap.
Jika sebuah pencacah bekerja dengan frekuensi tetap yang sudah diketahui
besarnya, dikatakan pencacah tersebut bekerja sebagai timer, karena
kedudukan pencacah tersebut setara dengan waktu yang bisa ditentukan
dengan pasti.
Jika sebuah pencacah bekerja dengan frekuensi yang tidak tetap, dikatakan
pencacah tersebut bekerja sebagai counter, kedudukan pencacah tersebut
hanyalah menyatakan banyaknya pulsa yang sudah diterima pencacah.
Untaian pencacah biner yang dipakai, bisa merupakan pencacah biner menaik
(count up binary counter) atau pencacah biner menurun (count down binary
counter).
1.5.1 Fasilitas Timer/Counter
Keluarga mikrokontroler MCS51, misalnya AT89C51 dan AT89Cx051, dilengkapi
dengan dua perangkat Timer/Counter, masing-masing dinamakan sebagai
Timer 0 dan Timer 1. Sedangkan untuk jenis yang lebih besar, misalnya
AT89C52, mempunyai tambahan satu perangkat Timer/Counter lagi yang dinamakan
sebagai Timer 2.
Perangkat Timer/Counter tersebut merupakan perangkat keras yang menjadi
satu dalam chip mikrokontroler MCS51, bagi pemakai mikrokontroler MCS51
perangkat tersebut dikenal sebagai SFR (Special Function Register) yang
berkedudukan sebagai memori-data internal.
Pencacah biner untuk Timer 0 dibentuk dengan register TL0 (Timer 0 Low
Byte, memori-data internal nomor $6A) dan register TH0 (Timer 0 High
Byte, memori-data internal nomor $6C).
Pencacah biner untuk Timer 1 dibentuk dengan register TL1 (Timer 1 Low
Byte, memori-data internal nomor $6B) dan register TH1 (Timer 1 High
Byte, memori-data internal nomor $6D).
Pencacah biner pembentuk Timer/Counter MCS51 merupakan pencacah biner
menaik (count up binary counter) yang mencacah dari $0000 sampai $FFFF,
saat kedudukan pencacah berubah dari $FFFF kembali ke $0000 akan timbul
sinyal limpahan.
Untuk mengatur kerja Timer/Counter dipakai 2 register tambahan yang
dipakai bersama oleh Timer 0 dan Timer 1. Register tambahan tersebut
adalah register TCON (Timer Control Register, memori-data internal nomor
$88, bisa dialamat secara bit) dan register TMOD (Timer Mode Register,
memori-data internal nomor $89).
Pencacah biner Timer 0 dan 1
TL0, TH0, TL1 dan TH1 merupakan SFR (Special Function Register) yang
dipakai untuk membentuk pencacah biner perangkat Timer 0 dan Timer 1.
Kapasitas keempat register tersebut masing-masing 8 bit, bisa disusun
menjadi 4 macam Mode pencacah biner seperti terlihat dalam Gambar 2a
sampai Gambar 2d.
Pada Mode 0, Mode 1 dan Mode 2 Timer 0 dan Timer 1 masing-masing bekerja
sendiri, artinya bisa dibuat Timer 0 bekerja pada Mode 1 dan Timer 1
bekerja pada Mode 2, atau kombinasi mode lainnya sesuai dengan keperluan.
Pada Mode 3 TL0, TH0, TL1 dan TH1 dipakai bersama-sama untuk menyusun
sistem timer yang tidak bisa di-kombinasi lain.
Susunan TL0, TH0, TL1 dan TH1 pada masing-masing mode adalah sebagai
berikut:
Mode 0 – Pencacah Biner 13 bit
Gambar 1.10 Mode 0 - Pencacah Biner 13 Bit
Pencacah biner dibentuk dengan TLx (maksudnya bisa
TL0 atau TL1) sebagai pencacah biner 5 bit (meskipun kapasitas sesungguhnya
8 bit), limpahan dari pencacah biner 5 bit ini dihubungkan ke THx (maksudnya
bisa TH0 atau TH1) membentuk sebuah untaian pencacah biner 13 bit, limpahan
dari pencacah 13 bit ini ditampung di flip-flop TFx (maksudnya bisa
TF0 atau TF1) yang berada di dalam register TCON.
Mode ini meneruskan sarana Timer yang ada pada mikrokontroler MCS48
(mikrokontroler pendahulu MCS51), dengan maksud rancangan alat yang
dibuat dengan MCS48 bisa dengan mudah diadaptasikan ke MCS51. Mode ini
tidak banyak dipakai lagi.
Mode 1 – Pencacah Biner 16 bit

Gambar 1.11 Mode 1 - Pencacah Biner 16 Bit
Mode ini sama dengan Mode 0, hanya saja register TLx
dipakai sepenuhnya sebagai pencacah biner 8 bit, sehingga kapasitas
pencacah biner yang tersbentuk adalah 16 bit. Seiring dengan sinyal
denyut, kedudukan pencacah biner 16 bit ini akan bergerak dari $0000
(biner 0000 0000 0000 0000), $0001, $0002 … sampai $FFFF (biner
1111 1111 1111 1111), kemudian melimpah kembali menjadi $0000.
Mode 2 – Pencacah Biner 8 bit dengan Isi Ulang
Gambar 1.12 Mode 2 - Pencacah Biner 8 Bit dengan
Isi Ulang
TLx dipakai sebagai pencacah biner 8 bit, sedangkan
THx dipakai untuk menyimpan nilai yang diisikan ulang ke TLx, setiap
kali kedudukan TLx melimpah (berubah dari $FF menjadi $00). Dengan cara
ini bisa didapatkan sinyal limpahan yang frekuensinya ditentukan oleh
nilai yang disimpan dalam TH0.
Mode 3 – Gabungan Pencacah Biner 16 bit dan 8 Bit

Gambar 1.13 Mode 3 – Gabungan Pencacah Biner 16
Bit dan 8 Bit
Pada Mode 3 TL0, TH0, TL1 dan TH1 dipakai untuk membentuk
3 untaian pencacah, yang pertama adalah untaian pencacah biner 16 bit
tanpa fasiltas pemantau sinyal limpahan yang dibentuk dengan TL1 dan
TH1. Yang kedua adalah TL0 yang dipakai sebagai pencacah biner 8 bit
dengan TF0 sebagai sarana pemantau limpahan. Pencacah biner ketiga adalah
TH0 yang dipakai sebagai pencacah biner 8 bit dengan TF1 sebagai sarana
pemantau limpahan.
Register Pengatur Timer
Register TMOD dan register TCON merupakan register pembantu untuk mengatur
kerja Timer 0 dan Timer 1, kedua register ini dipakai bersama oleh Timer
0 dan Timer 1.

Gambar 1.14 Denah susunan bit dalam register TMOD
Register TMOD dibagi menjadi 2 bagian secara simitris,
bit 0 sampai 3 register TMOD (TMOD bit 0 .. TMOD bit 3) dipakai untuk
mengatur Timer 0, bit 4 sampai 7 register TMODE (TMOD bit 4 .. TMOD
bit 7) dipakai untuk mengatur Timer 1, pemakaiannya sebagai berikut
:
1. Bit M0/M1 dipakai untuk menentukan Mode Timer seperti yang terlihat
dalam Tabel di Gambar 3a.
2. Bit C/T* dipakai untuk mengatur sumber sinyal denyut yang diumpankan
ke pencacah biner. Jika C/T*=0 sinyal denyut diperoleh dari osilator
kristal yang frekuensinya sudah dibagi 12, sedangkan jika C/T*=1 maka
sinyal denyut diperoleh dari kaki T0 (untuk Timer 0) atau kaki T1 (untuk
Timer 1).
3. Bit GATE merupakan bit pengatur saluran sinyal denyut. Bila bit GATE=0
saluran sinyal denyut hanya diatur oleh bit TRx (maksudnya adalah TR0
atau TR1 pada register TCON). Bila bit GATE=1 kaki INT0 (untuk Timer
0) atau kaki INT1 (untuk Timer 1) dipakai juga untuk mengatur saluran
sinyal denyut (lihat Gambar 4).

Gambar 1.15 Denah susunan bit dalam register TCON
Register TCON dibagi menjadi 2 bagian, 4 bit pertama
(bit 0 .. bit 3, bagian yang diarsir dalam Gambar 3b) dipakai untuk
keperluan mengatur kaki INT0 dan INT1, ke-empat bit ini dibahas dibagian
lain.
MSB |
|
LSB |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
BIT |
SYMBOL |
FUNCTION |
TCON.7 |
TF1 |
Timer 1 overflow flag. Set by hardware on
Timer/Counter overflow. Cleared by hardware when processor vector
to interrupt routine, or clearing the bit in software. |
TCON.6 |
TR1 |
Timer 1 Run control bit . Set/ cleared by
software to turn Timer/ Counter on/off |
TCON.5 |
TF0 |
Timer 0 overflow flag. Set by hardware on
Timer/Counter overflow. Cleared by hardware when processor vector
to interrupt routine, or clearing the bit in software. |
TCON.4 |
TR0 |
Timer 1 Run control bit . Set/ cleared by
software to turn Timer/ Counter on/off |
TCON.3 |
IE1 |
Interrupt 1 Edge flag. Set by hardware when
external interrupt edge detected. Cleared when interrupt processed. |
TCON.2 |
IT1 |
Interrupt 1 type control bit. Set/ cleared
by software to specefy falling edge/ low level trigerred external
interupts |
TCON.1 |
IE0 |
Interrupt 0 Edge flag. Set by hardware when
external interrupt edge detected. Cleared when interrupt processed. |
TCON.0 |
IT0 |
Interrupt 0 type control bit. Set/ cleared by software to specefy
falling edge/ low level trigerred external interupts |
Sisa 4 bit dari register TCON (bit 4..bit 7) dibagi
menjadi 2 bagian secara simitris yang dipakai untuk mengatur Timer0/Timer
1, sebagai berikut:
1. Bit TFx (maksudnya adalah TF0 atau TF1) merupakan bit penampung limpahan
(lihat Gambar 2), TFx akan menjadi ‘1’ setiap kali pencacah
biner yang terhubung padanya melimpah (kedudukan pencacah berubah dari
$FFFF kembali menjadi $0000). Bit TFx di-nol-kan dengan istruksi CLR
TF0 atau CLR TF1. Jika sarana interupsi dari Timer 0/Timer 1 dipakai,
TRx di-nol-kan saat MCS51 menjalankan rutin layanan interupsi (ISR –
Interupt Service Routine).
2. Bit TRx (maksudnya adalah TR0 atau TR1) merupakan bit pengatur saluran
sinyal denyut, bila bit ini =0 sinyal denyut tidak disalurkan ke pencacah
biner sehingga pencacah berhenti mencacah. Bila bit GATE pada register
TMOD =1, maka saluran sinyal denyut ini diatur bersama oleh TRx dan
sinyal pada kaki INT0/INT1 (lihat Gambar 4).
NEXT
|
|
PERCOBAAN 1
LED
PERCOBAAN 2
SAKLAR
PERCOBAAN 3
7 Segmen
PERCOBAAN 4
LCD Character
PERCOBAAN 5
ADC 0804
PERCOBAAN 6
DAC0808
PERCOBAAN 7
Keypad 4x4
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
PERCOBAAN
16
Motor DC
PERCOBAAN
17
EEPROM 2408
APLIKASI
|