Lập Lập trình trình ñịnh ñịnh thời thời dùng dùng Timer Timer::

Một phần của tài liệu Bài giảng lý thuyết vi xử lý -Chương 4: Hoạt động của bộ định thời potx (Trang 27 - 36)

•• ChươngChương trìnhtrình concon DạngDạng 11 ((ttDelayDelay ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ 256256 µµss))::

DELAY: DELAY:

MOV

MOV TMOD, #TMOD, #...(1)…...(1)… MOV MOV THTHxx, #(, #(…[N]……[N]…)) SETB SETB TRTRxx JNB JNB TFTFxx, $, $

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN

tDELAY (us): Thời gian ñịnh thời.

f (MHz): Tần số thạch anh. JNB JNB TFTFxx, $, $ CLR CLR TRTRxx CLR CLR TFTFxx RET RET

Khi sử dụng dạng này ta phải thiết lập Timer hoạt ñộng ở Mode 2 fOSC (MHz): Tần số thạch anh.

[N]: Giá trị nạp cho THx / TLx.

(1): Chọn chế ñộ cho Timer.

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• ChươngChương trìnhtrình concon DạngDạng 22 ((ttDelayDelay ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ 6565..536536 µµss))::

DELAY: DELAY:

MOV

MOV TMOD, #TMOD, #...(1)…...(1)… MOV

MOV THTHxx, #HIGH(, #HIGH(…[N]……[N]…)) MOV

MOV TLTLxx, #LOW(, #LOW(…[N]……[N]…)) SETB

SETB TRTRxx

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN

tDELAY (us): Thời gian ñịnh thời.

f (MHz): Tần số thạch anh. SETB SETB TRTRxx JNB JNB TFTFxx, $, $ CLR CLR TRTRxx CLR CLR TFTFxx RET RET

Khi sử dụng dạng này ta phải thiết lập Timer hoạt ñộng ở Mode 1 fOSC (MHz): Tần số thạch anh.

[N]: Giá trị nạp cho THx / TLx.

(1): Chọn chế ñộ cho Timer.

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• ChươngChương trìnhtrình concon DạngDạng 33 ((ttDelayDelay > > > > > > > > 6565..536536 µµss))::

DELAY: DELAY: (adsbygoogle = window.adsbygoogle || []).push({});

PUSH

PUSH 00H00H MOV

MOV TMOD, #TMOD, #...(1)…...(1)… MOV

MOV RRnn, #, #...(m)…...(m)… LOOP:

LOOP: MOV

MOV THTHxx, #HIGH(, #HIGH(…[N]……[N]…))

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIAN

MOV

MOV THTHxx, #HIGH(, #HIGH(…[N]……[N]…)) MOV

MOV TLTLxx, #LOW(, #LOW(…[N]……[N]…)) SETB SETB TRTRxx JNB JNB TFTFxx, $, $ CLR CLR TRTRxx CLR CLR TFTFxx DJNZ DJNZ RRnn, LOOP, LOOP POP POP 00H00H RET RET

Khi sử dụng dạng này ta phải thiết lập Timer hoạt ñộng ở Mode 1 tDELAY (us): Thời gian ñịnh thời.

tDELAY(TIMER) (us): Thời gian ñịnh thời riêng của Timer.

fOSC (MHz): Tần số thạch anh. [N]: Giá trị nạp cho THx / TLx. (1): Chọn chế ñộ cho Timer. (m): Số lần lặp lại. x: Số thứ tự Timer sử dụng. n: Số thứ tự thanh ghi sử dụng.

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• VíVí dd 11:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 100100 µµss dùngdùng TimerTimer 00.. Biết

Biết rằngrằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz.. Giải Giải

•• ÁpÁp dụngdụng côngcông thứcthức::

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

N = N = --100100 Chọn Chọn Dạng 1Dạng 1

•• SửSử dụngdụng TimerTimer 00::

x =x = 00

•• TimerTimer hoạthoạt ñộngñộng ởở ModeMode 22::

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer:: (adsbygoogle = window.adsbygoogle || []).push({});

•• VíVí dd 11:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 100100 µµss dùngdùng TimerTimer 00.. Biết

