中断

中断原理

51单片机中有5个中断源(忽略定时/计数器2),分为2个优先级,有优先级从高到低依次为

外部中断0:INT0 (入口:0x0003,0003H)中断号是0

定时/计数器0:TF0(入口:0x000B,000BH)中断号是1

外部中断1:INT1(入口:0x0013,0013H)中断号是2

定时/计数器1:TF1(入口:0x001B,001BH)中断号是3

串口中断:R1/T1(入口:0x0023,0023H)中断号是4

 中断系统结构

 中断寄存器

 

 代码实现

中断函数格式

1 void Init() intterupt 1 (1这个是中断号)
{

}

项目代码

 1 #include "reg52.h"
 2 
 3 sbit L0 = P0^0;
 4 sbit L8 = P0^7;
 5 
 6 void delay(unsigned int i)
 7 {
 8     while(i--);
 9 }
10 
11 void SeletHC573()
12 {
13     P2 = P2 & 0x1f | 0x80;
14 }
15 
16 void LED0()
17 {
18     SeletHC573();
19     L0 = 0;
20     delay(60000);
21     L0 = 1;
22     delay(60000);
23 }
24 
25 void Init_INT0()
26 {
27     EX0 = 1;
28     IT0 = 1;
29     EA  = 1;
30 }
31 
32 unsigned char flag = 0;
33 void Init_0() interrupt 0
34 {
35     flag = 1;
36 }
37     
38 void LED1()
39 {
40     if(flag == 1)
41     {
42         L8 = 0;
43         delay(60000);
44         delay(60000);
45         delay(60000);
46         delay(60000);
47         L8 = 1;
48     }
49     flag = 0;
50 }
51 
52 void main()
53 {
54     Init_INT0();
55     while(1)
56     {
57         LED0();
58         LED1();
59     }
60 }
原文地址:https://www.cnblogs.com/kevinkala/p/13767311.html