|
目標(biāo):?jiǎn)?dòng)時(shí)LED閃爍,倒計(jì)時(shí)15秒, 轉(zhuǎn)5秒、停5秒、再轉(zhuǎn)5秒
遇到困難:LED不閃爍,倒計(jì)時(shí)15秒直接跳過(guò)去了,直接到蜂鳴器滴滴叫了,求助!
定時(shí)器初始化子程序 5毫秒
------------------------------------------------*/
單片機(jī)源程序如下:
void initT0()
{
AUXR |= 0x80; //定時(shí)器時(shí)鐘1T模式
TMOD &= 0xF0; //設(shè)置定時(shí)器模式
TH0=(65536-55296)/256; //5ms
TL0=(65536-55296)%256;
TF0 = 0; //清除TF0標(biāo)志
EA = 1;
ET0 = 1;
TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí)
}
void LEDshan() //這里L(fēng)ED閃爍不了????不知道為什么
{
if(MScnt==100)
{
LED1 = ~LED1;
LED2 = ~LED2;
MScnt=0;
}
}
void main()
{
initT0();
LEDshan();
while(1)
{
if(sec<=15)
{
TR0=1;
if(sec<5)
{DJ=0; //電機(jī)轉(zhuǎn)動(dòng)
}
if(sec>=5&&sec<=10)
{DJ=1; //電機(jī)停止
}
if(sec>10&&sec<=15)
{DJ=0; //電機(jī)轉(zhuǎn)動(dòng)
}
buzzer=0;
sec=0;
}
}
/* 定時(shí)器0中斷服務(wù)函數(shù) */
void T0int( ) interrupt 1
{
TL0 = 0x00; //設(shè)置定時(shí)初值
TH0 = 0x28; //設(shè)置定時(shí)初值
LEDSMGscan();
KeyScan();
MScnt++; //中斷次數(shù)計(jì)數(shù)值加1
if (MScnt > 201) //中斷200次即1秒
{
MScnt = 0; //清零計(jì)數(shù)值以重新開(kāi)始下1秒計(jì)時(shí)
sec--;
}
}
|
|