專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

C語言使用定時(shí)器的方法控制LED燈以1S的速度閃亮

作者:李俊軒   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年07月18日   【字體:

   最近因?yàn)橼s不上提高班的進(jìn)度,老師給的教程總是斷斷續(xù)續(xù)的,所以我打算跟11月1號(hào)通過考試的網(wǎng)友們一起學(xué)習(xí),呵呵,這也是我一教訓(xùn)來著,在三維里學(xué)習(xí)要堅(jiān)持一步一個(gè)腳印,堅(jiān)持必有奇跡,但也要跟得上大家,以后再忙也要努力實(shí)現(xiàn)計(jì)劃了,不能再像這次一樣,因?yàn)樗^的考試落下了好幾堂課,不過也沒有關(guān)系,能夠吸取點(diǎn)教訓(xùn)總是好的。我可以先給自己點(diǎn)時(shí)間多學(xué)些其它的基礎(chǔ)知識(shí)。

今天開始學(xué)單片機(jī)的計(jì)數(shù)器了,呵呵,可能是一直因?yàn)橛肅語言編程序我定時(shí)老是定不準(zhǔn)的原因,當(dāng)?shù)弥獙W(xué)會(huì)定時(shí)/計(jì)數(shù)器后可以讓單片機(jī)C語言定時(shí)準(zhǔn)確后,我感覺學(xué)它真的很有動(dòng)力,雖然編一個(gè)簡(jiǎn)單的程序也花了我好長(zhǎng)時(shí)間,但編出來的感覺卻是那么的爽快,我覺得要學(xué)會(huì)定時(shí)/計(jì)數(shù)器,關(guān)鍵是要學(xué)會(huì)編程控制 TCOM,TMOD,及TH和TL吧。主要是TH和TL的準(zhǔn)確運(yùn)算。還有就是完時(shí)以后怎么樣讓其跟循環(huán)語句配合使用。

今天所編的程序是利用單片機(jī)定時(shí)器控制LED燈以1S的速度閃爍,我的晶振是12MHZ的,首先是讓計(jì)時(shí)器0.02S進(jìn)行一次溢出,使TF1=1,其次是利用I++循環(huán)50次,加起來為1S。程序如下:

#include<reg52.h>
sbit LED = P1^2;
void main()
{ unsigned char i;
 TMOD |= 0x10;
 TMOD &= 0xdf;
 TH1 = 0xb1;
 TL1 = 0xdf;
 TCON |= 0x40;
 while(1)
 {
  if(TF1==1)
  {
   TF1 = 0;
   TH1 = 0xb1;
   TL1 = 0xdf;
   i++;
    if(i==50)
    {
     i=0;
     LED=~LED;
    }
   }
 }
}

關(guān)閉窗口

相關(guān)文章