You are on page 1of 14

Chöông 4

KHAÛ
O SAÙT TIMER/ COUNTER
CUÛ
A VI ÑIEÀ
U KHIEÅ
N

1. KHAÙ
I NIEÄ
M VEÀHOAÏT ÑOÄ
NG TIMER/ COUNTER

2. TIMER/ COUNTER CUÛ


A VI ÑIEÀ
U KHIEÅ
N HOÏ MCS-51

3. ÖÙ
NG DUÏNG TIMER TRONG ÑÒ
NH THÔØ
I

1. KHAÙI NIEÄM VEÀ HOAÏT ÑOÄNG TIMER/COUNTER

1.1 Hoaït ñoäng Timer (ñònh thôøi)


Timer laø hoaït ñoäng ñònh thôøi gian. Nguyeân lyù laø duøng moät boä
ñeám xung vaø xung coù chu kyø oån ñònh, bieát tröôùc. Boä ñeám cho
pheùp caøi tröôùc moät soá naøo ñoù vaø baét ñaàu ñeám taêng daàn töø
soá ñaët tröôùc naøy. Khi soá ñeám taêng ñeán giôùi haïn toái ña maø moä
ñeám coù theå ñeám ñöôïc, ta noùi boä ñeám saép bò traøn. Luùc naøy neáu
nhaän theâm moät xung nöõa thì boä ñeám seõ töø soá lôùn nhaát bò RESET
veà soá ban ñaàu hoaëc soá thaáp nhaát tuyø theo tröôøng hôïp cuï theå.
Hieän töôïng naøy ñöôïc goïi laø traøn vaø khi ñoù côø traøn seõ ñöôïc SET
leân 1 baùo hieäu quaù trình ñònh thôøi keát thuùc.
Ví duï : Ta coù moät boä ñeám nhò phaân 4 bit, ban ñaàu ñöôïc ñaët
tröôùc soá 0111 = 7. Neáu boä ñeám naøy nhaän theâm 8 xung nöõa thì
keát quaû ñeám seõ laø 1111. Vaøo thôøi ñieåm nhaän xung thöù 9 thì keát
quaû seõ chuyeån töø 1111  0000. Ta noùi boä ñeám bò traøn taïi thôøi
ñieåm nhaän xung thöù 9. Khoaûng thôøi gian töø luùc nhaän xung ñaàu
tieân ñeán luùc nhaän xung thöù 9 laø 8 chu kyø xung. Ñaây chính laø
khoaûng thôøi gian ñònh thôøi cuûa Timer naøy. Giaû söû moãi chu kyø xung
laø 1 giaây thì thôøi gian ñònh thôøi laø 8s. Giaûn ñoà thôøi gian treân hình
4.1 sau ñaây seõ minh hoaï hoaït ñoäng cuûa boä ñònh thôøi 4 bit treân.
Xung Clock
1s 1s 1s 1s 1s 1s 1s 1s

Tín hieä
uE
1
J Q Côøtraø
n
CK

MSB 0 1

1 1
Boäñeám
Xung Clock 4 bit 1 1

LSB 1 1
E
Tín hieä
u cho pheù
p Timer laø
m vieä
c
Döõlieä
u ñaë
t tröôù
c Thôø
i gian ñònh thôø
i
trong Timer

Thôø
i ñieå
m khôû
i Thôøi ñieåm traø
n,
ñoä
ng ñònh thôø
i keá
t thuùc ñònh thôøi

