遥指杏花村

博客园 首页 新随笔 联系 订阅 管理

 

用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寄存器:

 

posted on 2020-10-01 11:08  遥指杏花村  阅读(1291)  评论(0编辑  收藏  举报