之前我编写的小定时函数(我省略了定义):
void delay(unsigned int t)
{ while(--t);}
void main()
{ for(i=0;i<8;i++)
{P1=LED[i];
BZ=0;
delay(2050);}
for(j=0;j<8;j++)
{P1=LED0[j];
BZ=1;
delay(2050);}
}
那么上面这个我用的是软件延时,但是我怎么能用定时器代替这段函数,就是能不能直接在上面定义完定时器后直接在主函数中调用?我编写了以下的函数,但是好像不对劲。。
void Timer_0()
{ TMOD=0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;}
void Timer_IRS() interrupt 1
{ TH0=0x00;
TL0=0x00;
BZ=~BZ;}
void mian()
{ Timer_0();
while(1)
{for(i=0;i<8;i++)
{P1=LED[i];}
}
好像实现不了我第一段用软件延时编写的程序的功能,请问我该怎么改还是说,直接就是错的。
除了这种,我在编程的途中可以随时调用delay函数进行延时,可是这个定时器是不是没办法直接调用,必须得等待溢出打断,如果这样的话它怎么代替延时函数?
小弟刚刚学习51单片机,学到定时器这里卡主了,苦思冥想一晚上还有许多疑问解不开,请各位资深大哥帮我一帮~~万分感谢~~
对了,忘记说一点,BZ我设置的是蜂鸣器,好惆怅。。