|
void configTimer1(unsigned int ms) //比如設(shè)置50ms
{ //此函數(shù)用來計(jì)算用戶需要的ms,然后轉(zhuǎn)化為定時器1進(jìn)入中斷1的高8位和低8位數(shù)字
unsigned long tmp;
tmp = 11059200 / 12;
tmp = (tmp * ms) / 1000; //除1000是把秒轉(zhuǎn)化為ms
tmp = 65536 - tmp; //計(jì)算出y
tmp = tmp + 12; //補(bǔ)償
T0RH = (unsigned char)(tmp>>8); //取出y的高8位
T0RL = (unsigned char)tmp; //取出y的低8位
TMOD &= 0xf0;
TMOD |= 0x10; //配置定時器模式
TH0 = T0RH; //給定時器1中斷賦初值
TL0 = T0RL;
ET0 = 1; //定時器1中斷打開
TR0 = 1; //啟動T1
}
void interruptTimer0() interrupt 1
{
unsigned char cnt=0;
TH0 = T0RH;
TL0 = T0RL;
if(TF0==1)
{TF0=0;cnt++;
if(cnt>=20)
{cnt=0;P1 = 0xff;}
}
}
框架大概這樣,可能會有點(diǎn)問題但是改改就行 |
|