單片機延時1秒計算公式?希望我的程序能對大家的實驗起到幫助,下面我們就來說一說關于單片機延時1秒計算公式?我們一起去了解并探讨一下這個問題吧!
希望我的程序能對大家的實驗起到幫助。
//*************定時器查詢方式12MHz 1s延時
void DELAY(void)
{
unit i=0;
TMOD=0X00;//設置為定時器1(T1)工作于方式0
TH1=0X3C;//高4位
TL1=0XB0;//低4位
TR1=1;//啟動定時器
while(i<20)
{
if(TF1==1)//查詢T1溢出标志
{
TF1=0;
i ;
}
}
}
TMOD=0X00首先設置為定時器1(T1)工作于方式0
定時時間:t=(2^(16)-定時器的初始值)*系統時鐘周期*12^(1-T1x12)
即當T1x12=0時系統為12分頻計數脈沖周期系統時鐘周期的12倍(12MHz時1個計數脈沖周期時間為t=1us)
當設置定時時間為50ms時:定時器的初始值T=2^(16)-50*(10^3)=15536。15536轉換為16進制後為3CB0(h).設置定時器的初始值的方法TH1為高4位(TH1=0X3C),TL1為低4位(TL1=0XB0)。
每當定時器的值從15536(定時器的初始值)加到65536( 2^(16) )時會溢出,這時TF1=1,然後定時器從15536重新開始加。
while(i<20):while循環讓定時器循環20次,每次循環時間為50ms,即定時時間為t=50*20=1000ms=1s.
15單片機定時器實驗——查詢方式
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!