1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài 6: NGẮT BĐT (TIMER)

19 369 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 297 KB

Nội dung

Bài 6: NGẮT BĐT (TIMER) I>Khái niệm: Vi điều khiển 8051 có 2 BĐT (Timer 0+1) để tạo thời gian cũng như làm bộ đếm (đếm sp) II>Thanh ghi chứa giá trị của BĐT : -Thanh ghi của bộ TIMER0 D15 D14 D13 D12 D11 D10 D9 D8 TH0 D7 D6 D5 D4 D3 D2 D1 D0 TL0 Bài 6: NGẮT BĐT (TIMER) -Thanh ghi của bộ TIMER1: D15 D14 D13 D12 D11 D10 D9 D8 TH1 D7 D6 D5 D4 D3 D2 D1 D0 TL1 Bài 6: NGẮT BĐT (TIMER) - Thanh ghi chế độ của bộ định thời TMOD: (MSB) GATE C/T M1 M0 Timer1 GATE C/T M1 M0 Timer0 (MSB) Bài 6: NGẮT BĐT (TIMER) M1 M0 Chế độ Chế độ hoạt động 0 0 0 Chế độ bộ định thời 13 bit. Bộ định thời/bộ đếm 8 bit, định tỷ lệ trước 5 bit. 0 1 1 Chế độ bộ định thời 16 bit, không định tỷ lệ trước. 1 0 2 Chế độ 8 bit tự nạp lại. THx lưu giá trị sẽ tự nạp vào TLx mỗi khi tràn. 1 1 3 Chế độ bộ định thời chia tách Ví dụ : để sử dụng Timer0 ở chế độ 16bit và Timer1 ở chế độ 8 bit ta khởi tạo TMOD = 0x21 Bài 6: NGẮT BĐT (TIMER) II>Thanh ghi cho phép và Điều khiển BĐT: 1.Thanh Ghi Cho Phép Ngắt IE (interrupt enable) EA -- ET2 ES ET1 EX1 ET0 EX0 EA (IE.7 bit) là bit cho phép ngắt toàn bộ. Tức là nếu bạn sử dụng một trong 5 ngắt kể trên của vđk thì bạn phải set bit này lên với giá trị 1. Ngược lại khi bit EA =0 thì toàn bộ các ngắt của vđk sẽ bị cấm. ET2 ( IE.5 bit) là bit cho phép ngắt của timer 2 ( chỉ ở họ 52 ). Khi bit này = 1 thì ngắt định thời 2 sẽ được cho phép và ngược lại. ET1, ET0 ( IE.3, IE.1 bit ) là bit cho phép ngắt định thời 1, 0 của vđk 8051. Khi các bit này =1 thì ngắt của hai bộ định thời này được cho phép và ngược lại. ES ( IE.4 bit ) là bit cho phép ngắt truyền thông nối tiếp. EX1, EX0 (IE.0 và IE.2 bit) là hai bit cho phép của hai ngắt ngoài của vđk Bài 6: NGẮT BĐT (TIMER) TF1 TR1 TF1 TR0 IE1 IT1 IE0 IT0 TF1 ( TCON.7) cờ tràn của Timer1 TR1 ( TCON.6) bit Đk hoạt động của Timer1 TF0 ( TCON.5) cờ tràn của Timer0 TR0 ( TCON.4) bit Đk hoạt động của Timer0 Bài 6: NGẮT BĐT (TIMER) IE1 ( TCON.3) Cờ ngắt ngoài kích theo sườn ; được CPU thiết lập khi phát hiền có sườn xuống ngắt ngoài và đựơc CPU xoá khi ngắt được xư lý IE0 ( TCON.1) Cờ ngắt ngoài kích theo sườn ; được CPU thiết lập khi phát hiền có sườn xuống ngắt ngoài và đựơc CPU xoá khi ngắt được xư lý IT1 ( TCON.2) bit Đk kiểu ngắt INT1 được thiết lập và xoá bởi phần mềm để xác định kiểu ngắt theo sườn hay mức thấp IT0 ( TCON.0) bit Đk kiểu ngắt INT0 được thiết lập và xoá bởi phần mềm để xác định kiểu ngắt theo sườn hay mức thấp Bài 6: NGẮT BĐT (TIMER) Bài 6: NGẮT BĐT (TIMER) Các Bước Để Sư Dụng BĐT Như Sau Start Các Lệnh tiền xử lý Hàm khởi tạo ngát Hàm phục vụ ngát Hàm main Bài 6: NGẮT BĐT (TIMER) Nhiệm vụ của hàm Khởi tạo : • Cho phép BĐT hoạt động bằng việc tác động vào thanh ghi IE. • Chọn chế độ cho BĐT cần dùng , từ đó xác định giá trị nạp cho thanh ghi TMOD. • Tính toán giá trị ban đầu nạp cho TH và TL từ thời gian mong muốn. • Khởi động BĐT. [...]... trong hàm ngắt ta se gọi ham delay(20000) để quan tạo trễ cho quá trình nháy Led Bài 6: NGẮT BĐT (TIMER) B2 :Vẫn yêu cầu như bài 1 nhưng ta sẽ ko dùng hàm delay() nữa mà tạo thời gian trễ hoàn toàn bằng BĐT Bài 6: NGẮT BĐT (TIMER) B3 :Dùng 2 BĐT 0 và 1 để nháy so le 2 Led (mỗi BĐT đk một con ) Bài 6: NGẮT BĐT (TIMER) B4 :Dùng BĐT 0 or 1 để nháy Led :cứ sau đúng 1s sẽ đảo trạng thái Led (bài toán này... 1 ; } //khởi động Timer0 Bài 6: NGẮT BĐT (TIMER) Chương trình ngắt BĐT : Void Name (void) interrupt x ( x là số thứ thực của ngắt ) { TRx = 0; //tắt BĐT x TFx = 0 ; // xóa cờ ngắt THx = 0x??; TL0 = 0x?? ; { //chương trình cần sử lý } TRx = 1 //khởi động lại BĐT } Bài 6: NGẮT BĐT (TIMER) B1 :Dùng BĐT 0 ở chế độ 8 bit để nháy Led ,với giá trị TH0 = 0x00 và TL0 = 0x00, vì hàm ngắt định thời sẽ được gọi.. .Bài 6: NGẮT BĐT (TIMER) Nhiệm vụ của hàm Ngắt BĐT : • Dừng BĐT , xóa cờ ngắt TF tương ứng • Nạp lại giá trị cho TH và TL (nếu cần ) để tạo thời gian cho lần định thời sau • Sử lý những công việc định trước • Khởi động lại BĐT Bài 6: NGẮT BĐT (TIMER) Như vậy để khởi tạo dùng BĐT Timer0 ở chế độ 8 bit ta cần làm như sau : void Khoi_tao(void) { EA = 1; //cho phép ngắt toàn cục ET0 = 1; //cho phép ngắt. .. xác) Bài 6: NGẮT BĐT (TIMER) B5 :Dùng BĐT 0 và 1 viết chương trình điều khiển đèn giao thông (phần cứng các bạn tự thiết kế theo đúng các modul trong thực tế , bao gồm : 4 hàng Led theo 4 hướng đường , mỗi hàng là 3 Led xanh , đỏ , vàng ; các Led 7 thanh để hiển thị thời gian chờ , nếu có thể thì thêm cả phần nút bấm để thiết lập thời gian chờ) Bài 6: NGẮT BĐT (TIMER) B6 :Kết hợp kiến thức bài 4 và bài. .. 3 Led xanh , đỏ , vàng ; các Led 7 thanh để hiển thị thời gian chờ , nếu có thể thì thêm cả phần nút bấm để thiết lập thời gian chờ) Bài 6: NGẮT BĐT (TIMER) B6 :Kết hợp kiến thức bài 4 và bài 3 của bài Ngắt ngoài để viết chương trình cho đồng hồ điện tử ( phần cứng có thể dùng ngay Kit tại trung tâm) . hoàn toàn bằng BĐT Bài 6: NGẮT BĐT (TIMER) B3 :Dùng 2 BĐT 0 và 1 để nháy so le 2 Led (mỗi BĐT đk một con ) Bài 6: NGẮT BĐT (TIMER) B4 :Dùng BĐT 0 or 1 để. trạng thái Led (bài toán này sẽ chỉ cho các bạn tạo thời gian một cách chính xác) Bài 6: NGẮT BĐT (TIMER) Bài 6: NGẮT BĐT (TIMER) B5 :Dùng BĐT 0 và 1 viết

Ngày đăng: 06/11/2013, 04:15

TỪ KHÓA LIÊN QUAN

w