Biết rằngrằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz.. Giải Giải

•• KếtKết quảquả chươngchương trìnhtrình concon nhưnhư sausau::

DELAY DELAY::

MOV

MOV TMODTMOD, #02H, #02H

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

MOV MOV TH0TH0, #(, #(--100)100) SETB SETB TR0TR0 JNB JNB TF0TF0, $, $ CLR CLR TR0TR0 CLR CLR TF0TF0 RET RET

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• VíVí dd 22:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 1010 msms dùngdùng TimerTimer 11.. BiếtBiết rằng

rằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz..

Giải Giải

•• ÁpÁp dụngdụng côngcông thứcthức::

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

N = N = --10.00010.000 Chọn Chọn Dạng 2Dạng 2

•• SửSử dụngdụng TimerTimer 11::

x = x = 11

•• TimerTimer hoạthoạt ñộngñộng ởở ModeMode 11::

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• VíVí dd 22:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 1010 msms dùngdùng TimerTimer 11.. BiếtBiết rằng

rằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz..

Giải Giải (adsbygoogle = window.adsbygoogle || []).push({});

•• KếtKết quảquả chươngchương trìnhtrình concon nhưnhư sausau::

DELAY DELAY::

MOV

MOV TMODTMOD, , #10H#10H

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

MOV

MOV TH1, #HIGH(TH1, #HIGH(--10000)10000) MOV

MOV TL1, #LOW(TL1, #LOW(--10000)10000) SETB SETB TR1TR1 JNB JNB TF1, TF1, $$ CLR CLR TR1TR1 CLR CLR TF1TF1 RET RET

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• VíVí dd 33:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 11ss dùngdùng TimerTimer 11.. BiếtBiết rằng

rằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz..

Giải Giải

•• ÁpÁp dụngdụng côngcông thứcthức::

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

Chọn

Chọn m = m = 100100 và và ttDELAY(TIMER)DELAY(TIMER) = 10.000us= 10.000us

N = N = --10.00010.000 Chọn Chọn Dạng 3Dạng 3

•• SửSử dụngdụng TimerTimer 11::

x = x = 11

•• TimerTimer hoạthoạt ñộngñộng ởở ModeMode 11::

…(1)… = …(1)… = 10H10H

•• ChọnChọn thanhthanh ghighi RR00 làmlàm vòngvòng lặplặp::

(adsbygoogle = window.adsbygoogle || []).push({});

LậpLập trìnhtrình ñịnhñịnh thờithời dùngdùng TimerTimer::

•• VíVí dd 33:: ViếtViết chươngchương trìnhtrình concon tạotạo thờithời giangian trễtrễ 11ss dùngdùng TimerTimer 11.. BiếtBiết rằng

rằng tầntần sốsố thạchthạch anhanh làlà 1212 MHzMHz..

Giải Giải

•• KếtKết quảquả chươngchương trìnhtrình concon nhưnhư sausau::

DELAY: DELAY:

PUSH

PUSH 00H00H MOV

MOV TMOD, #10HTMOD, #10H MOV

MOV R0, #100R0, #100

HOẠT ðỘNG CỦA BỘ ðỊNH THỜIHOẠT ðỘNG CỦA BỘ ðỊNH THỜI HOẠT ðỘNG CỦA BỘ ðỊNH THỜI

VÍ DỤ LẬP TRÌNH ðỊNH THỜI GIANDỤ LẬP TRÌNH ðỊNH THỜI GIAN

MOV

MOV R0, #100R0, #100 LOOP:

LOOP: MOV

MOV TH1, #HIGH(TH1, #HIGH(--10000)10000) MOV

MOV TL1, #LOW(TL1, #LOW(--10000)10000) SETB SETB TR1TR1 JNB JNB TF1, $TF1, $ CLR CLR TR1TR1 CLR CLR TF1TF1 DJNZ DJNZ R0R0, AAA, AAA POP 00H POP 00H RET RET

Một phần của tài liệu Bài giảng lý thuyết vi xử lý -Chương 4: Hoạt động của bộ định thời potx (Trang 27 - 36)