Tải bản đầy đủ

xử lý ngắt trong AT89S52

LOGO

Chương 5: Xử lý ngắt
Nội dung

Ha Noi Univesity of Industry
Faculty of Electronics Engineering

5.1 Khái niệm và mục đích của ngắt

5.2. Tổ chức ngắt của vi điều khiển AT89S52


5.3. Các thiết kế sử dụng ngắt

www.themegallery.com

5.1. Khái niệm và mục
đích của ngắt

Ha Noi Univesity of Industry

Faculty of Electronics Engineering

 Khái niệm
 Ngắt là gián đoạn một hoạt động nào đó và chuyển
sang một hoạt động khác có yêu cầu cao hơn, sau
khi thực hiện xong hoạt động này, trở về tiếp tục
thực hiện hoạt động ban đầu đang dang dở


 Mục đích
 Đáp ứng nhanh các yêu cầu trao đổi dữ liệu trong
khi vẫn thực hiện được các công việc khác

www.themegallery.com


5.1.

Tổ chức ngắt

Ha Noi Univesity of Industry
Faculty of Electronics Engineering

a. AT89S52 có 6 nguồn ngắt
 Ngắt ngoài đến từ chân /INT0
 Ngắt ngoài đến từ chân /INT1
 Ngắt do bộ Timer0
 Ngắt do bộ Timer1
 Ngắt do bộ Timer2
 Ngắt do Port nối tiếp


www.themegallery.com


5.1.

Tổ chức ngắt

Ha Noi Univesity of Industry


Faculty of Electronics Engineering

www.themegallery.com


Thanh ghi ngắt
 Thanh ghi IE (Interrupt Enable Register)

EA

Cho phép ngắt toàn cục

ET2

Cho phép ngắt do bộ Timer 2

ES

Thanh ghi IE

Cho phép ngắt do Port nối tiếp
Ha Noi Univesity of Industry


Faculty of Electronics
Engineering

Cho phép ngắt do bộ Timer 1

ET1
EX1
E

Cho phép ngắt ngoài trên chân /INT1

T0
EX0

Cho phép ngắt do bộ Timer 0

Cho phép ngắt ngoài trên chân /INT0

www.themegallery.com


Thanh ghi

Ha Noi Univesity of Industry
Faculty of Electronics Engineering

 Thanh ghi IP (Interrupt Priority Register)

PT2

Bit ưu tiên ngắt do bộ Timer2

PS

Bit ưu tiên ngắt Port nối tiếp

PT1

Bit ưu tiên ngắt do bộ Timer 1

www.themegallery.com


Thanh ghi

Ha Noi Univesity of Industry
Faculty of Electronics Engineering

 Thanh ghi IP (Interrupt Priority Register)

PT2

Bit ưu tiên ngắt do bộ Timer2

PS

Bit ưu tiên ngắt Port nối tiếp

PT1

Bit ưu tiên ngắt do bộ Timer 1

www.themegallery.com


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

Ngắt ưu tiên thấp
Ngắt có
ưu tiên cao

Chương trình chính

Hình 2:
Khi đang phục vụ ngắt ưu tiên
thấp mà xảy ra ngắt ưu tiên cao

Ngắt ưu tiên cao
Xảy ra ngắt có
ưu tiên thấp

Chương trình chính

Hình 3 :
Khi đang phục vụ ngắt ưu tiên
cao mà có yêu cầu ngắt ưu tiên thấp


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

Hoạt động của chương trình khi có ngắt
Chương trình
chính
Lệnh

Chương trình
con phục vụ ngắt

Lệnh
Lệnh

Ngắt ở đây

….
Lệnh i
Lệnh i +1
Lệnh

Lệnh
Lệnh
Lệnh
...
IRETURN

...
Lệnh


Bài 9:

Ngắt do Timer

www.themegallery.com


Nội dung:
 1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.
 1.1. Nguyên nhân gây ra ngắt do timer.
 1.2. Thứ tự ưu tiên của các ngắt do timer.

 2. THIẾT KẾ CÁC ỨNG DỤNG SỬ DỤNG
NGẮT DO TIMER.
 2.1. Ngắt do tràn Timer 0.
 2.2. Ngắt do tràn Timer 0 và Timer 1.
 2.3. Ưu tiên khi sử dụng ngắt do Timer

