久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機12M晶振的延時程序

51單片機12M晶振的延時程序

作者: 時間:2016-11-18 來源:網絡 收藏
這是本人慢慢調出來的參數,有誤差是必須的,除非用匯編才會精確,后續我會更新修改,盡量精確。

調試環境:Keil V4.02

本文引用地址:http://cqxgywz.com/article/201611/315933.htm

源代碼如下:

#include
#include

//--延時0.2*n(ms)函數,若需延時1ms,則*5。適合延時50ms以下或左右的--//
void DelayMSx02(unsigned char n)
{
unsigned char x, y;
for(x=n; x>0; x--)
for(y=96; y>0; y--); //for循環中的"--"位置前后都可以
}

//--延時t*2+5(us)函數 --//
void DelayUSx2a5(unsigned char t)
{
while(--t);//while循環中要注意"--"的位置,放前面比放后面時間要短很多
}

//--大概延時1mS--//
void DelayMS(unsigned char t)
{
while(t--)
{
DelayUSx2a5(234);
DelayUSx2a5(256);
}
}

int main()
{
DelayMS(1); //延時1ms
DelayMSx02(5*1); //延時1ms
DelayUSx2a5(1); //延時7us
_nop_(); //延時1us

return 0;
}



評論


技術專區

關閉