扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流