Hình 4.1 : Minh hoaï hoaït ñoäng cuûa boä ñònh thôøi 4 bit.
Xung clock chæ ñöôïc ñöa ñeán boä ñeám baét ñaàu töø thôøi ñieåm
khôûi ñoäng Timer (thôøi ñieåm SET tín hieäu cho pheùp Timer leân 1). Khi
bò traøn, côø traøn seõ ñöôïc SET leân 1 baùo hieäu quaù trình ñònh thôøi
keát thuùc. Sau thôøi ñieåm naøy neáu tín hieäu cho pheùp Timer ñang ôû
möùc tích cöïc thì boä ñeám vaãn tieáp tuïc laøm vieäc. Boä ñeám chæ
ngöøng khi naøo khoâng coøn xung Clock ñeán noù. Vieäc döøng boä ñeám
ñöôïc thöïc hieän baèng caùch xoaù tín hieäu cho pheùp veà 0. Vieäc ñieàu
khieån Timer bao goàm caùc böôùc nhö sau :
1. Döøng Timer (neáu Timer ñang chaïy) baèng caùch CLEAR tín
hieäu cho pheùp Timer.
2. Xoaù côø traøn (neáu côø traøn ñang baèng 1)
3. Naïp soá ban ñaàu cho Timer.
4. Khôûi ñoäng Timer (baèng caùch SET tín hieäu cho pheùp
Timer)
5. Ñôïi côø traøn leân 1. Thôøi ñieåm côø traøn leân 1 laø thôøi
ñieåm keát thuùc ñònh thôøi. Sau thôøi ñieåm naøy coù theå
cho döøng Timer vaø xoaù côø traøn ñeå chuaån bò cho laàn
söû duïng sau.
Boäñeám caøng nhieàu bit thì thôøi gian ñònh thôøi caøng daøi. Ví duï
boä ñeám 16 bit, neáu soá ban ñaàu laø 0000 0000 0000 0000 =
0000h thì phaûi nhaän 65535 xung thì keát quaû ñeám môùi ñaït ñeán
giaù trò lôùn nhaát laø 1111 1111 1111 1111 = FFFFh. Xung thöù
65536 seõ gaây traøn. Khoaûng thôøi gian töø luùc nhaän xung ñaàu
tieân ñeán luùc traøn (luùc nhaän xung thöù 65536) laø 65535 chu kyø.
Giaû söû moãi chu kyø laø 1µs thì boä ñònh thôøi 16 bit naøy coù thôøi gian
ñònh thôøi daøi nhaát laø 65535µs = 0,065535s. Coøn neáu chu kyø
xung laø 1ms thì thôøi gian ñònh thôøi daøi nhaát laø 65,535s.
Boä ñònh thôøi cuûa hoï vi ñieàu khieån MCS-51 laø loaïi 16 bit.
Nguoàn xung caáp cho Timer coù theå laáy töø boä dao ñoäng noäi beân
trong vi ñieàu khieån (sau khi ñaõ qua maïch chia taàn soá – chia 12) hoaëc
laáy töø beân ngoaøi qua chaân PORT, chaân P3.4 (T0) ñoái vôùi Timer 0 vaø
chaân P3.5 (T1) ñoái vôùi Timer 1.
 Tröôøng hôïp nguoàn xung laáy töø beân trong vi ñieàu khieån thì xung
naøy coù chu kyø baèng 12 laàn chu kyø xung Clock cuûa heä thoáng.
Neáu duøng tuï thaïch anh 12MHz cho boä dao ñoäng noäi thì chu kyø
cuûa xung caáp cho timer laø 1µs.

 Tröôøng hôïp nguoàn xung laáy töø beân ngoaøi vi ñieàu khieån thì xung
naøy phaûi coù chu kyø oån ñònh vaø ñoä daøi cuûa chu kyø tuyø theo
ngöôøi söû duïng. Maïch dao ñoäng taïo ra xung naøy baét buoäc phaûi
duøng tuï thaïch anh ñeå coù taàn soá xung oån ñònh. Ví duï sau ñaây
minh hoaï tröôøng hôïp duøng nguoàn xung caáp cho Timer ñöôïc laáy töø
beân ngoaøi vi ñieàu khieån vôùi chu kyø xung coù theå thay ñoåi.
+5v

Micro Controller
Rc MCS-51
1k
60Hz
C1 C2 8 20Hz 0,05s
33pF 33pF :3
3 Vcc 0,1s 14
NC 1 Rb Q1 P3.4 (T0)
X1 0,5s 15
60Hz C828 P3.5 (T1)
4
NC 10k
10Hz
:2 1s
3.58MHz R1 5
OSC-in
20M 7
R2 3.58M
6 OSC-out
GND 2Hz
1k :5
2
MM5369

0 1Hz
:2

