纪客老白【每日答疑】我手上有个stc51单片机,现在用的延时是软件延时,但实时性不好,弊端已经显露出来的,所以,我现在打算用定时器0进行延时,但是我现在不知道该怎么实现比较好。

针对STC51单片机软件延时实时性不佳的问题,采用定时器0进行改进。文章讨论了两种实现方法:全局变量配合固定定时器或调整定时器初始化值。推荐使用全局变量方式,通过设置两个全局变量跟踪延时状态,并在中断函数中减计数,当计数值为0时触发标志位,实现精确延时。
摘要由CSDN通过智能技术生成

白纪龙
学生提问如下;
老师,我手上有个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.一般解决思路有两种:一是改变定时器中断初始化的值,而是利用全局变量,而定时器初始化的值不变的这种方式;但是改变初始化的值会牵扯进来很多东西,而且如果你的单片机运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值