You are on page 1of 12

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Chng 5:

I. Gii thieu.
II. Thanh ghi chon kieu lam viec cho timer.
III. Thanh ghi ieu khien timer.
IV. Cac kieu hoat ong cua timer va c tran.
V. Cac nguon xung em.
VI. ieu khien cac timer: em, ngng em.
VII.Khi tao va truy xuat cac thanh ghi cua timer/counter.
VIII. Timer /counter T2 cua ho MCS52.

I. GII THIEU:
Trong vi ieu khien 89C51 co 2 timer/counter T0 va T1, con trong vi
ieu khien 89C52 th co 3 timer / counter. Cac timer hay counter ch la
mot va chnh la bo em co chc nang em xung.
Ly thuyet & thc hanh.

85

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Neu ta s dung che o timer th thi gian nh thi nhan vi


chu ky cua moi xung se co c lng thi gian can thiet che
o timer vi ieu khien thng em xung noi lay t mach dao ong
ben trong vi ieu khien co chu ky on nh. Che o timer dung e
nh thi gian chnh xac e ieu khien cac thiet b theo thi gian.
Neu chung ta s dung che o counter th ta ch can quan tam
en so lng xung em c khong can quan tam en chu ky cua
xung em. Che o counter thng th em xung nhan t ben ngoai a
en ngo vao T0 oi vi timer/counter th 0 va ngo vao T1 oi vi
timer/counter th 1. em xung t ben ngoai con goi la em s kien.
Mot ng dung cho che o counter la co the s dung vi ieu khien
lam cac mach em san pham.
en ay ta co the xem timer hay counter la 1 va chu y rang tai
moi mot thi iem ta ch s dung mot trong 2 hoac la timer hoac la
counter.
Cac timer / counter cua vi ieu khien s dung 16 flip flop nen ta goi
la timer/ counter 16 bit va so lng xung ma timer/ counter co the em
c tnh theo so nh phan bat au t 0000 0000 0000 0000 2 en 1111
1111 1111 11112 , neu viet theo so thap luc phan th bat au t 0000H
en FFFFH va neu tnh theo gia tr thap phan th bat au t 0 en
65535.
Khi at en gia tr cc ai va neu co them 1 xung na th bo
em se b tran, khi b tran th gia tr em se t ong ve 0 (giong
nh mach em nh phan 4 bit khi em len 1111 va neu co 1 xung na
th gia tr em ve 0000) va c tran cua timer/counter len 1 e bao
hieu timer/counter a b tran (trc khi em th phai xoa c tran).
Ngi lap trnh s dung trang thai c tran len 1 e re nhanh
hoat cham dt thi gian can thiet a nh e chuyen sang lam mot
cong viec khac. Va khi c tran len 1 se tao ra ngat cung e re
nhanh chng trnh e thc hien mot chng trnh khac ban se nam
ro phan ng dung.
Cac gia tr em c cua timer/counter T0 th lu trong 2 thanh ghi
TH0 va TL0 moi thanh ghi 8 bit ket hp lai thanh 16 bit.
Tng t, cac gia tr em c cua timer/counter T1 th lu trong 2
thanh ghi TH1 va TL1 moi thanh ghi 8 bit ket hp lai thanh 16 bit.
Ngoai cac thanh ghi lu tr so xung em va gii thieu th con co
2 thanh ghi ho tr kem theo: thanh ghi TMOD va thanh ghi TCON dung e
thiet lap nhieu che o hoat ong khac nhau cho timer e ap ng
c s a dang cac yeu cau ng dung trong thc te.
Bang sau ay se liet ke ten, chc nang, a ch cua cac thanh
ghi lien quan en cac timer/counter cua vi ieu khien 89C51.
Ten

Chc nang

TCON
TMOD
TL0

Control
Mode
Timer 0 lowbyte
Timer 1 lowbyte
Timer 0 high-

TL1
TH0

Ly thuyet & thc hanh.

a ch

86

88H
89H
8AH

Cho phep truy


xuat bit
YES
NO
NO

8BH

NO

8CH

NO

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