Hình 4.2 : Sô ñoà maïch dao ñoäng taïo xung 60Hz duøng tuï thaïch
anh
vaø caùc maïch chia ñeå taïo caùc xung coù chu kyø khaùc nhau.
Caùcmaïch ÷3, ÷2, ÷5 coù theå duøng IC ñeám (ví duï duøng 74LS390)
ñeå thöïc hieän. Maïch ÷N thöïc söï laø maïch ñeám MOD N vôùi ngoõ vaøo
laø xung Clock vaø ngoõ ra laø ngoõ ra cuoái cuøng cuûa maïch ñeám. Ví duï
tröôøng hôïp maïch ñeám MOD 3 vaø MOD 5 ta coù quan heä giöõa tín hieäu
vaøo/ra nhö sau :
3 chu kyøxung Clock

Input Clock Taà


n soáf

MSB 0 0 1 0 0 1 Taà
n soáf/3

Output
LSB 0 1 0 0 1 0

1 chu kyø(MSB)

Hình 4.3 : Giaûn ñoà thôøi gian cuûa maïch ñeám MOD 3
Tín hieäu ôû ngoõ ra MSB baèng 1/3 taàn soá tín hieäu xung Clock
ngoõ vaøo
5 chu kyøxung Clock

Input Clock Taà


n soáf

MSB 0 0 0 0 1 0 0 0 0 1 Taà
n soáf/5

Output 0 0 1 1 0 0 0 1 1 0

0 1 0 1 0 0 1 0 1 0
LSB

1 chu kyø(MSB)

Hình 4.4 : Giaûn ñoà thôøi gian cuûa maïch ñeám MOD 5
Tín hieäu ôû ngoõ ra MSB baèng 1/5 taàn soá tín hieäu xung Clock
ngoõ vaøo
+5v

74LS08

16
4
MOD 2 MOD 5

60Hz MSB 7
1 CK Q CK 6 20Hz
LSB
CLR CLR 5

3 10Hz
2

12 MOD 5
MOD 2

MSB
9 2Hz
15 CK Q CK 10
LSB
CLR CLR 11
13 1Hz
14
8
74LS390

Hình 4.5 : Sô ñoà nguyeân lyù maïch taïo tín hieäu ña taàn soá

Chuyeån maïch cô treân hình 4.2 coù theå thay baèng chuyeån maïch
ñieän töû. Vi maïch 4066 laø moät ví duï veà chuyeån maïch ñieän töû.
Chuyeån maïch ñieän töû cho pheùp ñieàu khieån töï ñoäng vì noù ñöôïc
ñieàu khieån baèng tín hieäu ñieän aùp (khaùc vôùi chuyeån maïch cô ñöôïc
ñieàu khieån baèng tay). Ta coù theå so saùnh moät soá ñaëc tính quan
troïng giöõa chuyeån maïch cô vaø chuyeån maïch ñieän töû nhö sau :
CHUYEÅN MAÏCH CÔ CHUYEÅN MAÏCH
ÑIEÄN TÖÛ
 Nguyeân lyù ñieàu Ñoùng môû tieáp Thay ñoåi ñieän trôû
khieån ñieåm
 Phöông phaùp Baèng tay, baèng Baèng tín hieäu
ñieàu khieån haønh trình, khoù ñieän aùp,
ñieàu khieån töï deã ñieàu khieån töï
ñoäng ñoäng
 Thôøi gian chuyeån Vaøi chuïc ms Vaøi chuïc ns
maïch
 Ñaëc tính khi Coù theå phaùt sinh Khoâng phaùt sinh
chuyeån maïch hoà quang hoà quang
 Ñieän trôû ôû Xaáp xæ 0Ω Vaøi chuïc Ω
traïng thaùi ON
 Ñieän trôû ôû Gaàn nhö lôùn voâ Vaøi chuïc MΩ
traïng thaùi OFF cuøng
CONTROL

IN/OUT IN/OUT IN/OUT IN/OUT

Coâ
ng taé
c cô Coâ
ng taé
c ñieä
n töû
+VDD
CONTROL

ON
IN/OUT IN/OUT IN/OUT IN/OUT
R =0 i chuïc Ω
Vaø

0V
CONTROL
OFF

IN/OUT IN/OUT IN/OUT IN/OUT

R= Vaø
i chuïc MΩ
8

Hình 4.6 : So saùnh chuyeån maïch cô vôùi chuyeån maïch ñieän


