这两道单片机单片机延时程序怎么写写。感谢。

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

1、十秒对于单片机来说是很长很长的时间了,单片机十秒的时间什么事都不能做只在跑这延时程序,那是什么概念用中断的话,单片机正常运行其他程序只是时间到了才过来处理延时以后的程序,效率不知道高叻多少

 

本回答由电脑网络分类达人 汪正茂推荐

这么长的延时,不用循环延时没实际意义 。单片机在这10s时间里不能做其它事了要用定時器中断,定时10s不是很难的,按常规写法误差+1.6ms。

如果细调定时初值(包括重装)TH0 = ()/256;

误差可以减小到+0.3ms

首先不知兄弟你玩单片机玩了多久,用C语言编程的话极难做到精确地延时10ms不过误差不会大,我下了两个借鉴下:

}

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

可以随便调用,要多少时间就往函数写多少吧!

你对这个回答的评价是

你为什麼不用定时器来做这些延时或定时呢?不过你这样也行吧!不过我个人觉得用延时的话精确度不会很高,还有如果你用多了延时的话對你的程序有一定的弊端。

你对这个回答的评价是

}

KEIL軟件仿真測量延時程序延時時間

for(k=81;k>0;k--);從第二階跳轉到第三階需要2機器周期 ,賦值需要1個機器周期執行81次則需要2*81個機器周期,執行一次二階for循環的事件為81*2+1+2;執行了220次則(81*2+3)*220+3,執行15次一階循環則 [(81*2+3)*220+3]*15,由於不需要從上階跳往下階,則只加賦值的一個機器周期另外進入該延時子函數和跳出該函數均需要2個機器周期,故還需要+5  
unsigned char i,j,k;用一個機器周期,+上進出函數的2*2個機器周期則最好需+5個機器周期的時間。

}

我要回帖

更多关于 单片机延时程序怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信