Advertisement

纪客老白每日答疑我手上有个STC51单片机,目前采用的是软件延时,但其实时性存在问题,计划采用定时器0来实现延时,目前还不太清楚该如何具体实施.

阅读量:
白纪龙

学生提问如下:
教师,我目前手头有一款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;

复制代码
       }
    
    
      
    

【}

**白纪龙老师解

全部评论 (0)

还没有任何评论哟~