新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > C語言使用定時器的方法控制LED燈以1S的速度閃亮

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

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

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

本文引用地址:http://2s4d.com/article/201611/323765.htm

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

#include
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)鍵詞: C語言定時器LED

評論


技術(shù)專區(qū)

關(guān)閉