终于大概理解延时函数的意义啦
当函数这样子写的时候,只是大概延时,不精确,Delay(60000)时间比较长,是为了让我能比较清楚的看到灯现象
而这里只用了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,这会耗费时间。