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

INT功能进入不了中断

[复制链接]
385|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2023-1-9 23:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我的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;            //马达反转
    }
}

使用特权

评论回复
沙发
chuxh| | 2023-1-9 23:10 | 只看该作者
你在INTF清零的地方设断点,看能不能进入。

使用特权

评论回复
板凳
renyaq| | 2023-1-9 23:17 | 只看该作者
你把清中断标志位放在中断函数最后面,不要进来就清。

使用特权

评论回复
地板
jlyuan| | 2023-1-9 23:22 | 只看该作者
他说进不去中断,不是中断处理不对

使用特权

评论回复
5
dingy| | 2023-1-9 23:26 | 只看该作者
RB0上的信号用示波器看过吗?

使用特权

评论回复
6
dengdc| | 2023-1-9 23:29 | 只看该作者
你DEBUG看看,设置断点,看看有没有进中断

使用特权

评论回复
7
jlyuan| | 2023-1-9 23:32 | 只看该作者
中断使能,总中断使能什么的是不是都打开了

使用特权

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

本版积分规则

869

主题

13089

帖子

7

粉丝