Tải bản đầy đủ (.pdf) (2 trang)

Hướng dẫn sử dụng Kit 89 - Bài 10 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (252.54 KB, 2 trang )

Hướng dẫn sử dụng Kit 89
Bài 10 : Ngắt ngoài
Mục đích:
Nắm vững kĩ thuật điều khiển ngắt ngoài.
Yêu cầu:
Viết chương trình khi có ngắt ngoài 0 thì tăng biến đếm lên 1, ngắt ngoài 1 thì
giảm đi 1, xuất giá trị ra led 7 đoạn.

10.1 Nguyên lý điều khiển ngắt ngoài
Ngắt ngoài có 2 loại : Ngắt cạnh và ngắt mức.
¾ Ngắt cạnh cũng có 2 loại : ngắt cạnh lên xảy ra khi có sự chuyển tín hiệu từ
mức thấp lên mức cao ở chân ngắt ngoài. Tương tự ngắt cạnh xuống xảy ra khi có
sự chuyển tín hiệu từ mức cao xuống mức thấp.
¾ Ngắt mức cũng có 2 loại : ngắt mức cao và mức thấp. Ngắt mức cao x
ảy ra
khi tín hiệu tại chân ngắt ngoài ở mức cao trong tối thiểu 1 chu kì.
Trong vi điều khiển P89V51RB2, hỗ trợ 2 loại ngắt ngoài : ngắt cạnh lên và ngắt
mức cao. Việc cấu hình cho ngắt ngoài dựa vào bit ITn trong thanh ghi TCON.
10.2 Kết nối phần cứng
Hai ngắt ngoài được mắc vào nút nhấn, tại chân P3.2 là ngắt ngoài 0 và P3.3 là
ngắt ngoài 1.
Gạt switch 4 lên ON để kích hoạt led 7 đoạn.
10.3 Viết chương trình
Module ngắt ngoài khá đơn giản, gồm các hàm khởi tạo được khai báo trong file
ext_int.h :
void init_ext_int0();
void init_ext_int1();
Các hàm này được hiện thực trong file ext_int.c cùng với 2 hàm phục vụ ngắt ngắt
ngoài. Code xử lý trong bài mẫu này khá đơn giản, chỉ là việc cộng và trừ biến count rồi
dùng biến này để hiển thị giá trị tương ứng ra led 7 đoạn.
10.3.1 Hàm init_ext_int0()


void init_ext_int0()
{
IE &= ~(0x01);// enable external interrupt 0
IE |= 0x01;
IT0 = 1;
}
10.3.2 Hàm init_ext_int1()
void init_ext_int1()
{
IE &= ~(0x04);// enable external interrupt 1
BKIT HARDWARE CLUB – www.bkit4u.com
58
Hướng dẫn sử dụng Kit 89
IE |= 0x04;

IT1 = 1;
}
10.3.3 Hàm ext0_isr()
Đây là hàm phục vụ ngắt ngoài 0.
void ext0_isr() interrupt 0
{
//Add your code here
if(count<9)
count++;

}
10.3.4 Hàm ext1_isr()
Đây là hàm phục vụ ngắt ngoài 1.
void ext0_isr() interrupt 1
{

//Add your code here
if(count>0)
count ;

}

BKIT HARDWARE CLUB – www.bkit4u.com
59

×