为什么我用外部中断0不能打断定时器中断0?????
是不是定时器中断服务函数有while(1)???
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P0^0;
sbit k4=P3^2;
sbit led1=P0^1;
void delay(u16 i)
{
while(i--);
}
void int0init()
{
IT0=1;
EX0=1;
EA=1;
}
void timer0init()
{
TMOD|=0X01;
TH0=0XFC;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void main()
{ int0init();timer0init();
led=0;led1=0;
while(1);
}
void int0() interrupt 0
{
if(k4==0)
{
delay(1000);
led1=1;
}
}
void timer0() interrupt 1
{ while(1)
{ static u16 i;
TH0=0XFC;
TL0=0X18;
i++;
if(i==1000)
{
delay(50000);
i=0;
led=~led;
led1=0;
}
}
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哦(⊙o⊙)
那要延时怎么办.。。。
直接把while(1)和中括号去掉就可以了,你需要让程序不断地进入定时器中断,而不是卡在第一次出不来。但是这样的程序总体来说还是有问题,但估计至少能看到点现象了
一周热门 更多>