C语言10ms跑多少函数 c语言1000f

51单片机求10微秒的延时函数 C语言(晶振11.0592MHz)1、下面几个是单片机的延时程序(包括asm和C程序,都是我在学单片机的过程中用到的),在单片机延时程序中应考虑所使用的晶振的频率,在51系列的单片机中我们常用的是11.0592MHz和12.0000MHz的晶振,而在AVR单片机上常用的有8.000MHz和4.000MH的晶振所以在网上查找程序时如果涉及到精确延时则应该注意晶振的频率是多大 。
2、软件延时:(asm)
晶振12MHZ,延时1秒
程序如下:
DELAY:MOV
72H,#100
LOOP3:MOV
71H,#100
LOOP1:MOV
70H,#47
LOOP0:DJNZ
70H,LOOP0
NOP
DJNZ
71H,LOOP1
MOV
70H,#46
LOOP2:DJNZ
70H,LOOP2
NOP
DJNZ
72H,LOOP3
MOV
70H,#48
LOOP4:DJNZ
70H,LOOP4
定时器延时:
晶振12MHZ,延时1s,定时器0工作方式为方式1
DELAY1:MOV
R7,#0AH
;;晶振12MHZ,延时0.5秒
AJMP
DELAY
DELAY2:MOV
R7,#14H
;;晶振12MHZ,延时1秒
DELAY:CLR
EX0
MOV
TMOD,#01H
;设置定时器的工作方式为方式1
MOV
TL0,#0B0H
;给定时器设置计数初始值
MOV
TH0,#3CH
SETB
TR0
;开启定时器
HERE:JBC
TF0,NEXT1
SJMP
HERE
NEXT1:MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
R7,HERE
CLR
TR0
;定时器要软件清零
SETB
EX0
RET
3、C语言延时程序:
10ms延时子程序(12MHZ)
void
delay10ms(void)
{
unsigned
char
i,j,k;
for(i=5;i0;i--)
for(j=4;j0;j--)
for(k=248;k0;k--);
}
1s延时子程序(12MHZ)
void
delay1s(void)
{
unsigned
char
h,i,j,k;
for(h=5;h0;h--)
for(i=4;i0;i--)
for(j=116;j0;j--)
for(k=214;k0;k--);
}
200ms延时子程序(12MHZ)
void
delay200ms(void)
{
unsigned
char
i,j,k;
for(i=5;i0;i--)
for(j=132;j0;j--)
for(k=150;k0;k--);
}
500ms延时子程序程序:
(12MHZ)
void
delay500ms(void)
{
unsigned
char
i,j,k;
for(i=15;i0;i--)
for(j=202;j0;j--)
for(k=81;k0;k--);
}
c语言延时的计算?这个跟的系统频率有关系 。看看你的晶振是多少 。另外还跟指令集有关系 。
精确的时间你可以反汇编一下看看有多少条指令,根据指令周期算算延时时间 。
关于C语言流水灯的延时函数根据单片机的频率来计算的 。
这个Delay10ms转化成汇编之后C语言10ms跑多少函数:
DELAY_10S: MOV R4,#1
L1: MOV R3,#38 1指令周期
L2: MOV R2,#130 1指令周期
L3: DJNZ R2,L3 2指令周期
DJNZ R3,L2 同上
DJNZ R4,L1 同上
RET 同上
总耗时:[(130*2 1 2)*38 1 2]*1*12/12M = 0.009997s≈10ms
至于是不是误差 0us这个要根据具体的编译器来计算C语言10ms跑多少函数,因为编译器不同 , 转化之后的汇编也不一样 。
在C语言程序中,延时函数的时间是怎么算的?这个是和你机器的运算速度有关的
你要计算出这个函数用C语言10ms跑多少函数了多少时间就要用时间函数C语言10ms跑多少函数,我很久没用了 。
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i121;i);
}
end=time(null);
printf("%f",difftime(end,start));
}
//time_t是在头文件中定义的,可能是个结构体类型里面的成员定义了一些时间的单位,如年、月、日 。在这里调用这个结构体定义2个变量;
//start=time(null);
将其中一个变量赋值 。它的值等于当前的系统时间
//end=time(null);
在程序结束的时候再给另一个变量赋值 , 值等于当前的系统时间 。
//difftime(end,start)
函数difftime();是double类型,用来计算运行的时间,用第一个参数的时间减去第二个参数的时间 , 得到的值就是运行用了多少时间 。单位为秒
【C语言10ms跑多少函数 c语言1000f】C语言10ms跑多少函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言1000f、C语言10ms跑多少函数的信息别忘了在本站进行查找喔 。

    推荐阅读