byte
Timer 1 highbyte

TH1

8DH

NO

II. THANH GHI CHON KIEU LAM VIEC CHO TIMER/COUNTER:


Thanh ghi tmod gom hai nhom 4 bit: 4 bit thap dung e thiet lap
cac che o hoat ong cho Timer 0 va 4 bit cao thiet lap cac che o
hoat ong cho Timer 1.
Cac bit cua thanh ghi TMOD c tom tat nh sau :
Bit

Ten

GATE

Time
r
1

C/T

5
4
3

M1
M0
GATE

1
1
0

2
1
0

C/T
M1
M0

0
0
0

Chc nang
Neu GATE = 1 th Timer 1 ch lam viec khi
INT1= 1.
Bit la chon counter hay timer:
C/T = 1 : em xung t ben ngoai a en
ngo vao T1.
C/T = 0 : nh thi em xung noi ben trong.
Bit chon mode cua Timer 1.
Bit chon mode cua Timer 1.
Neu GATE = 1 th Timer 0 ch lam viec khi
INT1= 1.
Bit la chon counter hay timer: giong nh tren.
Bit chon mode cua Timer 0.
Bit chon mode cua Timer 0.

Hai bit M0 va M1 tao ra 4 trang thai tng ng vi 4 kieu lam viec


khac nhau cua Timer 0 hoac cua Timer 1.
M1
0
0
1

M0
0
1
0

Kieu
0
1
2

Chc nang
Mode Timer 13 bit (mode 8048)
Mode Timer 16 bit
Mode t ong nap 8 bit
Mode tach Timer ra :
Timer 0 : c tach ra lam 2 timer 8 bit gom co:
Timer 8 bit TL0 c ieu khien bi cac bit cua
mode Timer 0.
Timer 8 bit TH0 c ieu khien bi cac bit cua
mode Timer 1.
Timer 1 : khong c hoat ong mode 3.

III. THANH GHI IEU KHIEN TIMER:


Thanh ghi ieu khien tcon cha cac bit trang thai va cac bit ieu
khien cho Timer 0 va Timer1. Hoat ong cua tng bit cua thanh ghi tcon
c tom tat nh sau :
Bit
7

K
hieu
TF1

a ch
8FH

Ly thuyet & thc hanh.

Chc nang
C tran Timer 1: TF1 = 1 khi timer 1 b tran
va co the xoa bang phan mem hoac
87

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

TR1

8EH

5
4
3

TF0
TR0
IE1

8DH
8CH
8BH

IT1

8AH

IE0

89H

khi vi ieu khien thc hien chng trnh


con phuc vu ngat timer1 th t ong xoa
luon c tran TF1.
Bit ieu khien Timer 1 em / ngng em:
TR1 = 1 th timer 1 c phep em xung.
TR1 = 0 th timer 1 khong c phep em
xung (ngng).
C tran Timer 0 (hoat ong tng t TF1)
Bit ieu khien Timer 0 (giong TR1)
C bao ngat cua ngat INT1. Khi co ngat
xay ra ngo vao INT1 (canh xuong) th
c IE1 tac ong len mc 1.
Khi vi ieu khien thc hien chng trnh con
phuc vu ngat INT1 th t ong xoa luon
c bao ngat IE1.
Bit ieu khien cho phep ngat INT1 tac
ong bang mc hay bang canh. IT1 = 0 th
ngat INT1 tac ong bang mc.
IT1 = 1 th ngat INT1 tac ong bang canh
xuong.
Giong nh IE1 nhng phuc vu cho ngat INT0

IT0

88H

Giong nh IT1 nhng phuc vu cho ngat INT0

IV. CAC KIEU HOAT ONG CUA TIMER VA C TRAN:


