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

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

发布时间: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

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

热点内容
python运行系统指令 浏览:242
androidstring转char 浏览:624
linux命令编写 浏览:104
wordpress服务器怎么选 浏览:684
摩托车app下载哪个好 浏览:740
linuxvps挂载 浏览:124
c语言怎么做文件夹 浏览:844
程序员爱低头吗 浏览:628
mongophpupdate 浏览:698
单片机最小系统电路摘要 浏览:64
汤不热服务器地址是什么 浏览:730
什么是linux命令 浏览:102
androidlog怎么看 浏览:574
反垄断法修订数据算法约束 浏览:587
linux格式化u盘命令 浏览:75
windows防反编译 浏览:448
安卓40编译器 浏览:217
迈克的命令 浏览:170
pdf循环播放 浏览:177
如何把安卓手机里的微信聊天记录导入电脑 浏览:812