"[WELLCOME]"."[bhernandz.blogspot.com]"

Minggu, 29 April 2012

Timer / Counter AT89S51


Mikrokontroler AT89S51 memiliki dua buah timer / counter yang disebut Timer0 dan Timer1 dengan kapasitas 16 bit. Istilah timer dan counter keduanya memiliki kesamaan yaitu, adanya sumber detak yang akan mengaktifkannya. Keduanya juga merupakan pencacah atau penghitung. Berikut hal yang membedakan antara keduanya yaitu:

  • Timer memiliki sumber detak yang tetap, yaitu oscillator.
  • Counter memiliki sumber detak yang tidak tetap, yaitu berasal dari mikrokontroler eksternal.

Berikut beberapa register untuk timer / counter yaitu :
1. THx, TLx (register timer / counter high dan low)
Subscript x dapat berarti 0 atau 1. X diisi 0 jika dimaksudkan timer0 dan x bernilai 1 jika dimaksudkan timer1.
2. TMOD (register timer mode)
Register ini digunakan untuk mengatur mode timer. Register ini juga digunakan untuk mengatur penggunaan timer saja atau counter saja.
3. TCON (register timer control)
Register ini digunakan untuk menyimpan hasil limpahan suatu cacahan / penghitungan. Dalam register ini, terdapat juga register bit untuk mengaktifkan atau menonaktifkan suatu timer.
Register THx dan TLx digunakan untuk menampung hasil hitungan timer / counter kapasitas maksimum TH dan TL seluruhnya adalah 16 bit. Namun, ada dua mode timer yang tidak menggunakannya secara maksimum melainkan hanya 13 bit dan 8 bit saja.
Pembagian bit register THx dan TLx
Pembagian bit register THx dan TLx
Register TMOD berfungsi untuk mengatur penggunaan mode suatu timer, pemakaian counter atau timer, dan pengaturan Gate.
Register TMOD
Register TMOD
Bit register TMOD
Bit register TMOD
Mode timer menentukan kapasitas maksimal penggunaan register TH dan TL. Berikut pembahasan mode 0, mode 1, mode 2, dan mode 3.
1      Mode 0
Mode ini dikenal dengan nama mode timer / counter 13 bit.
Bit THx dan TLx pada mode 0
Bit THx dan TLx pada mode 0
1      Mode 1
Mode 1 menggunakan kapasitas register TLx dan THx secara maksimal sehingga dinamakan mode 16 bit.
2      Mode 2
Mode 2 sering disebut sebagai pencacah biner 8 bit dengan isi ulang (auto reload). Register yang digunakan untuk mencacah adalah TLx sedangkan THx digunakan sebagai tempat menyimpan data yang akan dituliskan ke TLx saat terjadi limpahan pada TLx. Isi THx diisikan pertama kali oleh pemrogram sedangkan isi TLx akan terus bertambah sesuai adanya detak. Setiap kali nilai TLx berubah dari FF heksa menjadi 00 heksa akan terjadi overflow sehingga TFx (pada register TCON)  akan bernilai 1. Nilai TFx perlu di-nol-kan secara manual untuk kembali menggunakan timer.
3      Mode 3
Timer mode 3 sering disebut sebagai two 8 bit timer / counter karena memang menggunakan dua buah timer 8 bit yang kerjanya sendiri-sendiri.register yang digunakan adalah TL0 dan TH0 dengan masing-masing pengaturan adalah sebagai berikut:
  • TL0 dapat berfungsi sebagai counter maupun timer 8 bit dengan sumber detak yang dapat dipilih yaitu sumber detak yang berasal dari P3.4 (T0) atau dari osilator/12.
  • TH0 hanya dapat difungsikan sebagai timer 8 bit karena sumber detak hanya berasal dari osilator/12.
Register TCON digunakan untuk menampung bit overflow dan digunakan untuk mengaktifkan timer / counter. Hanya bit ke-7 sampai dengan bit ke-4 yang digunakan untuk operasi timer / counter sedangkan bit ke-3 sampai dengan bit ke-0 digunakan untuk interrupt.
Register TCON
Register TCON
  • Bit TFx bernilai 1 jika ada limpahan timer dan perlu di-nol-kan kembali secara manual.
  • Bit TRx digunakan untuk mengaktifkan timer / counter

0 komentar:

Posting Komentar

 
Powered by Blogger