学生提问如下;
老师,我手上有个stc51单片机,现在用的延时是软件延时,但实时性不好,弊端已经显露出来的,所以,我现在打算用定时器0进行延时,但是我现在不知道该怎么实现比较好,
我选择的思路是:把定时器配置成1ms,已经配置完成,然后在定义20ms,50ms,100ms,500ms的变量和标志位,打算当变量达到相对应的时间后,对应的标志位置1,
我现在疑惑不知道怎么办的是:我在主函数中,不知道该如何去实现这些延时
我原来的代码如下,我想修改成用定时器来延时,但我不知道该怎么实现,实时性比较差的代码如下:
Y07=1;
delay_ms(20);
Y01=0:
if (x01==0)
{
Y02=0;
delay_ms(500);
if (x05 == 0)
{
Y04=0;
delay_ms(100);
Y06=1;
}
}
白纪龙老师解答:
A.一般解决思路有两种:一是改变定时器中断初始化的值,而是利用全局变量,而定时器初始化的值不变的这种方式;但是改变初始化的值会牵扯进来很多东西,而且如果你的单片机运