回复
void main(void)
{
IP=0x0a; //优先级设定,定时器高,外部中断低
IT0=1; //下降沿触发
TMOD=0x22; //工作方式二
TH1=256-t; //装载初值
TL1=TH1;
TH0=256-(41-t);
TL0=TH0;
IE=0x8b; //开中断
TR0=1; //开定时器
while(1);
}
可以利用外部中断进行时间设置 但是你主程序中的while(1);
不能够是主程序不段的循环 而是对t采样一次后 就一直停留在while(1);
这句上了 根本就不能够在改变t的值了 你可以尝试着把程序变成这样
void main(void)
{
while(1)
{IP=0x0a; //优先级设定,定时器高,外部中断低
IT0=1; //下降沿触发
TMOD=0x22; //工作方式二
TH1=256-t; //装载初值
TL1=TH1;
TH0=256-(41-t);
TL0=TH0;
IE=0x8b; //开中断
TR0=1; //开定时器
}
}
看看这样是不是可以实现.
发表时间:2006年8月7日19:57:49