搜索
bottom↓
回复: 5

【求助】关于PIC单片机外部中断和RB1口的问题【恢复】

[复制链接]

出0入0汤圆

发表于 2008-12-23 19:40:54 | 显示全部楼层 |阅读模式
我写了一个程序,其中用到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.

出0入0汤圆

 楼主| 发表于 2008-12-25 16:51:27 | 显示全部楼层
对,是看门狗造成的。我几天前检查出问题了,忘了来结贴。谢谢大家

出0入0汤圆

发表于 2008-12-25 13:50:19 | 显示全部楼层
看看是不是SLEEP,或者看门狗造成的,你只在主程序里RB1=0;程序只执行到这里才能把RB1至零

出0入0汤圆

 楼主| 发表于 2008-12-23 20:17:38 | 显示全部楼层
不会吧,AD口默认应该是RA口

出0入0汤圆

发表于 2008-12-23 20:06:46 | 显示全部楼层
RB口有可能与AD口冲突了,有AD的PIC默认上电状态为AD。

出0入0汤圆

 楼主| 发表于 2008-12-23 19:57:44 | 显示全部楼层
请知道的朋友帮帮忙。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 18:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表