标题: 单片机中断 [打印本页]

作者: daliu    时间: 2014-9-13 12:47
标题: 单片机中断
何为中断?
是暂停正在执行的程序,转而去执行特定的程序。
为什么要有中断?
提高效率。
譬如平时的上课。
老师只管讲课,学生有问题会举手,老师会停下进度,转而去回答学生的问题。
若是老师讲一句,就问学生有没有问题,这样就太浪费啦。
中断的流程特点:


断点出会有一个标记,便于中断程序完成回返回主程序。此处与堆栈有关,不提。
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;
}


作者: blj178    时间: 2014-10-22 14:04
看看有多经典
作者: hjlost    时间: 2014-10-24 14:03
掘墓高手,专挖古墓,一挖一个坑,坑坑见墓。。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1