55问答网
所有问题
单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?
如题所述
举报该问题
推荐答案 2009-02-22
首先你要知道一个指令周期是几秒 算法是1/(晶振频率除以12)
然后你要知道循环究竟执行了几个指令周期 你可以用keil里在线反汇编命令看看你的循环编译成机器语言后到底是几个指令周期 这样就知道了延迟时间 当然你取近似值也可以的
比如
for(i=0,i<255,i++){x=2}
这里x=2是一个指令周期 而执行了255次 假如你的晶振是12MHZ的 则你执行一个指令周期是1us 255次是0.255ms
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/RL4IF84c.html
其他回答
第1个回答 2009-02-22
以下程序在12MHZ、m=1时延时为1ms:
#include <intrins.h>
void delay(uint m) // 12MHz Xtal, close to 1/2ms value
{
uint j;
uint i;
for(i=0; i<m; i++)
for(j=0; j<10; j++)
_nop_();
}
相似回答
单片机C语言
编程
中,
编一个
延时
约1s的语句
答:
双重
循环,
共有循环 1000 × 1000 = 一百万遍。每一遍,如果是1us,才能是延时约1s。但是,晶振是12MHz,一条汇编的指令就至少是1us
,C语言的
语句,就要更多。在编写
延时函数
之前,首先确认一下系统对晶振的分频系数,从而确定每个单周期指令执行所需
的时间,
一般的
单片机
都将指令执行周期设置为1us,...
单片机循环延时函数
答:
这个延时是通过三个for循环数数实现的,数了20*20*248次
,时间
刚好是0.2秒,因为
单片机
每执行一条指令,需要一定的时间。其实,根据不同的晶振产生的时钟,执行每条指令的时间会不一样,用keil软件进行仿真调试能得到一些较精确
的延时
!
单片机延时
程序
的延时时间怎么算的?
答:
如果用循环语句实现的
循环,
没法
计算,
但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。如果想精确
延时,
一般需要用到定时器
,延时时间
与晶振有关系
,单片机
系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便...
单片机延时
程序
的延时时间怎么算的?
答:
单片机的延时
程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的
时间,
而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。
单片机延时时间计算
。
c语言,
晶振频率是12MHZ
答:
第一个 for 循环:①执行 赋初值 2t,②判断 4t,③执行空语句 1t,④执行自减 1t,⑤执行判断 4t,结束。共计 12 个机械周期,12us;第二个for 循环:①执行一次 赋值 2t;②执行 30次 判断,4t×30=120t;③执行 30次 空语句,30t;④执行 30次 自减,30t;⑤又执行 1次判断 4t,...
大家正在搜
单片机C语言程序设计
c语言和单片机的关系
单片机用什么语言编程
单片机中断时间
单片机开机次数
单片机循环4次
c语言和单片机
c语言51单片机
单片机汇编语言
相关问题
关于单片机的延时,c语言中for循环是怎么计算的?
单片机程序中的for语句时间延迟函数时间怎么确定
51单片机使用汇编语言循环延迟时间怎么算?
单片机c语言中延时函数的延时时长怎么计算
51单片机的延迟函数,时间是怎么计算的,求大神解答
用C语言实现单片机延时,怎么知道设置循环值为多少才能延时某一...
单片机中for循环的延时程序怎么计算?
单片机C语言编程关于延时函数