这是关于中断的一个问题,希望大神能帮忙解决
时间:10-02
整理:3721RD
点击:
我的疑问是下面的程序当执行到哪一步的时候终端开始发生?或者是中断在程序中是怎么开始执行的?从哪里能判断出中断开始执行了?谢谢!
#include<reg52.h>
unsigned char num;
sbit led1=P0^0;
void main()
{ num=0;
TMOD=0X01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
while(1)
{
unsigned int a = 0;
if(num==2)
{
num=0;
led1=~led1;
}
}
}
void zhongduan() interrupt 1
{
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
num++;
}
#include<reg52.h>
unsigned char num;
sbit led1=P0^0;
void main()
{ num=0;
TMOD=0X01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
while(1)
{
unsigned int a = 0;
if(num==2)
{
num=0;
led1=~led1;
}
}
}
void zhongduan() interrupt 1
{
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
num++;
}
你开了定时器中断,设定了定时器时间,当单片机内部定时器计数到设定的时间后就会进入定时器中断;
然后你在中断里又重新设定了定时器时间,并且num++;如此反复进入2次定时器中断,出了中断后就会进入“led1=~led1;”
看你在哪里调用中断函数了