借你宝地求助大神 同时也满足你的要求
问题是把数组改成Int型程序就出错 只能发出25个数组
#include<reg52.h>
sbit button=P2^0;
sbit ir=P1^0;
unsigned int irtime;
char b,y;
char timedata[32]={80,35,35,35,35,35,35,35,35,80,80,80,80,80,80,80,35,35,80,80,35,35,35,35,80,80,35,35,80,80,80,80, };
void timer0()interrupt 1 //定时器中断
{
irtime++;
if(b==1)
{
ir=~ir; //取反 如果是1就变成0
}
}
void main()
{
int x;
ET0=1; //允许定时器0的中断
EA=1; //打开总中断
TMOD=0X02;//定时器0工作方式2 自动重装定时器
TH0=0Xe6; //装初值25.8us
TL0=0Xe6; //装初值25.8us
TR0=0; //开启定时器T0
ir=0;
x=0;
if(y==0)
{
TR0=1;
b=1;
irtime=0;
while(irtime<320);//320
b=0;
ir=0;
while(irtime<500);// 484
for(x=0;x<33;x++)
{
irtime=0;
b=1;
while(irtime<21);//18
b=0;
ir=0;
while(irtime<timedata[x]);
if(x>33)
break; //跳出循环
}
TR0=0;
y=1;
}
}
|