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