H. TIMER DAN COUNTER
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.
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.
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. Susunan TL0, TH0, TL1 dan TH1 pada masing-masing mode adalah sebagai berikut:
- Mode 0 – Pencacah Biner 13 bit
- 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
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 2dMode 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.
Berikut adalah skema lengkap Timer 1 dalam Mode 1
Program timer
Setelah kita mengkonfigurasi timer (TMOD) yang akan kita gunakan, untuk mulai mencacah maka kita hanya perlu men-set satu bit saja pada register TCON yaitu TRx, dan untuk menghentikan pencacahannya maka kita hanya perlu membawa TRx tadi menjadi low, HANYA ITU !.
Ø Program Delay dengan Timer
Tidak ada komentar:
Posting Komentar