找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2222|回復(fù): 5
收起左側(cè)

關(guān)于單片機(jī)匯編語言延時程序的小疑惑

[復(fù)制鏈接]
ID:864648 發(fā)表于 2021-1-5 18:40 | 顯示全部樓層 |閱讀模式
在我的理解中按順序執(zhí)行程序的話應(yīng)該是在8那里循環(huán)250次,然后在9那里循環(huán)250*250=62500,一共就是62500+250=62750,教程里講解說62500次,我有點(diǎn)不是很明白,還是說7和8是被6包括在里面的,求解答
7a83fd0ef5d84cbdf253f651hei993dc3.jpg
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2021-1-6 08:53 | 顯示全部樓層
循環(huán)的次數(shù)就是250*250呀,你這+250什么意思?
教材說的是"循環(huán)次數(shù)",并不是執(zhí)行時間,執(zhí)行時間是要計算上6和7,
而且,MOV指令是要一個時鐘,而DJNZ是要兩個時鐘的
整個的執(zhí)行時間是:1+250+250*250*2+250*2+2
分別對應(yīng)的是6,7,8,9,10
但一般來說,在長延時里,主要的延時都是在8和9,其它的都可以不計算在內(nèi)的,因?yàn)樗嫉臅r間是很少的,而且晶振也會有一定的誤差
以上對應(yīng)的是傳統(tǒng)的8051系統(tǒng)
而常用的STC指令執(zhí)行時間和傳統(tǒng)的8051是不一樣的
如果學(xué)匯編,你是一定要會計算這個的,當(dāng)你學(xué)會計算這個之后,就可以在STC下載器那直接復(fù)制就行了 51hei截圖20210106085310.jpg

回復(fù)

使用道具 舉報

ID:235200 發(fā)表于 2021-1-6 13:51 | 顯示全部樓層
在9那里循環(huán)250*250=62500次是對的,但對延時時間來說,9處的250次循環(huán)要包括(7的1T,8的2T*250 9的2T),所以總延時時間是:6處1T 7處250T 8處的500T*250  9處的2T*250  10處的2T ,所有時間加起來就是延時時間,其中T代表1個機(jī)器周期時間
回復(fù)

使用道具 舉報

ID:864648 發(fā)表于 2021-1-6 15:09 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-1-6 08:53
循環(huán)的次數(shù)就是250*250呀,你這+250什么意思?
教材說的是"循環(huán)次數(shù)",并不是執(zhí)行時間,執(zhí)行時間是要計算上6和 ...

他這是在6運(yùn)行完直接到9嗎
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2021-1-6 17:29 | 顯示全部樓層
Johncui 發(fā)表于 2021-1-6 15:09
他這是在6運(yùn)行完直接到9嗎

一步一步來的
你去看一下這DJNZ指令的含義就知道了,它要執(zhí)行到條件滿足了才執(zhí)行下一個指令的
回復(fù)

使用道具 舉報

ID:864648 發(fā)表于 2021-1-6 19:27 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-1-6 17:29
一步一步來的
你去看一下這DJNZ指令的含義就知道了,它要執(zhí)行到條件滿足了才執(zhí)行下一個指令的

ok,謝謝啦
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表