導航:首頁 > 操作系統 > 單片機程序執行時間計算公式

單片機程序執行時間計算公式

發布時間: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

與單片機程序執行時間計算公式相關的資料

熱點內容
歐陽詢字帖pdf 瀏覽:991
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