Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Tham khảo tài liệu 'giáo trình lập trình c cho họ vi điều khiển 8051 - chương 3', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 CHƯƠNG 3 KHỞI TẠO CHƯƠNG TRÌNH TIMER VÀ CHƯƠNG TRÌNH NGẮT I. KHỞI TẠO CHƯƠNG TRÌNH TIMER. 1. CÁC THANH GHI ĐIỀU KHIỂN TIMER. Thanh ghi TMOD Các Timer thường được khởi tạo 1 lần ở đầu chương trình để thiết lập mode hoạt động phục vụ các ứng dụng điều khiển liên quan đến định thời hay đếm xung ngoại. Tùy thuộc vào yêu cầu cụ thể mà ta điều khiển cho Timer bắt đầu đếm ngừng hay khởi động đếm lại từ đầu. Thanh ghi TMOD là thanh ghi đầu tiên cần phải khởi tạo để thiết lập trạng thái hoạt động cho các Timer. 8 7 6 5 4 3 2 1 Gate C T M1 M0 Gate C T M1 M0 0 0 0 0 0 0 0 1 Cho Timer 1 Cho Timer 0 Chú thích Bit Chú thích Gate - Khi đặt Bit Gate 1 thì Timer0 chỉ làm việc khi các cổng vào của lệnh ngắt -INT Bit P3.3 hay P3.2 sẽ không có tác dụng - Khi đặt Bit Gate 1 thì Timer1 chỉ làm việc khi INT 1 C T - Khi đặt ở mức áp cao thì các Timer dùng như bộ đếm xung Counter vào từ bên ngoài Với Timer1 xung đếm cho vào Bit P3.5 Với Timer0 xung đếm cho vào Bit P3.4 - Khi đặt ở mức áp thấp thì các Timer dùng như đếm xung của mạch dao động lúc đó nó có thể xem như một đồng hồ tự chạy Timer Biên soạn Nguyễn Bá Thuận Page 1 of 12 ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 M1 Bit chọn mode M0 Bit chọn mode Hai bit M0 và M1 tạo ra 4 trạng thái tương ứng vớ 4 kiểu làm việc khác nhau của Timer 0 hay Timer1 M1 M0 Mode Kiểu Chức năng 0 0 0 Chế độ định thời 13 bit tương thích với họ 8048 0 1 1 Chế độ Timer hay Counter 16 bit 1 0 2 Chế độ Timer hay Counter 8 bit tư nạp lại 1 1 3 Timer 0 được tách thành 2 Timer 8 bit -Timer 8 bit TL0 được điều khiển bởi các bit của mode Timer0 -Timer 8 bit TH0 được điều khiển bởi các bit của mode Timer1 Timer 1 không hoạt động ở mode 3 Thanh ghi THx và TLx Các giá trị đếùm được của Timer Counter thì được lưuu trong thanh ghi THx và TLx. Nếu ta không thiết lập giá trị bắt đầu đếm cho các thanh ghi TLx và THx là 0000h thì Timer sẽ bắt đầu đếm từ giá trị 0000H đến giá trị FFFFH. .