töû

Vi maïch CD4066BC

VDD : Chaân caáp nguoàn (+) : 3


→ 15V
VSS : Noái mass
IN/OUT : Ngoõ vaøo hoaëc ra, coù
theå chaáp nhaän tín hieäu
Analog hoaëc Digital. Ñieän aùp
ngoõ vaøo cho pheùp trong
khoaûng : -7,5V→+7,5V
CONTROL : Ngoõ vaøo ñieàu
khieån
 CONTROL = 1 : SW ON
(ñieän trôû thaáp, khoaûng
CD4066BC
80Ω khi VDD = 15V).
 CONTROL = 0 : SW OFF
(ñieän trôû raát lôùn).

+5v

14
Logic Control
CD4066B
IN0 SW A
00 : OUT = IN0
1 2

IN1 4 SW B 3
 01 : OUT = IN1
Input OUT
(Analog or
 10 : OUT = IN2
Digital)
IN2 8 SW C 9

 11 : OUT = IN3
IN3 11 SW D 10
Tín hieäu Logic Control
13 5 6 12 7
10k coù theå xuaát ra töø 1
+5v 15 14 13 12
PORT naøo ñoù cuûa vi
Y0 Y0 Y2 Y3 ñieàu khieån ñeå ñieàu
16 74LS138 8 khieån löïa choïn 1
C B A G1 G2A G2B trong 4 ngoõ vaøo IN0,
3 2 1 6 4 5
IN1, IN2, IN3.

Logic Control

Hình 4.7 : Sô ñoà maïch öùng duïng vi maïch CD4066BC keát hôïp
vôùi
IC giaûi maõ 74LS138 ñeå thöïc hieän coâng taéc choïn 4 vò trí
Phöông phaùp duøng maïch dao ñoäng thaïch anh ñeå taïo xung taàn
soá chuaån thöôøng chæ ñöôïc aùp duïng khi coù yeâu caàu nghieâm ngaët
veà ñoä chính xaùc cuûa ñònh thôøi (ví duï ñoái vôùi ñoàng hoà soá). Trong
tröôøng hôïp naøy neáu coù sai soá cho duø raát nhoû nhöng neáu tích luyõ
qua thôøi gian daøi thì sai soá seõ lôùn. Ví duï neáu boä ñònh thôøi 1s coù
sai soá 0,01% töùc laø thôøi gian ñònh thôøi laø 1,0001s. Sai soá naøy raát
nhoû nhöng neáu tích luyõ khoaûng 86400 laàn ñònh thôøi (töông ñöông
vôùi thôøi gian 1 ngaøy ñeâm) thì sai soá tích luyõ laø : 86400.0,0001 =
8,64s. Sai soá tích luyõ trong 1 thaùng laø : 30.8,64 = 259,2s ≈ 4 phuùt,19s.
Nhö vaäy neáu duøng boä ñònh thôøi naøy cho ñoàng hoà soá thì moãi
thaùng ñoàng hoà chaïy sai khoaûng 4 phuùt.
Trong caùc öùng duïng thoâng thöôøng, khoâng caàn ñoä chính xaùc
cao, coù theå duøng phöông phaùp ñôn giaûn hôn ñeå taïo xung taàn soá
chuaån. Moät caùch thöôøng duøng laø söû duïng nguoàn tín hieäu cuûa
ñieän aùp löôùi (taàn soá 50Hz) nhö moät tín hieäu coù taàn soá oån ñònh
duøng laøm xung kích cho Timer. Taát nhieân laø phaûi chuyeån ñoåi tín
hieäu töø daïng sin thaønh daïng xung vuoâng ñeå töông thích vôùi maïch
soá.
+5v

U1A
D1 14
R2 2
1
10k 7 50Hz
74LS14
6v R1 Dz Rt
10k 5v 10k
220

