Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Pemakaian Timer Timer atau pewaktu dan counter atau pencacah adalah jenis pengatur waktu didalam mikrokontroler . Didalam mikrokontroler 89C51 terdapat dua buah timmer/counter 16 bit yang dapat difungsikan sebagai timer atau counter. Fungsi Timer/counter sbb: Event Counting Berfungsi untuk mencacah fulsa yang masuk dari luar. Cara kerjanya identik dengan alat pengitung barang, dimana cacahannya akan naik satu digit setiap saklar di tekan.
Interval Timming Berfungsi untuk menghitung interval waktu diantara du akejadian atau dua intruksi, artinya interval timming difungsikan sebagai timer. Prinsip kerjanya seperti stopwatch. Baud Rate Generator Berfungsi untuk membangkitkan sinyal referensi dalam operasi mikrokontroler dengan PC melaui serial port. Fungsi timer atau counter didalam mikrokontroler tergantung dari sinyal pemicu (triger) yang memicucounter 16 di dalam sebuah chip mikrokontroler.
Timer/ counter akan berfungsi sebagai counter apabila sinyal pemicu berasal dari clock eksternal. Sebalikya timer/ counter akan berfungsi sebagai timmer jika sinyal pemicu berasal dari clock internal. Lama waktu sebuah timer tegantung dari osilator yang dibangkitkan oleh X-tal yang digunakan.
Pemakaian Timer Untuk Mengukur waktu Fungsi utaman timer adalah mengukur waktu. Pada saat sebuah timer digunakan waktunya akan satu setiap siklus mesin (siklus instruksi). Karena X-tal yang digunakan sebagai pembangkit pulsa pada mikrokontroler 89C51 adalah 12 Mherz. Maka dapat di hitung berapa lama satu siklus Frekuensi X-tal (f) = 12 MHz = 12.000.000 Hz Siklus atau perioda (t) dimana: t = 1/f t = 1/(12.000.000) t = 0, 0000000833 detik t = 0.083 detik
Register Timer (Timer SFR) Dibawah ini tabel register yang ada hubungannya dengan timer .
Dari tabel diatas dapat dilihat hanya register TCON yang dapat di alamati. THx dan TLx (x bisa 0 atau 1) merupakan isi timer atau counter. Isi timer atau counter ini dapat di baca melalui alamat 8Ah s/d 8Dh.
TFx pada Timer Counter Register (TCON) merupakan tanda overflow (overflow flag). Overflow flag merupakan suatu status yang memberi tanda kalau terjadi overflow pada timer. Isi TFx dapat berubah jika terjadi: Diset atau di clear oleh sofware. Terjadi overflow pada timer. Diclear jika ada proses ISR, saat mikrokontroler dapat perintah interupt kemudian melayani melalui ISR. TMOD mengatur mode TIMER, dialamati secara byte. Fungsi TMOD dapat dilihat pada tabel dibawah:
Didalam mikrokontroler 89C51 terdapat dua timer yang yang berada di dalam SFR dengan fungsi yang identik. Timer pertama disebut TIMER0 dan timer kedua disebut TIMER1. TH0 dan TLO untuk mengendalikan TIMER0 dan sedangkan TH1 dan TL1 untuk mengendalikan TIMER1.
Daftar SFR untuk Timer
Nama SFR
TH0 TLO TH1 TL1
Keterangan Timer 1 High Byte Timer 0 Low Byte Timer 1 High Byte Timer 0 Low Byte Timer Control Timer MOde
TCON TMOD
TIMER0 memiliki dua macam SFR yang eksklusif bagi dirinya sendiri, yaitu TH dan TL yang merupakan harga aktual timer. Untuk melihat isi TIMER0 dapat dilakukan dengan Cara: Isi TIMER0 = (Isi TH X 256) + Isi TL0 TIMER1 identik dengan TIMER0, mempinyai SFR berupa TH1 dan TL1. Kedua timer ini mempunyai kapasitas 2 byte dengan harga maksimum yang bisa ditampung 65.535. Jika timer sudah melewati 65.535 maka timer akan direset atau overflow dan kemabali ke nol
SFR TMOD SFR TMOD di gunakan untuk mengontrol mode operasi timer. Setiap bit dari SFR memberikan informasi untuk mikrokontroler bagaimana menjalankan timer. Bit 4 s/d 7 behubungan dengan Timer1, bit 0 hingga 3 digunakan untuk TIMER0. Pemakaian bit didalam special Function Register dapat dilihat pada tabel di bawah ini .
Daftar Bit SFR TMOD Bit 7 6 5 4 3 2 1 0 Nama GATE 1 C/T1 T1M1 T1M0 GATE0 C/T0 T0M1 T0M0 Fungsi Jika bit ini diset, timer hanya akan bekerja jika INT1 (P3.3) berlogika 1. Jika bit ini dinolkan, timer ini bekerja dapat dikendalikan oleh INT1. Timer 1
Jika bit ini diset, timer hanya akan menghitung kondisi pada T1 (P3.5). 1 Jika bit ini dinolkan, timer akan bertambah setiap satu siklus mesin. Bit mode timer. Bit mode timer. Jika bit ini diset, timer hanya akan bekerja jika INT0 (P3.2) berlogika 1. Jika bit ini dinolkan, timer ini bekerja dapat dikendalikan oleh INT0. 1 1 0
Jika bit ini diset, timer hanya akan menghitung kondisi pada T0 (P3.4). 0 Jika bit ini dinolkan, timer akan bertambah setiap satu siklus mesin. Bit mode timer. Bit mode timer. 0 0
Seperti dilihat pada tabel diatas 4 bit merupakan mode untuk kedua timer , masing-masing 2 bit untuk satu timer
Mode Operasi Timer TxM1 0 0 1 1 TxM 0 1 0 1 Mode Timer 0 1 2 3 Keterangan Timer 13 bit Timer 16 bit 8 bit auto reload Mode timer split
Mode 0
Mode 0 merupakan timer yang dibentuk oleh 13 bit karena itu dikenal dengan istilah mode timer 13 bit. Mode timer ini sudah jarang di gunakan pada mikrokontroler 89C51. Timer diatur sebagai timer 13 bit,akan mencacah dari 0 s/d 31. Jika TLx melebihi 31, maka akan reset ke 0 dan menambah harga THx. Dengan demikian hanya 13 bit dari 2 Byte yang digunakan yaitu: TLx 0 s/d 4 dan THx 0 s/d 7, sehingga harga maksimum yang bisa dicapai 8.192 siklus mesin.
Diagram mode 0
Mode 1 Mode 1 paling banyak digunakan, fungsinya sama seperti timer 13 bit. TLx 0 s/d 255 jika lebih akan reset jadi 0 dan menambah THx dengan 1, sehingga harga maksimum yang bisa dicapai 65353 siklus mesin.
Diagram mode 1
Mode 2 TLx berfungsi sebagai pencacah 8 bit, THx berfungsi untuk menyimpan nilai yang diisikan ulang ke TLx.
Mode 3 TLx berfungsi sebagai pencacah 8 bit, THx berfungsi untuk menyimpan nilai yang diisikan ulang ke TLx.
Membaca Satus Timer Ada dua cara membaca Status timer: 1. Baca harga aktual dari 16 bit timer. 2. Deteksi apakah timer menemui kondisi overflow. Jika timer yang digunakan 8 bit pembacaan harga aktual mudah, teapi jika timer yang digunakan mode 1 atau 2 bisa timbul permasalahan pada waktu pembacaan harga aktual. Jika harga aktual lowbyte adalah 255 dan pembacaan high byte 15. seharusnya high byte 14 dan lowbyte adalah 255 beberapa saat kemudian high byte akan bertambah satu saat pembacaan menjadi 256 hitungan karena terletak pada high byte
Seharusnya yang pertama di baca high byte, selanjutnya lowbyte. Ulangi pembacaan highbyte dan bandingkan dengan pembacaan pertama, jika terdapat perbedaan maka yangdigunakan adalah pembacaan pertama Inisialisasi dan menjalankan Timer Untuk menjalankan timer pada mikrokontroler perlu dilakukan inisialisai dengan cara megisi status bit Pengendali Untuk menjalankan timer pada mikrokontroler perlu dilakukan inisialisai dengan cara megisi status bit Pengendali
Contoh penggunaan Timer pada bahasa assembler Contoh 1. Menyalakan dan mematiakan LED di Port 1 selama 1 detik.
SOAL-SOAL
1. Antara dua buah instruksi dapat diatur waktunya dengan: a. Timer/ Counter c. Interupt b. Program counter d. Semua jawaban benar 2. Nilai jangkauaan timer/conter didalam mikrokontroler 89C51 adalah .: a. 8 bit c. 1 byte b. 16 bit d. Semua jawaban benar
2. Nilai jangkauaan timer/conter didalam mikrokontroler 89C51 adalah .: a. 8 bit c. 1 byte b. 16 bit d. Semua jawaban benar 3. Timer/ counter akan berfungsi sebagai counter apabila sinyal pemicu berasal dari clock : a. internal c. kombinasi internal dan eksternal b. eksternal d. Semua jawaban benar
3. Timer/ counter akan berfungsi sebagai counter apabila sinyal pemicu berasal dari clock : a. internal c. kombinasi internal dan eksternal b. eksternal d. Semua jawaban benar 4. Nilai jangkauan timer/conter didalam mikrokontroler 89C51 jika dioperasikan dengan mode 0 adalah .: a. 8 bit c. 13 bit b. 16 bit d. 15 bit
4. Nilai jangkauaan timer/conter didalam mikrokontroler 89C51 jika dioperasikan dengan mode 0 adalah .: a. 8 bit c. 13 bit b. 16 bit d. 15 bit 5. Nilai jangkauan timer/conter didalam mikrokontroler 89C51 jika dioperasikan dengan mode 1 adalah .: a. 8 bit c. 13 bit b. 16 bit d. 15 bit
5. Nilai jangkauaan timer/conter didalam mikrokontroler 89C51 jika dioperasikan dengan mode 1 adalah .: a. 8 bit c. 13 bit b. 16 bit d. 15 bit 1. Antara dua buah instruksi dapat diatur waktunya dengan: a. Timer/ Counter c. Interupt b. Program counter d. Semua jawaban benar