C語言使用定時器的方法控制LED燈以1S的速度閃亮
今天開始學單片機的計數(shù)器了,呵呵,可能是一直因為用C語言編程序我定時老是定不準的原因,當?shù)弥獙W會定時/計數(shù)器后可以讓單片機C語言定時準確后,我感覺學它真的很有動力,雖然編一個簡單的程序也花了我好長時間,但編出來的感覺卻是那么的爽快,我覺得要學會定時/計數(shù)器,關鍵是要學會編程控制 TCOM,TMOD,及TH和TL吧。主要是TH和TL的準確運算。還有就是完時以后怎么樣讓其跟循環(huán)語句配合使用。
本文引用地址:http://www.ex-cimer.com/article/201611/323765.htm今天所編的程序是利用單片機定時器控制LED燈以1S的速度閃爍,我的晶振是12MHZ的,首先是讓計時器0.02S進行一次溢出,使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;
}
}
}
}
評論