何为中断?
是暂停正在执行的程序,转而去执行特定的程序。 为什么要有中断? 提高效率。 譬如平时的上课。 老师只管讲课,学生有问题会举手,老师会停下进度,转而去回答学生的问题。 若是老师讲一句,就问学生有没有问题,这样就太浪费啦。 中断的流程特点: 断点出会有一个标记,便于中断程序完成回返回主程序。此处与堆栈有关,不提。 51系列单片机有5个中断两个外部中断INT0、INT1两个内部定时\计数器中断IT0、IT1以及一个串口中断 譬如举手打断老师讲话一样,中断也需要一个信号触发。 外部中断有负边沿触发和低电平触发。单品及通过捕捉INTO(12脚)、INT1(13脚)的信号变化来判定是不是有外部中断请求。 仅仅有触发还不够,单片机必须认同这些信号才行。所以需要对单片机设置。主要是两个寄存器 IE 中断使能寄存器 TCON 定时器\计数器控制寄存器 这两个寄存器都是可位寻址,且在reg51.h头文件中已经定义,所以可以直接指定一个位的值,方便呀! 譬如
IE寄存器 TCON
下面是一段程序: #include
sbit Re =P3^0;
sbit Intur =P3^2;
void main()
{
EA=1;
EX0=1;
IT0=0;
Re = 1;
while(1)
{
Re =1;
} }
void In(void) interrupt 0 using 1 0表示中断优先级的顺序 第一位即INTO 1表示用第一寄存器组
{
Re=0;
}
|