30/10/12
Timer 89C51
Posted on 12.25 by Unknown
- 89C51 mempunyai dua buah timer yaitu Timer 0 dan Timer 1
- Masing-masing Timer terdiri dari 16 bit counter yang bersifat
programmable
Register-register Timer
- Timer Mode Register (TMOD) di alamat 89H
- THx dan TLx
- Timer Control Register (TCON) di alamat 88H
Timer Mode Register
TMOD
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
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:
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
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
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
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
TMOD
Mode 2
TMOD
TMOD
Mode 3
TMOD
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
Contoh program Timer
$MOD51
ORG 00H
JMP START
ORG 100H
START:
MOV P0,#01H
MOV P1,#00H
MOV P3,#00H
JNB P2.0,$
MOV R1,#05H
PASS: CALL DELAY
MOV A,P2
JNB P2.0,CEK
MOV A,P0
RL A
MOV P0,A
DJNZ R1,PASS
JMP LOCK
CEK:
CJNE A,#0A8H,LOCK1
JMP BENAR
LOCK1: LJMP LOCK
BENAR: MOV P0,#01H
JNB P2.0,$
CALL DELAY
JNB P2.0,MENU1
MOV A,P0
RL A
MOV P0,A
CALL DELAY
JNB P2.0,MENU2
MOV A,P0
RL A
MOV P0,A
CALL DELAY
MENU: JB P2.0,$
JNB P2.0,MENU3
JMP MENU
MENU1: MOV P3,#01H
MOV P1,#0FFH
ANIME1: MOV A,P3
RL A
MOV P3,A
DEC P1
CALL DELAY
JB P2.1,RESET
JMP ANIME1
MENU2: MOV P3,#00H
MOV P1,#03H
ANIME2: MOV A,P1
RL A
MOV P1,A
INC P3
CALL DELAY
JB P2.1,RESET
JMP ANIME2
MENU3: MOV P3,#0FH
MOV P1,#03H
CALL DELAY
MOV P3,#00H
MOV P1,#00H
CALL DELAY
JB P2.1,RESET
JMP MENU3
DELAY: MOV TMOD,#00010001B
MOV R0,#20
ULANG:
MOV TL0,#LOW(-50000)
MOV TH0,#HIGH(-50000)
CLR TF0
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R0,ULANG
RET
LOCK:
MOV P0,#01010101B
MOV P1,#01010101B
MOV P3,#01010101B
CALL DELAY
MOV P0,#00H
MOV P1,#00H
MOV P3,#00H
CALL DELAY
JB P2.1,RESET
JMP LOCK
RESET: JB P2.1,$
JMP START
END
Artikel Terkait:
001. Dunis Robot
002. Pendahuluan
004. Sistem Gerak Tank
007. Mekanik Robot
010. Interrupt
011. Operasi Serial Port
013 Flip-Flop
014. LCD Terminal AppMod
Langganan:
Posting Komentar (Atom)
No Response to "Timer 89C51"
Komentar Anda