Bài giảng lý thuyết vi xử lý -Chương 4: Hoạt động của bộ định thời potx - Pdf 15

ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ
BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP
BÀI GIẢNG LÝ THUYẾTBÀI GIẢNG LÝ THUYẾT
VI XỬ LÝVI XỬ LÝ
TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH
THÁNG 09THÁNG 09 20092009
VI XỬ LÝVI XỬ LÝ
GiáoGiáo viên: PHẠM QUANG TRÍviên: PHẠM QUANG TRÍ
ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ
BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP
CHƯƠNG 4CHƯƠNG 4
HOẠT ðỘNG CỦA BỘ HOẠT ðỘNG CỦA BỘ
ðỊNH THỜIðỊNH THỜI
 CácCác ứngứng dụngdụng củacủa bộbộ ñịnhñịnh thờithời::
•• ỨngỨng dụngdụng ñịnhñịnh thờithời giangian ((TIMERTIMER))
•• ỨngỨng dụngdụng ñếmñếm sựsự kiệnkiện ((COUNTERCOUNTER))
•• ỨngỨng dụngdụng tạotạo tốctốc ñộñộ baudbaud chocho portport nốinối tiếptiếp (tốc(tốc ñộñộ truyềntruyền dữdữ liệuliệu kiểukiểu
nốinối
tiếp)tiếp)

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG
nốinối
tiếp)tiếp)

 CấuCấu trúctrúc ñơnñơn giảngiản củacủa bộbộ ñịnhñịnh thờithời::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
GIỚI THIỆU CHUNGGIỚI THIỆU CHUNG
 CácCác SFRSFR sửsử dụngdụng trongtrong bộbộ ñịnhñịnh thờithời::

(với(với
xx
==
00
,,
11
))
::
ChứaChứa
giágiá
trịtrị
thờithời
giangian
ñịnhñịnh
thờithời
hoặchoặc
sốsố
xungxung
ñếmñếm ñượcñược củacủa từngtừng bộbộ ñịnhñịnh thờithời
 CấuCấu trúctrúc TMODTMOD::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
THANH GHI TMOD (TIMER MODE)THANH GHI TMOD (TIMER MODE)
 VíVí dụdụ minhminh họahọa::
•• ChoCho biếtbiết giágiá trịtrị cầncần nạpnạp chocho thanhthanh ghighi TMODTMOD ñểñể::
•• Timer 0: Bộ ñịnh thời gian 16 bit, ñược ñiều khiển bằng phần mềm (Timer 0: Bộ ñịnh thời gian 16 bit, ñược ñiều khiển bằng phần mềm (bit TR0bit TR0).).
•• Timer 1: Bộ ñếm xung 13 bit, ñược ñiều khiển bằng phần cứng (Timer 1: Bộ ñếm xung 13 bit, ñược ñiều khiển bằng phần cứng (chân INT0chân INT0).).
 Phân tích:Phân tích:
•• (1): Chế ñộ 16 bit.(1): Chế ñộ 16 bit.  M1 = 0, M0 = 1.M1 = 0, M0 = 1.
•• (2): Bộ ñịnh thời gian.(2): Bộ ñịnh thời gian.  C/T C/T = 0.= 0.
••

•• (6): ðiều khiển bằng phần mềm.(6): ðiều khiển bằng phần mềm.  GATE = 0.GATE = 0.
T0T0
T1T1
(TMOD) = 20H(TMOD) = 20H
 CấuCấu trúctrúc TCONTCON::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
THANH GHI TCON (TIMER CONTROL)THANH GHI TCON (TIMER CONTROL)
 ChếChế ñộñộ 00 (Mode(Mode 00 –– 1313 bitbit Timer)Timer)::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
CÁC CHẾ ðỘ ðỊNH THỜICÁC CHẾ ðỘ ðỊNH THỜI
Hình minh họa Timer 0 ở chế ñộ Timer 13 bit.
 ChếChế ñộñộ 11 (Mode(Mode 11 –– 1616 bitbit Timer)Timer)::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
CÁC CHẾ ðỘ ðỊNH THỜICÁC CHẾ ðỘ ðỊNH THỜI
Hình minh họa Timer 0 ở chế ñộ Timer 16 bit.
 ChếChế ñộñộ 22 (Mode(Mode 22 –– AutoAuto ReloadReload Timer)Timer)::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
CÁC CHẾ ðỘ ðỊNH THỜICÁC CHẾ ðỘ ðỊNH THỜI
Hình minh họa Timer 0 ở chế ñộ Timer tự ñộng nạp lại.
 ChếChế ñộñộ 33 (Mode(Mode 33 –– SplitSplit Timer)Timer)::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
CÁC CHẾ ðỘ ðỊNH THỜICÁC CHẾ ðỘ ðỊNH THỜI
Hình minh họa Timer 0 ở chế ñộ Timer chia sẻ.
 CácCác khoảngkhoảng thờithời giangian ñịnhñịnh thờithời::
•• KhoảngKhoảng thờithời giangian ñịnhñịnh thờithời ngắnngắn nhấtnhất:: 11 TT
TIMERTIMER
•• KhoảngKhoảng thờithời giangian ñịnhñịnh thờithời dàidài nhấtnhất::
•• ≤≤ 1010 TT
TIMERTIMER
⇒⇒ DùngDùng cáccác lệnhlệnh

