单片机中断INT0简单小例子


 

用INT0中断控制LED闪烁方式

用单片机P1脚控制8个LED灯闪烁,按下K1键换另一各闪烁方式。

K1键一端连着INT0 (P3^2),一端连着地

 

原来的闪烁方式

void main()
{    
    while(1)
    {
        P1=0xaa;
        Delay500ms();
        P1=0x55;
        Delay500ms();
    }
}

新的闪烁方式放在中断函数中

//用新闪烁方式闪烁5次后,返回主函数,用原方式断续闪烁
void
int_0() interrupt 0 //中断号为0,表示用INT0中断 { unsigned int i=0; while(i<5) { P1=0xf0; Delay500ms(); P1=0x0f; Delay500ms(); i++; } }

因为是用INT0,所以中断号是0 即interrupt 0

要用到中断INT0,

要把总中断开关打开,即EA=1

再把INT0中断开关打开,即EX0=1;

因为INT0脚 (P3^2)通过K1按键连着地,所以触发方式选择低电平,即IT0=0

把以上三个条件写入主函数

void main()
{
    EA=1;
    EX0=1;
    IT0=0;
    
    while(1)
    {
        P1=0xaa;
        Delay500ms();
        P1=0x55;
        Delay500ms();
    }
}

用外部中断和两个寄存器有关

IE寄存器:

                                  

 

TCON寄存器:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM