<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機之延時(shí)的哪點(diǎn)事兒

51單片機之延時(shí)的哪點(diǎn)事兒

作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò ) 收藏
我說(shuō)的是單片機C,書(shū)上的延時(shí)是這樣的,如:


本文引用地址:http://dyxdggzs.com/article/201611/319871.htm

void delay02()


{


unsigned char i,j,k;


for(i=2;i>0;i--)


for(j=200;j>0;j--)


for(k=250;k>0;k--);


}


它的時(shí)間是:2usX250X200X2=200 000us=0.5s


而這個(gè)時(shí)間是不精確的,我在家里總結出了一個(gè)對于這種時(shí)間計算法,它的結果和在KEILL中調試時(shí)的時(shí)間是一樣的并且也分開(kāi)始定義時(shí)的類(lèi)型,char是以1us計算,int 是4us,如果上面的那里定義成int那結果就并不是0.5S啦!


分析法為:


以unsigned char 來(lái)說(shuō)吧!


for(i=2;i>0;i--)


分析:i=2 --->我的分析為1us


i>0 ---->我的分析為1us 有兩次共2us


i-- ----->它也有1us 有兩次共2us


因此,總的時(shí)間為 s=1+1X2+1X2=5us


由此,書(shū)上的時(shí)間應為


1+1x2+1x2+2x(1+1x200+1x200+200x(1+1x250+1x250))


這個(gè)時(shí)間顯然就是以上從 for 開(kāi)始到結束的 } 的精確時(shí)間了!


又如:unsigned char i;


i=20; //2us


while(i--);


這個(gè)時(shí)間精確計算應為 s=2+6+20x6 us


為什么是這樣呢?這是我通過(guò)keill的調試得出來(lái)的!


while ---> 2us


(i--) ----->2us


; --------->2us


起步為6us共有20次,那么時(shí)間為6+20x6


還有,如:


unsigned int a;


for(a=20;a>0;a--);


這個(gè)時(shí)間精確為


2+20x4+20x4


好了不多說(shuō)了,己經(jīng)到了0:28啦,我要睡啦,不然明兒沒(méi)精神的。睡去啦!


嘻嘻!這些就是我發(fā)現的單片機關(guān)于延時(shí)的那點(diǎn)事兒哦!


如果你不想信,那么,請朋友你去用keil的調試吧!


用起步的時(shí)間減去最后的時(shí)間看看是不是這樣啦!


sec是時(shí)間 0.000 000 00


還有這個(gè)說(shuō)法在keil4上不是怎樣成立?這個(gè)可能是編譯器的區別。不過(guò)這個(gè)可是理解成一種編程思想吧!不要讓編譯器所約束(因為編譯器也是用程序設計出來(lái)的,如果你會(huì )那個(gè)你也可以編出來(lái))



關(guān)鍵詞: 51單片機延

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>