89C51 co 2 timer la timer 0 va timer 1. Ta dung ky hieu TLx va Thx
e ch 2 thanh ghi byte thap va byte cao cua Timer 0 hoac Timer 1. Nh
a trnh bay tren cac timer co 4 kieu hoat ong, phan nay ta se
khao sat chi tiet cac kieu hoat ong cua timer.
1. MODE 0 (Mode Timer 13 bit) :
Mode 0 la mode em 13 bit: trong o 8 bit cao s dung het 8 bit cua
thanh ghi Thx, 5 bit con lai ch s dung 5 bit trong so thap cua thanh ghi
TLx, con 3 bit cao cua TLx khong dung nh hnh 5-1a.
mode nay gia tr em ln nhat la 2 13 = 8192 tc em t 0
0000 0000 00002 en 1 1111 1111 11112 va neu co them mot xung na
th bo em se tran va lam cho c tran len 1.
2. MODE 1 (Mode Timer 16 bit) :
Mode 1 la mode em 16 bit. mode nay gia tr em la ln nhat
la 216 nh hnh 5-1b.
3. MODE 2 (Mode t ong nap 8 bit) :
Mode 2 la mode t ong nap 8 bit, byte thap TLx cua Timer hoat
ong nh mot Timer 8 bit trong khi byte cao THx cua Timer dung e lu
tr gia tr e nap lai cho thanh ghi TLx.
Khi bo em TLx chuyen trang thai t FFH sang 00H: th c tran
c set va gia tr lu trong THx c nap vao TLx. Bo em TLx tiep tuc
em t gia tr va nap t THx len va cho en khi co chuyen trang
thai t FFH sang 00H ke tiep va c the tiep tuc. S o minh hoa cho
timer hoat ong mode 2 nh hnh 5-1c.
Ly thuyet & thc hanh.

88

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

4. MODE 3 (Mode Timer tach ra) :


Mode 3 la mode Timer 0 tach ra lam 2 timer cung vi timer 1 tao
thanh 3 timer.
Khi Timer 0 nh cau hnh mode 3 th timer 0 c chia la 2 timer 8 bit
TL0 va TH0 hoat ong nh nhng Timer rieng le va s dung cac bit TF0
va TF1 lam cac bit c tran tng ng nh hnh 5-1d.
Timer 1 khong the s dung mode 3, nhng co the c khi
ong trong cac mode khac va khong the bao tran v c tran TF1 a
dung e bao tran cho timer TH0.
Khi timer 0 hoat ong Mode 3 se cung cap them 1 Timer 8 bit th
ba. Khi Timer 0 mode 3, Timer 1 co the hoat ong nh la mot may
phat toc o Baud phuc vu cho Port noi tiep e truyen va nhan d
lieu, hoac no co the dung trong cac ng dung ma khong s dung
che o bao tran va bao ngat.

Ly thuyet & thc hanh.

89

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Hnh 5-1. Cac kieu hoat ong cua timer.


V. CAC NGUON XUNG EM:
Timer/counter co the em xung t hai nguon: neu timer/counter s
dung che o nh thi timer th se em xung ben trong (xung noi)
a biet tan so, neu timer/counter s dung che o counter th se
em xung t ben ngoai nh hnh 5-2. Bit C/T trong TMOD cho phep chon
che o timer hay counter khi khi tao thanh ghi tmod.

Hnh 5-2. Cac nguon xung a en timer / counter.


1. em thi gian:
Neu bit C/T = 0 th Timer hoat ong em noi xung lien tuc lay t
dao ong tren Chip. Tan so ngo vao tu thach anh c a qua mot
mach chia 12 e giam tan so xuong thap hn e phu hp vi cac
ng dung. Neu dung thach anh 12MHz th sau khi qua bo chia 12 tan so
a en bo em timer la 1MHz.
Timer se sinh ra tran khi no a em u so xung tng ng thi
gian qui nh, phu thuoc vao gia tr khi tao c nap vao cac thanh
ghi THx va TLx.
2. em cac s kien ben ngoai (Event Counting) :
Neu bit C/T = 1 th Timer hoat ong em xung en t ben ngoai
va chu ky cua moi xung do nguon tao tn hieu ben ngoai quyet nh.
Hoat ong nay thng dung e em cac s kien. So lng cac s
kien c lu tr trong thanh ghi cua cac Timer.
Nguon xung clock ben ngoai a vao chan P3.4 la ngo nhap xung
clock cua Timer 0 (T0) va P3.5 la ngo nhap xung clock cua bi Timer 1
(T1).
Ly thuyet & thc hanh.

