Bai 5

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

Bài 5: NGҲT NGOÀI (INT)

I>Khái niӋm:
Ngҳt là sӵ đáp ӭng các sӵ kiӋn bên trong hoһc
bên ngoài nhҵm thông báo cho bӝ vi điӅu
khiӇn biӃt thiӃt bӏ đang cҫn đưӧc phөc vө
Bài 5: NGҲT NGOÀI (INT)
II>. Trình tӵ thӵc hiӋn ngҳt cӫa vi điӅu khiӇn
B1: Ӄt thúc lӋnh hiӋn tҥi trong chương trình chính cӫa vi điӅu
khiӇn và lưu đӏa chӍ cӫa lӋnh kӃ tiӃp vào ngăn xӃp.
B2: Lưu lҥi trҥng thái hiӋn hành cӫa tҩt cҧ các ngҳt vào bên trong.
B3: Nhҧy tӟi mӝt vӏ trí cӕ đӏnh trong bӝ nhӟ gӑi là bҧng vecto
ngҳt, nơi lưu đӏa chӍ cӫa trình phөc vө ngҳt
B4: Nhұn đӏa chӍ tӯ bҧng vecto ngҳt rӗi nhҧy tӟi đӏa chӍ đó và
bҳt đҫu thӵc hiӋn trình phөc vө ngҳt cho tӟi lӋnh cuӕi cùng.
B5: kӃt thúc trình phөc vө ngҳt và vđk trӣ vӅ đúng vӏ trí mà
nó bӏ ngҳt lúc trưӟc sau nҥp đӏa chӍ lӋnh cҫn làm kӃ tiӃp tӯ
ngăn xӃp và thӵc hiӋn lӋnh này.
c  5: NGҲT NGOÀI (INT)
III>Các Ngҳt Cӫa 8051 :
Ng¾t Cê đÞa chØ V 
vector 

Ng¾t ngoµ 0 IE0 0003H 0

c ®Þnh thê 0 TF0 000cH 1

Ng¾t ngoµ 1 IE1 0013H 2

c ®Þnh thê 1 TF1 001cH 3

Port nè t I hoÆc TI 0023H 4

c ®Þnh thê 2 TF2 hoÆc 002cH 5


EXF2
Bài 5: NGҲT NGOÀI (INT)
IV>Các Thanh Ghi Sӱ Dөng Cho Ngҳt Ngoài
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.
Bài 5: NGҲT NGOÀI (INT)
ET2 ( IE.5 bit) là bit cho phép ngҳt cӫa timer 2 ( chӍ ӣ hӑ 52 ).
hi 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. hi 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 5: NGҲT NGOÀI (INT)
2.Thanh Ghi ThiӃt Lұp ChӃ Đӝ Ngҳt(TCON):

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 5: NGҲT NGOÀI (INT)
IE1 ( TCON.3) Gӡ ngҳt ngoài kích theo sưӡn ; đưӧc G  thiӃt
lұp khi phát hiӅn có sưӡn xuӕng ngҳt ngoài và đӵơc G  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

IE0 ( TCON.1) Gӡ ngҳt ngoài kích theo sưӡn ; đưӧc G  thiӃt


lұp khi phát hiӅn có sưӡn xuӕng ngҳt ngoài và đӵơc G  xoá
khi ngҳt đưӧc xư lý

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 5: NGҲT NGOÀI (INT)
Như vұy tӯ 2 thanh ghi trên , đӇ sӱ dөng ngҳt INT0 (ngҳt
theo mӭc ta sӁ phҧi khӣi tҥo như sau):

void khoi_tao()
{
P3_2=1; // ë   
   
EA=1; //       
EX0=1; //      
}
Bài 5: NGҲT NGOÀI (INT)
V>Chương Trình Phөc Vө Ngҳt:

Void Name (void) interrupt x ( x là sӕ thӭ thӵc cӫa ngҳt )


{
// chuong trinh phuc vu ngat
}
Bài 5: NGҲT NGOÀI (INT)
Như Vұy Các Bưӟc ĐӇ Sư Dөng Ngă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 5: NGҲT NGOÀI (INT)
VI>Bài Tҫp Thӵc Hành:
B1 :Dùng ngҳt ngoài INT0 đӇ nháy Led1( P1_0) 5 lҫn
khi công tҳc tҥi chân P3_2 đưӧc nhҩn ; chương trình
chính nháy liên tөc Led2 (P1_1) (ViӃt cho cҧ ngҳt theo
mӭc và theo sưӡn sau đó so sánh kӃt quҧ)
Bài 5: NGҲT NGOÀI (INT)
#include <REGX52.H>
void delay(long time)
{
long n;
for(n=0;n<time;n++){}
}
void khoi_tao()
{
_2=1;
EA=1;
EX0=1;
}
Bài 5: NGҲT NGOÀI (INT)
void ngat() interrupt 0
{
int i;
for(i=0;i<5;i++){ 1_0=~ 1_0; delay(20000);}
}
void main()
{
1_0 = 1; 1_1 = 1;
khoi_tao();
while(1)
{
1_1=~ 1_1;
delay(20000);
}
}
Bài 5: NGҲT NGOÀI (INT)

B2 :Dùng ngҳt ngoài INT0 :khi nhҩn công tҳc P3_2 sӁ


nháy Led1 và nháy cho đӃn khi nhҩn công tҳc P3_2 lҫn 2 ;
lһp lҥi quá trình trên . Trong hàm main sӁ liên tөc nháy
mӝt con Led khác
Bài 5: NGҲT NGOÀI (INT)
B3 :Dùng ngҳt ngoài INT0 và 4 công tҳc ӣ các chân P3_0, P3_1
,P3_2 , P3_3 :khi nhҩn công tҳc P3_2 sӁ nhҧy vào ngҳt và liên tөc
kiӇm tra các công tҳc P3_1 và P3_0 và P3_3 . Khi nhҩn P3_4 sӁ
chӑn 2 Led đҫu cӫa Led 7_Seg đӇ hiӇn thì dӳ liӋu , nhҩn P3_4 lҫn
2 sӁ chӑn 2 Led sau (lһp lҥi quá trình trên) .Khi chӑn 2 Led đҫu
:nӃu P3_0 đưӧc nhҩn sӁ tăng mӝt biӃn tӯ 0 đӃn 59 (quay vòng giá
trӏ) còn nӃu P3_1 đưӧc nhҩn sӁ giҧm giá trӏ tӯ 59 xuӕng 0 (quay
vòng giá trӏ) $hiӇn thì ra 2 Led đưӧc chӑn ; Khi chӑn 2 Led sau
:nӃu P3_0 đưӧc nhҩn sӁ tăng mӝt biӃn tӯ 0 đӃn 23 (quay vòng giá
trӏ) còn nӃu P3_1 đưӧc nhҩn sӁ giҧm giá trӏ tӯ 23 xuӕng 0 (quay
vòng giá trӏ) $hiӇn thì ra 2 Led đưӧc chӑn (chӍ thoát khӓi ngҳt khi
nhҩn công tҳc P3_2 lҫn nӳa) sau đó sӁ cho giá trӏ tӵ tăng như thӵc
tӃ (chưa quan trӑng thӡi gian chính xac)

You might also like