14
10/04/13 Giáo Viên: Đặng Văn Hiếu 1 CHƯƠNG III TRƯỜNG ĐẠI HỌC THÀNH ĐÔ KHOA ĐIỆN – ĐIỆN TỬ Giáo viên : ĐẶNG VĂN HIẾU 10/04/13 Giáo Viên: Đặng Văn Hiếu 2 1. Timer là gì? 2. Các timer trong 8051. 3. Các chế độ hoạt động của timer. 4. Lập trình cho timer. I. CÁC BỘ TIMER 10/04/13 Giáo Viên: Đặng Văn Hiếu 3 - Các bộ định thời (Timer) được sử dụng rất rộng dãi trong các ứng dụng đo lường và điều khiển. - Vi điều khiển TA89S52 có 3 bộ định thời 16 bít Timer 0, Timer 1, Timer 2 trong đó Timer 0 và Timer 1 có bốn chế độ hoạt động, Timer 2 có ba chế độ hoạt động. Các bộ định thời được sử dụng để định khoảng thời gian (hẹn giờ), đếm các sự kiện xảy ra bên ngoài bộ vi điều khiển.Tùy thuộc vào ứng dụng, đầu vào bộ định thời có thể là nguồn xung lấy từ xung nhịp của vi điều khiển hoặc nguồn xung từ bên ngoài đưa đến. TIMER LÀ GÌ? 10/04/13 Giáo Viên: Đặng Văn Hiếu 4 - Trong các ứng dụng định khoảng thời gian, Timer được lập trình sao cho sẽ tràn sau một khoảng thời gian và thiết lập cờ tràn bằng 1. cờ tràn được sử dụng bởi trương trình để thực hiện một hành động tương ứng như kiểm tra các trạng thái ngõ vào hay gửi các sự kiện ra các ngõ ra. - Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện. Trong ứng dụng này người ta đưa các sự kiện thành sự chuyển mức từ 1 xuống 0 trên các chân T0, T1 hoặc T2 để dùng các timer tưng ứng đếm các sự kiện đó. - Ngoài ra các Timer còn được dùng để tạo xung nhịp hoặc đo độ rộng xung. TIMER LÀ GÌ? 10/04/13 Giáo Viên: Đặng Văn Hiếu 5 - Thanh ghi chế độ định thời (TMOD) Thanh ghi TMOD chứa hai nhóm 4 bít dùng để đặt chế độ lsmf việc cho Timer 0 và Timer 1. CÁC THANH GHI CỦA TIMER 10/04/13 Giáo Viên: Đặng Văn Hiếu 6 - Chức năng các bít trên thanh ghi chế độ định thời (TMOD) GATE 1: Bít mở cổng cho Timer 1, khi được đặt bằng 1 thì Timer 1chỉ chạy khi chân INT 1 ở mức cao. Nếu bít này được đặt là 0 thì hoạt động của Timer 1 không bị ảnh hưởng bởi mức logic trên chân INT 1. GATE 0: Bít mở cổng cho Timer 0, khi được đặt bằng 1 thì Timer 0 chỉ chạy khi chân INT 0 ở mức cao. Nếu bít này được đặt là 0 thì hoạt động của Timer 0 không bị ảnh hưởng bởi mức logic trên chân INT 0. C/#T1: Bít chọn chế độ Counter/Timer của Timer 1. Nếu 1 là đếm sự kiện, nếu 0 là định thời gian. C/#T0: Bít chọn chế độ Counter/Timer của Timer 0. Nếu 1 là đếm sự kiện, nếu 0 là định thời gian. M1-M0: Hai bít chọn chế độ làm việc của Timer (00,01,10,11) CÁC THANH GHI CỦA TIMER