0
Hình 4.8 : Maïch chuyeån ñoåi sin/vuoâng duøng coång ñaûo loaïi
Trigger-Schmith
1.2 Hoaït ñoäng Counter (ñeám söï kieän)
Counter laø boä ñeám. Ñieåm khaùc giöõa Counter so vôùi Timer laø
xung Clock ñöa vaøo boä Counter coù theå coù taàn soá tuyø yù vaø ngöôøi
ta chæ quan taâm ñeán keát quaû ñeám ñöôïc laø bao nhieâu xung. Xung
Clock ñeán boä Counter ñöôïc taïo ra töø “söï kieän” caàn ñeám nhôø maïch
caûm bieán. Ví duï ñeå ñeám soá löôïng saûn phaåm chaïy treân baêng
chuyeàn ngang qua moät traïm kieåm soaùt A, taïi traïm naøy ngöôøi ta ñaët
moät boä thu phaùt hoàng ngoaïi (xem hình 4.9). Khi khoâng coù saûn
phaåm naøo ôû traïm A thì aùnh saùng töø boä phaùt ñeán ñöôïc boä thu
vaø boä thu taïo tín hieäu ra ôû möùc logic 0. Khi coù saûn phaåm taïi traïm
A thì aùnh saùng töø boä phaùt bò saûn phaåm che khuaát, khoâng ñeán
ñöôïc boä thu vaø khi ñoù boä thu phaùt tín hieäu ra ôû möùc logic 1. Nhö
vaäy moãi laàn coù 1 saûn phaåm ñi ngang qua traïm A thì coù 1 xung phaùt
ra töø boä thu taïi traïm A. Xung naøy seõ ñöôïc ñöa ñeán boä ñeám. Sau
moät thôøi gian, keát quaû ñeám ñöôïc chính laø soá xung ñaõ ñöôïc ñöa
ñeán boä ñeám vaø cuõng chính laø soá saûn phaåm chaïy treân baêng
chuyeàn ngang qua traïm kieåm soaùt A.

SP SP
Thu
SP Thu SP

SP SP
A
ïm
Tra
A

SP
ïm

SP
Tra

Ph

t Ch
Pha SP SP ieàu
t
ù Ch di
ieà
ud chu
SP ic SP yeå
n
hu
yeå
n

Hình 4.9 : Boá trí caûm bieán hoàng ngoaïi ñeå ñeám saûn
phaåm treân baêng chuyeàn
Caùc vi ñieàu khieån noùi chung ñeàu söû duïng 1 boä ñeám cho caû hai
chöùc naêng Timer vaø Counter.
 Khi söû duïng boä ñeám naøy cho chöùc naêng Timer thì xung Clock
phaûi coù taàn soá oån ñònh, chu kyø bieát tröôùc. Xung naøy coù
theå laáy töø beân trong vi ñieàu khieån hoaëc töø beân ngoaøi.
Nhöõng öùng duïng Timer coù thôøi gian daøi thöôøng duøng xung
Clock töø beân ngoaøi coù chu kyø daøi hôn nhieàu so vôùi xung Clock
beân trong vi ñieàu khieån. Khi ñoù chöông trình ñònh thôøi seõ ñôn
giaûn, deã vieát hôn. Nhöõng öùng öùng coù thôøi gian ngaén thöôøng
duøng xung Clock töø beân trong.
 Khi söû duïng boä ñeám cho chöùc naêng Counter thì xung Clock
ñöôïc taïo ra töø “söï kieän” caàn ñeám nhö ñaõ noùi treân vaø ñöôïc
ñöa vaøo vi ñieàu khieån qua moät ngoõ vaøo daønh rieâng. Ví duï
ñoái vôùi hoï MCS-51 thì ngoõ hai ngoõ vaøo T0 (chaân 3.4) vaø T1
(chaân 3.5) laø hai ngoõ vaøo ñeå ñöa xung Clock ñeán boä ñeám
beân trong vi ñieàu khieån. TO daønh cho Timer/Counter 0 vaø T1
daønh cho Timer/Counter 1.
2. KHAÛO SAÙT TIMER CUÛA VI ÑIEÀU KHIEÅN HOÏ MCS-51

Vi ñieàu khieån hoï MCS-51 coù 2 Timer laø Timer 0 vaø Timer 1, laø caùc
Timer 16 bit. Caùc thanh ghi lieân quan ñeán 2 Timer naøy bao goàm :
 TH0 vaø TL0 laø 2 thanh ghi 8 bit caáu thaønh neân Timer 0 (16 bit)
 TH1 vaø TL1 laø 2 thanh ghi 8 bit caáu thaønh neân Timer 1 (16 bit)
 TMOD laø thanh ghi 8 bit duøng ñeå xaùc ñònh Mode laøm vieäc cho 2
