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切换到仿真模式下,然后在主函数中进行延时测试,具体代码如下:文章来源:https://www.toymoban.com/news/detail-631318.html
// A code block
var foo = 'bar';
void main()
{
文章来源地址https://www.toymoban.com/news/detail-631318.html
到了这里,关于PIC单片机如何设计延时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!