90

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Trong cac ng dung em xung t ben ngoai: cac thanh ghi Timer
se tang gia tr em khi xung ngo vao Tx chuyen trang thai t 1 sang 0
(tac ong xung clock canh xuong). Ngo vao nhan xung ben ngoai c
lay mau trong suot khoang thi gian S5P2 cua moi chu ky may, do o
khi xung mc H (1) trong mot chu ky nay va chuyen sang mc L (0)
trong mot chu ky ke th bo em tang len mot. e nhan ra s chuyen
oi t 1 sang 0 phai mat 2 chu ky may, nen tan so xung ben ngoai
ln nhat la 500KHz neu he thong vi ieu khien s dung dao ong
thach anh 12 MHz.
VI. IEU KHIEN CAC TIMER: EM, NGNG EM:
Bit TRx trong thanh ghi TCON c ieu khien bi phan mem e cho
phep cac Timer bat au qua trnh em hoac ngng.
e bat au cho cac Timer em th phai set bit TRx bang lenh:
SETB TR0
; cho phep timer T0 bat au em
SETB TR1
; cho phep timer T1 bat au em
e cac Timer ngng em ta dung lenh Clear bit TRx.
V du Timer 0 bat au bi lenh SETB TR0 va ngng em bi lenh
CLR TR0.
Bit TRx b xoa khi reset he thong, do o che o mac nh khi
m may cac Timer b cam.
Mot phng phap khac e ieu khien cac Timer la dung bit GATE
trong thanh ghi TMOD va ngo nhap ben ngoai INTx nh hnh 5-3. Phung
phap nay c dung e o cac o rong xung.
Gia s xung can o o rong a vao chan INT0, ta phai khi tao
Timer 0 hoat ong mode 1 la mode Timer 16 bit vi gia tr khi tao ban
au la TL0/TH0 = 0000H, bit GATE = 1, bit TR0 = 1. Khi xung a en ngo
vao INT0 = 1 th cong c m e cho xung noi co tan so 1MHz vao
tiemr 0. Qua trnh timer 0 em xung noi se dng lai cho en khi xung a
en ngo vao INT0 xuong mc 0. Thi gian em c cua timer 0 chnh
la o rong xung can o.

Hnh 5-3. o o rong xung t ben ngoai.


VII. KHI TAO
TIMER/COUNTER :

VA

Ly thuyet & thc hanh.

TRUY

XUAT
91

CAC

THANH

GHI

CUA

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Cac Timer thng c khi tao 1 lan au chng trnh e thiet


