我是靠谱客的博主 美满小笼包,最近开发中收集的这篇文章主要介绍51单片机外部中断使用示例程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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单片机外部中断使用示例程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部