找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3402|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

STC15W104單片機(jī)的指令周期到底是多少?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:154074 發(fā)表于 2021-8-11 08:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
號(hào)稱“1T”,也就是一個(gè)指令周期=一個(gè)機(jī)器周期的意思嗎?1T應(yīng)該如何理解?
它和我們熟悉的89C52相比區(qū)別在哪里?


編輯原因:之前用延時(shí)函數(shù)舉了例子,但漏洞百出,自己刪了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:154074 發(fā)表于 2021-8-11 08:52 | 只看該作者
剛搜到一些先自己答一下:好像機(jī)器周期還不等于振蕩周期。。具體還在研究,請(qǐng)大神幫我解答
回復(fù)

使用道具 舉報(bào)

板凳
ID:419909 發(fā)表于 2021-8-11 09:20 | 只看該作者
一般用官方那個(gè)自動(dòng)計(jì)算生成的軟件比較準(zhǔn)確。然后再倒推實(shí)際執(zhí)行周期,STC燒錄工具還是比較強(qiáng)大的。玩得好?梢允『芏喙ぷ。
回復(fù)

使用道具 舉報(bào)

地板
ID:844772 發(fā)表于 2021-8-11 09:29 | 只看該作者
你少算了一個(gè)數(shù)量級(jí)啊,你反匯編看看就明白了,如果i為U16,基本如下,如果char那時(shí)間就減半吧。
while(i--);
C:0x000F EF MOV A,R7        1個(gè)指令周期
C:0x0010 1F DEC R7        1個(gè)指令周期
C:0x0011 8E83 MOV DPH(0x83),R6        2個(gè)指令周期
C:0x0013 7001 JNZ C:0016        2個(gè)指令周期
C:0x0015 1E DEC R6        1個(gè)指令周期
C:0x0016 4583 ORL A,DPH(0x83)        1個(gè)指令周期
C:0x0018 70F5 JNZ C:000F        2個(gè)指令周期
回復(fù)

使用道具 舉報(bào)

5#
ID:959346 發(fā)表于 2021-8-11 09:49 | 只看該作者
你可以簡(jiǎn)單理解成:1T對(duì)應(yīng)的指令,是指匯編指令里單指令周期的指令,并不等于C語(yǔ)言里的一條指令。C語(yǔ)言里不同指令需要使用的匯編指令條數(shù),根據(jù)不同指令是不同的,只有 NOP 空指令一般是對(duì)應(yīng)一條指令。所以你這種計(jì)算方法,算出來(lái)的時(shí)間會(huì)偏低。
回復(fù)

使用道具 舉報(bào)

6#
ID:479619 發(fā)表于 2021-8-11 09:51 | 只看該作者
指令周期等于多個(gè)機(jī)器周期,這個(gè)不確定的,上面那個(gè)延時(shí)函數(shù)i=10uS,ms延時(shí)函數(shù)可以根據(jù)計(jì)算用循環(huán)寫(xiě)
回復(fù)

使用道具 舉報(bào)

7#
ID:401564 發(fā)表于 2021-8-11 10:17 | 只看該作者
不用匯編的話,這T不T的無(wú)所謂了
語(yǔ)句不等于指令,寫(xiě)出來(lái)的C在不同的STC單片機(jī)所有用的時(shí)間都是不一樣的
延時(shí)也不是單一的快多少倍,而是要對(duì)照指令表一個(gè)一個(gè)計(jì)算出來(lái)的,而STC15幾乎是STC里頭指令周期最亂的
用C語(yǔ)言不用管這個(gè),下載器那有延時(shí)函數(shù),復(fù)制粘貼它不香?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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