单片机中断学习
1. 中断
中断一般定义为打断CPU执行顺序的事件。
产生中断事件的设备称之为中断源。
C51系列支持五个中断源:
外部中断0/外部中断1
定时器0中断/定时器1中断
串口中断
C51系列的中断原理:
当特定的中断产生时,CPU立即切换到中断模式,打断main函数的执行,到指定的地址上去执行
中断服务函数,不同的中断对应不同的入口地址,那么不同的入口地址其实就是去执行这个地址
上的中断服务函数,中断服务函数一般习惯写在main函数的后面,而且不需要提前声明。
C51 中断向量表:
在中断向量表中指出不同的中断,对应不同的入口地址。
编号 中断源 入口地址
0 外部中断0 0003H
1 定时器0中断 000BH
2 外部中断1 0013H
3 定时器1中断 001BH
4 串口中断 0023H
编号是与中断源一一对应的。
它指定当某一个中断发生时,CPU要去哪个地址上去执行中断服务函数。
中断服务函数的格式是固定的:
void 中断服务函数的名字(void) interrupt m
{
//用户自己决定代码的实现
}
m:就是特定的中断的编号。
例子:
外部中断0的中断服务函数
void int0_ser(void) interrupt 0
{
//....
}
2. 外部中断
外部中断一共有两个:
外部中断0 ---> 由外部引脚P3.2提供
外部中断1 ---> 由外部引脚P3.3提供
外部中断实验:
通过外部中断去按键点灯亮灯。