51单片机每个外部中断和定时器中断 应用模版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一步,中断配置

/************************************************************

函数名:INT0_Config

功能:配置单片机与中断相关的硬件,让单片机能够正常检测中断和执行中断代码。

输入参数:

输出参数:

************************************************************/

void INT0_Config(void)

{

IT0=1; //中断触发方式,IT0=0,低电平触发,INT0=1下降沿触发(下降沿就是由高电平向低电平的跳变);

EX0=1; //外部中断0的中断开关,每个中断源都有自己的中断开关。

EA=1; //打开总中断,如果总中断不打开,就是其他中断开关被打开,单片机也不能执行中断。

}

第二步,中断服务,也就是cpu被中断后所要做的事。

/************************************************************

函数名:Isr_INT0

功能:中断服务

输入参数:

输出参数:

************************************************************/

void Isr_INT0() interrupt 0 //interrupt表明该函数是中断函数,后面的标号表示是哪个中断源产生的中断。{ //(INT0)为0, Timer0为1,INT1为2,Timer3,串口中断为4。

// Add your code here //自己想要中断后发生的程序

}

第三部主函数

/************************************************************

函数名:main

功能:主函数

输入参数:

输出参数:

************************************************************/

void main()

{

INT0_Config();//调用这个函数来配置外部中断

while(1)

{

//Add your code here

//CPU一直在这里循环的执行代码,一旦发生中断,就停下来去执行中断函数Isr_INT0() interrupt 0,

//执行完成后,返回从断点处继续往下执行原来的代码。

}

}

外部中断INT0:

void INT0_Config(void)

{

EA=1; //开总中断

EX0=1; //开外部中断INT0

IT0=1; //1为下降沿触发,0为低电平触发}

Void Isr_INT0() interrupt 0

{

// Add your code here

}

Void main()

{

INT0_Config();

While(1)

{

/Add your code here

//CPU一直在这里循环的执行代码,

//一旦发生中断,就停下来去执行中断函数Isr_INT0() interrupt 0,

//执行完成后,返回从断点处继续往下执行原来的代码。

}

}

外部中断INT1:void INT1_Config(void)

{

EA=1; //开总中断

EX1=1; //开外部中断INT0

IT0=1; //1为下降沿触发,0为低电平触发}

Void Isr_INT1() interrupt 2

{

// Add your code here

}

Void main()

{

INT0_Config();

While(1)

{

/Add your code here

//CPU一直在这里循环的执行代码,

//一旦发生中断,就停下来去执行中断函数Isr_INT0() interrupt 0,

//执行完成后,返回从断点处继续往下执行原来的代码。

}

}

相关文档
最新文档