Timer.
 TCON laø thanh ghi 8 bit, trong ñoù :
• Bit TR0 duøng ñeå ñieàu khieån khôûi ñoäng hoaëc döøng
Timer 0.
• Bit TR1 duøng ñeå ñieàu khieån khôûi ñoäng hoaëc döøng
Timer 1.
• Bit TF0 laø côø ngaét cuûa Timer 0, ñöôïc SET khi Timer 0
traøn vaø coù theå xoaù baèng leänh CLR TF0.
• Bit TF1 laø côø ngaét cuûa Timer 1, ñöôïc SET khi Timer 1
traøn vaø coù theå xoaù baèng leänh CLR TF1.
Ñeå coù theå hieåu sô boä veà hoaït ñoäng cuûa Timer, ta xem sô ñoà
hình 4.10.
33pF
18 Maïch 1MHz
Maïch
chia
12MHz dao taàn soá
ñoä
ng TIMER 0 TF0
19
(÷12)
33pF
0: up 0: open
T0 14 1: down 1: close

C/T

TR0

GATE

INT0 12 TIMER 1 TF1


T1 15

0: up 0: open
C/T
1: down 1: close

TR1

7 6 5 4 3 2 1 0
GATE
TMOD GATE C/T M1 M0 GATE C/T M1 M0

INT1 13 Choïn Mode Choïn Mode


Daø
nh cho Timer 1 Daø
nh cho Timer 0

7 6 5 4 3 2 1 0
TCON TF1 TR1 TF0 TR0

Beâ
n trong vi ñieà
u khieå
n
hoïMCS-51 Ñieà
u khieå
n Timer Ñieà
u khieå
n ngaé
t

Hình 4.10 : Sô ñoà khoái ñieàu khieån Timer/Counter


2.1 Thanh ghi TMOD
Thanh ghi TMOD duøng ñeå thöïc hieän moät soá chöùc naêng
sau :
 Choïn nguoàn xung Clock cho boä ñeám : Bit C / T
 Neáu bit C / T = 0 : Nguoàn xung Clock cho Timer laáy töø
boä dao ñoäng beân trong vi ñieàu khieån sau khi ñaõ qua
maïch chia taàn soá (chia 12). Taàn soá xung Clock tröôøng
hôïp naøy laø 1MHz (töông öùng vôùi chu kyø 1µs) neáu
duøng tuï thaïch anh 12MHz cho boä dao ñoäng noäi.
 Neáu bit C / T = 1: Nguoàn xung Clock cho Timer laáy töø
beân ngoaøi vi ñieàu khieån thoâng qua chaân T0 (P3.4)
ñoái vôùi Timer 0 hoaëc T1 (P3.5) ñoái vôùi Timer 1. Taàn
soá xung Clock tröôøng hôïp naøy ñöôïc quyeát ñònh bôûi
maïch dao ñoäng taïo xung beân ngoaøi vi ñieàu khieån.
 ÔÛ cheá ñoä maëc ñònh ngay sau khi RESET vi ñieàu khieån,
bit C / T = 0. Nhö vaäy cheá ñoä maëc ñònh laø cheá ñoä
choïn xung Clock töø beân trong vi ñieàu khieån.
 Choïn Mode laøm vieäc cho Timer : Hai bit M1M0
Mode laøm vieäc cuûa Timer ñöôïc choïn baèng caùch ñaët
M1M0 ôû möùc logic phuø hôïp.

M1M0 Mode laøm vieäc cuûa Timer


00 0 Timer 13 bit
01 1 Timer 16 bit
10 2 Timer 8 bit töï naïp laïi
11 3 Timer 0 chia thaønh 2 Timer 8 bit
Chi tieát veà caùc Mode hoaït ñoäng cuûa Timer seõ trình baøy
sau.
 Choïn cheá ñoä ño ñoä roäng xung cuûa tín hieäu ñöa ñeán
INTi : Bit GATE
 Bit GATE naøy duøng ñeå löïa choïn cheá ñoä hoaït ñoäng
