OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2219|回复: 3

关于中断的问题,求大神解答,我是菜鸟

[复制链接]

22

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2019-3-1
在线时间
43 小时
发表于 2019-4-29 11:03:40 | 显示全部楼层 |阅读模式

#include <reg51.h>
sbit LED=P3^7;
sbit LED1=P3^6;
unsigned char second;
unsigned char tcount ,t,a;
void delay(unsigned int c);
void time_int();
void main()
{
   int d;
   time_int();
   a=1;
   
   delay(100);


   for(d=0;d<3;d++)
   {
     LED1=0;
     LED=0;
     delay(100);
     LED1=1;
     LED=1;
     delay(100);
   }

  while(1);
}
void t0() interrupt 1 using 0
{


  int i;
  TH0=0Xd8;                //重装50ms初值,TH0=(65536-50000)/256
  TL0=0Xf0;                //              TL0=(65536-50000)/256
  if(a==1)
  {
  
   while(1)
  {
   for(i=0;i<3;i++)
   {
   LED=0;
   delay(1000);  
   LED=1;
   delay(1000);
   }
  a=0; break;
  }


   if(a==0)
{ while(1) //本段程序功能为显示
  {
  
         LED1=0;
         delay(1000);
     LED1=1;
         delay(1000);
         break;


}
}
        
}


}


void time_int()
{


        TMOD=0x01;        //定时器0工作在工作方式1下
        TH0=0Xd8;        //设置50ms定时时计数器的初值,TH0=(65536-50000)/256
        TL0=0Xf0;        //                            TL0=(65536-50000)/256
        EA=1;                //CPU开总中断
        ET0=1;                //T0开中断
        TR0=1;                //启动T0
          tcount=0;
          second=0;
        t=0;




}
void delay(unsigned int c)
{
unsigned int x,y;
for(x=c;x>0;x--)
   for(y=110;y>0;y--);
}










这是一个中断的实验
当检测到a==1的时候,进入中断,当执行完中断的函数后,为何不能
执行主函数的

for(d=0;d<3;d++)
   {
     LED1=0;
     LED=0;
     delay(100);
     LED1=1;
     LED=1;
     delay(100);
   }




我是菜鸟,求大神解答下,谢谢!!!




shiyan.rar

41.75 KB, 下载次数: 4

程序和仿真

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-28
在线时间
5 小时
发表于 2019-4-29 11:20:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-4-29 16:32:18 | 显示全部楼层
中断程序里面用了死循环,所以进一次中断后就不能退出了。
回复 支持 反对

使用道具 举报

22

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2019-3-1
在线时间
43 小时
 楼主| 发表于 2019-4-29 21:59:52 | 显示全部楼层
HXYDJ 发表于 2019-4-29 16:32
中断程序里面用了死循环,所以进一次中断后就不能退出了。

已经加了break 了啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 05:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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