3601|8

77

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51的中断怎么返回啊? [复制链接]

写了个实验小程序,可是中断后不能返回,那位大佬帮看一下问题出现在那里!!!谢...............
#include

unsigned char Run[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
unsigned char Flash[] = {0x00, 0xFF, 0X00, 0xFF, 0x00, 0xFF, 0X00, 0xFF};


void wait10ms(unsigned char i)
{
  
   TR0=1;
   while(i!=0)
   {
   
     TH0=-(10000/256);
     TL0=-(10000%256);
     while(TF0!=1);
     TF0=0;
     i--;
    }
   TR0=0;
}


void LED_Run(unsigned char *str)
{
   
   unsigned char i;
   for(i=0; i<8; i++)
   {
     
     P1 = str;
     wait10ms(200);
   }
}

void EXT0_INT(void)
{
  
  EA=1;
  PX0=1;
  IT0=0;
  EX0=1;
}

void EXT0_INT_SRV()interrupt 0
{
  
   unsigned char i;
   for(i=0; i<8; i++)
   {
     
     P1=Flash;
     wait10ms(400);
     
   }
}


void main(void)
{

   EXT0_INT();
   while(1)
   {
     
      LED_Run(&Run[0]);
   }
}

最新回复

c8051f,at89s5x,sst89等51系列单片机 http://c8051fmcu.blog.sohu.com  详情 回复 发表于 2008-10-8 16:33
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你需要清中断标记。 程序框架不好,中断不是这么用的,不要把等待放在里面。
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你不理解中断,外部中断响应后TF0自动为0;也就是说你的中断程序在出不了

while(TF0!=1);

这里总是成立的,怎么有返回,你不理解中断的真正意义!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
  1. void EXT0_INT_SRV()interrupt 0
  2. {
  3.   EA = 0;
  4.   unsigned char i;
  5.   for(i=0; i <8; i++)
  6.   {
  7.    
  8.     P1=Flash[i];
  9.     wait10ms(400);
  10.    
  11.   }
  12.   EA = 1;
  13. }
复制代码
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
多谢各位大侠指点!
我马上试一下哈.
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
进入中断服务程序->关中断->完成中断服务->开中断..
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 3 楼 jennyvenus 的回复:
C/C++ codevoid EXT0_INT_SRV()interrupt 0
{
  EA = 0;
  unsigned char i;
  for(i=0; i <8; i++)
  {
   
    P1=Flash;
    wait10ms(400);
   
  }
  EA = 1;
}


还是不能返回?......
还有那位大侠给指点一下.
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
严重XX在中断里延时这么长时间的!!!

呵呵

其它的没看

谢谢
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

9
 
c8051f,at89s5x,sst89等51系列单片机
http://c8051fmcu.blog.sohu.com
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表