amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 2245|回复: 2

stc89c51-诡异-自动进入外部中断

[复制链接]
发表于 2010-3-27 20:01:48 | 显示全部楼层 |阅读模式
程序如下,本来打算的是外部中断0被触发后执行read_one_word()函数,目前的问题是,中断触发后可以执行read_one_word(),但是中断没有被触发的时候也可以执行read_one_word(),或者说进入不进入中断不受控。  目前感觉问题似乎和P2.0引脚有关系,如果将P2.0引脚用导线引出,导线接触开关电源的外壳就能引发中断,但是直接将P2.0接地就不会触发中断。 所以想不通啊,到底为什么呢?


#include <reg52.h>
#include<intrins.h>

sbit TRY    = P1^6;

sbit SCLK  = P2^0;
sbit MISO  = P2^1;
sbit CS    = P3^2;

bit FINT0;
void int_0();       //外部中断0

unsigned int read_one_word(void);
void DelayMs(unsigned int MS);

void initial();     

void DelayMs(unsigned int MS)
{
  unsigned int i;
  while(MS--)
  {
    for(i = 1000;i!=0;i--);
  }
}


void main(){
initial();
while(1){
        TRY=0;         
        
               
        if(FINT0){      //中断0来到要做什么事情
   
   unsigned int SetValue;
   FINT0=0;
   TRY=1;       
   SetValue=read_one_word();
  
           
  }         
  
        
}         
}
//-------------------------------------------------------------------
void initial(){
EA=1;               // CPU所有中断开(IE最高位MSB)
EX0=1;              // INT0中断开
IT0=0;              // INT0低电平触发(为1则为下降沿触发)
EX1=1;              // INT1中断开
IT1=0;              // INT1低电平触发(为1则为下降沿触发)
return;
}

void int_0() interrupt 0 using 0
{
    FINT0=1;
}

unsigned int read_one_word(void)                              
{                                               
    unsigned int temp=0;
    unsigned int temp1=0;
    unsigned int BitCount=16;
   
    do{
        SCLK=0;
        DelayMs(10);
        SCLK=1;
        DelayMs(10);
        if(MISO)
            temp=temp|0x0001;
        else
            temp=temp&0xfffe;
        if (BitCount-1)
     {
            temp1=temp<<1;
            temp=temp1;
     }
        BitCount--;
    }
    while(BitCount);
    return temp;
}
发表于 2010-3-27 20:46:32 | 显示全部楼层
判断一下,是否干扰引起的
 楼主| 发表于 2010-3-27 23:21:45 | 显示全部楼层
没什么干扰啊

而且感觉和那个read_one_word()有关,如果将read_one_word()屏蔽掉,只剩下一个TRY=1(led灯灭),就不会自动进入中断。实在想不通
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-9-23 03:13

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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