PIC单片机如何设计延时

这篇具有很好参考价值的文章主要介绍了PIC单片机如何设计延时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PIC单片机如何设计延时

PIC单片机的延时基本有三种,第一种是自己设计的delay()函数,第二种是直接调用库自带的delay()函数,最后一种就是利用其自带的Time定时器。当然不管是自己设计的delay()函数还是库自带的delay()函数的精度都低于Time0定时器的精度,Time定时器是单片机内部的硬件寄存器模块,而delay()函数是利用自加自减来实现延时,代码进行顺序执行,每走一步其实都会产生时间上的误差。
当在时间精度要求不高的场合可以使用delay()函数,而对于时间精度要求相对较高应该使用Time定时器。具体设计方法及使用方法如下。

自己设计一个delay()函数

自己写的delay()函数主要是利用fo循环的自加自减来完成的,今天这里我们就用for循环的自减来实现一个1s的延时,然后用1s做LED流水灯的延时让LED流水灯亮起来。
下面展示一些 内联代码片

// A code block
var foo = 'bar';

void delay(uint time)
{
uint a,b;
for(a=time;a>0;a–)
for(b=110;b>0;b–);
}

// An highlighted block
var foo = 'bar';

这个delay()设计好后,延时时间是timeb实际基数;有时我们不知道这款单片的时间基数是多少,有时是一个机器周有时是几个指令周期。这里我们不用担心,用MPLAB自带的软件模拟仿真就能比较精确的测出来你的延时,然后通过调整time和b就能获得你想要的延时时间,具体操作如下:
下面展示一些 内联代码片
点击“Debugger”->select Tool ->MPLAB SIM切换到仿真模式下,然后在主函数中进行延时测试,具体代码如下:

// A code block
var foo = 'bar';

void main()
{ 文章来源地址https://www.toymoban.com/news/detail-631318.html

到了这里,关于PIC单片机如何设计延时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包