lap mode hoat ong phuc vu cho cac ng dung ieu khien lien quan
en nh thi hay em xung ngoai. Tuy thuoc vao yeu cau ieu
khien cu the ma ta ieu khien cac timer bat au em, ngng hay
khi ong em lai t au
Thanh ghi TMOD la thanh ghi au tien can phai khi tao e thiet
lap mode hoat ong cho cac Timer. V du khi ong cho Timer 0 hoat
ong mode 1 (mode Timer 16 bit) va hoat ong nh thi em xung
noi ben trong th ta khi tao bang lenh: MOV TMOD, # 00000001B. Trong
lenh nay M1 = 0, M0 = 1 e vao mode 1 va C/T = 0, GATE = 0 e cho
phep em xung noi ben trong ong thi xoa cac bit mode cua Timer 1.
Sau lenh tren Timer 0 van cha em va timer 0 ch em khi set bit
ieu khien chay TR0.
Neu ta khong thiet lap cac gia tr bat au em cho cac thanh
ghi TLx/THx th Timer se bat au em t 0000H len va khi chuyen trang
thai t FFFFH sang 0000H se sinh ra tran lam cho bit TFx = 1 roi tiep tuc
em t 0000H len tiep . . .
Neu ta thiet lap gia tr bat au em cho TLx/THx khac 0000H, th
Timer se bat au em t gia tr thiet lap o len nhng khi chuyen
trang thai t FFFFH sang 0000H th timer lai em t 0000H len.
e timer luon bat au em t gia tr ta gan th ta co the lap
trnh ch sau moi lan tran ta se xoa c TFx va gan lai gia tr cho
TLx/THx e Timer luon luon bat au em t gia tr khi gan len.
ac biet neu bo nh thi hoat ong trong pham vi nho hn 256
s th ta nen dung Timer mode 2 (t ong nap 8 bit). Sau khi khi tao
gia tr au cho thanh ghi THx, va TLx, khi set bit TRx th Timer se bat au
em t gia tr a gan trong TLX va khi tran t FFH sang 00H trong TLx,
th c tran TFx t ong c set, ong thi gia tr trong Thx t ong
nap sang cho TLx va Timer bat au em t gia tr khi gan nay len.
Noi cach khac, sau moi lan tran ta khong can khi gan lai cho cac
thanh ghi Timer ma chung van em c lai t gia tr a gan.
V du 1: Chng trnh tao xung vuong tan so 1kHz s dung timer
mode1:
mov tmod,#01h ;chon mode 1 timer 0 em 16 bit
loop1:
mov th0,#0feh ;o rong xung 500s
mov tl0,#0ch
;
setb tr0
;cho timer bat au em
loop:
jnb tf0,loop ;ch bao ngat
clr tf0
;xoa c ngat
cpl p1.0
;nghch ao bit p1.0
sjmp loop1
;quay tr lai lam tiep
V du 2: Chng trnh tao xung vuong tan so 10 kHz s dung timer
mode2:
mov tmod,#02h ;chon mode 2 che do t ong nap lai 8
bit
loop1:
mov th0,#-50 ;tao o rong xung 50s
setb tr0
;cho timer bat au em
loop:
jnb tf0,loop ;ch bao ngat
clr tf0
;xoa c ngat
Ly thuyet & thc hanh.

92

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

cpl p1.0
sjmp loop1

;nghch ao bit p1.0


;tro lai loop1

VIII. TIMER/COUNTER T2 CUA HO MCS52:


Ho vi ieu khien 52 co 3 timer T0, T1, T2. Cac timer T0 va T1 co cac
thanh ghi va hoat ong giong nh ho 51. ay ch trnh bay them
phan hoat ong cua timer T2.
Cac thanh ghi cua timer/counter T2 bao gom: thanh ghi TL2, TH2, thanh
ghi ieu khien T2CON, thanh ghi RCAP2L va RCAP2H.
Timer/counter T2 co the dung e nh thi timer hoac dung nh bo
em counter e em xung ngoai a en ngo vao T2 chnh la chan
P1.0 cua port 1 nh hnh 5-4.
Timer/counter T2 co 3 kieu hoat ong: t ong nap lai, thu nhan va
thiet lap toc o baud e phuc vu cho truyen d lieu.
Chc nang cua thanh ghi ieu khien T2CON:
Bit
7

K
hieu
TF2

a
ch
CFH

EXF2

CEH

RCLK

CDH

TCLK

CCH

EXEN2

CBH

TR2

CAH

C/T2

C9H

Ly thuyet & thc hanh.

Chc nang
C tran Timer 2: hoat ong giong nh cac
timer tren (TF2 se khong c thiet lap len
mc 1 neu bit TCLK hoac RCLK mc 1).
C ngoai cua timer T2: ch c set khi xay ra
s thu nhan hoac nap lai d lieu bi s
chuyen trang thai t 1 sang 0 ngo vao
T2EX va EXEN2 = 1; khi cho phep timer T2 ngat,
EXF2=1 th CPU se thc hien hien chng trnh
con phuc vu ngat Timer T2, bit EXF2 co the
bang phan mem.
Xung clock thu cua timer 2. Khi RCLK=1 th timer T2
cung cap toc o baud cho port noi tiep e
nhan d lieu ve va timer T1 se cung cap toc
o baud cho port noi tiep e phat d lieu i.
Xung clock phat cua timer 2. Khi TCLK=1 th timer
T2 cung cap toc o baud cho port noi tiep e
phat d lieu i va timer T1 se cung cap toc
o baud cho port noi tiep e nhan d lieu
ve.
Bit ieu khien cho phep tac ong t ben
ngoai. Khi EXEN2 = 1 th hoat ong thu nhan va
nap lai cua timer T2 ch xay ra khi ngo vao
T2EX co s chuyen trang thai t 1 sang 0.
Bit ieu khien Timer 1 em / ngng em:
TR2 = 1 th timer 1 c phep em xung.
TR2 = 0 th timer 1 khong c phep em xung
(ngng).
Dung lenh ieu khien bit TR2 e cho phep
timer1 em hay ngng em.
Bit la chon counter hay timer:
C/T2 = 1 : em xung t ben ngoai a en
ngo vao T2.
C/T2 = 0 : nh thi em xung noi ben trong.
93

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

