當前位置:編程學習大全網 - 編程語言 - 51單片機定時器定時2小時燈亮1小時燈滅,如此循環

51單片機定時器定時2小時燈亮1小時燈滅,如此循環

如果想實現無限循環那就采用死循環方式,可以無限的循環如while(1){};然後設定定時器定時時間為1s(此值需要根據單片機確定是否可以設定這麽大),其次,設定壹個變量對時間進行計數,根據計數情況做出相應的改變,程序可以這樣設定:

unsigned char gucLEDStatus = 0x00; //全局變量,表示燈當前的狀態 0為滅,1為亮

volatile unsigned int gusTimeCnt; //全局變量對時間計數

int main()

{

//增加定時器初始化並開放中斷

while(1)

{

if(gucLEDStatus == 0x01) //當前為亮狀態

{

if(gusTimeCnt >= 7200) //兩個小時時間到

{

gusTimeCnt = 0x00; //清零

gucLEDStatus = 0x00; //燈為滅狀態

//此處加程序代碼,控制燈為滅的狀態

}

else

{

//此處加程序代碼,控制燈為亮的狀態,此處會重復執行,可以進行控制

}

}

else if(gucLEDStatus == 0x00) //燈為滅的狀態

{

if(gusTimeCnt >= 3600) //1個小時

{

gusTimeCnt = 0x00;

gucLEDStatus = 0x01; //亮狀態

//增加程序代碼,控制燈亮

}

else

{

//增加程序代碼,控制燈滅,此處會重復執行,可以進行控制

}

}

}

return 0;

}

在中斷函數中,對gusTimeCnt進行遞增即可!

  • 上一篇:雅馬哈psrs970電子琴介紹
  • 下一篇:2015唐山學院專科都有什麽專業
  • copyright 2024編程學習大全網