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

QQ登錄

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

帖子
查看: 3134|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)延時(shí)函數(shù)的時(shí)間計(jì)算

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:214997 發(fā)表于 2017-7-11 09:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)一個(gè)延時(shí)函數(shù)延時(shí)多長(zhǎng)時(shí)間到底怎么算?由于學(xué)校直接說(shuō)的c語(yǔ)言,看網(wǎng)上說(shuō)c只有仿真來(lái)看延時(shí)是多少,只有這種方法嗎?比如
for(i=0;i<125;i++)
{
;
}
這樣一個(gè)延時(shí)了多長(zhǎng)時(shí)間呢?有沒(méi)有具體算的方法。。麻煩大家詳細(xì)說(shuō)下吧,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:179958 發(fā)表于 2017-7-11 20:49 | 只看該作者
使用STC最新的程序下載軟件,右邊有個(gè)軟件延時(shí)計(jì)算,用那個(gè)生成要的延時(shí)函數(shù),就挺不錯(cuò)的
回復(fù)

使用道具 舉報(bào)

板凳
ID:218953 發(fā)表于 2017-7-11 21:52 | 只看該作者
void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++) }      如:DelayMS(5);則耗時(shí)為5*120個(gè)指令周期,如果你的指令周期就是你的系統(tǒng)時(shí)鐘(12000000hz)那么時(shí)間為1/12000000*5*120  這只能是大概的算。不過(guò)應(yīng)該能滿足你的延時(shí)要求了。精準(zhǔn)的話建議用匯編
回復(fù)

使用道具 舉報(bào)

地板
ID:149988 發(fā)表于 2017-7-12 05:59 | 只看該作者

RE: 關(guān)于單片機(jī)延時(shí)函數(shù)的時(shí)間計(jì)算

如果晶振是24Mhz,延時(shí)大約是125*2=250us.(用仿真器仿真是251us).
如果晶振是12Mhz,延時(shí)大約是125*4=500us(用仿真器仿真是502us).
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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