TT
TIMERTIMER
⇒⇒
DùngDùng
bộbộ
ñịnhñịnh
thờithời
1616
bitbit
++
cáccác
vòngvòng
lặplặp

TT
TIMERTIMER
((µµs): chu kỳ xung clock ñịnh thời.s): chu kỳ xung clock ñịnh thời.
ff
OSCOSC
(MHz): tần số thạch anh.(MHz): tần số thạch anh.
 CácCác bướcbước cơcơ bảnbản ñểñể khởikhởi ñộngñộng TimerTimer::
 Chọn chế ñộ hoạt ñộng cho Timer, cho bit Chọn chế ñộ hoạt ñộng cho Timer, cho bit GATE = 0GATE = 0 và và C/T = 0C/T = 0::
MOV TMOD, #MOV TMOD, # (1)… (1)…
 Chọn khoảng thời gian ñịnh thời cho Timer:Chọn khoảng thời gian ñịnh thời cho Timer:
MOV THMOV THxx, #, # (2)… (2)…
MOV TLMOV TLxx, #, # (3)… (3)…

Cho Timer chạy:Cho Timer chạy:
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
ỨNG DỤNG LẬP TRÌNH ðỊNH THỜI GIANỨNG DỤNG LẬP TRÌNH ðỊNH THỜI GIAN

88
bitbit
::
NN
==

255255

→→
→→
→→


11

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
ỨNG DỤNG LẬP TRÌNH ðỊNH THỜI GIANỨNG DỤNG LẬP TRÌNH ðỊNH THỜI GIAN
t
DELAY
(us): Thời gian ñịnh thời.
f
OSC
(MHz): Tần số thạch anh.
N: Giá trị nạp cho THx / TLx.
••
ChCh
ññ
88
bitbit
::

MOVMOV TLTL11,, ##LOWLOW(( 1000010000)) →→ ñịnhñịnh thờithời 1000010000 TT
TIMERTIMER
MOVMOV THTH11,, ##HIGHHIGH(( 1000010000))
 CácCác bướcbước cơcơ bảnbản ñểñể khởikhởi ñộngñộng CounterCounter::
 Chọn chế ñộ hoạt ñộng cho Counter, cho bit Chọn chế ñộ hoạt ñộng cho Counter, cho bit GATE = 0GATE = 0 và và C/T = 1C/T = 1::
MOV TMOD, #MOV TMOD, # (1)… (1)…
 Xoá các giá trị chứa trong thanh ghi THx và TLx :Xoá các giá trị chứa trong thanh ghi THx và TLx :
MOV THMOV THxx, #00H, #00H
MOV TLMOV TLxx, #00H, #00H

Cho Counter chạy:Cho Counter chạy:
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
ỨNG DỤNG LẬP TRÌNH ðẾM XUNGỨNG DỤNG LẬP TRÌNH ðẾM XUNG
Cho Counter chạy:Cho Counter chạy:
SETB TRSETB TRxx
 Kiểm tra cờ báo tràn ñể xử lý trường hợp số ñếm bị tràn.Kiểm tra cờ báo tràn ñể xử lý trường hợp số ñếm bị tràn.
 ðọc số xung ñếm ñược trong thanh ghi ðọc số xung ñếm ñược trong thanh ghi THxTHx và và TLxTLx
 Dừng Timer:Dừng Timer:
CLR TRCLR TRxx
 Xóa cờ báo tràn:Xóa cờ báo tràn:
CLR TFCLR TFxx
 LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng vòngvòng lặplặp (không(không dùngdùng Timer)Timer)::
•• DùngDùng 11 vòngvòng lặplặp DJNZDJNZ::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANVÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN
 ðoạn lệnh:
MOV R0, # [n]…
DJNZ R0, $
 LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng vòngvòng lặplặp (không(không dùngdùng Timer)Timer)::
•• DùngDùng 11 vòngvòng lặplặp DJNZDJNZ::

R1, LOOP1
DJNZ
R1, LOOP1
 LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng vòngvòng lặplặp (không(không dùngdùng Timer)Timer)::
•• DùngDùng 22 vòngvòng lặplặp DJNZDJNZ::
HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI
VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANVÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN
 ðoạn lệnh:
MOV R0, # [n1]…
LOOP1:
MOV R1, # [n2]…
DJNZ R1, $
DJNZ
R0, LOOP1
 Thời gian ñịnh thời:
[n1], [n2]: Số lần lặp.
t
DELAY
(us)
: Thời gian ñịnh thời.
DJNZ
R0, LOOP1
t
DELAY
(us)
: Thời gian ñịnh thời.
f
OSC
(MHz): Tần số thạch anh.
 Công thức chính xác:

t
DELAY
(us)
: Thời gian ñịnh thời.
MOV
R0, # [n3]…
DJNZ R0, $
DJNZ R1, LOOP1
DJNZ R2, LOOP2
t
DELAY
(us)
: Thời gian ñịnh thời.
f
OSC
(MHz): Tần số thạch anh.
 Công thức chính xác:
Giá trị của vòng lặp [n] phải nằm trong khoảng từ 0 - 255


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status