Xem mẫu

  1. Các bộ định thời của 8051 Bài 9 Bộ môn TĐ Khoa KTĐK
  2. 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) • 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 một vài chế độ ột ài 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) • Nguồn clock cho bộ định thời là sys_clock/12 g ộ ị y
  3. Các thanh ghi của bộ định thời • Mỗi bộ định thời của 8051 có 2 thanh ghi 8 bit • Các thanh ghi của bộ định thời 0 – TL0 và TH0 –ĐĐược truy cập giống như các th h ghi khá t ậ iố h á thanh hi khác • Mov TL0, #55H, • Mov R1, TH0 R1 • Các thanh ghi của bộ định thời 1 – TL1 và TH1 à
  4. Bộ định thời của 8051: Thanh ghi TMOD hi • Gate-Điều khiển cổng ( g (cách khởi tạo và dừng bộ định g thời) – 0 → cổng mềm (bit TRx ở thanh ghi TCON) – 1 → cổng cứng ( g g (Chân INTx)) • 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ủ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 → Mode 1(bộ đị h thời 16 bit) M d định – 10 → Mode 2 (bộ định thời 8 bit, tự động nạp lại) – 11 → Mode 3 (tách bộ định thời)
  5. 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ết lập cờ TF và 0x0000, gây ra ngắt TF nếu được phép
  6. 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 3. 3 Khởi độ bộ đị h thời động định hời 4. Duy trì kiểm tra cờ TFx (jnb TFx, đích) 5. 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 gian t ễ ờ g a trễ – 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ể đ được sử d ử dụng
  7. Bộ định thời – Ví dụ ở Mode 1 • Tạo một sóng vuông với hệ số lấp đầy 50% trên P1.5 với Timer0
  8. Các bộ định thời và các ngắt • Khi bộ định thời TF1 hoặc TF0 g tràn thì ngắt được tạo ra • Cho phép ngắt p p g và sau đó khởi động bộ định thời • ISR xoá tự động ờ TFx độ cờ TF
  9. Bộ định thời để đo thời gian • Bộ định thời được sử dụng để đo thời gian trôi qua – Hữu ích cho các nhiệm vụ thông thương h – Không chính xác như RTC (đồng hồ thời gian thực) nhưng rẻ • Clock của bộ định thời bằng 1/12 ộ ị g clock của 8051 – Chu kỳ thời gian cho một lần đếm là 1,085µs – 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 được nạp giá trị 0xFFF2 – Số lần đếm đến khi vòng về 0 là 0XFFFF-0xFFF2+1 =14 – Thời gian tiêu tốn là: 14 x 1,085µs
  10. Bộ định thời để đo thời gian • Cách tính giá trị nạp ban đầu để có được thời g ị ạp ợ gian giữ chậm yêu cầu T? ầ – Chia T cho 1,085µs để được n (giả thiết tần số thạch anh là 11,0592 MHz) , ) – Tìm m=65536-n – Chuyển m sang số hex, m=0xUUVV – Nạp TH← 0xUU và TL ← 0xVV • Để có thời gian giữ chậm lâu hơn? – Tổ chức một vòng lặp – Thêm vào một số lệnh (nop), trước khi cho phép bộ định thời làm việc lại – Đưa ra RTC (đồng hồ thời gian thực) ( g g ự )
  11. Bộ định thời: Các chế độ khác • Chế độ 0 – Giống như chế độ 1 nhưng nó là bộ định thời 13 bit – Thứ từ đếm từ 0x0000 tới 0x1FFF • Chế độ 2 – Bộ định thời 8 bit với khả năng tự nạp lại – Nạp giá trị đếm vào TH và cho phép bộ định thời làm việc – 8051 nạp vào TL giá t ị ở TH à iá trị – Khi TL quay vòng về 0x00, bộ định thời dựng cờ TF (và ngắt) – Sau khi cờ TF bị xoá bởi ISR/lệnh, TL được nạp lại từ động giá trị ở TH và lặp lại quá trình trước – Được sử dụng trong truyền thông nối tiếp để tạo tốc độ baud
  12. 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ác bộ đếm tăng số đếm khi chúng nhận một tín hiệu (đếm xung) • C bộ định thời của 8051 có thể làm việc như Các ủ ể các bộ đếm – Bit C/T ở thanh g TMOD p ả là 1 để bộ đếm hoạt C/ a ghi O phải à đế oạ động – 2 chân ngoài của 8051 nhận các xung đếm • P3.4 (T0, chân 14): Xung đếm bên ngoài của Timer0 ( , ) g g • P3.5 (T1, chân 15): Xung đếm bên ngoài của Timer1
  13. Ví dụ về bộ đếm • Đếm xung ở chân T1 (P3.5) và hiển thị g trị của g ( ) ị giá ị bộ đếm trên cổng P2. Bộ đếm làm việc ở chế độ 2
  14. Cổng bê Cổ bên ngoài ài • Cổng bên ngoài cung cấp khả năng điều khiển bộ định g g g p 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 ngoà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 GATE=1, – 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