中断
中断原理
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 }
每一天的分享时刻