概述
51单片机外部中断使用示例程序
- 本实例来源以STC89演示示例,为了方便初学者更好的阅读,直接将其贴出来。
- 首先分享一份《 STC单片机资源一览表》
你也可以从https://www.stcisp.com/下载到,不过不能编辑只能看。如果需要作为个人阅读使用还是有办法的,将其另存为
.xlsx
,然后修改为后缀为.zip,或者.rar格式后,再进行解压进行处理,如何处理情况视频:
https://www.ixigua.com/6850385483143315981
【金山文档】 STC单片机资源一览表
https://kdocs.cn/l/ca0WAFHo6sUY
示例一(演示外部中断0的下降沿中断)
#include "reg51.h"
//External interrupt0 service routine
void exint0() interrupt 0 //INT0, interrupt 0 (location at 0003H)
{
P0++;
}
void main()
{
IT0 = 1; //set INT0 interrupt type (1:Falling 0:Low level)
EX0 = 1; //enable INT0 interrupt
EA = 1; //open global interrupt switch
while (1);
}
示例二(演示外部中断0的下降沿中断唤醒掉电模式)
#include "reg51.h"
#include "intrins.h"
//External interrupt0 service routine
void exint0( ) interrupt 0 //INT0, interrupt 0 (location at 0003H)
{
}
void main()
{
IT0 = 1; //set INT0 interrupt type (1:Falling 0:Low level)
EX0 = 1; //enable INT0 interrupt
EA = 1; //open global interrupt switch
while (1)
{
INT0 = 1; //ready read INT0 port
while (!INT0); //check INT0
_nop_();
_nop_();
PCON = 0x02; //MCU power down
_nop_();
_nop_();
P1++;
}
}
示例三(演示外部中断1的下降沿中断)
#include "reg51.h"
//External interrupt1 service routine
void exint1() interrupt 2 //INT1, interrupt 2 (location at 0013H)
{
P0++;
}
void main()
{
IT1 = 1; //set INT1 interrupt type (1:Falling only 0:Low level)
EX1 = 1; //enable INT1 interrupt
EA = 1; //open global interrupt switch
while (1);
}
示例四(演示外部中断1的下降沿中断唤醒掉电模式)
#include "reg51.h"
#include "intrins.h"
//External interrupt0 service routine
void exint1( ) interrupt 2 //INT1, interrupt 2 (location at 0013H)
{
}
void main()
{
IT1 = 1; //set INT1 interrupt type (1:Falling 0:Low level)
EX1 = 1; //enable INT1 interrupt
EA = 1; //open global interrupt switch
while (1)
{
INT1 = 1; //ready read INT1 port
while (!INT1); //check INT1
_nop_();
_nop_();
PCON = 0x02; //MCU power down
_nop_();
_nop_();
P1++;
}
}
中断查询次序号就是中断号
void Int0_Routine(void) interrupt 0;
void Timer0_Rountine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Rountine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void Timer2_Routine(void) interrupt 5;
void Int2_Routine(void) interrupt 6;
void Int3_Routine(void) interrupt 7;
最后
以上就是美满小笼包为你收集整理的51单片机外部中断使用示例程序的全部内容,希望文章能够帮你解决51单片机外部中断使用示例程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复