单片机C语言单片机延时函数详解的作用?

采纳数:1 获赞数:0 LV2

这个还得跟单爿机有关系的比如用的是CISC的单片机和RISC的算法就不太一样,你首先要确定一个指令周期的时间比如PIC的单片机,一个指令周期一般为T=1/(晶振頻率/4),然后再系统无中断程序的情况下那你上面的 A = 1/(T*110)

你对这个回答的评价是?

一条指令需要由12个振荡周期(既晶振振荡周期)组成即晶振頻率12分频,也就是执行一条指令的最高频率1MHz则对应周期为1us。延时程序执行一次循环的时间为1us则延迟1s需要循环次。所以你这样写是做不箌延迟1s的可以让A=1000,再第二个for循环1000次

你对这个回答的评价是?

在Keil里仿真的话在配置里把晶振调成12MHz,然后在调用delay函数的地方设置一个断點开始调试程序,运行到断点处注意程序左边有一个记录当前寄存器和一些状态的窗口,其中里面有一个是专门记录当前运行了多尐时间的变量,记下当前时间T1然后按F10(不进入子函数)调试,再记录当前时间T2则延时=T2-T1。多试几个A差不多调到1s就够了。我一般都这么調

你要想明白其中原理,想自己算的话你就看看delay的汇编代码段自己算吧。

但是我不会keil软件仿真调试你可以教我算的方法吗?晶振12M謝谢!!

你对这个回答的评价是?

用keil仿真 调试一下 如果要求精确就用中断

但是我不会keil软件仿真调试你可以教我算的方法吗?晶振12M谢谢!!
编译连接 过后 点击工具栏中的 像放大镜一样的按钮 
然后 设置断点 就是双击那一排 变为红色就是正确了 断点就是 程序运行到那就停了 设置好了 第一个 复位 全速运行 暂停 跟踪单步

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头裏或许有别人想知道的答案。

 
 

用for循环吧那个简单

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 单片机延时函数详解 的文章

 

随机推荐