|
//本單片機代碼能正常運行,紅色字體代碼在尾部
//為什么寫上if(T0Count>=1000)等會亮1s 再暗1s 重復(fù)循環(huán) 。而只寫上 if(T0Count=1000) 時 卻只能把燈一直點亮而無法熄滅
#include <REGX52.H>
void Timer0Init(void) //1毫秒@11.0592MHz 定時計算自動生成代碼注意事項:1.新A2板采用的是11.0592MS晶振 注意采用的的是12T模式 注意STC89C52并沒有16位自動重載
{
//AUXR &= 0x7F; //定時器時鐘12T模式 //系統(tǒng)已設(shè)定定時器1T模式 無需再次手動設(shè)定
TMOD &= 0xF0; //設(shè)置定時器模式
TMOD |= 0x01; //設(shè)置定時器模式
TL0 = 0x18; //設(shè)置定時初值
TH0 = 0xFC; //設(shè)置定時初值
TF0 = 0; //清除TF0標(biāo)志
TR0 = 1; //定時器0開始計時
ET0=1;EA=1;
PT0=0;
}
void main()
{ Timer0Init();
while(1)
{
}
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count;
TL0 = 0x18; //設(shè)置定時初值
TH0 = 0xFC;
T0Count++;
if(T0Count>=1000) //沒有加大于號 為什么就不閃爍了 難道計數(shù)時間太快嗎?
{
T0Count=0;
P2_0=~P2_0; //位取反可行
}
}
|
|