久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4230|回復: 15
打印 上一主題 下一主題
收起左側

有段單片機延時代碼,請大神指導是如何計算時間的?

[復制鏈接]
跳轉到指定樓層
樓主
20黑幣
各位大神:小弟初接觸單片機,以下一段代碼,其中的i:及j: 及K:是怎么算出來的?求計算方法,或求專門的計算軟件,謝謝。


void Delay100ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        i = 5;
        j = 52;
        k = 195;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2021-8-31 16:50 | 只看該作者
可用STC_ISP自動生成代碼


評分

參與人數 1黑幣 +20 收起 理由
szbadd + 20

查看全部評分

回復

使用道具 舉報

板凳
ID:624769 發表于 2021-8-31 19:04 | 只看該作者
沒有計算方法,C語言你就不要考慮了,除非你懂匯編。
然后查詢該單片機的手冊,查到DJNZ的機器周期,MOV的機器周期,然后根據晶振速率,算出需要多少個機器周期,然后算出用多少個DJNZ, 要精準的話,還要算上 MOV時間, RET時間, 和 CALL的時間。
回復

使用道具 舉報

地板
ID:624769 發表于 2021-8-31 19:08 | 只看該作者
STC的單片機,你可以用他的下載器自帶的工具生成,其他的單片機,你能你把在KEIL上,加載該MCU的信息后,寫一個大概的延時,然后DEBUG跑一下看看多少時間,在調整調整到你需要的時間。
回復

使用道具 舉報

5#
ID:883242 發表于 2021-8-31 20:08 | 只看該作者
這個不是算出來的,而是測出來的。
回復

使用道具 舉報

6#
ID:401564 發表于 2021-8-31 20:49 | 只看該作者
不同的單片機環境有不同的辦法
如果是8051,在STC下載器那有現成的,選擇好單片機型號和晶振,復制就可以了
PIC就有專門的uS,mS延時函數,程序開始的時候設定好晶振頻率,直接調用函數就行,這比較省事
回復

使用道具 舉報

7#
ID:624769 發表于 2021-8-31 20:53 | 只看該作者
Hephaestus 發表于 2021-8-31 20:08
這個不是算出來的,而是測出來的。

你還真說錯了,這個就是算出來的。根據不同型號的芯片,while 語句所對應的匯編代碼 DJNZ的周期數,然后計算出來的數值。
回復

使用道具 舉報

8#
ID:86450 發表于 2021-8-31 21:19 | 只看該作者
一般我是測出來
回復

使用道具 舉報

9#
ID:824397 發表于 2021-8-31 21:32 | 只看該作者
lkc8210 發表于 2021-8-31 16:50
可用STC_ISP自動生成代碼

大神,我明白,原來是這樣算出來的,太感謝了,
回復

使用道具 舉報

10#
ID:824397 發表于 2021-8-31 21:33 | 只看該作者
188610329 發表于 2021-8-31 19:04
沒有計算方法,C語言你就不要考慮了,除非你懂匯編。
然后查詢該單片機的手冊,查到DJNZ的機器周期,MOV的 ...

謝謝你的回復,論壇有你更精采
回復

使用道具 舉報

11#
ID:824397 發表于 2021-8-31 21:34 | 只看該作者
188610329 發表于 2021-8-31 19:08
STC的單片機,你可以用他的下載器自帶的工具生成,其他的單片機,你能你把在KEIL上,加載該MCU的信息后,寫 ...

是的,謝謝你的回復,論壇有你更精采
回復

使用道具 舉報

12#
ID:824397 發表于 2021-8-31 21:34 | 只看該作者
Hephaestus 發表于 2021-8-31 20:08
這個不是算出來的,而是測出來的。

謝謝你,已解決
回復

使用道具 舉報

13#
ID:824397 發表于 2021-8-31 21:35 | 只看該作者
Y_G_G 發表于 2021-8-31 20:49
不同的單片機環境有不同的辦法
如果是8051,在STC下載器那有現成的,選擇好單片機型號和晶振,復制就可以了
...

嗯,你這個計算出來沒有K值,謝謝你
回復

使用道具 舉報

14#
ID:824397 發表于 2021-8-31 21:36 | 只看該作者
188610329 發表于 2021-8-31 20:53
你還真說錯了,這個就是算出來的。根據不同型號的芯片,while 語句所對應的匯編代碼 DJNZ的周期數,然后 ...

謝謝你的參與
回復

使用道具 舉報

15#
ID:824397 發表于 2021-8-31 21:39 | 只看該作者
已解決,謝謝各位
回復

使用道具 舉報

16#
ID:390416 發表于 2021-9-1 08:19 | 只看該作者
真正搞工程項目設計的,壓根就不去計算這種參數的。理由如下:
1、假設在同一個硬件上做測試,單片機CPU指令周期是一致的。那么 變量i、K,存放在data跟存放在XDATA,讀寫速度能一樣?精確計算有意義嗎?
2、假設都存放在data,延遲1ms只需要char類型的變量即可完成,但是,延遲100ms必須16位變量,那么執行時間還能照著公式去套算?
3、假設上述條件都一樣,計算好的延遲時間是1ms并且誤差1%,打開中斷之后,延遲時間變成了5毫秒了。誤差500%了,精確計算有意義嗎?
4、假設上述條件不影響延遲時間,那么,編譯器呢?誰敢說編譯器不同的優化等級不影響delay的延遲時間?
5、還有硬件不同的情況,就需要重新計算了。比如晶振頻率不同,CPU內核速度不同,STC8H單片機就比STC15快了很多了比89系列快了十幾倍了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区三区四区五区中文 | 国产一区视频在线 | 久草在线在线精品观看 | 黄片毛片在线观看 | 国产激情一区二区三区 | 亚洲精品二区 | 国产重口老太伦 | 男女免费在线观看视频 | 国产精品中文字幕在线播放 | 黄色av网站在线观看 | 国产精品资源在线观看 | 一区二区三区在线免费看 | 亚洲成av人片在线观看无码 | 国产精品极品美女在线观看免费 | 亚洲一区二区三区免费视频 | 动漫www.被爆羞羞av44 | 香蕉视频久久久 | av乱码| 欧美成人精品一区二区男人看 | 成人在线中文 | 亚洲精品区 | 色久五月 | 午夜精品久久久久久不卡欧美一级 | 黑人巨大精品欧美黑白配亚洲 | 成人中文字幕在线观看 | 国产亚洲精品久久yy50 | 日韩在线不卡视频 | 日本在线免费视频 | 国产日韩欧美 | 国产 欧美 日韩 一区 | m豆传媒在线链接观看 | 国产精品日韩欧美 | 成av在线 | 久久99精品国产99久久6男男 | 国产九一精品 | 黄色日本片| 国产99免费视频 | 黄色网址av | av网址在线 | 最新中文字幕久久 | 国产精品一区二区久久久久 |