Register-register Timer
- Timer Mode Register (TMOD) di alamat 89H
- THx dan TLx
- Timer Control Register (TCON) di alamat 88H
- 89C51 mempunyai dua buah timer yaitu Timer 0 dan Timer 1
- Masing-masing Timer terdiri dari 16 bit counter yang bersifat programmable.
Timer Mode Register
TMOD

- Gate: Timer akan berjalan bila bit ini set dan INT0 (untuk Timer 0) atau INT1 (untuk Timer 1) berkondisi high
- C/T: 1 = Counter
- 0 = Timer
- M1 & M0: Untuk memilih mode timer.
THx dan TLx (x adalah nomor Timer)
Merupakan Register yang menunjukkan nilai dari timer di mana masingmasing Timer mempunyai dua buah register yaitu:
- THx untuk high byte
- TLx untuk low byte
- TH0 : Timer 0 High Byte terletak pada alamat 8AH
- TL0 : Timer 0 Low Byte terletak pada alamat 8BH
- TH1 : Timer 1 High Byte terletak pada alamat 8CH
- TL1 : Timer 1 Low Byte terletak pada alamat 8DH
Timer Control Register (TCON)
Pada register ini, hanya 4 bit saja yaitu TCON.4, TCON.5, TCON.6 dan TCON.7 saja yang mempunyai fungsi berhubungan dengan timer.
TCON

- TCON.7 atau TF1: Timer 1 Overflow Flag yang akan set bila timer overflow. Bit ini dapat di-clear oleh software atau oleh hardware pada saat program menuju ke alamat yang ditunjuk oleh interrupt vector.
- TCON.6 atau TR1: 1 = Timer 1 aktif, 0 = Timer 1 non aktif
- TCON.5 atau TF0: Sama dengan TF1
- TCON.4 atau TR0: Sama dengan TR1
- TCON.3 hingga TCON.0 akan dibahas pada bagian interrupt.
Mode Timer
Mode Timer terdiri dari:
- Mode 0 Timer 13 bit
- Mode 1 Timer 16 bit
- Mode 2 Timer 8 bit auto reload
- Mode 3 Split Timer
Mode 0 (13 Bit Timer)

Mode 1 (16 Bit Timer)
TMOD

Mode 2 (16 Bit Timer)
TMOD

Mode 3 (16 Bit Timer)
TMOD

Pada Mode ini, Timer 0 terpisah menjadi 2 buah 8 bit timer dan TF1 dari Timer 1 tidak akan berpengaruh walaupun Timer 1 overflow. Timer 1 masih dapat digunakan untuk mode-mode yang lain seperti baud rate serial.

Cara Kerja Timer

Operasi Timer
Timer dapat bekerja dengan sumber clock dari:
- Internal berdasarkan 1/12 frekwensi oscillator, C/T = 0
- External berdasarkan trigger dari Tx (T0 untuk Timer 0 dan T1 untuk Timer 1) C/T = 1.
Timer dapat bekerja berdasar trigger dari:
- Software (Bit TRx)
- Hardware (kaki INTx).
Timer ditrigger dari software

Pengaturan Timer dengan Software
Timer ditrigger dari Hardware

Pengaturan Timer dengan Hardware