我写了一个程序,其中用到PIC16F876A单片机的外部中断。
我的测试程序是外部下降沿中断,使用一个按键把RB0口置低,这样进入中断。当进入中断后,把RB1置高就可以了。
但是在测试中发现,RB1口仅仅是出现一个高脉冲,然后 又回到低电平了。
想不明白,请教一下大家。
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
//--------------------
//主程序
void main()
{
OPTION=0X00; //INT 引脚的下降沿触发中断
TRISB=0X01; //B口高七位为输出,RB0为输入
INTE=1; //INT 外部引脚中断允许位
GIE=1; //开放全局中断
PEIE=1; //使能外部中断
RB1=0;
while(1)
{
}
}
//中断函数
void interrupt INT(void)
{
if(INTE && INTF) //判断是否为外部中断
{
INTF=0;
RB1=1; //RB1仅仅出现了一个窄的高脉冲,就又恢复为低电平了,怎么回事呢?
}
}
本贴被 frmngil 编辑过,最后修改时间:2008-12-23,19:42:39.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>