单片机-外部中断
时间:10-11 09:16 阅读:775次
*温馨提示:点击图片可以放大观看高清大图
简介:外部中断在单片机中占有很重要的作用。而且外部中断的优先级默认是最高的。平台单片机一般有两个外部中断---INT0、INT1。
外部中断在单片机中占有很重要的作用。而且外部中断的优先级默认是最高的。平台单片机一般有两个外部中断---INT0、INT1。中断的使用方法和前面讨论的定时器的方法相似,不一样的是触发的条件不同,定时器中断是计数器从0XFFFF增加0x0000时 TF置1,外部中断触发条件是INT管脚电平变化。有电平下跳沿和低电平触发两种配置方式。
当中断时间发生时, MCU便会转向定时器的中断向量地址,再由中断向量地址再转向相应的中断处理函数,中断处理函数是程序是程序员编写的。
如果您要做一个外部中断试验,需要的电路非常简单。因为今天我的计算机上没有安装protel。所以我没随手画一个简单的示意图。
当按键弹起时INT0管脚是高电压,按下时INT0管脚是低电压。当键盘按下的瞬间INT0就会出现一个下跳沿。我们以这个为前提设计一个试验电路。
根据这个试验我们编写一个试验代码,就是当键盘按下的瞬间,LED 闪烁一次。
sibt LED = P1^1;
void exint0_init( )
{
IT0 =1; //下降沿产生中断
EX0 =1; //使能外部中断
EA =1; //使能全局中断
}
void exint0( ) interrupt 0
{
LED =~LED;
}
void main( )
{
exint0_init( );
while(1)
{
}
}
以上代码只是演示一下中断的使用方法,但是在实际应用中可能会有问题,因为键盘电路需要去抖。所不要这样使用。
外部中断另外有一个主要的作用是,可以将MCU从"STOP"状态唤醒。这个功能非常重要。假如您给冰箱的控制系统做一个前面板。当冰箱的工作状态设置完成后。可以让面板的MCU进入stop模式。这样可以降低冰箱功耗,另外可以延长电路寿命。当有键盘按下时,通过外部中断唤醒这个电路系统。