標(biāo)題: 求解單片機(jī)延時(shí)函數(shù)的計(jì)算 [打印本頁(yè)]

作者: a865550942    時(shí)間: 2018-1-16 22:49
標(biāo)題: 求解單片機(jī)延時(shí)函數(shù)的計(jì)算
void delay_16us(u16 us)        
{
        while(--us);
}


如上所示的延時(shí)函數(shù),在89c52中運(yùn)行,晶振用的是12兆赫茲,那這個(gè)該如何計(jì)算延時(shí)的時(shí)間長(zhǎng)度,網(wǎng)上的看不懂希望能說(shuō)說(shuō)


作者: 木木de    時(shí)間: 2018-1-16 23:04
需要轉(zhuǎn)換成匯編指令  再去計(jì)算時(shí)鐘周期  計(jì)算出延時(shí)時(shí)間
作者: jizi    時(shí)間: 2018-1-17 07:38
12MHZ的晶振在89c52中,一個(gè)機(jī)械時(shí)間是12MHZ/12=1us
一個(gè)機(jī)械時(shí)間就是單片機(jī)運(yùn)行一個(gè)指令的時(shí)候例如(;)
也是一個(gè)機(jī)械時(shí)間,所以上面的程序是  輸入的數(shù)  慢慢地減
一個(gè)一個(gè)的運(yùn)行這個(gè)指令( ;)
計(jì)算公式:晶振數(shù)/12=機(jī)械時(shí)間
作者: cccc888    時(shí)間: 2018-1-17 09:26


作者: zl2168    時(shí)間: 2018-1-17 11:13
本帖最后由 zl2168 于 2018-1-17 11:15 編輯

c程序中的延時(shí)函數(shù),不能準(zhǔn)確計(jì)算延時(shí)時(shí)間。匯編程序可以。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1