Timer bình thöôøng hay duøng Timer ñeå ño ñoä roäng
xung. Traïng thaùi maëc ñònh cuûa bit GATE laø traïng thaùi
0. Tröôøng hôïp naøy tín hieäu taïi ngoõ vaøo INTi (i = 0
hoaëc 1) khoâng aûnh höôûng ñeán hoaït ñoäng cuûa Timer.
Ta noùi Timer hoaït ñoäng ôû cheá ñoä bình thöôøng.
Tröôøng hôïp naøy, Timer seõ khôûi ñoäng (töùc laø xung
ñöôïc ñöa ñeán Timer) vaøo thôøi ñieåm bit TRi (i = 0 hoaëc
1) ñöôïc SET.
 Neáu SET bit GATE vaø bit TRi leân 1, xung Clock seõ
khoâng ñeán ñöôïc Timer i cho ñeán khi naøo tín hieäu taïi
ngoõ vaøo INTi chuyeån leân möùc cao. Timer seõ khôûi
ñoäng vaøo thôøi ñieåm tín hieäu taïi INTi chuyeån töø 0 
1 vaø seõ ngöøng khi tín hieäu taïi INTi chuyeån töø 1  0.
Tröôøng hôïp naøy ñöôïc duøng ñeå ño ñoä roäng xung vôùi
tín hieäu caàn ño ñöôïc ñöa ñeán ngoõ vaøo INTi neáu
duøng Timer i.
Hoaït ñoäng naøy nhö sau (giaû söû duøng Timer 0)
Trong thôøi gian tín hieäu taïi INT0 = 0, tieán haønh caùc
coâng vieäc :
 Naïp vaøo thanh ghi TMOD döõ lieäu phuø hôïp sao cho :
+ Bit Gate = 1
+ Bit C / T = 0
+ M1M0 = 01 (tröôøng hôïp choïn Mode Timer 16 bit).
TIMER 1 TIMER 0

GATE C/T M1 M0

X X X X 1 0 0 1

X laø traïng thaùi baát kyø, khoâng quan taâm vì ta khoâng


söû duïng Timer 1. Giaû söû choïn X = 0 thì döõ lieäu naïp
vaøo TMOD laø : 09h. Ta duøng leänh : MOV TMOD,#09h
ñeå naïp döõ lieäu 0000 1001 vaøo thanh ghi TMOD.

 SET bit TR0.


Sau khi SET bit TR0, xung Clock chu kyø 1µs seõ ñöôïc ñöa
ñeán Timer 0 vaøo thôøi ñieåm tín hieäu taïi INT0 chuyeån
töø 0  1 vaø seõ döøng khi tín hieäu naøy trôû laïi möùc 0.
Sau khi Timer 0 döøng, neáu soá xung trong Timer laø N thì
thôøi gian toàn taïi ôû möùc cao cuûa tín hieäu taïi ngoõ
vaøo INT0 laø N (µs).

2.2 Thanh ghi TCON


Thanh ghi TCON cho pheùp tri xuaát töøng bit vaø chæ coù 4 bit
cao cuûa thanh ghi naøy ñöôïc duøng cho hoaït ñoäng
Timer/Counter.
Neáu bit GATE = 0 (cheá ñoä maëc ñònh) thì Timer/Counter i seõ
khôûi ñoäng ngay sau thôøi ñieåm bit TRi ñöôïc SET vaø döøng
ngay sau khi bit TRi bò xoaù.
Trong quaù trình Timer/Counter ñang chaïy, neáu coù traøn xaûy
ra thì côø traøn TFi seõ ñöôïc SET töï ñoäng. Chöông trình coù
theå kieåm tra côø traøn naøy ñeå sau ñoù döøng Timer/Counter
baèng leänh CLR TRi. Côø traøn sau ñoù phaûi ñöôïc xoaù baèng
leänh CLR TFi ñeå Timer/Counter saún saøng cho laàn söû duïng
tieáp theo.

2.3 Chi tieát veà caùc Mode laøm vieäc cuûa Timer
Mode 0 : Timer 13 bit (cheá ñoä naøy thöôøng ít söû duïng)
TL0 TH0 TF0

Xung Clock 5 bit thaá


