當前位置:編程學習大全網 - 編程軟體 - 請教老師,51單片機在12M晶振,C語言編程時,延時函數120次=1ms(書本上是這樣的,不懂),是怎樣得來的?

請教老師,51單片機在12M晶振,C語言編程時,延時函數120次=1ms(書本上是這樣的,不懂),是怎樣得來的?

C的話其實時間沒有辦法完全定性地計算的

如果非得精確的話只能使用定時器了,或者匯編的也行

不過時間要求精度不是很高的話使用下面的代碼就行了

當時使用示波器把時間完全調準的,65536ms範圍內還是比較準的,已經可以滿足通常的要求了:

#include "reg51.h" //頭文件包含

//宏定義

#define uint unsigned int

#define uchar unsigned char

void delay(uint ms) // 毫秒級延時(AT89C52 @ 11.0592MHz)

{

uint ti;

while(ms--)

{

for(ti=0;ti<112;ti++){}//112

}

}

調用方式如下:

delay(400); //開機延時400ms

夠詳細了吧?!

  • 上一篇:在內存管理中,分頁管理和分段管理的主要區別是什麽
  • 下一篇:楚雄java培訓學校告訴妳軟件開發學什麽語言好?
  • copyright 2024編程學習大全網