一、STC15单片机中断介绍
? ? ? ? 1.STC15W204S单片机的外部中断有INT0-IN4,共5个外部中断。对应引脚如下:
? ? ?整理如下:
INT0 | P3^2 | INT1 | P3^3 | INT2 | P3^4 | INT3 | P3^5 | INT4 | P3^0 |
???
???2.外部中断INT0和INT1可以设置为上升沿和下降沿触发?或?下降沿触发,但外部中断INT2-INT4只能由下降沿触发
???3.外部中断对应的中断号如下
INT0 | 0 | INT1 | 2 | INT2 | 10 | INT3 | 11 | INT4 | 16 |
? 关于更多中断编号可参考如下:
二、中断程序配置
????????1.外部中断0和外部中断1?
INT0:
#include "reg51.h"
void main()
{
IT0=0; //设置INT0的中断触发方式,当前为上升沿和下降沿都可触发
//若IT0=1,则只能下降沿触发
EX0=1; //允许INT0触发中断
EA=1; //使能总中断
while()
}
void INT0() interrupt 0
{
//todo
}
INT1:
#include "reg51.h"
void main()
{
IT1=0; //设置INT0的中断触发方式,当前为上升沿和下降沿都可触发
//若IT1=1,则只能下降沿触发
EX1=1; //允许INT0触发中断
EA=1; //使能总中断
while()
}
void INT1() interrupt 2
{
//todo
}
2.外部中断2-4
? ?INT_CLKO寄存器:
对于外部中断2-4,它们的中断触发触发方式只能是下降沿触发,因此无须配置TIx位。直接配置EX位即可,但因外部中断2-4的EX位在INT_CLKO寄存器中,因此直接配置该寄存器。 ?
#include "reg51.h"
sft INT_CLKO = 0X8f; //外部中断2-4中断允许寄存器
void main()
{
INT_CLKO |=0x10; //将EX2位置1,即允许INT2中断
//INT_CLKO |=0x20; //将EX3位置1,即允许INT3中断
//INT_CLKO |=0x40; //将EX4位置1,即允许INT4中断
//INT_CLKO |=0x30; //将EX2、EX3位置1,即允许INT2、INT3中断
EA=1; //使能总中断
while()
}
void INT2/3/4() interrupt 10/11/16 //分别对应INT2、INT3、INT4
{
//todo
}
|