导航:首页 > 操作系统 > 单片机延时时间计算

单片机延时时间计算

发布时间:2022-04-26 12:15:57

㈠ 如何计算单片机延迟程序的延迟时间

Delay: MOV R7,#64H ;本条指令1T

LOOP: MOV R7,#0FAH ;本条指令1T执行100次
DJNZ R6,$ ;本条指令2T执行100*250次
DJNZ R7,LOOP ;本条指令2T执行100次
RET ;本条指令2T
延时时间为:1+100+2*100*250+2*100+2=50303T=100606us=100.606ms

㈡ 单片机延时时间怎样计算

如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。
如果想精确延时,一般需要用到定时器,延时时间与晶振有关系,单片机系统一般常选用11.059
2
mhz、12
mhz或6
mhz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1
μs和2
μs,便于精确延时。本程序中假设使用频率为12
mhz的晶振。最长的延时时间可达216=65
536
μs。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。

㈢ 哪位单片机高手详细的告诉我一下:单片机中的延时程序的延时时间怎样计算的比如,延迟 1S,2S等等

如果FOSC=12MHZ单片机,那么一个机器周期为12/12M=1us
如果是汇编语言的话:
L1:MOV
R7,#100
L2:MOV
R6,#100
L3:MOV
R5,#50
DJNZ
R5,$;此句两个机器周期也就是2T
DJNZ
R6,L3
DJNZ
R7,L2
RET
2T*50*100*100=1,000,000us(共一秒),这是粗略算法,有误差,但不是太大。

㈣ 单片机中延时时间怎样计算

C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。 一. 500ms延时子程序 程序: void delay500ms(void) { unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us 二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us 三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us 循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us 延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5 二. 200ms延时子程序程序:void delay200ms(void){ unsigned char i,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--);} 三. 10ms延时子程序程序:void delay10ms(void){ unsigned char i,j,k; for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--);} 四. 1s延时子程序程序:void delay1s(void){ unsigned char h,i,j,k; for(h=5;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--);}

㈤ 单片机的延时,延时时间长度是怎么算的最好有一个例子,来说明!

如果单片机晶振为6M,机器周期即为2us=12/fosc
汇编语句对时间的把握精确于C语言,所以参考不同指令的长度,
就可以算出你的延迟时间。
单片机的延时程序:
MOV
R7,#200
LOOP1:MOV
R6,#125
LOOP2:DJNZ
R6,LOOP2
DJNZ
R7,LOOP1
RET
第一句为单周期指令,耗时2us
第二句执行了200次,耗时2*200us
第三句为双周期指令,执行了125*200次,耗时2*2*125*200us
第四句同第三句,耗时2*2*200us
第五句双指令周期
总够耗时2+2*200+2*2*125*200+2*2*200+2*2
约为100ms

㈥ 求解单片机延时子程序延时计算

你可以粗略这样看,在上面的指令中,执行次数最多的是djnz
rn,那么可以延时就是djnz指令执行时间。这里运用了嵌套,所以要×。
它的顺序是先执行djnz
r5,l3
;10次,执行djnz
r6,l2
250次
但是当r6减1那么就赋予r5初值10,所以r5又得运行10次,而每减一次1都要重复10次。同理,执行r7减一要重复前面的djnz指令10×250次,所以就有了
10×250×200×2us=1s

㈦ 单片机延时程序的延时时间怎么计算的

如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。

如果想精确延时,一般需要用到定时器,延时时间与晶振有关系,单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz的晶振。最长的延时时间可达216=65 536 μs。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。

㈧ 51单片机延时程序时间是怎么计算的

51单片机延时时间计算需要考虑以下两种因素:
1、指令执行时间
2、指令循环次数

㈨ 单片机延时计算方法

以C51为例,12MHZ晶振的话,1个时钟周期为1/12微秒,1个机器周期=12个时钟周期,定时器每个机器周期可延时12*1/12微秒=1微秒。如果晶振为8MHZ的话,定时器每个机器周期可延时12*1/8微秒=1.5微秒

㈩ 51单片机中的延时应该怎么计算

for(a=2;a>0;a--) // 2微秒, 执行2次(a+2)是4微秒;

for(b=142;b>0;b--) // 2微秒, 执行142次,for(a=2;a>0;a--)是4微秒,即2*(142*4);
for(c=1;c>0;c--) // 2微秒, 执行1次,即2*(142*4)=1136微秒;
b=125,1000/8=125,再减去其它调用时间,应该b取值不大于125。

阅读全文

与单片机延时时间计算相关的资料

热点内容
弗洛伊德算法c 浏览:6
udp命令字 浏览:659
app服务端java源码 浏览:798
电脑用文件夹玩大型游戏 浏览:254
安卓耳塞失灵怎么办 浏览:765
华三交换机保存命令 浏览:605
命令方块怎么调键盘 浏览:841
不把密码存在服务器上怎么办 浏览:398
怎么让指令方块的命令消失 浏览:543
用单片机做plc 浏览:404
云服务器进入子目录命令 浏览:795
服务器机柜如何配电 浏览:578
怎么删除iphone资源库里的app 浏览:940
pdf鱼 浏览:648
单片机pcf8591什么作用 浏览:805
sql命令学院 浏览:283
加密软件在电脑那个盘 浏览:988
android获取外部存储 浏览:573
怎么查自己家的服务器地址 浏览:858
编程c语言工作好不好 浏览:569