www.themegallery.com


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

 1.1. Nguyên nhân gây ra ngắt do timer.
Khi Timer tràn Thiết lập TFx =1  xảy ra ngắt

TIMER x
(8 hoặc 16 bit)
T

Tràn
Timer
TFx=1

Yêu cầu ngắt
do tràn Timer


www.themegallery.com


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

 1.1. Nguyên nhân gây ra ngắt do timer.
Vi điều khiển 89S52 có 3 Timer
Timer 0
Timer 1
Timer 2
Xảy ra ngắt do tràn Timer 0,1,2

www.themegallery.com


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

 Thứ tự ưu tiên của các ngắt do timer.
STT

Loại ngắt

Thứ tự ưu

Số hiệu ngắt

tiên
1
2
3

Ngắt ngoài /INT0
Ngắt do Timer 0
Ngắt ngoài /INT1

Thứ nhất
Thứ hai
Thứ ba

0
1
2

4
5
6

Ngắt do Timer 1
Ngắt do PORT nối tiếp
Ngắt do Timer 1

Thứ tư
Thứ năm
Thứ sáu

3
4
5
www.themegallery.com


1. KHÁI QUÁT VỀ NGẮT DO TIMER Ở 8051.

Thanh ghi ưu tiên ngắt IP (Interrupt Priority Register)
Để đặt mức ưu tiên của mỗi ngắt ở mức cao PTx
=1 Mức thấp với giá trị PTx = 0

-

P

-

PT2

PS

PT1

PX1

PT2

Bit ưu tiên ngắt do bộ Timer2

PT1

Bit ưu tiên ngắt do bộ Timer 1

T0

Bit ưu tiên ngắt do bộ Timer 0

PT0

PX0


2. THIẾT KẾ CÁC ỨNG DỤNG SỬ DỤNG
NGẮT DO TIMER

 2.1. Ngắt do tràn Timer 0.
Ví dụ 1: Sử dụng Timer0 chế độ 8 bit tạo xung có chu
kỳ 500uS (2KHz) trên chân P3.0, Thạch anh 12MHz.


2. THIẾT KẾ CÁC ỨNG DỤNG SỬ DỤNG
NGẮT DO TIMER

Bước 1: Phân tích bài toán
500 uS

TIMER 0
P3.0
1uS

250 uS 250 uS

• Khi Timer tràn sẽ xảy ra ngắt.
• P3.0 ở mức 1 trong 250uS, mức 0 trong 250uS
• Đảo mức trên chân P3.0 xảy ra khi tràn Timer0

m
m


Bc 2: Lp lu thut
toỏn
Chơng trình chính

Begi
n

Chơng trình con PVN

Khởi tạo
các thanh
ghi
LED vàng
nhấp nháy
S

Đ

Có ngắt?

LED đỏ nhấp
nháy 20 lần

www.themegallery.com


Bớc 3: Viết chơng trình.

#include
unsigned int x ;
sbit LED_Vang=P1^0;
sbit LED_Do=P1^2;
void delay(void)
{
unsigned int i;
for(i=1;i<=25000;++i);}
void main(void)
{

-Khai báo các th vi ệ n

Begi
n

I T 0=1;
-Khai báo các biến IE=0x81;
- Viết chơng trìnwhhciloen(1)tạo

{
Led_Vang=1;
delay();
EA x ET2 ES ELT _EVX =0E;
1d an1g T0
edelay();
}
-Xác lập vòng lặp }vô tận
trễ

Khởi tạo
các thanh
ghi
LED vàng
nhấp

LED đỏ nhấp
nháy 20 lần

EX0

- Điều khiển LED void ngatngoai_0(void) interrupt 0
sáng, tắt.
vàng

{
for(x=1;x<=20;++x)
{
-Xác lập vòng lặp 20 lLầend_Do=1
- Điều khiển LED đỏ sádnegl,ay();
tắt.


Led_Do=0;
delay();

}
}


2. ThiÕt kÕ c¸c øng dông sö
dông ng¾t ngoµi.

Bíc 4: Ch¹y thö vµ kiÓm tra kÕt qu¶.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×