p 8 bit

TL1 TH1 TF1

Xung Clock 5 bit thaá


p 8 bit
Hình 4.11

Mode 1 : Timer 16 bit (cheá ñoä naøy thöôøng ñöôïc söû duïng)
TL0 TH0 TF0

Xung Clock 8 bit 8 bit

TL1 TH1 TF1

Xung Clock 8 bit 8 bit


Hình 4.12

Mode 2 : Timer 8 bit töï naïp laïi (cheá ñoä naøy thöôøng ñöôïc
söû duïng)

TL0 ÔÛ cheá ñoä naøy, Timer chæ


TF0
coù 8 bit. Thanh ghi THx seõ
löu tröõ giaù trò duøng ñeå
Xung Clock
naïp vaøo TLx moãi khi côø
Reload traøn TFx ñöôïc SET. ÔÛ cheá
ñoä naøy, ta khoâng caàn
döøng Timer ñeå naïp laïi giaù
trò moãi khi coù traøn. Vieäc
TH0
naïp laïi hoaøn toaøn töï ñoäng.
Trong quaù trình Timer ñang
TL1 TF1 chaïy, chæ caàn theo doõi côø
traøn cuûa noù vaø moãi khi
côø traøn ñöôïc SET, ta phaûi
Xung Clock
xoaù côø traøn ñeå noù ñöôïc
Reload SET vaøo thôøi ñieåm traøn
tieáp theo. Thôøi gian T giöõa 2
laàn traøn keá nhau tuyø
thuoäc vaøo soá naïp trong
TH1
thanh ghi THx. Thôøi gian ñònh
thôøi seõ baèng soá laàn traøn
nhaân vôùi T. Ta döøng Timer
khi soá laàn traøn ñaït ñeán
giaù trò mong muoán.
Mode 3 : Timer 0 taùch thaønh 2 Timer 8 bit.
TL1 TH1

Xung Clock
8 bit 8 bit

TL0 TF0

Xung Clock

TH0 TF1

Fosc/12
Hình 4.14
 Timer 0 ôû Mode 3 ñöôïc chia taùch thaønh 2 Timer 8 bit ñoäc
laäp, moãi boä seõ SET côø traøn TF0 vaø TF1 töông öùng nhö
hình 4.14.
 Côø traøn TF1 luùc naøy khoâng bò aûnh höôûng bôûi Timer 1
vì noù ñaõ ñöôïc duøng cho Timer 8 bit TH0.
 Timer 1 khoâng laøm vieäc ôû Mode 3, vì vaäy ta coù theå
döøng Timer 1 baèng caùch chuyeån noù vaøo Mode 3 (naïp
vaøo thanh ghi TMOD moät döõ lieäu phuø hôïp).
 Khi Timer 0 ñang laøm vieäc ôû Mode 3 vaø Timer 1 ñöôïc
chuyeån ra khoûi Mode 3, noù coù theå ñöôïc söû duïng ñeå
taïo toác ñoä baud trong hoaït ñoäng truyeàn döõ lieäu noái
tieáp hoaëc ñöôïc duøng theo caùch naøo ñoù maø khoâng
yeâu caàu ngaét (do Timer 1 luùc naøy khoâng ñöôïc keát noái
vôùi TF1).

3. ÖÙNG DUÏNG CUÛA TIMER TRONG ÑÒNH THÔØI


Nhö ñaõ trình baøy ôû phaàn 1, boä Timer ñöôïc duøng ñeå ñònh thôøi
töùc laø ñeå thöïc hieän “DELAY” moät khoaûng thôøi gian caàn thieát. Thôøi
gian “DELAY” laø khoaûng thôøi gian töø luùc khôûi ñoäng Timer cho ñeán
khi Timer traøn (baùo hieäu baèng vieäc töï ñoäng SET côø traøn TF leân 1).
Timer cuûa hoï vi ñieàu khieån MCS-51 laø loaïi 16 bit. Tröôøng
hôïp söû duïng thaïch anh taàn soá 12MHz thì taàn soá
xung Clock caáp cho Timer laø 1MHz, töông öùng vôùi chu
kyø T = 1µs. Thôøi gian ñònh thôøi toái ña laø 65535µs.

You might also like