Professional Documents
Culture Documents
VDK Chuong4
VDK Chuong4
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
3. ÖÙ
NG DUÏNG TIMER TRONG ÑÒ
NH THÔØ
I
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
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
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
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
R= Vaø
i chuïc MΩ
8
Vi maïch CD4066BC
+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
aù
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
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
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
GATE C/T M1 M0
X X X X 1 0 0 1
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
Mode 1 : Timer 16 bit (cheá ñoä naøy thöôøng ñöôïc söû duïng)
TL0 TH0 TF0
Mode 2 : Timer 8 bit töï naïp laïi (cheá ñoä naøy thöôøng ñöôïc
söû duïng)
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).