Các bộ định thờicủa 8051
Các
bộ
định
thời
của
8051
Bài 9
Bộ môn TĐ
Khoa KTĐK
Khoa
KTĐK
Giới thiệu
Giới
thiệu
•Các b
ộ
đ
ị
nh thời
ộ ị
– Các thiết bị thời gian: Tạo thời gian giữ chậm xác định
–Bộ đếm sự kiện: Đếm số lần xảy ra sự kiện (bên
ngoài)
ngoài)
• 8051 có hai bộ đếm 16 bit T0 và T1
•Các bộ định thời của 8051 có thể hoạt động theo
ộtàihế độ
m
ột
v
ài
c
hế
độ
:
–Chế độ của bộ định thời được điều khiển bởi thanh
ghi TMOD
ề ể
–
Các bộ định thời bị đi
ề
u khi
ể
n bởi thanh ghi TCON (4
bit cao)
•N
g
uồn clock cho b
ộ
đ
ị
nh thời là s
y
s clock/12
g ộ ị y
_
Các thanh ghi củabộ định thời
Các
thanh
ghi
của
bộ
định
thời
•
Mỗibộ định thờicủa 8051 có 2 thanh ghi 8
Mỗi
bộ
định
thời
của
8051
có
2
thanh
ghi
8
bit
•
Các thanh ghi củabộ định thời0
•
Các
thanh
ghi
của
bộ
định
thời
0
– TL0 và TH0
Đ t ậ iố h áth hhikhá
–
Đ
ược
t
ruy c
ậ
p g
iố
ng n
h
ư c
á
c
th
an
h
g
hi
khá
c
• Mov TL0, #55H,
•
Mov R1 TH0
•
Mov
R1
,
TH0
• Các thanh ghi của bộ định thời 1
TL1 à TH1
–
TL1
v
à
TH1
Bộ định thời của 8051: Thanh
hi TMOD
g
hi
TMOD
• Gate-
Đ
iều khiển cổn
g
(
cách khởi tạo và dừn
g
bộ định
g( g
thời)
–0 → cổng mềm (bit TRx ở thanh ghi TCON)
–
1 → cổn
g
cứn
g
(
Chân INTx
)
g g( )
•C/T-Hoạt động của Counter/Timer
–0 → Hoạt động của bộ định thời (clock là sysclk/12)
–
1
→
Ho
ạt động củabộ đếm (clock là chân T0 hoặcT1)
–
1
→
Ho
ạt
động
của
bộ
đếm
(clock
là
chân
T0
hoặc
T1)
•M1:M0-Điều khiển chế độ
– 00 → Mode 0 (bộ định thời 13 bit)
01 Md 1(b
ộ đị hthời16bit
)
–
01
→
M
o
d
e
1(b
ộ
đị
n
h
thời
16
bit
)
– 10 → Mode 2 (bộ định thời 8 bit, tự động nạp lại)
– 11 → Mode 3 (tách bộ định thời)
Bộ định thời
–
Mode 1
Bộ
định
thời
Mode
1
•B
ộ
đ
ị
nh thời 16 bit
ộ ị
–Nạp vào bộ định thời một số và thiết lập TR để bắt
đầu đếm
Khi bộ đếm quay về 0x0000 nó sẽ thiếtlậpcờ TF và
–
Khi
bộ
đếm
quay
về
0x0000
,
nó
sẽ
thiết
lập
cờ
TF
và
gây ra ngắt TF nếu được phép
Bộ định thời
–
Mode 1
Bộ
định
thời
Mode
1
•Thu
ậ
t toán
ậ
1. Nạp thanh ghi TMOD để đặt chế độ
2. Nạp giá trị đếm ban đầu vào TLx và THx
3Khởi độ bộ đị hhời
3
.
Khởi
độ
ng
bộ
đị
n
h
t
hời
4. Duy trì kiểm tra cờ TFx (jnb TFx, đích)
5Dừng bộ định thời(clrTRx)vàxoácờ TFx
5
.
Dừng
bộ
định
thời
(clr
TRx)
và
xoá
cờ
TFx
6. Quay lại bước 2 để nạp lại
•Th
ờ
i
g
i
a
n
t
r
ễ
ờ ga tễ
–Thời gian trễ = (65536-giá trị ban đầu)*chu kỳ clock
• Thay cho phương pháp dò cờ TFx, một ISR có
thể đ ử d
thể
đ
ược s
ử
d
ụng
Bộ định thời
–
Ví dụ ở Mode 1
Bộ
định
thời
Ví
dụ
ở
Mode
1
•Tạomộtsóng
vuông vớihệ
số lấp đầy
50% trên P1.5
với Timer0
Các bộ định thời và các ngắt
Các
bộ
định
thời
và
các
ngắt
•
Khi bộ định thời
Khi
bộ
định
thời
TF1 hoặc TF0
tràn thì n
g
ắt
g
được tạo ra
• Cho
p
hé
p
n
g
ắt
ppg
và sau đó khởi
động bộ định
thời
thời
• ISR xoá tự
độ ờ TF
độ
ng c
ờ
TF
x
Bộ định thời để đo thời gian
•Bộđịnh thời đượcsử dụng để đothời
gian trôi qua
–Hữu ích cho các nhiệmvụ thông
h
t
h
ương
– Không chính xác như RTC (đồng hồ
thờigianthực) nhưng rẻ
•Clockcủab
ộ
đ
ị
nh thờibằn
g
1
/
12
ộ
ị
g
clock của 8051
–Chukỳ thờigianchomộtlần đếmlà
1,085µs
–
Th
ời
gian
tiêu
tốn
cho
việc
đếm
đén
Th
ời
gian
tiêu
tốn
cho
việc
đếm
đén
khi tràn (quay về 0) là
•Số lần đếm x 1,085µs
•Vídụ:Bộđịnh thời đượcnạpgiátrị
0
xFFF
2
0
xFFF
2
–Số lần đếm đến khi vòng về 0là
0XFFFF-0xFFF2+1 =14
–Thời gian tiêu tốn là: 14 x 1,085µs
Bộ định thời để đothờigian
Bộ
định
thời
để
đo
thời
gian
•Cáchtính
g
iá tr
ị
n
ạp
ban đầu để có đư
ợ
cthời
ầ
g
ị
ạp
ợ
gian giữ chậmyêuc
ầ
uT?
–ChiaTcho1,085µs để đượcn(giả thiếttầnsố thạch
anh là 11
,
0592 MHz
)
,
)
– Tìm m=65536-n
– Chuyển m sang số hex, m=0xUUVV
Nạp
TH
←
0
xUU
v
à
TL
←
0
xVV
–
Nạp
TH
←
0
xUU
v
à
TL
←
0
xVV
• Để có thờigiangiữ chậmlâuhơn?
–Tổ chứcmột vòng lặp
–Thêmvàomộtsố lệnh (nop), trước khi cho phép bộ
định thờilàmviệclại
–
Đ
ưaraRTC
(
đồn
g
hồ thời
g
ian th
ự
c
)
( g
g
ự )
Bộ định thời: Các chế độ khác
Bộ
định
thời:
Các
chế
độ
khác
•Chếđộ0
–Giống như chếđộ1nhưng nó là bộđịnh thời13bit
–Thứ từđếmtừ 0x0000 tới 0x1FFF
•
Chế
độ
2
Chế
độ
2
–Bộđịnh thời8bitvớikhả năng tự nạplại
–Nạpgiátrịđếm vào TH và cho phép bộđịnh thờilàmviệc
8051
à
TL
iá
t ị
ở
TH
–
8051
nạpv
à
o
TL
g
iá
t
r
ị
ở
TH
– Khi TL quay vòng về 0x00, bộđịnh thờidựng cờ TF (và
ngắt)
–
Sau khi cờ TF bị xoá bởiISR/lệnh, TL đượcnạplạitừđộng
giá trịởTH và lặplại quá trình trước
– Đượcsử dụng trong truyền thông nốitiếp để tạotốc độ
baud
Các bộ định thờilàbộ đếm
Các
bộ
định
thời
là
bộ
đếm
•B
ộ
đ
ị
nh thời đếm số lần m
ộ
t s
ự
ki
ệ
n th
ự
c tế xuất
ộ ị ộ ự ệ ự
hiện
– Có bao nhiêu số 1 trong luồng bit
–
Có bao nhiêu người đi qua của
Có
bao
nhiêu
người
đi
qua
của
…
•Các bộ đếm tăng số đếm khi chúng nhận một tín
hiệu (đếm xung)
C ủ ể
•
C
ác bộ định thời c
ủ
a 8051 có th
ể
làm việc như
các bộ đếm
–
Bit
C/
T
ở
th
a
nh
g
hi TM
O
D
p
h
ả
i l
à
1
để
bộ
đế
m h
oạ
t
C/ ở ag Opả à để bộ đế oạ
động
– 2 chân ngoài của 8051 nhận các xung đếm
• P3.4
(
T0
,
chân 14
)
: Xun
g
đếm bên n
g
oài của Timer0
(, ) g g
• P3.5 (T1, chân 15): Xung đếm bên ngoài của Timer1
Ví dụ về bộ đếm
Ví
dụ
về
bộ
đếm
• Đếm xun
g
ở chân T1
(
P3.5
)
và hiển th
ị
g
iá tr
ị
của
g () ị g ị
bộ đếm trên cổng P2. Bộ đếm làm việc ở chế độ
2
Cổ bê ài
Cổ
ng
bê
n ngo
ài
•Cổn
g
bên n
g
oài cun
g
cấ
p
khả năn
g
điều khiển bộ định
gg gp g
thời cùng với một thiết bị bên ngoài
– Các nut ấn có thể được sử dụng để cho phép hoặc không cho
phép bộ đếm
–Nút dừng trong một clock cơ sở của 8051
•Thiết lập GATE=1 ở TMOD, sau đó bộ định thời có thể
đư
ợ
c điều khiển từ bên n
g
oài
ợ g
– Chân P3.2 (INT0) cho Timer0
– Chân P3.3 (INT1) cho Timer1
•
Với GATE=1 Timer được phép nếu
•
Với
GATE=1
,
Timer
được
phép
nếu
–TRx được thiết lập bởi phần mềm (setb TR0)
– AND, INT0 (chân P3.2) phải được kéo lên cao bởi phần cứng