打印
[PIC®/AVR®/dsPIC®产品]

为什么我的INT功能进入不了中断?

[复制链接]
2744|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2021-8-19 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2021-9-13 13:38 编辑

为什么我的RB0口进入不了中断?是哪里的问题?

#include<pic.h>
#include<pic16f877a.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3731);
void delay(uint x)
{
    uint a,b;
    for(a=x;a>0;a--)
        for(b=110;b>0;b--);
}
void init()    //初始化
{
    OPTION_REG=0x00;            //RBPU=0使能B口上拉电阻,INTEDG=0下降沿触发中断
    INTCON=0xD0;                //GIE为1允许总中断,INTE=1使能RB0/INT外部中断,INTF=0清RB0外部中断标志位
    TRISB=0x01;                    //B口低2位设为键盘的输入
    TRISD=0;                    //D口低4位设为LED的输出
//    PORTB=0x01;
    PORTD=0;                    //D口清零
}
void interrupt INT()
{
    if(INTF==1)                    //查询中断标志位是否被置1
    {
        INTF=0;                    //清中断标志位
        if(RB0==0)                //再次检测RB0口是否被按下
        {
            PORTD=0x02;            //马达反转
        }
    }
}
void main()
{
    init();
    while(1)
    {
        PORTD=0x00;            //马达反转
    }
}

使用特权

评论回复
评论
18077686868wzq 2021-8-23 08:04 回复TA
你在INTF清零的地方设断点,看能不能进入。 
沙发
WESTBR00K| | 2021-8-20 20:08 | 只看该作者
你把清中断标志位放在中断函数最后面,不要进来就清。

使用特权

评论回复
板凳
kiwis66| | 2021-8-21 14:52 | 只看该作者
他说进不去中断,不是中断处理不对

使用特权

评论回复
地板
lcczg| | 2021-8-24 16:20 | 只看该作者
RB0上的信号用示波器看过吗?

使用特权

评论回复
5
AINZGOWN| | 2021-8-25 16:00 | 只看该作者
你DEBUG看看,设置断点,看看有没有进中断

使用特权

评论回复
6
pzsh| | 2021-9-13 13:38 | 只看该作者
中断使能,总中断使能什么的是不是都打开了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1201

主题

3139

帖子

0

粉丝