C語(yǔ)言使用定時(shí)器的方法控制LED燈以1S的速度閃亮
今天開始學(xué)單片機(jī)的計(jì)數(shù)器了,呵呵,可能是一直因?yàn)橛?strong>C語(yǔ)言編程序我定時(shí)老是定不準(zhǔn)的原因,當(dāng)?shù)弥獙W(xué)會(huì)定時(shí)/計(jì)數(shù)器后可以讓單片機(jī)C語(yǔ)言定時(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)語(yǔ)句配合使用。
本文引用地址:http://m.butianyuan.cn/article/201611/323765.htm今天所編的程序是利用單片機(jī)定時(shí)器控制LED燈以1S的速度閃爍,我的晶振是12MHZ的,首先是讓計(jì)時(shí)器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;
}
}
}
}
評(píng)論