51单片机外部中断使用示例程序
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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单片机外部中断使用示例程序的主要内容,如果未能解决你的问题,请参考以下文章