这回我们要讲的是,如何使用isp来进行延时代码的生成和改写
首先,还是先打开stc—isp烧录软件,然后找到软件延时计算器,如图所示
系统帧率,这个的话根据自己的单片机的晶振时钟进行选择,这里我们选择12.000,生成一个500毫秒,Y1,的代码作为演示
这样的话就生成了一个延时500毫秒的延时函数,然后我们生成c代码,复制c代码,粘贴到我们的工程中,这里我们直接进行编译的话会进行报错,我们需要把_nop-()这行代码删掉
删掉之后就不会报错了,这里有一个警告,我们不用理它
这里说一个细节哈,如果你把延时函数放到了main下面的话,那你上面要复制一遍函数再加个冒号进行声明,如果不加在调用延时函数时就会报错。这个就关系到写在main函数之前的函数,不用再次进行声明了,但是写在main之后的函数需要再次进行声明才行,这里是一个细节
给大家演示一遍
写在main前
0错误,0警告
写在main之后,且不进行声明,就会出现下面栏里的情况
报错的意思就是Delay500ms()没有声明定义
上面我们只是操作演示了一遍如何生成500毫秒的代码,但是它只能延时500毫秒,没有办法演示更多或者更少时间,接下来就教大家如何自定义一个延时函数?
还是打开isp烧录器,找到软件延时计算器,改成1毫秒,然后生成c代码,再复制代码到工程中去
注意,直接生成的代码是没办法直接用的
需要进行一下操作,进行小小的改动
直接复制生成好的如图所示
这时候没办法进行使用,修改之后如下
我改成了void Delay,只是改了一下函数名,这个函数名自己想怎么定义就怎么定义,无需跟我一样,然后在()进行了修改,定义了一个无符号字符型变量x,这是一个形参,直接调用延时函数,在括号里进行数字修改即可达到自己想要的延时时间,比如Delay(1000);就是延时1000毫秒,Delay(10);就是延时了10毫秒