51单片机的中断系统(五)

来源:互联网 发布:mysql模糊查询语句 编辑:程序博客网 时间:2024/05/22 08:29

中断的概念,就不再累赘了。反正就是中断来的时候,停下手中的活,先忙中断事情,然后在回来继续干。就好像正在家里洗碗,突然门铃响了,有快递送来(中断发生);这时候停止刷碗,先去开门拿快递(中断响应/中断服务);收了快递,回来继续洗碗(中断返回)。

五个中断源也不再详述,可以参考前面帖子。

这里我们说说外部中断。

一,外部中断

    外部中断有外部中断0 和 外部中断1  对应的中断号分别为 0 和 2 ;中断优先级相对比较高。

    1,外部中断0 

       对应的引脚是P3.2;

       用IT0(TCON.0)配置低电平有效还是下降沿有效;

      外部中断0中断请求标志位IE0;1表示申请中断。

    2,外部中断1对应的引脚是P3.3;

       对应的引脚是P3.3;

       用IT1(TCON.0)配置低电平有效还是下降沿有效;

      外部中断0中断请求标志位IE1;1表示申请中断。


二,外部中断响应条件

    1,CPU开启中断

       在IE寄存器中,EA为总中断开关,必须开启。

    2,允许外部中断

       在IE寄存器中,EX0为外部中断0控制开关;EX1为外部中断1控制开关;需要选择开启

    3,有中断请求发生

       首先要设置IT0/IT1配置中断发生的条件;然后对应的P3.2/P3.3有对应的低电平/下降沿发生。


三,代码(以开启外部中断0为例)

    //设置开关和触发方式

    EA = 1;//开启总中断

    EX0 = 1;//允许外部中断0发生

    IT0 = 0;//设置出发方式:0,低电平有效;1,下降沿有效

    //中断函数

    void func() interrupt 0 (using 1){

        write your demo here;

    }




原创粉丝点击