简述一下延时函数delay怎么用-创新互联

void delay(unsigned int t)    //括号里面的是参数,可以定义在函数前面,这里为了方便就定义在这里
                              
{
     while(t--);           //将t定义为无符号整型,16位,是为了能延时更长时间
}                            //while后的分号可以理解为空语句,让while成为单独的语句
delay的延时原理

让芯片通过循环语句,做无意义的语句,以起到延时的作用。

创新互联建站-专业网站定制、快速模板网站建设、高性价比和县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式和县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖和县地区。费用合理售后完善,十年实体公司更值得信赖。delay的使用方法

简单来说就是,在主函数里调用写好的延时函数,达到延时的目的。 下面用单片机LED的闪烁实验举例:

#includesbit led=P2^7;

void delay(unsigned int t)
{
	while(t--);
}

void main()
{
	while(1)
	{
		led=0;
		delay(60000);      //调用delay函数,再给参数t赋值
		led=1;
		delay(60000);     //无符号整型,数字不能超过2的16次方,不然就会溢出
	}
}	

还有另一种方法写延时函数,而且所延迟的时间更加精确,使用单片机的烧入程序STC-ISP。

然后输入需要延时的时间,就可以得到相应的子函数了。用这个方法写的延时函数如下方式调用

void main()
{
	while(1)
	{
		led=0;
		delay 100us();     //软件所给出的delay函数 
		led=1;
		delay 100us();    
	}
}	

注:子函数里面有个_nop_,要添加头文件才不会出错。

时间的计算

相较于软件直接给出的函数,手写的延时函数如何较为准确的计算所延迟的时间?

这里教大家一种较为简单的方法,不用根据晶振大小计算时间。

逐条的运行就可以较为准确的计算t为各值时对应的时间。

萌新上路,制作不易,如有错误还请评论区指正。各位帅气逼人、美若天仙、颜值爆表的看官老爷点个赞吧,求求了。(在线卑微求赞)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:简述一下延时函数delay怎么用-创新互联
本文来源:http://cdiso.cn/article/coeooo.html

其他资讯