Hướng dẫn sử dụng Kit 89 - Bài 4 doc - Pdf 22

Hướng dẫn sử dụng Kit 89
Bài 4 : Ngắt Timer
Mục đích:
Tìm hiểu ngắt timer của 89V51
Xây dựng module dành cho timer của 89V51 có thể dùng lại được.
Yêu cầu:
Viết chương trình hiển thị từ 0, sau 1 giây tăng lên 1, khi tăng đến 9 thì chuyển
sang hiển thị ở led kế tiếp, hiển thị bắt đầu lại từ 0.
4.1 Khai báo ngắt timer
Trình tự là cho phép ngắt toàn cục, cho phép ngắt timer và thiết lập chế độ hoạt
động cho timer:

IE = 0x80; //enable global interrupt

IE &= ~(0x02);// enable timer 0
IE |= 0x02;

TMOD &= ~(0x01);// setup mode for timer 0
TMOD |= 0x01;

TH0 = (-10000/256); //10 ms
TL0 = (-10000%256);

TR0 = 1;//start timer0

Hàm phục vụ ngắt sẽ được khai báo như sau:

void timer0_isr() interrupt 1
{
TR0 = 0;//stop timer 0


Hàm này làm nhiệm vụ khởi tạo ngắt timer1 sau mỗi 1ms, khi khởi tạo ngắt
timer1 xong, ta phải hiện thực hàm phục vụ ngắt quãng cho nó, nếu không chương trình
sẽ chạy sai.
void init_timer1()
{
IE &= ~(0x08);// enable timer 1
IE |= 0x08;

TMOD &= ~(0x10);// setup mode for timer 1
TMOD |= 0x10;

TH1 = (-1000/256); //1 ms
TL1 = (-1000%256);

TR1 = 1; //start timer1

}
4.2.2 Hàm start_timer1()
void start_timer1()
{
TR1 = 1;
}
4.2.3 Hàm timer1_isr()
Đây là hàm phục vụ ngắt quãng của timer1, được khai báo và định nghĩa như sau: BKIT HARDWARE CLUB – www.bkit4u.com
39
Hướng dẫn sử dụng Kit 89
void timer1_isr() interrupt 3

{
TR1 = 0;
}

Phần hiện thực các bạn xem trong project Bai 4 để biết thêm chi tiết.
BKIT HARDWARE CLUB – www.bkit4u.com
40


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status