Chương 4: Hoạt động của bộ định thời Timer

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:35

0
510
lượt xem
164
download

Chương 4: Hoạt động của bộ định thời Timer

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bộ định thời (Timer) là chuỗi các FF(mỗi FF là 1mach chia 2). Gồm 2 ngõ: Ngõ vào là nhận tín hiệu xung clock từ xung. Ngõ ra để truyền tín hiệu xung clock cho FF bán tràn (cờ tràn)

Chủ đề:
Lưu

Nội dung Text: Chương 4: Hoạt động của bộ định thời Timer

  1. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. CHƯƠNG 4 HO T ð NG C A B ð NH TH I (TIMER) I. M ð U: Boä ñònh Laø chuoãi caùc FF (moãi FF laø 1 maïch chia 2). thôøi Ngoõ vaøo: nhaän tín hieäu xung clock töø nguoàn xung. (TIMER) Ngoõ ra: truyeàn tín hieäu xung clock cho FF baùo traøn (côø traøn). • T n s : t n s xung ngõ ra b ng t n s xung ngõ vào chia cho 2N. • Giá tr : giá tr nh phân trong các FF c a b ñ nh th i là s ñ m c a các xung clock t i ngõ vào t khi b ñ nh th i b t ñ u ñ m. • Tràn: x y ra hi n tư ng tràn (c tràn = 1) khi s ñ m chuy n t giá tr l n nh t xu ng giá tr nh nh t c a b ñ nh th i. Ví d : B ñ nh th i 16 bit (ch a 16 FF bên trong). f f o T ns : f = IN = IN OUT 216 65536 o Giá tr : s ñ m n m trong kho ng 0 (0000H) → 65535 (FFFFH). o Tràn: c tràn b ng 1 khi s ñ m t FFFFH chuy n xu ng 0000H. Hình minh h a ñơn gi n ho t ñ ng c a b ñ nh th i 3 bit: Ho t ñ ng c a m t b ñ nh th i 3 bit ñơn gi n ñư c minh h a trong hình trên. M i m t t ng là D FF kích kh i c nh âm ho t ñ ng như m t m ch chia 2 do ta n i ngõ ra Q v i ngõ vào D. Flipflop c (Flag FF) là m t m ch ch t D ñư c set b ng 1 b i t ng cu i c a b ñ nh th i. Gi n ñ th i gian cho Giáo trình Vi x lý. 119 Biên so n: Ph m Quang Trí
  2. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. th y t ng th nh t (Q0) chia 2 t n s xung clock, t ng th hai (Q1) chia 4 t n s xung clock, … S ñ m ñư c ghi d ng th p phân và ñư c ki m tra d dàng b ng cách kh o sát tr ng thái c a 3 flipflop. Ví d , s ñ m là 4 xu t hi n khi Q2 = 1, Q1 = 0, Q0 = 0. Các flipflop trên là các flipflop tác ñ ng c nh âm (nghĩa là tr ng thái c a các flipflop s thay ñ i theo c nh âm c a xung clock). Khi s ñ m tràn t 111 xu ng 000, ngõ ra Q2 có c nh âm làm cho tr ng thái c a flipflop c ñ i t 0 lên 1 (ngõ vào D c a flipflop này luôn luôn logic 1). • ng d ng ñ nh th i gian (TIMER): b ñ nh th i ñư c l p trình sao cho s tràn sau m t kho ng th i gian ñã qui ñ nh và khi ñó c tràn c a b ñ nh th i s b ng 1. • ng d ng ñ m s ki n (COUNTER): ñ xác ñ nh s l n xu t hi n c a m t kích thích t bên ngoài t i m t chân c a chip 8051 (kích thích là s chuy n tr ng thái t 1 xu ng 0). • ng d ng t o t c ñ baud cho port n i ti p: xem thêm trong chương “Chương 5: Ho t ñ ng port n i ti p.”. Giáo trình Vi x lý. 120 Biên so n: Ph m Quang Trí
  3. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. II. THANH GHI CH ð ð NH TH I (TMOD): • Thanh ghi TMOD (Timer Mode Register) ch a các bit dùng ñ thi t l p ch ñ ho t ñ ng cho b ñ nh th i 0 và b ñ nh th i 1. • Thanh ghi TMOD ñư c n p giá tr m t l n t i th i ñi m b t ñ u c a chương trình ñ qui ñ nh ch ñ ho t ñ ng c a các b ñ nh th i. • C u trúc thanh ghi TMOD: Bit 7 6 5 4 3 2 1 0 TMOD: Timer Mode Register 0 M0: Bit choïn cheá ñoä hoaït ñoäng cho boä ñònh thôøi. M1: Bit choïn cheá ñoä hoaït ñoäng cho boä ñònh thôøi. C/T: Bit choïn chöùc naêng ñeám hoaëc ñònh thôøi. C/T=1: Boä ñònh thôøi laø boä ñeám (Counter). C/T=0: Boä ñònh thôøi laø boä ñònh khoaûng thôøi gian (Timer). GATE: Bit ñieàu khieån coång. GATE=0: Boä ñònh thôøi hoaït ñoäng khi bit TR0=1 (ñieàu khieån baèng phaàn meàm). GATE=1: Boä ñònh thôøi hoaït ñoäng khi chaân INT0\=1 (ñieàu khieån baèng phaàn cöùng). 1 M0: Bit choïn cheá ñoä hoaït ñoäng cho boä ñònh thôøi. M1: Bit choïn cheá ñoä hoaït ñoäng cho boä ñònh thôøi. C/T: Bit choïn chöùc naêng ñeám hoaëc ñònh thôøi. C/T=1: Boä ñònh thôøi laø boä ñeám (Counter). C/T=0: Boä ñònh thôøi laø boä ñònh khoaûng thôøi gian (Timer). GATE: Bit ñieàu khieån coång. GATE=0: Boä ñònh thôøi hoaït ñoäng khi bit TR1=1 (ñieàu khieån Hình 4.2.1: baèng phaàn meàm). Thanh ghi choïn GATE=1: Boä ñònh thôøi hoaït ñoäng khi chaân INT1\=1 (ñieàu cheá ñoä ñònh thôøi. khieån baèng phaàn cöùng). • Các ch ñ ho t ñ ng c a b ñ nh th i: Giáo trình Vi x lý. 121 Biên so n: Ph m Quang Trí
  4. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Ví d 1: Cho bi t giá tr c n n p cho thanh ghi TMOD ñ o Timer 0: là b ñ nh th i gian 16 bit, ñư c ñi u khi n b ng ph n m m (bit TR0). o Timer 1: là b ñ m xung 13 bit, ñư c ñi u khi n b ng ph n c ng (chân INT 1 ). Gi i Phân tích: (1): Ch ñ 16 bit. M1 = 0, M0 = 1. (2): B ñ nh th i gian. C / T = 0. (3): ði u khi n b ng ph n m m. GATE = 0. (4): Ch ñ 13 bit. M1 = 0, M0 = 0. (5): B ñ m xung. C / T = 1. (6): ði u khi n b ng ph n c ng. GATE = 1. T ñó ta có: (TMOD) = 11000001B = C1H. • Ví d 2: Cho bi t giá tr c n n p cho thanh ghi TMOD ñ o Timer 0: không s d ng. o Timer 1: là b ñ nh th i gian 8 bit t n p l i, ñư c ñi u khi n b ng ph n m m (bit TR1). Gi i Phân tích: (1): Không s d ng. M1 = 0, M0 = 0. (2): Không s d ng. C / T = 0. (3): Không s d ng. GATE = 0. Do Timer 0 không s d ng, nên ta có thi t l p nó b t c ch ñ nào. Thông thư ng ñ d dàng ta nên cho: GATE=0, C / T = 0, M1 = 0 và M0 = 0. (4): Ch ñ 8 bit t ñ ng n p l i. M1 = 1, M0 = 0. (5): B ñ nh th i gian. C / T = 0. (6): ði u khi n b ng ph n m m. GATE = 0. T ñó ta có: (TMOD) = 00100000B = 20H. Giáo trình Vi x lý. 122 Biên so n: Ph m Quang Trí
  5. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Ví d 3: Cho bi t (TMOD) = A5H. Hãy cho bi t ch ñ ho t ñ ng c a các Timer 0 và Timer 1. Gi i Ta có: (TMOD) = A5H = 10100101B. Gi i thích: M1 = 1, M0 = 0. (4): Ch ñ 8 bit t ñ ng n p l i. C / T = 0. (5): B ñ nh th i gian. GATE = 1. (6): ði u khi n b ng ph n c ng. M1 = 0, M0 = 1. (1): Ch ñ 16 bit. C / T = 1. (2): B ñ m xung. GATE = 0. (3): ði u khi n b ng ph n m m. T ñó ta có: o Timer 0: là b ñ m xung 16 bit, ñư c ñi u khi n b ng ph n m m (bit TR0). o Timer 1: là b ñ nh th i gian 8 bit t n p l i, ñư c ñi u khi n b ng ph n c ng (chân INT 1 ). • Ví d 4: Cho bi t (TMOD) = 21H. Hãy cho bi t ch ñ ho t ñ ng c a các Timer 0 và Timer 1. Gi i Ta có: (TMOD) = 21H = 00100001B. Gi i thích: M1 = 1, M0 = 0. (4): Ch ñ 8 bit t ñ ng n p l i. C / T = 0. (5): B ñ nh th i gian. GATE = 0. (6): ði u khi n b ng ph n m m. M1 = 0, M0 = 1. (1): Ch ñ 16 bit. C / T = 0. (2): B ñ nh th i gian. GATE = 0. (3): ði u khi n b ng ph n m m. T ñó ta có: o Timer 0: là b ñ nh th i gian 16 bit, ñư c ñi u khi n b ng ph n m m (bit TR0). o Timer 1: là b ñ nh th i gian 8 bit t n p l i, ñư c ñi u khi n b ng ph n m m (bit TR1). Giáo trình Vi x lý. 123 Biên so n: Ph m Quang Trí
  6. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. III. THANH GHI ðI U KHI N ð NH TH I (TCON): • Thanh ghi TCON (Timer Control Register) ch a các bit dùng ñ ñi u khi n và báo tr ng thái c a b ñ nh th i 0 và b ñ nh th i 1. • C u trúc thanh ghi TCON: • Lưu ý: Các bit IT0, IT1, IE0, IE1 không dùng ñ ñi u khi n các b ñ nh th i. Các bit này ñư c dùng ñ phát hi n và kh i ñ ng các ng t ngoài. Vi c th o lu n các bit này s ñư c trình bày trong “Chương 6: Ho t ñ ng ng t.”. Giáo trình Vi x lý. 124 Biên so n: Ph m Quang Trí
  7. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. IV. CÁC CH ð ð NH TH I VÀ C TRÀN: 1. Ch ñ ñ nh th i 13 bit (Ch ñ 0): Ch ñ 0 (Mode 0): • Ch ñ ñ nh th i 13 bit. • S d ng 8 bit c a thanh ghi THx và 5 bit th p c a thanh ghi TLx ñ t o ra b ñ nh th i. • S ñ m: 0000H → 1FFFH nghĩa là t 0 → 8191. Th i gian ñ nh th i: t 1.TTimer → 213.TTimer nghĩa là t 1.TTimer → 8192.TTimer. • Thanh ghi THx và TLx ch a giá tr c a b ñ nh th i. • Khi có xung clock, b ñ nh th i b t ñ u ñ m lên t giá tr ch a trong THx/TLx. • X y ra tràn (c tràn TFx=1) khi s ñ m chuy n t 1FFFH sang 0000H và vi c ñ m s ti p t c ñ m lên t giá tr 0000H. Ki n trúc c a Timer 0 ch ñ 0 (Mode 0). Giáo trình Vi x lý. 125 Biên so n: Ph m Quang Trí
  8. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. 2. Ch ñ ñ nh th i 16 bit (Ch ñ 1): Ch ñ 1 (Mode 1): • Ch ñ ñ nh th i 16 bit. • S d ng thanh ghi THx và TLx ñ t o ra b ñ nh th i. • S ñ m: 0000H → FFFFH nghĩa là t 0 → 65535. Th i gian ñ nh th i: t 1.TTimer → 216.TTimer nghĩa là t 1.TTimer → 65536.TTimer. • Thanh ghi THx và TLx ch a giá tr c a b ñ nh th i. • Khi có xung clock, b ñ nh th i b t ñ u ñ m lên t giá tr ch a trong THx/TLx. • X y ra tràn (c tràn TFx=1) khi s ñ m chuy n t FFFFH sang 0000H và vi c ñ m s ti p t c ñ m lên t giá tr 0000H. Ki n trúc c a Timer 0 ch ñ 1 (Mode 1). Giáo trình Vi x lý. 126 Biên so n: Ph m Quang Trí
  9. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. 3. Ch ñ ñ nh th i 8 bit t n p l i (Ch ñ 2): Ch ñ 2 (Mode 2): • Ch ñ ñ nh th i 8 bit t n p l i. • S d ng thanh ghi TLx ñ t o ra b ñ nh th i. • S ñ m: 00H → FFH nghĩa là t 0 → 255. Th i gian ñ nh th i: t 1.TTimer → 28.TTimer nghĩa là t 1.TTimer → 256.TTimer. • Thanh ghi TLx ch a giá tr c a b ñ nh th i và thanh ghi THx ch a giá tr s ñư c dùng ñ n p l i cho b ñ nh th i. • Khi có xung clock, b ñ nh th i b t ñ u ñ m lên t giá tr ch a trong TLx (THx không thay ñ i giá tr ). • X y ra tràn (c tràn TFx=1) khi s ñ m chuy n t FFH sang 00H, ñ ng th i giá tr trong THx s ñư c n p vào TLx và vi c ñ m s ti p t c ñ m lên t giá tr ch a trong thanh ghi TLx (giá tr này b ng v i giá tr c a THx). Ki n trúc c a Timer 0 ch ñ 2 (Mode 2). Giáo trình Vi x lý. 127 Biên so n: Ph m Quang Trí
  10. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. 4. Ch ñ ñ nh th i chia x (Ch ñ 3): Timer TH1 TL1 clock Timer TF0 TL0 clock TF1 TH0 /12FOSC Overflow x = 0, 1: Boä ñònh thôøi 0, 1. flag Timer clock: Xung clock cho boä ñònh thôøi. Overflow flag: Côø traøn. Ch ñ 3 (Mode 3) là: • Ch ñ ñ nh th i chia x . • B ñ nh th i 0 ñư c chia ra: o B ñ nh th i 8 bit th I: S d ng thanh ghi TL0 ñ t o ra b ñ nh th i. S ñ m: 00H → FFH nghĩa là t 0 → 255. Th i gian ñ nh th i: t 1.TTimer → 28.TTimer nghĩa là t 1.TTimer → 256.TTimer. Thanh ghi TL0 ch a giá tr c a b ñ nh th i. Khi có xung clock, b ñ nh th i b t ñ u ñ m lên t giá tr ch a trong TL0. X y ra tràn (c tràn TF0=1) khi s ñ m chuy n t FFH sang 00H và vi c ñ m s ti p t c ñ m lên t giá tr 00H. o B ñ nh th i 8 bit th II: S d ng thanh ghi TH0 ñ t o ra b ñ nh th i. S ñ m: 00H → FFH nghĩa là t 0 → 255. Th i gian ñ nh th i: t 1.TTimer → 28.TTimer nghĩa là t 1.TTimer → 256.TTimer. Thanh ghi TH0 ch a giá tr c a b ñ nh th i. Khi có xung clock, b ñ nh th i b t ñ u ñ m lên t giá tr ch a trong TH0. X y ra tràn (c tràn TF1=1) khi s ñ m chuy n t FFH sang 00H và vi c ñ m s ti p t c ñ m lên t giá tr 00H. • B ñ nh th i 1: o Là b ñ nh th i 16 bit. o Không ho t ñ ng ch ñ 3 nhưng có th ho t ñ ng các ch ñ khác (ch ñ 0, 1, 2). o Không có c báo tràn như các b ñ nh th i khác. Giáo trình Vi x lý. 128 Biên so n: Ph m Quang Trí
  11. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. Ki n trúc c a Timer 0 ch ñ 3 (Mode 3). V. NGU N XUNG CLOCK CHO B ð NH TH I: Ngu n xung cho b ñ nh th i ñư c t o ra t : • M ch dao ñ ng trên chip → dùng cho tính năng ñ nh th i gian. • Xung kích thích bên ngoài → dùng cho tính năng ñ m s ki n. 1. Trư ng h p ñ nh th i gian: N u C/T=0 thì: • B ñ nh th i ñư c dùng ñ ñ nh th i gian (Timer). • Ngu n xung clock ñ nh th i ñư c l y t m ch dao ñ ng trên chip. Lưu ý: o T n s xung clock cung c p cho b ñ nh th i b ng 1/12 t n s c a m ch dao ñ ng trên chip 8051. o Th i gian ñ nh th i là kho ng th i gian ñư c tính t lúc b ñ nh th i b t ñ u ñ m lên (t giá tr ch a trong các thanh ghi THx/TLx) cho ñ n lúc b ñ nh th i b t ñ u tràn (th i gian này ph thu c vào giá tr ban ñ u ñư c n p cho các thanh ghi THx và TLx). Giáo trình Vi x lý. 129 Biên so n: Ph m Quang Trí
  12. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Ví d : Tìm t n s xung clock và chu kỳ c a b ñ nh th i ñ i v i trư ng h p các h th ng vi ñi u khi n xây d ng trên chip 8051 v i t n s th ch anh như sau: 11,0592 MHz, 12 MHz và 16 MHz. Gi i G i fTIMER là t n s xung clock c a b ñ nh th i, fOSC là t n s xung clock c a th ch anh. Theo như trên ñã trình bày, ta có: f 11,0592(MHz ) f = 11,0592(MHz ) → f = OSC = = 921,6(KHz ) OSC TIMER 12 12 1 1 T = = = 1,085(µs ) TIMER f 921,6(KHz ) TIMER f 12(MHz ) f = 12(MHz ) → f = OSC = = 1(MHz ) OSC TIMER 12 12 1 1 T = = = 1(µs ) TIMER f 1(MHz ) TIMER f 16(MHz ) f = 16(MHz ) → f = OSC = = 1,333(MHz ) OSC TIMER 12 12 1 1 T = = = 0,75(µs ) TIMER f 1,333(MHz ) TIMER 2. Trư ng h p ñ m s ki n: N u C/T=1 thì: • B ñ nh th i ñư c dùng ñ ñ m s ki n (Counter). • Ngu n xung clock ñ nh th i ñư c l y t xung kích thích bên ngoài t i hai chân T0 và T1 c a chip 8051. Lưu ý: o T n s kích thích t i ña cho phép t i chân T0 và T1: f f = TIMER T 0,T 1( MAX ) 2 fTIMER: t n s xung clock ñ nh th i. fT0,T1(MAX): t n s kích thích t i ña cho phép t i T0 và T1. Giáo trình Vi x lý. 130 Biên so n: Ph m Quang Trí
  13. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Ví d : Tính t n s kích thích t i ña cho phép t i chân T0 và T1 ñ i v i trư ng h p các h th ng vi ñi u khi n xây d ng trên chip 8051 v i t n s th ch anh như sau: 11,0592 MHz, 12 MHz và 16 MHz. Gi i f 921,6(KHz ) f = 11,0592(MHz ) → f = TIMER = = 460,8(KHz ) OSC T 0,T 1( MAX ) 2 2 f 1(MHz ) f = 12(MHz ) → f = TIMER = = 500(KHz ) OSC T 0,T 1( MAX ) 2 2 f 1,333(MHz ) f = 16(MHz ) → f = TIMER = = 666,5(KHz ) OSC T 0,T 1( MAX ) 2 2 o S lư ng s ki n (s xung) mà b ñ nh th i ñ m ñư c s ñư c ch a trong các thanh ghi THx/TLx, giá tr trong các thanh ghi này s tăng theo m i xung kích thích bên ngoài t i T0 và T1 c a chip 8051. o M t kích thích ñư c g i là m t s ki n (m t xung) khi x y ra s chuy n tr ng thái t 1 xu ng 0 chân T0 ho c T1. VI. KH I ð NG, D NG VÀ ðI U KHI N CÁC B ð NH TH I: • Cách 1: (thư ng ñư c dùng ñ ñ nh th i gian). ði u ki n s d ng: bit GATE = 0 (Phương pháp ñi u khi n b ng ph n m m) ⇒ B ñ nh th i x ch y khi bit TRx = 1. ⇒ B ñ nh th i x d ng khi bit TRx = 0. Ví d : ð kh i ñ ng b ñ nh th i 0 ta dùng l nh: SETB TR0 ð d ng b ñ nh th i 0 ta dùng l nh: CLR TR0 • Cách 2: (thư ng ñư c dùng ñ ño ñ r ng xung t i chân INTx\ ). ði u ki n s d ng: bit GATE = 1 và bit /TRx = 1 (Phương pháp ñi u khi n b ng ph n c ng) ⇒ B ñ nh th i x ch y khi chân INTx\ = 1. ⇒ B ñ nh th i x d ng khi chân INTx\ = 0. Ví d : ðo ñ r ng xung (tính b ng µs) t i chân INT0, v i fOSC = 12MHz. INT0\ t ( s) Giáo trình Vi x lý. 131 Biên so n: Ph m Quang Trí
  14. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. Gi i Ta kh i ñ ng b ñ nh th i 0 như sau: • Ch ñ ñ nh th i 16 bit (ch ñ 1). • Giá tr trong TH0/TL0 là 0000H. • GATE = 1 và TR0 = 1 (ñi u khi n ho t ñ ng c a Timer 0 b ng ph n c ng, t c ñi u khi n b ng tín hi u t i chân INT0\). ⇒ ð r ng xung (tính b ng µs) = S ñ m ch a trong TH0/TL0. Hình minh h a Timer 1 ho t ñ ng ch ñ 1 (Timer 16 bit): 12 MHz On-chip 8051 ÷ 12 Osc. TL1 TH1 TF1 T1 0 = Up 0 = Up (P3.5) C/T 1 = Down 1 = Down TR1 GATE INT1 (P3.3) Hoaït ñoäng ôû cheá ñoä 1 cuûa Timer 1 VII. KH I ð NG VÀ TRUY XU T THANH GHI ð NH TH I: Trư c khi các b ñ nh th i ho t ñ ng c n ph i: • Qui ñ nh ch ñ c a b ñ nh th i ⇒ thanh ghi TMOD. • Qui ñ nh ñi m b t ñ u ñ m c a b ñ nh th i (kho ng th i gian ñ nh th i) ⇒ thanh ghi THx/TLx. o Ví d 1: Kh i ñ ng b ñ nh th i 1 ho t ñ ng ch ñ 16 bit, xung clock ñư c l y t m ch dao ñ ng trên chip (nghĩa là b ñ nh ñư c dùng ñ ñ nh th i m t kho ng th i gian), ñư c kh i ñ ng b ng bit TR1 (ñi u khi n b ng ph n m m). Gi i Ta dùng l nh: MOV TMOD, #10H ho c MOV TMOD, #00010000B Giáo trình Vi x lý. 132 Biên so n: Ph m Quang Trí
  15. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. Gi i thích: GATE = 0 → ñi u khi n b ng ph n m m (bit TR1). C/T = 0 → s d ng m ch dao ñ ng trên chip (dùng ñ ñ nh m t kho ng th i gian). M1 = 0, M1 = 1 → TIMER1 ho t ñ ng ch ñ 1 (ch ñ ñ nh th i 16 bit). o Ví d 2: Dùng b ñ nh th i 1 ví d trên ñ ñ nh m t kho ng th i gian là 100 µs. Gi s vi ñi u khi n s d ng th ch anh 12 MHz. Gi i Ta dùng l nh: MOV TL1, #9CH MOV TH1, #0FFH ho c MOV TL1, #LOW(-100) MOV TH1, #HIGH(-100) Gi i thích: f 12 f = 12(MHz ) → f = OSC = = 1(MHz ) OSC TIMER 12 12 1 1 →T = = = 1(µs ) TIMER f 1(MHz ) TIMER Trong ñó: fOSC: t n s th ch anh. fTIMER: t n s xung clock ñ nh th i. TTIMER: chu kỳ xung clock ñ nh th i. V y c m i 1 s (t c là sau m i chu kỳ c a xung clock ñ nh th i) thì b ñ nh th i s tăng giá tr m t l n. Mà ta ñã bi t: th i gian ñ nh th i là kho ng th i gian ñư c tính t lúc b ñ nh th i b t ñ u ñ m lên cho ñ n lúc b ñ nh th i b t ñ u tràn. V y ñ b ñ nh th i tràn s tràn sau kho ng th i gian 100 s thì ta ph i kh i ñ ng b ñ nh th i t i th i ñi m cách ñi m tràn (theo chi u âm – vì b ñ nh th i ch ñ m lên) 100 chu kỳ xung clock ñ nh th i. Vì ñi m tràn có giá tr là 0 cho nên giá tr c n n p cho các thanh ghi TH1/TL1 là -100 (hay FF9CH). $ Giáo trình Vi x lý. 133 Biên so n: Ph m Quang Trí
  16. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. T ng quát, ta có công th c tính giá tr c n n p cho b ñ nh th i ñ có th i gian ñ nh th i như mong mu n là: f N = − OSC t 12 DELAY Trong ñó: N: giá tr c n n p cho b ñ nh th i. fOSC (MHz): t n s th ch anh. tDELAY ( s): th i gian c n ñ nh th i. 2. Truy xu t giá tr c a b ñ nh th i ñang ho t ñ ng: Trong các ng d ng th c t , ta c n ph i ñ c giá tr (n i dung) ch a trong các thanh ghi ñ nh th i THx/TLx trong khi b ñ nh th i v n ñang ho t ñ ng. Do giá tr c a b ñ nh th i ñư c ch a trong c hai thanh ghi THx/TLx. Cho nên ta ph i ñ c hai thanh ghi này b ng hai dòng l nh liên ti p nhau (do không có l nh nào có th ñ c ñ ng th i c hai thanh ghi ñ nh th i này). M t s sai pha (phase error) có th xu t hi n n u có s tràn t byte th p chuy n sang byte cao gi a hai l n ñ c và do v y ta không th ñ c ñúng ñư c giá tr c n ñ c. • Ví d : Minh h a v s sai pha (phase error) có th xu t hi n n u có s tràn t byte th p chuy n sang byte cao gi a hai l n ñ c giá tr làm cho ta không th ñ c ñúng ñư c giá tr c n ñ c c a THx/TLx trong khi b ñ nh th i ñang ho t ñ ng. Gi i Gi i pháp ñưa ra là trư c tiên ta ph i ñ c byte cao, k ñ n ñ c byte th p và r i ñ c byte th p l n n a. N u byte cao thay ñ i giá tr , ta l p l i thao tác ñ c v a nêu. Lưu ñ gi i thu t dùng ñ ñ c chính xác giá tr (n i dung) ch a trong các thanh ghi ñ nh th i THx/TLx c a b ñ nh th i ñang ho t ñ ng: Giáo trình Vi x lý. 134 Biên so n: Ph m Quang Trí
  17. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Ví d : ð c n i dung c a các thanh ghi TH1/TL1 trong khi b ñ nh th i 1 ñang ho t ñ ng. N i dung sau khi ñ c c a thanh ghi TH1 ch a trong R7, c a thanh ghi TL1 ch a trong R6. AGAIN: MOV A, TH1 MOV R6, TL1 CJNE A, TH1, AGAIN MOV R7, A VIII. CÁC KHO NG TH I GIAN ð NH TH I: Kh o sát trư ng h p 8051 dùng th ch anh 12 MHz: • Kho ng th i gian ñ nh th i ng n nh t (µs): 1 • Kho ng th i gian ñ nh th i dài nh t (µs): o ≈ 10 ⇒ Dùng các l nh. o ≤ 256 ⇒ Dùng b ñ nh th i 8 bit t ñ ng n p l i. o ≤ 65536 ⇒ Dùng b ñ nh th i 16 bit. o Không gi i h n ⇒ Dùng b ñ nh th i 16 bit + các vòng l p. Kh o sát trư ng h p t ng quát: • Kho ng th i gian ñ nh th i ng n nh t: 1.TTIMER • Kho ng th i gian ñ nh th i dài nh t: o ≈ 10.TTIMER ⇒ Dùng các l nh. o ≤ 256.TTIMER ⇒ Dùng b ñ nh th i 8 bit t ñ ng n p l i. o ≤ 65536.TTIMER ⇒ Dùng b ñ nh th i 16 bit. o Không gi i h n ⇒ Dùng b ñ nh th i 16 bit + các vòng l p. 12 v i TTIMER = TTIMER(µs): chu kỳ xung clock ñ nh th i. f OSC fOSC (MHz): t n s th ch anh. Giáo trình Vi x lý. 135 Biên so n: Ph m Quang Trí
  18. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. IX. CÁC BƯ C CƠ B N KH I ð NG TIMER VÀ COUNTER: 1. Các bư c cơ b n ñ kh i ñ ng Timer: • Ch n ch ñ ho t ñ ng cho Timer, cho bit GATE=0 và C/T=0: MOV TMOD, #...(1)… • Ch n giá tr thích h p (kho ng th i gian ñ nh th i) cho Timer: MOV THx, #...(2)… MOV TLx, #...(3)… • Cho Timer ch y: SETB TRx • Ki m tra c báo tràn (ki m tra ñ th i gian ñ nh th i): JNB TFx, $ ho c WAIT: JNB TFx, WAIT • Xóa c báo tràn (chu n b cho l n ñ nh th i ti p theo): CLR TFx • D ng Timer (sau khi ñã hoàn t t quá trình ñ nh th i): CLR TRx Lưu ý: x: S th t c a Timer s d ng. (1): Giá tr này ph thu c vào Timer ñư c ch n và ch ñ ho t ñ ng c a Timer ñó. (2), (3): Giá tr này ph thu c vào kho ng th i gian c n ñ nh th i. Cũng c n lưu ý thêm, vi c ch n giá tr cho không ph i lúc nào ta cũng ph i ch n giá tr cho c hai thanh ghi này mà nó tùy thu c vào t ng ch ho t ñ ng c a Timer (Mode 0: THx/TLx, Mode 1: THx/TLx, Mode 2: THx, Mode 3: THx ho c TLx). Các giá tr trên ph i tho mãn ñi u ki n sau: o Ch ñ 8 bit: giá tr trong kho ng t -255 ñ n -1 (tương ng t 255.TTIMER ñ n 1.TTIMER). Ví d : MOV TH1, #(-255) → ñ nh th i 255.TTIMER o Ch ñ 13 bit: giá tr trong kho ng t -8191 ñ n -1 (tương ng t 8191.TTIMER ñ n 1.TTIMER). Ví d : MOV TL1, #LOW(-8000) → ñ nh th i 8000.TTIMER MOV TH1, #HIGH(-8000) o Ch ñ 16 bit: giá tr trong kho ng t -65535 ñ n -1 (tương ng t 65535.TTIMER ñ n 1.TTIMER). Ví d : MOV TL1, #LOW(-10000) → ñ nh th i 10000.TTIMER MOV TH1, #HIGH(-10000) Trư ng h p ñ c bi t n u giá tr (N) n p vào thanh ghi THx/TLx là giá tr 0 thì th i gian ñ nh th i s là l n nh t cho t ng ch ñ . Ch ñ 8 bit: N = 0 → tDELAY = 256.TTIMER. Ch ñ 13 bit: N = 0 → tDELAY = 8192.TTIMER. Ch ñ 16 bit: N = 0 → tDELAY = 65536.TTIMER. Giáo trình Vi x lý. 136 Biên so n: Ph m Quang Trí
  19. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. 2. Các bư c cơ b n ñ kh i ñ ng Counter: • Ch n ch ñ ho t ñ ng cho Counter, cho bit GATE=0 và C/T=1: MOV TMOD, #...(1)… • Xoá các giá tr ch a trong thanh ghi THx và TLx (nghĩa là cho s xung ban ñ u b ng 0): MOV THx, #00H MOV TLx, #00H • Cho Counter ch y: SETB TRx • Ki m tra c báo tràn (ki m tra s ñ m b tràn) ñ x lý trư ng h p s ñ m b tràn. • Xóa c báo tràn (sau khi ñã x lý cho trư ng h p s ñ m b tràn): CLR TFx • D ng Counter (sau khi ñã hoàn t t quá trình ñ m xung): CLR TRx • ð c s xung ñ m ñư c trong thanh ghi THx và TLx. Lưu ý: x: S th t c a Counter s d ng. (1): Giá tr này ph thu c vào Counter ñư c ch n và ch ñ ho t ñ ng c a Counter. Giá tr này ph i tho mãn ñi u ki n sau: o Ch ñ 8 bit: s lư ng xung t i ña mà Counter ñ m ñư c t 0 ñ n 255. o Ch ñ 13 bit: s lư ng xung t i ña mà Counter ñ m ñư c t 0 ñ n 8191. o Ch ñ 16 bit: s lư ng xung t i ña mà Counter ñ m ñư c t 0 ñ n 65535. Trong quá trình ñ c s xung ñ m ñư c ch a trong các thanh ghi THx/TLx ta ph i chú ý ñ n trư ng h p Counter b tràn. Vì khi ñó giá tr trong thanh ghi THx/TLx (nơi ch a s xung ñ m ñư c) s tr v 0. Cho nên n u ta không có bi n pháp x lý cho trư ng h p này thì k t qu là s xung mà ta nh n ñư c s b sai. Vì th , n u ta gi s ban ñ u Counter ñư c kh i ñ ng v i giá tr là 0 thì c m i l n Counter b tràn thì ta ph i c ng thêm vào s xung ñ c v 256 xung (trư ng h p 8 bit) ho c 8192 xung (trư ng h p 13 bit) ho c 65536 xung (trư ng h p 16 bit). X. CÁC VÍ D MINH H A: 1. Ví d 1: (T o d ng xung) Vi t chương trình t o d ng xung tu n hoàn trên chân P1.0 có t n s cao nh t có th có. T n s và chu kỳ nhi m v c a d ng xung này là bao nhiêu? Gi i ORG 8100H LOOP: SETB P1.0 ;1 chu kỳ máy CLR P1.0 ;1 chu kỳ máy SJMP LOOP ;2 chu kỳ máy END Giáo trình Vi x lý. 137 Biên so n: Ph m Quang Trí
  20. Chương 4: Ho t ñ ng c a b ñ nh th i (Timer). Trư ng ðH Công nghi p Tp.HCM. • Chu kỳ xung: 4 µs → T n s xung: 250 KHz. • Th i gian m c cao: 1 µs. • Th i gian m c th p: 3 µs. • Chu kỳ nhi m v : 25%. 2. Ví d 2: (T o th i gian tr ) Vi t chương trình con t o th i gian tr tDelay, s d ng phương pháp dùng các l nh (không dùng Timer). Bi t r ng t n s th ch anh là 12 MHz. a. Th i gian tr tDelay = 100 µs. b. Th i gian tr tDelay = 10 ms. c. Th i gian tr tDelay = 1 s. Gi i • Phương pháp: Phương pháp th c hi n là s d ng l nh vòng l p DJNZ ñ t o th i gia tr tDelay như mong mu n. Ví d m u: DELAY: ;tDelay = 10 x 20 x 30 x 2.TTimer MOV R0, #10 BBB: MOV R1, #20 AAA: MOV R2, #30 DJNZ R2, $ ;l nh 2.TTimer DJNZ R1, AAA DJNZ R0, BBB RET T ng quát, ta có công th c tính th i gian tr tDelay như sau: 12 t = [Rn ]× [Rm]× ... × [Rv ]× 2. (1) Delay f Osc Trong ñó: tDelay (µs): th i gian tr . fOsc (MHz): t n s th ch anh.  12  TTimer (µs): chu kỳ Timer  T = .  Timer f   Osc  [Rn], [Rm], …, [Rv]: giá tr c a các vòng l p (s l n l p l i l nh DJNZ). Lưu ý: Giá tr c a các vòng l p ph i th a ñi u ki n 0 ≤ [Rn] ≤ 255. ð c bi t n u ch n [Rn] = 0 thì ñi u này s tương ñương v i trư ng h p ta ch n [Rn] = 256 (tương t cho các [Rm], …, [Rv] khác). • Tính toán: Tìm giá tr c n n p cho các thanh ghi vòng l p: 12 Ta có: t = [Rn ]× [Rm ]× ... × [Rv ]× 2. Delay f Osc V i tDelay = 100 µs, fOsc = 12 MHz thì ta ch n: [Rn] = 50 12 ⇔t = 50 × 2. = 100 µs Delay 12 Giáo trình Vi x lý. 138 Biên so n: Ph m Quang Trí
Đồng bộ tài khoản