Bài 5: Timer -Interrupt
Trang V-1
BÀI 5:
LP TRÌNH ðIU KHIN TIMER - INTERRUPT


I. Mc ñích bài thí nghim
Bài thc hành nhm giúp hc viên:
- Nm nguyên tc hot ñng ca Timer - Interrupt.
- Hiu vit ñưc chương trình ng dng Timer Interrupt vào trong ñiu
khin quá trình.
II. Cơ s lý thuyt
1. Timer trong AT89C51
Vi ñiu khin 89C51 hai thanh ghi timer/counter 16 bit. Các thanh ghi này th
hot ñng mt trong hai trng thái timer hoc counter. Mi thanh ghi gm 2 thanh
ghi 8 bit ghép li:
Cu trúc ca b Timer/ Counter trong 89C51 như hình
sau.
Bài 5: Timer -Interrupt
Trang V-2
Hot ñng ca b Timer/Counter ñưc ñiu khin bi hai thanh
ghi TCON
TMOD
Thanh ghi TCON (timer control)
: thanh ghi 8 bit, th
truy xut
byte hoc bit dùng ñ ñiu khin hot ñng ca Timer.
TF1: o trng thái tràn cho b Timer/Counter1
TR1: ñiu khin cp xung cho b Timer/Counter1
TF0: o trng thái tràn cho b Timer/Counter0
TR0: ñiu khin cp xung cho b Timer/Counter0
IE1, IT1, IE0, IT0: s dng cho ngt ngoài 1 ngt ngoài 0 (không
ng cho Timer).
Thanh ghi TMOD (timer mode)
: thanh ghi 8 bit, ch th truy
xut byte dùng ñ xác ñnh ch ñ hot ñng ca Timer.
GATE, C/ T : ñiu khin trng thái hot ñng cho Timer/
M1, M0: chn ch ñ hot ñng cho Timer/Counter
M1
M0
CH
ð
T
0 0 0 Timer/Counter 13 bit
0 1 1 Timer/Counter 16 bit
1 0 2 Timer/Counter 8 bit, auto reload
1 1 3 Timer/Counter 8 bit
Ch ñ 0 (13 bit):
Bài 5: Timer -Interrupt
Trang V-3
Thanh ghi THx TLx kt hp to thành b Timer/Counter 13 bit, khi tràn 13 bit thì
c TFx s ñt lên logic 1
Ch ñ 1 (16 bit):
Ch ñ 2 (8 bit auto reload)
TLx ñưc np giá tr ban ñu t THx bt ñu ñm t giá tr y khi xung ngõ
vào, khi tràn thì TFx s ñt lên logic 1 ñng thi kích hot b khóa ñ np giá tr trong
THx vào TLx.
Ch ñ 3
Trong ch ñ y, TH1 TL1 không ñưc s dng thay vào ñó TH0 TL0 hot
ñng như 2 b Timer 8 bit (TL0) Timer/Counter 8 bit (TL0). Tuy nhiên, tín hiu
m xung cho TH0 không phi là TR0 mà là TR1.
2. Interrupt trong AT98C51
Thanh ghi IE (Interrupt Enable Register)
Bài 5: Timer -Interrupt
Trang V-4
Thanh ghi IE dùng ñ cho phép hay cm các ngt hot ñng. Mc ñnh khi khi ñng
chương trình thì tt c các ngt ñu b cm. Chc năng c bit trong thanh ghi IE cho
trong bng sau:
EA = 0: cm tt c các ngt
= 1: cho phép ngt tu theo trng thái các bit ñiu khin tương ng
ES = 0: cm ngt ti port n!i tip
= 1: cho phép ngt ti port n!i tip
ET1 = 0: cm ngt ti Timer 1
= 1: cho phép ngt ti Timer 1
EX1 = 0: cm ngt ti ngt ngoài 1 ( INT1: chân P3.3)
= 1: cho phép ngt ti ngt ngoài 1
ET0 = 0: cm ngt ti Timer 0
= 1: cho phép ngt ti Timer 0
EX0 = 0: cm ngt ti ngt ngoài 1 ( INT0 : chân P3.2)
= 1: cho phép ngt ti ngt ngoài 1
ð cho phép ngt ti Timer 0, ta phi có: EA = 1 ET0 = 1. Ni dung ca thanh ghi
IE khi ñó là:
Chương trình có th thc hin như sau:
SETB EA
SETB ET0
Hay có th vit:
MOV IE,#82h
Bài 5: Timer -Interrupt
Trang V-5
Danh sách các ngt trong AT89C51