! "# $ ! " #$%# &#' &$%#' $( ( ) )*+) ) ,) )- $ )+-! . %*+ /$$ : 0/$1-23/45567/89+9+9+9+0 23*+/ /$/:;/< 23/49//67/8+9+9+9+90 23*+/ /$/:;/< =>2*0/$1 $ )?-%) ) *+ : 0/$1-23*+45567*+89+9+9+9+0 /$/:;/< 23*+49//67*+8+9+9+9+90 /$/:;/< =>2*0/$1 = .% @ ) A#.&.B&C#- 23*+45567*+89+9+9+9+0 /D/E-FA*+49GG6 /$/:;/< =>2*/D/E % & FA*+49GG6' ()*+,-. //0 ( - ) F 0 H(I) %) ) + )?)% ( )( J 0 ( ) )))% ) ))( " 3 .% - 1 '23 ' #. $ !4 5 . - 6 78 ' 9!:- ' ; <=02 >. ! -?0**&!6'2 @ D - A(B- C72 D 6# - 5 . +1E;F<=0 CEG<=0 E4EH"$ I"B- ;E4EH" C'8 7- G- +1>;E C2 D E2 > A(B @ C @G- J&, @ C @G> J : - I"B$ D 998 > ( D - G> ) ?0**& 98 A(B. J&, H ) )% ) ))( K@ K K- K> K L@ L L- L> L =@ = =- => = <@ < <- <> < @@ @ @- @> @ @ - > -@ - -- -> - >@ > >- >> > *0*,*?*+*9 ! $%I K2)#))#L M D JN' ?# # # # 7 7 6 ' ! # O>=-- 7 7' # . 6'2 # $%I K! # 6# O>=- D 6# D ' <0P2 @>0P # . ' J D ! J # O>=-# '2 ' D -- >=Q0P; 6 D # 6# # D # D O>=-'23 .2 # 6# # D # D 3 J O>=-; # - 7 # 6# 3 .% - 3 2 ' '23 ; D ' D # .2 # -- >=Q0P (&ER$ +1 ,@;F=> C -J 0(,($ "+ C -J "+ C -J "+ C -J "+ C -J I"S ,@;0(,( C J ,( C -J 4 D $ T=>?-U-U-U-U!UV?- >O=G-LK = #'$%#' O>=- W$W>. W- J D ' D '$ - # #6 D # 7 D 2 5 % "# 7 9# 6 6'2 ' 9# 6# 9O>=- # )%# % E%( ))I@! )) K;#%L68 '# ' 7 . 9 5 ' 7 X D 6 6'2 % 13 $A# ? 9# 6 D '2' .2 # '2 6X# # D ;8 # . X D # 9 ?;8 # ' 7 6 D ? -> [...]... M1, M0 • M0 và M1 cho ̣n chế đô ̣ hoa ̣t đô ̣ng cho timers 0 & 1 M1 M0 C.đô ̣ 0 0 0 0 1 1 1 0 2 1 1 3 Hoa ̣t đô ̣ng Chế đô ̣ đế m 13-bit timer 8-bit THx + 5-bit TLx (x= 0 or 1) Chế đô ̣ đế m 16-bit timer 8-bit THx + 8-bit TLx Chế đô ̣ tự đô ̣ng na ̣p la ̣i 8-bit (auto reload) THx giữ giá tri để na ̣p la ̣i ̣ TLx giữ giá tri đế m ̣ Chế đô ̣ đế m 8 bit Timer Clock TLx (5 bit) THx (8 bit)... đô ̣ng Chế đô ̣ 1 (2/3) 5 8051 bắ t đầ u đế m tăng trên TH0-TL0 – TH0-TL0= FFFCH,FFFDH,FFFEH,FFFFH,0000H TR0=1 Chạy Timer TH0 TR0=0 TL0 Dừng timer FFFC FFFD FFFE FFFF 0000 TF = 0 TF = 0 TF = 0 TF = 0 TF = 1 TF Giám sát TF cho đến khi TF=1 Các bước hoa ̣t đô ̣ng Chế đô ̣ 1 (3/3) 6 Khi TH0-TL0 đă ̣t tới giá tri FFFFH và quay về ̣ 0000, 8051 lâ ̣p TF0=1 – TH0-TL0= FFFEH, FFFFH, 0000H (bây... đây chúng ta sử du ̣ng timer 0, timer 1 hoàn toàn tương tự • 16-bit timer (TH0 và TL0) • TH0-TL0 sẽ bắ t đầ u tăng liên tu ̣c sau mỗi clock nế u TR0 = 1 Và 8051 sẽ ngừng tăng TH0-TL0 khi TR0=0 • Timer làm viêc với nguồ n clock bên trong, hay nói ̣ cách khác nó sẽ đế m lên sau mỗi chu kỳ máy • Khi timer (TH0-TL0) đa ̣t giá tri cực đa ̣i FFFFH, nó sẽ ̣ quay về 0000, và... giá tri cực đa ̣i, thêm 1 clock sẽ ̣ quay về 0, 8051 Lâ ̣p mô ̣t bit để thông báo hế t thời gian Set Timer 0 P2 P1 TH0 TL0 8051 to LCD Counter • Đế m số sự kiên xảy ra ̣ – Giữ số sự kiên đế m đươ ̣c trong thanh ghi đế m ̣ – Chân T0 (P3.4) sử du ̣ng làm ngõ vào cho Counter 0 – Chân T1 (P3.5) sử du ̣ng làm ngõ vào cho Counter 1 8051 TH0 TL0 Mô ̣t công tắ c T0 P3.4 P1 to LCD Các... byte, timer 1 low byte – Các thanh ghi 16-bit này có thể truy câ ̣p phầ n cao và thấ p mô ̣t cách riêng re ̃ Các thanh ghi Timer TH0 TL0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Timer 0 TH1 TL1 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Timer 1 Thanh ghi TMOD • Thanh ghi chế đô ̣ Timer: TMOD MOV TMOD,#21H – Là thanh ghi 8-bit – Sử du ̣ng để khởi đô ̣ng chế đô... theo thâ ̣p phân sẽ là: (65536 – NNNNN) × 1.085 µs Ví du ̣ 8-4 (1/3) Chương trình sau ta ̣o sóng vuông với chu kỳ nhiêm vu ̣ 50% (bán kỳ ̣ cao bằ ng bán ký thấ p) trên đườg P1.5, sử du ̣ng Timer 0 ta ̣o thời gian trễ Phân tích chương trình: ;Mỗ vòg lặ tạ ½ chu kỳxung vuông i n p o MOV TMOD,#01 ;Timer 0,mode 1(16-bit) HERE: MOV TL0,#0F2H ;Timer value = FFF2H MOV TH0,#0FFH P1.5... FFF2H MOV TH0,#0FFH P1.5 CPL P1.5 ACALL DELAY 50% 50% SJMP HERE whole clock Ví du ̣ 8-4 (2/3) ;Tạ thờ gian trễsửdụg timer 0 o i n DELAY: SETB TR0 ;cho timer 0 chạ y AGAIN:JNB TF0,AGAIN CLR TR0 ;dừg timer 0 n CLR TF0 ;xoácờtimer 0 RET FFF2 FFF3 FFF4 FFFF 0000 TF0 = 0 TF0 = 0 TF0 = 0 TF0 = 0 TF0 = 1 Ví du ̣ 8-4 (3/3) Giải: Trong chương trinh trên chú ý các bước sau ̀ 1 Na ̣p TMOD = 0000... TR0 Timer0 IE1 IT1 IE0 cho Interrupt (LSB) IT0 Thanh ghi TCON (2/2) • TF (timer flag, control flag) – TF0 cho timer/counter 0; TF1 cho timer/counter 1 – TF giố ng như cờ nhớ Khởi đô ̣ng, TF=0 Khi TH-TL = FFFFH thêm 1 clock trở về 0000, TF sẽ đươ ̣c lâ ̣p lên 1 • TF=0 : chưa hế t giá tri ̣cầ n đế m • TF=1: hế t giá tri ̣cầ n đế m • Nế u cho phép ngắ t timer, TF=1 se ̃ cho cha ̣y chương... “CLR TR0” Chương trinh con DELAY kế t ̀ thúc và quá trinh đươ ̣c lă ̣p la ̣i ̀ Chú ý: khi quá trinh lă ̣p la ̣i cầ n na ̣p la ̣i giá tri ̣cho TH và TL trong chương trinh ̀ ̀ chính Ví du ̣ 8-9 (1/2) Chương trình dưới đây ta ̣o ra mô ̣t xung vuông trên đường P1.5 sử du ̣ng Timer 1 ta ̣o thời gian trễ Tìm tầ n số sóng vuông nế u XTAL = 11.0592 MHz (Bỏ qua các lênh trong vòng lă . )# -= OQ -& gt; -- - -@ -& lt; K > - @<=L 0> &> -= OQ -& gt; -- - -@ -& lt; K > - @<=L 0- & ;- Timer. K - K> K L@ L L - L> L =@ = = - => = <@ < < - <> < @@ @ @ - @> @ @ - > - @ - - - - >