关于中断几个小问题

2019-03-24 19:51发布

这是一个用中断和计时器控制一个led灯循环闪烁的程序
#include<reg52.h>
sbit led1=P1^0;
void main()
{EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-46083)/256;
TH1=(65536-46083)%256;
TR0=1;
while(1);
}
void time() interrupt 1
{
led1=~led1;
TH0=(65536-46083)/256;
TH1=(65536-46083)%256;
}
程序中没有有关循环的语句  为什么导到硬件中led出现循环的效果?

求大侠解释 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
仙猫
1楼-- · 2019-03-24 22:15
中断服务程序不是在被反复执行吗?
qqchx20082008
2楼-- · 2019-03-24 22:43
 精彩回答 2  元偷偷看……
njlianjian
3楼-- · 2019-03-25 04:37
led1=~led1;
这个一直在循环工作
hades2011
4楼-- · 2019-03-25 07:57
中断却没有关闭  可以这样子修改}
void time() interrupt 1
{
static char i=0
led1=~led1;
if(i<10)   //  这个数字你觉得多少度无所谓,但要小于255
             i++;
else     ET0=0;  // 关中断
}
  这样子就会看到闪烁几下后  就一直亮着或者灭了
dream69
5楼-- · 2019-03-25 09:20
你的中断没有关,而每次进入中断程序,你又重新设置了定时器,所以就这样一直循环

一周热门 更多>