导航:首页 > 操作系统 > 单片机程序执行时间计算公式

单片机程序执行时间计算公式

发布时间:2025-05-25 14:02:19

1. 怎么根据单片机晶振计算每段程序的运算时间啊

用KEIL软件可以计算时间,将while的起始位置和终止位置加红点(双击即可);

然后左侧的SEC后面的就是执行的时间。

再给你几个延时程序做参考:

软件延时:(asm)

晶振12MHZ,延时1秒

程序如下:

DELAY:MOV72H,#100

LOOP3:MOV71H,#100

LOOP1:MOV70H,#47

LOOP0:DJNZ70H,LOOP0

NOP

DJNZ71H,LOOP1

MOV70H,#46

LOOP2:DJNZ70H,LOOP2

NOP

DJNZ72H,LOOP3

MOV70H,#48

LOOP4:DJNZ70H,LOOP4

定时器延时:

晶振12MHZ,延时1s,定时器0工作方式为方式1

DELAY1:MOVR7,#0AH;;晶振12MHZ,延时0.5秒

AJMPDELAY

DELAY2:MOVR7,#14H;;晶振12MHZ,延时1秒

DELAY:CLREX0

MOVTMOD,#01H;设置定时器的工作方式为方式1

MOVTL0,#0B0H;给定时器设置计数初始值

MOVTH0,#3CH

SETBTR0;开启定时器

HERE:JBCTF0,NEXT1

SJMPHERE

NEXT1:MOVTL0,#0B0H

MOVTH0,#3CH

DJNZR7,HERE

CLRTR0;定时器要软件清零

SETBEX0

RET

C语言延时程序:

10ms延时子程序(12MHZ)

voiddelay10ms(void)

{

unsignedchari,j,k;

for(i=5;i>0;i--)

for(j=4;j>0;j--)

for(k=248;k>0;k--);

}

1s延时子程序(12MHZ)

voiddelay1s(void)

{

unsignedcharh,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--);

}

200ms延时子程序(12MHZ)

voiddelay200ms(void)

{

unsignedchari,j,k;

for(i=5;i>0;i--)

for(j=132;j>0;j--)

for(k=150;k>0;k--);

}

500ms延时子程序程序:(12MHZ)

voiddelay500ms(void)

{

unsignedchari,j,k;

for(i=15;i>0;i--)

for(j=202;j>0;j--)

for(k=81;k>0;k--);

}

不过实际得到的延时会存在差异,所以最好用实验的方法调整延时参数。

http://..com/link?url=D6NFOp_-_ctZ7gAh1VfA-VDEhKsNmWgIq

2. 单片机时间计算

255是错误的,定时器 高8位的1相当于256个脉冲
假设一个脉冲是1US
总时间=定时时间*中断次数+TH0*256+TL0-15536
15536是定时50ms时所装入的初值,一定要减去
将US换算成mS T=tcount*50+TH0*0.256+TL0/1000-15.536
另外一种方法是将定时器初值设为0,即定时65536US, 这样总时间为
T=65536*中断次数+TH0*256+TL0

与单片机程序执行时间计算公式相关的资料

热点内容
g11命令代码 浏览:670
vs调试命令 浏览:785
国际服如何快速更改服务器 浏览:506
python写游戏辅助 浏览:332
微信电脑版pdf 浏览:955
linux编译c动态库 浏览:360
cpu性能测试算法 浏览:647
编程变成东西 浏览:34
什么app适合看日剧 浏览:171
编译执行是不是java的特性 浏览:666
编译程序时出现错误不能读 浏览:146
java传递二维数组 浏览:471
男主是程序员哥哥是光头 浏览:299
用不起眼的文件夹做什么 浏览:334
javamongodb对象 浏览:180
java判断字符串个数 浏览:16
tvariablephp 浏览:803
u盘文件很小可以加密吗 浏览:954
pdf转换免费破解版 浏览:1
电脑画画软件命令 浏览:459