Delay函数在单片机中的使用(待更新)学习日志

终于大概理解延时函数的意义啦

e5313a28a7d04f8dad5572d2de730a68.png

 当函数这样子写的时候,只是大概延时,不精确,Delay(60000)时间比较长,是为了让我能比较清楚的看到灯现象c6499b620c4c4732ae5d86e939a0851d.jpg

 而这里只用了500,是因为数码管动态显示不需要那么多时间,500够看清楚了

当然,也可以准确延时,那就要用到stc—isp软件了。

点开stc—isp软件,点入软件延时计算器,iap15f2k61s2(单片机的板子)选择Y5。选择好了以后,按照自己需要延时多少毫秒,输入,复制粘贴到代码中。

nop可以删除,但是会导致精确度降低。如果要保留nop,需要打上头文件  #include <instrins.h>。

复制好了延时函数以后,我们就可以进行延时操作了。记得将延时函数放进主函数(void main)里面!

但是呢,我们会发现这样子写延时代码很麻烦,因为这样子我们就没法灵活调用delay函数了,那怎么办呢?

这时我们就可以修改Delay函数体了。首先先在软件里弄出一个1ms的delay函数,然后括号里面给他赋值,(unsigned int xms),再写一个while循环函数,先让他兜1ms,然后写一个xms=xms-1(xms--),这样子的话,以后调用这个函数的时候,就会侦察Delay()里的数字。然后就先1ms的延迟,然后判断xms-1的值,如果不是等于0,那就再次循环,直到x减到了0,跳出循环。如果,xms赋值了500,那么就会循环500次,也就是500ms。但是,这样还是有误差。因为每次都要判断(xms-1)是否已经循环到了0,这会耗费时间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值