CP/RL2

C8H

C thu nhan/nap lai d lieu cua timer T2.


Khi bit nay = 1 th thu nhan ch xay ra khi co
s chuyen trang thai t 1 sang 0 ngo vao
T2EX va EXEN2=1; khi bit nay = 0 th qua trnh
t ong nap lai khi timer T2 tran hoac khi co
s chuyen trang thai ngo vao T2EX va bit
EXEN2 = 1; neu bit RCLK hoac TCLK = 1 th bit
nay xem nh bo.

Hnh 5-4. S o chan cua 89C52 vi ngo vao T2 la p1.0 va T2EX


la p1.1 .
1. Che o t ong nap lai:
Bit thu nhan/nap lai CP/RL2 la chon mot trong hai che o: t ong
nap lai va thu nhan. Khi CP/RL2 = 0 th timer hoat ong che o t
ong nap lai: cac thanh ghi TL2, TH2 se lu tr so xung em con 2
thanh ghi RCAP2L va RCAP2H lu tr gia tr e nap lai cho TL2, TH2. Gia
tr lu va nap lai la 16 bit.
Khi timer em tran th lam cho c bao tran TF2 bang 1 ong thi
t ong thc hien nap lai d lieu.
Tng t neu bit EXEN2 = 1 th che o t ong nap lai xay ra khi co
s chuyen trang thai t 1 sang 0 ngo vao T2EX ong thi lam cho
bit EXF2 = 1. Tng t nh c TF2 th c EXF2 cung co the c kiem tra
bang phan mem hoac tao ngat. Bit EXF2 phai xoa bang phan mem.
Hoat ong t nap cua timer T2 c trnh bay nh hnh 5-5.

Ly thuyet & thc hanh.

94

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Hnh 5-5.Hoat ong cua timer T2 che o t ong nap lai.


2. Che o thu nhan:
Khi CP/RL2 = 1 th timer hoat ong che o thu nhan. Khi o timer
T2 hoat ong bnh thng nh mot timer/counter 16 bit, thanh ghi TL2, TH2
se lu tr xung em va neu co s cuyen trang thai t FFFFH sang
0000H th se sinh ra tran va lam cho c tran TF2=1. Bit c tran co the
kiem tra bang phan mem hay co the tao ra ngat.

Hnh 5-6.Hoat ong cua timer T2 che o thu nhan d lieu.


e cho phep che o thu nhan hoat ong th lam cho bit EXEN2 = 1.
Neu bit EXEN2 = 1 va khi co s chuyen trang trai t 1 sang 0 ngo
vao T2EX th che o thu nhan se xay ra: gia tr em c trong thanh
ghi TL2, TH2 se c chuyen sang 2 thanh ghi RCAP2L va RCAP2H. C EXF2
cung c chuyen len mc 1 e bao hieu qua trnh thu nhan a xay
ra, c EXF2 co the kiem tra bang phan mem hoac tao ngat.
Hoat ong thu nhan d lieu cua timer T2 c trnh bay hnh 5-6.

Ly thuyet & thc hanh.

95

Chng 5: Khao sat Timer/counter cua vi ieu khien MCS51-52

Ly thuyet & thc hanh.

96

You might also like